最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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 簡介的評論 (共 條)

分享到微博請遵守國家法律
遵化市| 灵宝市| 盐源县| 碌曲县| 阿坝| 岫岩| 长武县| 盱眙县| 青海省| 昌乐县| 闽清县| 林口县| 进贤县| 文成县| 四子王旗| 红桥区| 金塔县| 镇安县| 格尔木市| 大竹县| 唐山市| 星子县| 通化市| 古交市| 丘北县| 孟州市| 栖霞市| 高碑店市| 凤阳县| 巴里| 甘德县| 丰顺县| 云浮市| 沙坪坝区| 社会| 沈丘县| 南京市| 廉江市| 泰兴市| 荔浦县| 庆元县|