6.3 rviz2集成URDF基本流程
6.3 rviz2集成URDF基本流程
在 rviz2 中如何顯示機(jī)器人模型呢?前面已經(jīng)簡(jiǎn)單介紹過(guò): URDF 是一種機(jī)器人建模文件,rviz2 可以按照該文件渲染出圖形化的機(jī)器人模型。換言之,rviz2 必須集成 URDF 文件才能顯示機(jī)器人模型,本節(jié)就將主要介紹該二者集成的基本實(shí)現(xiàn)流程。
6.3.1 案例以及案例分析
1.案例需求
需求:在 rviz2 中顯示一個(gè)簡(jiǎn)單的盒狀機(jī)器人。

2.案例分析
在上述案例中,需要關(guān)注的要素有三個(gè):
如何編寫 URDF 文件;
如何加載 URDF 文件到系統(tǒng);
如何使用 rviz2 顯示機(jī)器人模型;
3.流程簡(jiǎn)介
主要步驟如下:
編寫 URDF 文件;
編寫 launch 文件;
編輯配置文件;
編譯;
執(zhí)行 launch 文件并在 rviz2 加載機(jī)器人模型。
該案例中,C++ 與 Python 實(shí)現(xiàn)都遵頊上述流程,且大多數(shù)實(shí)現(xiàn)都基本一致,只是在配置文件上稍有差異,本節(jié)主要以 C++ 功能包為例演示該實(shí)現(xiàn)。
4.準(zhǔn)備工作
1.安裝所需功能包
請(qǐng)調(diào)用如下命令,安裝案例所需的兩個(gè)功能包:
sudo apt install ros-humble-joint-state-publisher
sudo apt install ros-humble-joint-state-publisher-gui
2.新建功能包
終端下進(jìn)入工作空間的src目錄,調(diào)用如下命令創(chuàng)建C++功能包。
ros2 pkg create cpp06_urdf --build-type ament_cmake
功能包下新建 urdf、rviz、launch、meshes目錄以備用,其中 urdf 目錄下再新建子目錄 urdf 與 xacro,分別用于存儲(chǔ) urdf 文件和 xacro 文件。
6.3.2 案例實(shí)現(xiàn)
1.URDF文件實(shí)現(xiàn)
功能包 cpp06_urdf 的 urdf/urdf 目錄下,新建 urdf 文件 demo01_helloworld.urdf,并編輯文件,輸入如下內(nèi)容:

2.launch文件實(shí)現(xiàn)
功能包 cpp06_urdf 的 launch 目錄下,新建 launch 文件 display.launch.py,并編輯文件,輸入如下內(nèi)容:

launch 文件啟動(dòng)時(shí),可以通過(guò)參數(shù) model 動(dòng)態(tài)傳入被加載的 urdf 文件。
3.編輯配置文件
1.package.xml
在 package.xml 中需要手動(dòng)添加一些執(zhí)行時(shí)依賴,核心內(nèi)容如下:

2.CMakeLists.txt
在功能包下,新建了若干目錄,需要為這些目錄配置安裝路徑,核心內(nèi)容如下:

4.編譯
終端中進(jìn)入當(dāng)前工作空間,編譯功能包:
colcon build --packages-select cpp06_urdf
5.執(zhí)行
當(dāng)前工作空間下,啟動(dòng)終端,輸入如下指令:

然后 rviz2 會(huì)啟動(dòng),啟動(dòng)后做如下配置:
Global Options 中的 Fixed Frame 設(shè)置為 base_link(和 urdf 文件中 link 標(biāo)簽的 name 一致);
添加機(jī)器人模型插件,并將參數(shù) Description Topic 的值設(shè)置為 /robot_description,即可顯示機(jī)器人模型。

小提示:
在本章的后續(xù)案例中,所有實(shí)現(xiàn)都遵循上述步驟,在后續(xù)案例中我們只需要關(guān)注 urdf 實(shí)現(xiàn)即可,launch 文件和 配置文件無(wú)需修改。

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