一、Gazebo仿真軟件是一個能夠在三維環境中對機器人的運動功能和傳感器數據等一系列功能進行仿真的軟件,它提供了高保真度的物理引擎,能夠準確高效地模擬機器人在復雜工況下的運行。Gazebo仿真軟件通常和ROS共同使用,在ROS中就集成了此軟件,因此當安裝Full版本的ROS時,Gazebo仿真軟件也會被同步安裝。
?wpr_simulation 是一個用于機器人仿真的軟件包,通常用于 輪式機器人(Wheeled Robot) 的導航、SLAM 和運動控制仿真。該工具包由北京六部工坊維護并開源,兼容ROS 1(如Noetic)和ROS 2(如Humble/Foxy)版本,提供 Gazebo 仿真環境與 ROS 導航棧集成。?
?多模態仿真能力?。
?導航與SLAM?:支持 Gmapping、Hector SLAM 等算法,適用于自主導航測試。??
?傳感器模擬?:集成激光雷達(LiDAR)數據生成與避障邏輯,可驗證傳感器算法。??
?交互控制?:通過鍵盤指令或ROS節點實現機器人運動控制。??
(1)下載源碼。
cd ~/catkin_ws/src
git clone https://github.com/6-robot/wpr_simulation.git
(2)安裝所需依賴項。
~/catkin_ws/src/wpr_simulation/scripts/install_for_noetic.sh
(3)進行編譯。
cd ~/catkin_ws
catkin_make
通過開源項目“wpr_simulation”中的一個簡單仿真場景介紹,在終端中運行如下啟動指令。
roslaunch wpr_simulation wpb_simple.launch
運行啟動指令會啟動Gazebo仿真軟件,界面可以大致分為場景、面板和工具欄三個區域
二、Rviz(Robot Visualization)是ROS中的三維可視化軟件,它自身具有非常多的功能,可以訂閱主題并將其可視化,還可以使用可拓展語言對機器人及周邊一切物體進行描述。相對于Gazebo這個仿真軟件,用Rviz創建一個虛擬的三維環境,就要利用已有數據,Rviz是數據的使用者,即將已有的數據可視化顯示。
使用到一個名為“wpb_home”的開源項目,這里對其進行獲取。
(1)在終端中輸入如下指令。
cd ~/catkin_ws/src
git clone https://github.com/6-robot/wpb_home.git
獲取“wpb_home”開源項目
首先在終端內啟動Gazebo仿真環境。
roslaunch wpr_simulation wpb_simple.launch
然后打開一個新終端運行如下指令啟動Rviz。
roslaunch wpr_simulation wpb_rviz.launch
該條指令運行后系統會打開Rviz
三、對機器人的速度控制是通過向機器人的核心節點發布速度消息——Twist消息來實現的,Twist消息的主題(Topic)是/cmd_vel,base controler訂閱Twist消息來控制電機,進而控制機器人運動。這個消息的類型在ROS里已經有了定義,那就是geometry_msgs::Twist。
這個消息類型包含了兩部分速度值,第一部分是linear,包含x、y、z三個值,分別表示指向機器人在前方、左方、垂直三個方向上均滿足右手定則,具體表示平移速度,單位是“米/秒”。第二部分是angular,也包含了x、y、z三個值,表示機器人在水平前后軸向、水平左右軸向、豎直上下軸向三個軸向上的旋轉速度值,旋轉方向的定義遵循右手定則。
編寫節點代碼
首先,需要創建一個ROS源碼包。在Ubuntu里打開一個終端程序,輸入如下指令進入ROS工作空間
其次,輸入如下指令創建ROS源碼包。
catkin_create_pkg vel_pkg rospy geometry_msgs
最后,按下“Enter”鍵創建vel_pkg源碼包,創建完成之后系統會提示ROS源碼包創建成功,這時我們可以看到“catkin_ws/src”目錄下出現了“vel_pkg”子目錄。
catkin_create_pkg vel_pkg rospy geometry_msgs
選中“scripts”文件夾并對其右擊,選擇“新建文件”。將這個Python節點文件命名為“vel_ctrl_node.py”。
編寫好后,添加執行權限:其默認不帶有可執行屬性,所以需要為其添加一個可執行屬性才能讓它運行起來。
cd ~/catkin_ws/src/vel_pkg/scripts/
再執行如下指令為代碼文件添加可執行屬性。
chmod +x vel_ctrl_node.py
編譯軟件包
現在節點文件可以運行了,但是這個軟件包還沒有加入ROS的包管理系統,無法通過ROS指令運行其中的節點,所以還需要對這個軟件包進行編譯。在終端程序中輸入如下指令進入ROS工作空間。
cd ~/catkin_ws/
再執行如下指令對軟件包進行編譯。
catkin_make
編譯完成,這時就可以測試此節點了。
啟動仿真環境
啟動開源項目“wpr_simulation”中的仿真場景,打開終端程序,輸入如下指令。
roslaunch wpr_simulation wpb_simple.launch
接下來啟動Rviz,打開一個新的終端程序,輸入如下指令。
roslaunch wpr_simulation wpb_rviz.launch
來源: 部分來自網絡