1. 程式人生 > 其它 >[ROS學習筆記2]ROS中的launch檔案

[ROS學習筆記2]ROS中的launch檔案

launch檔案是ROS的關鍵元件之一,可以通過配置該檔案實現多節點的配置和介紹了launch檔案的常用標籤屬以及使用法。

本文基於Ubuntu18.04 + ROS1:melodic

launch檔案是ROS的關鍵元件之一,可以通過配置該檔案實現多節點的配置和啟動。但值得注意的是。launch檔案並不能保證節點的啟動順序,因此使用launch檔案同時啟動的節點必須是先後順序魯棒的。

launch檔案本質上是XML檔案,因此遵循XML語言的規則(XML常用作配置檔案,如ROS中的packege.xml也是)。檔案中由相互巢狀的標籤和屬性組成,其常用的標籤如下表所示:

launch常用標籤及屬性

標籤 用途 屬性 用途
launch 根標籤,其他標籤均巢狀在其內
node 啟動節點 pkg="pkg_name" 節點所在包名
type="XXX.cpp" 可執行檔名
name="node_name" 節點啟動之後的名字
(respawn="true") 若該節點關閉,是否自動重新啟動
(required="true") 若該節點關閉,是否關閉其他所有節點
(launch-prefix="xterm -e") 是否新開一個視窗執行
(output="screen") 預設情況下,launch 啟動 node 的資訊會存入檔案"/.ros/log/run_id/node_name-number-stdout.log"
(ns="namespace") 將 node 歸入不同的 namespace
include 包含其他launch "$(find package-name)/launch-file-name" 檔案路徑
machine 指定執行的機器
env-loader 設定環境變數
param 定義引數到引數伺服器(與 arg 不同,param 是共享的,並且它的取值不僅限於 value,還可以是檔案,甚至是一行命令) name="param_name" 引數名
(type="type1") 型別名,可以省略,系統自動判斷
value="val" 變數值
(textfile="$(find pkg)/path/file") 讀取 file 存成 string
(command="$(find pkg)/exe '$(find pkg)/arg.txt'") 找包下面的exe和arg.txt,內容存在param中
rosparam 載入yaml檔案中的引數到引數伺服器(可以批量操作,還包括一些對引數設定的命令,如 dump, delete 等) command="load" file="$(find rosparam)/example.yaml" 從 YAML 檔案中載入一批 param
command="delete" param="my_param" 刪除某個 param
[注]rosparam還可以這樣賦值:
< rosparam param="my_param">[1,2,3,4]< /rosparam>
或< rosparam>a: 1 b: 2< /rosparam>
arg 定義變數 name 引數名
(default="1") 賦預設值為1
(value="1") 賦固定值為1,不可更改
remap 設定 topic 對映 from="origin" to="new" 從origin對映到new
group 設定分組

launch檔案使用

終端鍵入命令(如果roscore未啟動,roslaunch會自動先啟動roscore):

roslaunch  pkg_name  launchfile_name.launch

或者

roslaunch path_to_launchfile

可選引數
|--screen|令 ros node 的資訊輸出到螢幕上,而不是儲存在log檔案,方便除錯|
|arg:=value|如果 launch 檔案中有待賦值的變數,可以通過這種方式賦值|

本文來自部落格園,作者:葉小蝸,轉載請註明原文連結:https://www.cnblogs.com/yexiaowo/p/ROS-launch.html