[ROS學習筆記2]ROS中的launch檔案
阿新 • • 發佈:2021-07-26
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