4.3 launch之xml、yaml實(shí)現(xiàn)
4.3 launch之xml、yaml實(shí)現(xiàn)
本節(jié)主要介紹 launch 文件的 xml 與 yaml 實(shí)現(xiàn)語法。xml 與 yaml 實(shí)現(xiàn)語法雷同,所以本節(jié)會(huì)將二者集合在一起介紹。4.3.1 節(jié)點(diǎn)設(shè)置
需求:launch 文件中配置節(jié)點(diǎn)的相關(guān)屬性。
示例:
在 cpp01_launch/launch/xml 目錄下新建 xml01_node.launch.xml 文件,輸入如下內(nèi)容:

在 cpp01_launch/launch/yaml 目錄下新建 yaml01_node.launch.yaml 文件,輸入如下內(nèi)容:

代碼解釋:
在XML 實(shí)現(xiàn)中 node 標(biāo)簽用于表示節(jié)點(diǎn),其屬性包含:
pkg:功能包;
exec:可執(zhí)行文件;
name:節(jié)點(diǎn)名稱;
namespace:命名空間;
exec_name:流程標(biāo)簽;
respawn:節(jié)點(diǎn)關(guān)閉后是否重啟;
args:調(diào)用指令時(shí)的參數(shù)列表;
ros_args:相當(dāng)于 args 前綴 --ros-args。
node 標(biāo)簽的子級(jí)標(biāo)簽包含:
param,設(shè)置參數(shù)的標(biāo)簽,其屬性包含:
name:參數(shù)名稱;
value:參數(shù)值;
from:參數(shù)文件路徑;
remap,話題重映射標(biāo)簽,其屬性包含:
from:原話題名稱;
to:新話題名稱。
YAML 實(shí)現(xiàn)規(guī)則與之類似。
4.3.2 執(zhí)行指令
需求:在 launch 文件中執(zhí)行 ROS2 命令,以簡化部分功能的調(diào)用。
示例:
在 cpp01_launch/launch/xml 目錄下新建 xml02_cmd.launch.xml 文件,輸入如下內(nèi)容:

在 cpp01_launch/launch/yaml 目錄下新建 yaml02_cmd.launch.yaml 文件,輸入如下內(nèi)容:

代碼解釋:
在 XML 實(shí)現(xiàn)中 executable 標(biāo)簽用于表示可執(zhí)行指令,其屬性包含:
cmd:被執(zhí)行的命令;
output:日志輸出目的地設(shè)置。
YAML 實(shí)現(xiàn)規(guī)則與之類似。4.3.3 參數(shù)設(shè)置
需求:啟動(dòng)turtlesim_node節(jié)點(diǎn)時(shí),可以動(dòng)態(tài)設(shè)置背景色。
示例:
在 cpp01_launch/launch/xml 目錄下新建 xml03_args.launch.xml 文件,輸入如下內(nèi)容:

在 cpp01_launch/launch/yaml 目錄下新建 yaml03_args.launch.yaml 文件,輸入如下內(nèi)容:

代碼解釋:
在 XML 實(shí)現(xiàn)中,arg 標(biāo)簽用于聲明參數(shù),其屬性包含:
name:參數(shù)名稱;
default:參數(shù)默認(rèn)值。
參數(shù)的調(diào)用語法為:
$(var 參數(shù)名稱)。
可以在啟動(dòng) launch 文件時(shí)動(dòng)態(tài)傳入?yún)?shù),其語法與 Python 格式實(shí)現(xiàn)的 launch 文件一致。
YAML 實(shí)現(xiàn)規(guī)則與之類似。4.3.4 文件包含
需求:新建 launch 文件,包含 4.2.3 中的 launch 文件并為之傳入設(shè)置背景色相關(guān)的參數(shù)。
示例:
在 cpp01_launch/launch/xml 目錄下新建 xml04_include.launch.xml 文件,輸入如下內(nèi)容:

在 cpp01_launch/launch/yaml 目錄下新建 yaml04_include.launch.yaml 文件,輸入如下內(nèi)容:

代碼解釋:
在 XML 實(shí)現(xiàn)中,include 標(biāo)簽用于實(shí)現(xiàn)文件包含,其屬性如下:
file:被包含的launch文件的路徑。
let 標(biāo)簽用于向被包含的 launch 文件中導(dǎo)入?yún)?shù),其屬性如下:
name:參數(shù)名稱;
value:參數(shù)值。
YAML 實(shí)現(xiàn)規(guī)則與之類似。4.3.5 分組設(shè)置
需求:對(duì) launch 文件中的多個(gè) Node 進(jìn)行分組。
示例:
在 cpp01_launch/launch/xml 目錄下新建 xml05_group.launch.xml 文件,輸入如下內(nèi)容:

在 cpp01_launch/launch/yaml 目錄下新建 yaml05_group.launch.yaml 文件,輸入如下內(nèi)容:

代碼解釋:
在 XML 實(shí)現(xiàn)中,group 標(biāo)簽用于分組,其子標(biāo)簽如下:
push_ros_namespace:可以通過該標(biāo)簽中的 namespace 屬性設(shè)置組內(nèi)節(jié)點(diǎn)使用的命名空間。
node:節(jié)點(diǎn)標(biāo)簽。
YAML 實(shí)現(xiàn)規(guī)則與之類似。

B站有完整的ros系列教程視頻,可以觀看完整內(nèi)容ros課程ROS2理論與實(shí)踐
更多內(nèi)容將在猛獅知識(shí)星球社區(qū)更新最新課程,后續(xù)將推出更多優(yōu)質(zhì)內(nèi)容——詳情可關(guān)注猛獅集訓(xùn)營公眾號(hào)和猛獅集訓(xùn)營官方網(wǎng)站。