赞
踩
在 Gzebo 仿真环境中,机器人的里程计信息以及运动朝向等信息是无法获取的,可以通过 Rviz 显示机器人的里程计信息以及运动朝向
里程计:机器人相对出发坐标点的位姿状态( X 坐标Y 坐标 Z坐标以及朝向)。
编写一个 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文件,进行如下设置:
实现流程:
1.已经创建完毕机器人模型,编写一个单独的xacro文件,为机器人添加雷达配置;
2.将此文件集成进 xacro 文件;
3.启动 Gazebo,使用 Rviz 显示雷达信息。
在 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文件,即可将其启动。
进行如下修改:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。