参考视频:【奥特学园】ROS机器人入门课程《ROS理论与实践》零基础教程_哔哩哔哩_bilibili
参考文档:http://www.autolabor.com.cn/book/ROSTutorials/
通过 Gazebo 模拟激光雷达传感器,并在 Rviz 中显示激光数据。
实现流程:
雷达仿真基本流程:
-
已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加雷达配置;
-
将此文件集成进xacro文件;
-
启动 Gazebo,使用 Rviz 显示雷达信息。
1.Gazebo 仿真雷达
在 urdf/gazebo 下新建 laser.xacro
1.2 xacro 文件集成
更新 car.urdf.xacro
<robot name="my_base" xmlns:xacro="http://www.ros.org/wiki/xacro"> <!--包含惯性矩阵文件--> <xacro:include filename="head.xacro" /> <!--包含底盘、摄像头与雷达的 xacro 文件--> <xacro:include filename="demo05_car_base.urdf.xacro" /> <xacro:include filename="demo06_car_camera.urdf.xacro" /> <xacro:include filename="demo07_car_laser.urdf.xacro" /> <!--运动控制--> <xacro:include filename="gazebo/move.xacro" /> <!--雷达控制--> <xacro:include filename="gazebo/laser.xacro" /> </robot>
1.2 新建 Xacro 文件,配置雷达传感器信息
<robot name="my_sensors" xmlns:xacro="http://wiki.ros.org/xacro"> <!-- 雷达 --> <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> </robot>
启动两个 launch 文件
cys@ubuntu:~/demo05_ws$ source ./devel/setup.bash
cys@ubuntu:~/demo05_ws$ roslaunch urdf02_gazebo demo03_env.launch
cys@ubuntu:~/demo05_ws$ source ./devel/setup.bash
cys@ubuntu:~/demo05_ws$ roslaunch urdf02_gazebo demo04_sensor.launch
2.Rviz 显示雷达数据
先启动 rviz,添加雷达信息显示插件