无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

4.1 啟動(dòng)文件 launch 簡介

2023-10-13 10:22 作者:猛獅集訓(xùn)營  | 我要投稿

4.1 啟動(dòng)文件 launch 簡介

場景

如前所述,在機(jī)器人操作系統(tǒng)中,節(jié)點(diǎn)是程序的基本構(gòu)成單元,一個(gè)完整的、系統(tǒng)性的功能模塊是由若干節(jié)點(diǎn)組成的,啟動(dòng)某個(gè)功能模塊時(shí)可能需要依次啟動(dòng)這些節(jié)點(diǎn),比如:

以機(jī)器人的導(dǎo)航功能為例,涉及的節(jié)點(diǎn)主要有:

  • 底盤驅(qū)動(dòng);

  • 雷達(dá)驅(qū)動(dòng);

  • 攝像頭驅(qū)動(dòng);

  • imu驅(qū)動(dòng);

  • 地圖服務(wù);

  • 路徑規(guī)劃;

  • 運(yùn)動(dòng)控制;

  • 環(huán)境感知;

  • 定位;

  • ......

并且不同節(jié)點(diǎn)啟動(dòng)時(shí),可以還會涉及到各種參數(shù)的導(dǎo)入、節(jié)點(diǎn)間執(zhí)行邏輯的處理等。

如果使用?ros2 run指令逐一執(zhí)行節(jié)點(diǎn)的話,顯然效率低下,基于此,ROS2中提供了launch模塊用于實(shí)現(xiàn)節(jié)點(diǎn)的批量啟動(dòng)。

概念

launch 字面意為“啟動(dòng)”、“發(fā)射”,在ROS2中主要用于啟動(dòng)程序。launch模塊由launch文件與?ros2 launch命令組成,前者用于打包并配置節(jié)點(diǎn),后者用于執(zhí)行l(wèi)aunch文件。

作用

簡化節(jié)點(diǎn)的配置與啟動(dòng),提高程序的啟動(dòng)效率。

準(zhǔn)備工作

1.新建工作空間ws02_tools,本章后續(xù)編碼實(shí)現(xiàn)都基于此工作空間;

2.終端下進(jìn)入工作空間的src目錄,調(diào)用如下兩條命令分別創(chuàng)建C++功能包和Python功能包。

ros2 pkg create cpp01_launch --build-type ament_cmake --dependencies rclcpp ros2 pkg create py01_launch --build-type ament_python --dependencies rclpy

3.在使用Python版的launch文件時(shí),涉及的API眾多,為了提高編碼效率,可以在VScode中設(shè)置launch文件的代碼模板,將VScode的配置文件python.json修改為為如下內(nèi)容:

4.1.1 launch 基本使用流程

在 ROS2 中,launch 文件可以使用Python、XML或YAML編寫,不同格式的 launch 文件基本使用流程一致。接下來我們通過一個(gè)案例演示 launch 文件的基本編寫編譯流程,案例需求:編寫并執(zhí)行 launch 文件,可以啟動(dòng)兩個(gè)turtlesim_node節(jié)點(diǎn)。

實(shí)現(xiàn)步驟如下:

  1. 編寫launch文件;

  2. 編輯配置文件;

  3. 編譯;

  4. 執(zhí)行。

1.C++實(shí)現(xiàn)

1.編寫launch文件

功能包c(diǎn)pp01_launch下,創(chuàng)建launch目錄。launch文件可以是python文件、xml文件或yaml文件,不同類型的launch文件可以直接存儲在launch目錄下,或者為了方便管理,我們也可以在launch目錄下新建py、xml和yaml三個(gè)文件夾分別存儲對應(yīng)類型的launch文件,并且建議不同格式的launch文件命名時(shí)分別使用_launch.py、_launch.xml、_launch.yaml.launch.py、.launch.xml、.launch.yaml作為后綴名。

不同類型的 launch 文件示例如下:

Python文件:py00_base.launch.py

