“敢教日月换新天!”
前言
沿用上一章的gazebo中的机器人,为机器人使用激光雷达。大概流程和move.xacro步骤一致,略。
- 延用工作空间test2_ws;
- 功能包demo4_urdf_gazebo存放代码;
- laser的xacro代码放在demo4_urdf_gazebo/urdf/xacro/gazebo/laser.xacro;
- 最后综合launch文件demo4_urdf_gazebo/launch/all.launch.
先写laser.xacro文件,然后在综合xacro文件中加入laser文件即可。
laser.xacro文件详解
- 雷达初始位姿:x y z 还有角度偏移量pitch yaw等
<pose>0 0 0 0 0 0</pose>
- gazebo中可以见到激光雷达线束
<visualize>true</visualize> <!--gazebo's light can be watched-->
- 角度:180
- 分辨率:1(越低精度越高)
- 可视范围:-3到3度(所以gazobo中有6度左右的盲区)
<horizontal>
<samples>360</samples>
<resolution>1</resolution> <!--pressure of computer's working-->
<min_angle>-3</min_angle> <!--rad/s-->
<max_angle>3</max_angle> <!--empty area-->
</horizontal>
- 探测范围:0.1m到30m;
- 距离精度(分辨率)
<range>
<min>0.10</min> <!--distance-->
<max>30.0</max>
<resolution>0.01</resolution> <!--acuracy-->
</range>
- 在仿真中加入高斯噪声(10米探测可能有10.01和9.98等误差,仿真专用)
<noise>
<type>gaussian</type> <!--add gaussian in simulation-->
<mean>0.0</mean>
<stddev>0.01</stddev>
</noise>
- 下边的laser是为了定位底盘文件中的激光雷达,确保和xacro中的摄像头link名字一致
<gazebo reference="laser"> <!-- get laser's link name -->
...
<frameName>laser</frameName>
效果展示
gazebo
软件将激光雷达改为蓝色可见;
rviz
需要小小配置一下,加入laserscan,然后选中订阅话题/scan,觉得不够清晰可以将线径加粗(我这里0.01->0.04)
laser.xacro源码
<robot name="my_sensors" xmlns:xacro="http://wiki.ros.org/xacro">
<!-- laser -->
<gazebo reference="laser"> <!-- get laser's link name -->
<sensor type="ray" name="rplidar">
<pose>0 0 0 0 0 0</pose>
<visualize>true</visualize> <!--gazebo's light can be watched-->
<update_rate>5.5</update_rate>
<ray>
<scan>
<horizontal>
<samples>360</samples>
<resolution>1</resolution> <!--pressure of computer's working-->
<min_angle>-3</min_angle> <!--rad/s-->
<max_angle>3</max_angle> <!--empty area-->
</horizontal>
</scan>
<range>
<min>0.10</min> <!--distance-->
<max>30.0</max>
<resolution>0.01</resolution> <!--acuracy-->
</range>
<noise>
<type>gaussian</type> <!--add gaussian in simulation-->
<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>
</robot>