gazebo创建机器人模型04
1.Rviz 查看里程计消息
在 Gzebo 仿真环境中,机器人的里程计信息以及运动朝向等信息是无法获取的,可以通过 Rviz 显示机器人的里程计信息以及运动朝向
里程计:机器人相对出发坐标点的位姿状态( X 坐标Y 坐标 Z坐标以及朝向)。
1.1 代码实现
编写一个 launch 文件,demo04_sensor.launch
<launch>
<!-- 添加点云坐标系到 kinect 连杆坐标系的变换 -->
<node pkg="tf2_ros" type="static_transform_publisher" name="static_transform_publisher" args="0 0 0 -1.57 0 -1.57 /support /support_depth" />
<!-- 启动 rviz -->
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz" />
<!--
只有上述两条语句:
表现:摄像头显示位置与颜色异常
提示:No transform from [camera] to [base_link] 缺少 camera_link 到 base_link 的坐标变换
原因:rviz 中显示 urdf 时,必须发布不同部件间的坐标关系
解决:ros中提供了关于机器人模型显示的坐标发布相关节点(两个)
-->
<!-- 关节状态发布节点 -->
<node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" />
<!-- 机器人状态发布节点 -->
<node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
</launch>
运行该文件前,需要先运行 demo03_env.launch 将机器人模型加载出来
再运行:urdf02_gazebodemo04_sensor.launch文件,进行如下设置:
2.雷达仿真
实现流程:
1.已经创建完毕机器人模型,编写一个单独的xacro文件,为机器人添加雷达配置;
2.将此文件集成进 xacro 文件;
3.启动 Gazebo,使用 Rviz 显示雷达信息。
2.1雷达仿真
在 gazebo 文件夹下新建 laser.xacro文件
修改 gazebo reference ,看一下自己雷达的 link 名字是什么,然后修改 frameName,改成和自己雷达 link 一样的名字。
<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>
将该文件集成到 car.urdf.xacro 中
<robot name="mycar" 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>
改完上述两处内容后,先运行 demo03_env.launch 将机器人模型加载出来。
再运行:urdf02_gazebodemo04_sensor.launch文件,即可将其启动。
进行如下修改: