gazebo创建机器人模型05
摄像头仿真
摄像头仿真基本流程:
(1)已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加摄像头配置;
(2)将此文件集成进xacro文件;
(3)启动 Gazebo,使用 Rviz 显示摄像头信息。
具体实现:
在 gazebo 下创建 camera.xacro 文件
修改:
(1)gazebo reference,改为自己 camera 的 link 的名字。
(2)cameraName 为自己发布的摄像头话题设置一个命名空间
(3)frameName 设置为连杆的名字
camera.xacro
<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>
集成到机器人模型
<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" /> -->
<!-- 摄像头 -->
<xacro:include filename="gazebo/camera.xacro" />
<!-- 深度相机 -->
<xacro:include filename="gazebo/kinect.xacro" />
</robot>
launch文件不需要进行改动,直接启动即可。添加camera 插件,设置 topic 话题。