機器人系統仿真(一)——URDF集成Rviz基本流程


參考視頻:【奧特學園】ROS機器人入門課程《ROS理論與實踐》零基礎教程_嗶哩嗶哩_bilibili

參考文檔:http://www.autolabor.com.cn/book/ROSTutorials/

機器人的系統仿真是一種集成實現,主要包含三部分:

 

URDF 用於創建機器人模型:以XML 的方式描述機器人的部分結構,比如底盤、攝像頭、激光雷達、機械臂以及不同關節的自由度。可被 C++ 內置的解釋器轉換成可視化的機器人模型。

Gzebo 用於搭建仿真環境:3D動態模擬器,顯示機器人模型並創建仿真環境,能夠在復雜的室內和室外環境中准確有效地模擬機器人。與游戲引擎提供高保真度的視覺模擬類似,Gazebo提供高保真度的物理模擬,其提供一整套傳感器模型,以及對用戶和程序非常友好的交互方式。

Rviz 圖形化顯示傳感器感知到的環境信息:ROS的三維可視化工具。以三維方式顯示ROS消息,將數據進行可視化表達。例如:可以顯示機器人模型,可以無需編程就能表達激光測距儀(LRF)傳感器中的傳感 器到障礙物的距離,RealSense、Kinect或Xtion等三維距離傳感器的點雲數據(PCD, Point Cloud Data),從相機獲取的圖像值

官方文檔:

https://wiki.ros.org/urdf

http://wiki.ros.org/rviz

http://gazebosim.org/tutorials?tut=ros_overview

 

需求描述:

在 Rviz 中顯示一個盒狀機器人

實現流程:

  1. 准備:新建功能包,導入依賴

  2. 核心:編寫 urdf 文件

  3. 核心:在 launch 文件集成 URDF 與 Rviz

  4. 在 Rviz 中顯示機器人模型

1.創建功能包,導入依賴

創建一個新的功能包,名稱自定義,導入依賴包: urdfxacro

在當前功能包下,再新建幾個目錄:

urdf: 存儲 urdf 文件的目錄

meshes:機器人模型渲染文件(暫不使用)

config: 配置文件

launch: 存儲 launch 啟動文件

  

2.編寫 URDF 文件

新建一個子級文件夾:urdf(可選),文件夾中添加一個.urdf文件,復制如下內容:

<robot name="mycar">
    <link name="base_link">
        <visual>
            <geometry>
                <box size="0.5 0.2 0.1" />
            </geometry>
        </visual>
    </link>
</robot>

3.在 launch 文件中集成 URDF 與 Rviz

launch目錄下,新建一個 launch 文件,該 launch 文件需要啟動 Rviz,並導入 urdf 文件,Rviz 啟動后可以自動載入解析urdf文件,並顯示機器人模型,核心問題:如何導入 urdf 文件? 在 ROS 中,可以將 urdf 文件的路徑設置到參數服務器,使用的參數名是:robot_description,示例代碼如下:

<launch>

    <!-- 設置參數 -->
    <param name="robot_description" textfile="$(find 包名)/urdf/urdf/urdf01_HelloWorld.urdf" />

    <!-- 啟動 rviz -->
    <node pkg="rviz" type="rviz" name="rviz" />

</launch>

4.在 Rviz 中顯示機器人模型

rviz 啟動后,會發現並沒有盒裝的機器人模型,這是因為默認情況下沒有添加機器人顯示組件,需要手動添加,添加方式如下:設置完畢后,可以正常顯示了

 

 

 

 

 

 

5.優化 rviz 啟動

重復啟動launch文件時,Rviz 之前的組件配置信息不會自動保存,需要重復執行步驟4的操作,為了方便使用,可以使用如下方式優化:

首先,將當前配置保存進config目錄然后,launch文件中 Rviz 的啟動配置添加參數:args,值設置為-d 配置文件路徑

 

 

 

<launch>
    <!--1.在參數服務器載入 urdf 文件-->
    <param name="robot_description" textfile="$(find urdf01_rviz)/urdf/urdf/demo01_helloworld.urdf" />
    <!--2.啟動 rviz-->
    <node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz"/>
</launch>

再啟動時,就可以包含之前的組件配置了,使用更方便快捷。

添加坐標系

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM