5 ROS仿真模組化
- 5.5 賦予模型傳感器資訊控制仿真機器人
-
- 5.5.1 實作效果
- 5.5.2 在urdf檔案添加gazebo傳感器資訊
- 5.5.3 存在問題
- 5.6 參考内容和資源連接配接
-
- 5.6.1參考内容
- 5.6.2 資源連接配接
5.5 賦予模型傳感器資訊控制仿真機器人
5.5.1 實作效果
在通過鍵盤控制機器人運動,同時可以訂閱雷達資訊。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL5VleONTS65UeRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3MzM0MjN0EjM3AzNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
5.5.2 在urdf檔案添加gazebo傳感器資訊
1、添加差速驅動輪的資訊
<gazebo>
<plugin name="differential_drive_controller" filename="libgazebo_ros_diff_drive.so">
<rosDebugLevel>Debug</rosDebugLevel>
<publishWheelTF>true</publishWheelTF>
<robotNamespace>/</robotNamespace>
<publishTf>1</publishTf>
<publishWheelJointState>true</publishWheelJointState>
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<legacyMode>true</legacyMode>
<leftJoint>base_l_wheel_joint</leftJoint>
<rightJoint>base_r_wheel_joint</rightJoint>
<wheelSeparation>0.315</wheelSeparation>
<wheelDiameter>0.18</wheelDiameter>
<broadcastTF>1</broadcastTF>
<wheelTorque>30</wheelTorque>
<wheelAcceleration>1.8</wheelAcceleration>
<commandTopic>cmd_vel</commandTopic>
<odometryFrame>odom</odometryFrame>
<odometryTopic>odom</odometryTopic>
<robotBaseFrame>base_coordinate</robotBaseFrame>
</plugin>
</gazebo>
2、添加雷射雷達的資訊
<gazebo reference="laser">
<sensor type="ray" name="rplidar">
<pose>0 0 0 0 0 0</pose>
<visualize>true</visualize>
<update_rate>5.5</update_rate>
<ray>
<scan>
<horizontal>
<samples>360</samples>
<resolution>1</resolution>
<min_angle>-3</min_angle>
<max_angle>3</max_angle>
</horizontal>
</scan>
<range>
<min>0.10</min>
<max>30.0</max>
<resolution>0.01</resolution>
</range>
<noise>
<type>gaussian</type>
<mean>0.0</mean>
<stddev>0.01</stddev>
</noise>
</ray>
<plugin name="gazebo_rplidar" filename="libgazebo_ros_laser.so">
<topicName>/scan</topicName>
<frameName>laser</frameName>
</plugin>
</sensor>
</gazebo>
更多傳感器資訊,參考官方:http://gazebosim.org/tutorials?tut=ros_gzplugins
3、launch檔案不需要做修改
4、啟動launch檔案在rviz訂閱雷達話題
在rviz中的add添加LaserScan,在其中的topic裡訂閱/scan話題,修改size大小是得雷射雷達掃描結果更為清晰。
5、控制機器人運動
建立終端輸入
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
通過鍵盤控制機器人運動。
5.5.3 存在問題
在進行鍵盤控制機器人運動,可能存在情況:模型沒有問題,但是機器人前進運動不自然。
此時訂閱機器人的TF坐标和裡程計資訊odometry發現,預設的odom方向以X軸正方向為前進方向,是以urdf模型的車輪前進後退需要考慮是需要繞着Y軸的。
5.6 參考内容和資源連接配接
5.6.1參考内容
1、B站ROS入門與實踐:【奧特學園】ROS機器人入門課程《ROS理論與實踐》零基礎教程
2、ROS-WIKI:https://wiki.ros.org/urdf/XML
3、gazebo官方:http://gazebosim.org/tutorials?tut=ros_gzplugins
5.6.2 資源連接配接
0積分資源
上一篇: 5 ROS仿真模組化(2- urdf檔案的編寫和場景搭建).