gazebo创建机器人模型05
kinect 信息仿真以及显示
kinect摄像头仿真基本流程:
1.已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加 kinect 摄像头配置;
2.将此文件集成进 xacro 文件;
3.启动 Gazebo ,使用 Rviz 显示 kinect 摄像头信息。
1.Gazebo仿真 Kinect
1.在 gazebo 目录下新建 kinect.xacro 文件
修改:1.gazebo reference,此处没有专门设置深度相机的连杆,用了雷达支架作为深度相机配置的 link。
2.frameName 改成 link 的 name
参数解释:
cameraName 设置深度相机的命名空间,下边有若干话题以此空间命名。
<robot name="my_sensors" xmlns:xacro="http://wiki.ros.org/xacro">
<gazebo reference="support">
<sensor type="depth" name="camera">
<always_on>true</always_on>
<update_rate>20.0</update_rate>
<camera>
<horizontal_fov>${60.0*PI/180.0}</horizontal_fov>
<image>
<format>R8G8B8</format>
<width>640</width>
<height>480</height>
</image>
<clip>
<near>0.05</near>
<far>8.0</far>
</clip>
</camera>
<plugin name="kinect_camera_controller" filename="libgazebo_ros_openni_kinect.so">
<cameraName>camera</cameraName>
<alwaysOn>true</alwaysOn>
<updateRate>10</updateRate>
<imageTopicName>rgb/image_raw</imageTopicName>
<depthImageTopicName>depth/image_raw</depthImageTopicName>
<pointCloudTopicName>depth/points</pointCloudTopicName>
<cameraInfoTopicName>rgb/camera_info</cameraInfoTopicName>
<depthImageCameraInfoTopicName>depth/camera_info</depthImageCameraInfoTopicName>
<frameName>support_depth</frameName>
<baseline>0.1</baseline>
<distortion_k1>0.0</distortion_k1>
<distortion_k2>0.0</distortion_k2>
<distortion_k3>0.0</distortion_k3>
<distortion_t1>0.0</distortion_t1>
<distortion_t2>0.0</distortion_t2>
<pointCloudCutoff>0.4</pointCloudCutoff>
</plugin>
</sensor>
</gazebo>
</robot>
2.在 urdf 下的 car.urdf.xacro 下集成 kinect.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" /> -->
<!-- 摄像头 -->
<xacro:include filename="gazebo/camera.xacro" />
<!-- 深度相机 -->
<xacro:include filename="gazebo/kinect.xacro" />
</robot>
- launch 文件不需要作变动,直接启动即可。启动方法参见前几节内容。
总结:
整个仿真完成后,其文件结构如上图所示:
在 urdf 目录下,demo05-07 为车身、摄像头、雷达的 urdf 文件,head 为封装的不同维度惯性矩阵的计算方法。car.urdf.xacro 对 demo05-07 、head.xacro文件进行了集成,并且对gazebo 文件夹下的文件也进行了集成。
在 gazebo ,对不同部分的 urdf 添加了 gazebo 仿真,move.xacro中对左右轮关节添加了驱动以及两轮差速的控制器,laser.xacro 和 camera.xacro 则添加了各自对应的仿真文件,并对参数进行了配置。