XML文件:xml00_base.launch.xml


YAML文件:yaml00_base.launch.yaml

launch 文件編寫完畢后,其實(shí)已經(jīng)可以直接使用?ros2 launch 文件路徑?的方式執(zhí)行了,終端中進(jìn)入當(dāng)前工作空間,輸入如下指令:

ros2 launch src/cpp01_launch/launch/py/py00_base.launch.py

但是這種執(zhí)行方式不建議。

2.編輯配置文件

CMakeLists.txt 中添加語句:

install(DIRECTORY launch DESTINATION share/${PROJECT_NAME})

無論該功能包的launch目錄下有多少個(gè)launch文件,launch相關(guān)配置只需設(shè)置一次即可。

3.編譯

終端中進(jìn)入當(dāng)前工作空間,編譯功能包:

colcon build --packages-select cpp01_launch

4.執(zhí)行

當(dāng)前工作空間下,啟動(dòng)終端,輸入如下指令:

. install/setup.bash ros2 run cpp01_launch py00_base.launch.py

該指令運(yùn)行的是 python 格式的 launch 文件,其他兩個(gè)launch文件與之同理。最終,會啟動(dòng)兩個(gè) turtlesim_node 節(jié)點(diǎn)。

2.Python實(shí)現(xiàn)

1.編寫launch文件

功能包py01_launch下,創(chuàng)建launch目錄,launch目錄下新建py、xml和yaml三個(gè)文件夾分別存儲對應(yīng)類型的launch文件,launch 文件實(shí)現(xiàn)與 rclcpp 完全一致。并且也可以使用ros2 launch 文件路徑的方式執(zhí)行。

2.編輯配置文件

編輯 setup.py 文件,需要在 data_files 屬性中,添加相關(guān) launch 文件的路徑,修改后的內(nèi)容如下:


無論該功能包的launch目錄下有多少個(gè)launch文件,launch相關(guān)配置只需設(shè)置一次即可。

3.編譯

終端中進(jìn)入當(dāng)前工作空間,編譯功能包:

colcon build --packages-select py01_launch

4.執(zhí)行

當(dāng)前工作空間下,啟動(dòng)終端,輸入如下指令:

. install/setup.bash?

ros2 run py01_launch py00_base.launch.py

該指令運(yùn)行的是 python 格式的 launch 文件,其他兩個(gè)launch文件與之同理。最終,會啟動(dòng)兩個(gè) turtlesim_node 節(jié)點(diǎn)。

建議:對于帶有啟動(dòng)文件的功能包,最好在功能包的package.xml中添加對包ros2launch的執(zhí)行時(shí)依賴:

<exec_depend>ros2launch</exec_depend>

這有助于確保在構(gòu)建功能包后ros2 launch命令可用。它還確??梢宰R別不同格式的 launch 文件。

B站有完整的ros系列教程視頻,可以觀看完整內(nèi)容ros課程ROS2理論與實(shí)踐

更多內(nèi)容將在猛獅知識星球社區(qū)更新最新課程,后續(xù)將推出更多優(yōu)質(zhì)內(nèi)容——詳情可關(guān)注猛獅集訓(xùn)營公眾號和猛獅集訓(xùn)營官方網(wǎng)站。

4.1 啟動(dòng)文件 launch 簡介的評論 (共 條)

分享到微博請遵守國家法律
芜湖县| 磐石市| 田林县| 吕梁市| 镇远县| 确山县| 宝清县| 永清县| 朝阳县| 高州市| 普格县| 嘉鱼县| 安阳县| 祥云县| 阳江市| 大埔区| 罗甸县| 青铜峡市| 石嘴山市| 浮梁县| 红桥区| 探索| 麻江县| 彩票| 玉林市| 东城区| 城口县| 汝南县| 大足县| 襄汾县| 青河县| 望城县| 红河县| 鄂尔多斯市| 荥阳市| 荥经县| 吴旗县| 交城县| 龙门县| 平武县| 福州市|