通过 Gazebo 模拟摄像头传感器,并在 Rviz 中显示摄像头数据。
实现流程:
摄像头仿真基本流程:
已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加摄像头配置;
将此文件集成进xacro文件;
启动 Gazebo,使用 Rviz 显示摄像头信息。
1.Gazebo 仿真摄像头
1.1 新建 Xacro 文件,配置摄像头传感器信息
有几个要自行修改的地方,基本设置和laser有相同的部分,不做赘述。
<robot name="my_sensors" xmlns:xacro="http://wiki.ros.org/xacro">
<!-- 被引用的link -->
<gazebo reference="camera"> //实际名称
<!-- 类型设置为 camara -->
<sensor type="camera" name="camera_node">
<update_rate>30.0</update_rate> <!-- 更新频率 -->
<!-- 摄像头基本信息设置 -->
<camera name="head">
<horizontal_fov>1.3962634</horizontal_fov>
<image>
<width>1280</width>
<height>720</height>
<format>R8G8B8</format>
</image>
<clip> //观测距离
<near>0.02</near>
<far>300</far>
</clip>
<noise>
<type>gaussian</type>
<mean>0.0</mean>
<stddev>0.007</stddev>
</noise>
</camera>
<!-- 核心插件 -->
<plugin name="gazebo_camera" filename="libgazebo_ros_camera.so">
<alwaysOn>true</alwaysOn>
<updateRate>0.0</updateRate>
<cameraName>/camera</cameraName> //发布的话题设置命名空间
<imageTopicName>image_raw</imageTopicName> //发布的话题
<cameraInfoTopicName>camera_info</cameraInfoTopicName>
<frameName>camera</frameName> //连杆名字
<hackBaseline>0.07</hackBaseline>
<distortionK1>0.0</distortionK1>
<distortionK2>0.0</distortionK2>
<distortionK3>0.0</distortionK3>
<distortionT1>0.0</distortionT1>
<distortionT2>0.0</distortionT2>
</plugin>
</sensor>
</gazebo>
</robot>
值得注意的几个地方是
1、 <gazebo reference="camera">
<frameName>camera</frameName>
要设置和机器人的连杆名称一致
2、 <cameraName>/camera</cameraName> //发布的话题设置命名空间
<imageTopicName>image_raw</imageTopicName>
设置完xacro文件之后启动gazebo、rviz,在rviz中添加Camera插件,Image Topic就是这里的
命名空间/话题
控制它原地旋转,体验一下视角。
rostopic pub -r 10 /cmd_vel geometry_msgs/Twist
版权声明:本文为weixin_51067502原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。