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文件的编写和场景搭建).