1. 前言
本文旨在实现摄像头在gazebo的仿真
实现具体流程为:
照相机在rviz的显示——>添加摄像头在gazebo的外观属性——>添加gazebo提供的摄像头插件
2. 照相机在rviz的简单示意
创建名为usb_camera.xacro的文件,用于表示摄像头本体
关于xacro文件的具体含义,可以浏览该文章:ROS——xacro文件解读
<?xml version="1.0"?>
<robot name="usb_camera" xmlns:xacro="http://www.ros.org/wiki/xacro" >
<!-- COLOR -->
<material name="Black">
<color rgba="0 0 0 1" />
</material>
<material name="White">
<color rgba="1 1 1 1" />
</material>
<!-- PROPERTY-->
<xacro:property name="mass" value="0.1" />
<xacro:macro name="usb_camera" >
<link name="base_link">
<inertial>
<mass value="${mass}" />
<origin xyz="0 0 0" />
<inertia ixx="0.01" ixy="0.0" ixz="0.0"
iyy="0.01" iyz="0.0"
izz="0.01" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<box size="0.005 0.02 0.02" />
</geometry>
<material name="White"/>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
<geometry>
<box size="0.005 0.02 0.02" />
</geometry>
</collision>
</link>
<joint name="base_to_camera_joint" type="fixed">
<parent link="base_link"/>
<child link="usb_camera_link"/>
<origin xyz="0 0 0" rpy="0 0 0" />
</joint>
<link name="usb_camera_link">
<inertial>
<mass value="${mass}" />
<origin xyz="0 0 0" />
<inertia ixx="0.01" ixy="0.0" ixz="0.0"
iyy="0.01" iyz="0.0"
izz="0.01" />
</inertial>
<visual>
<origin xyz=" 0 0 0 " rpy="0 0 0" />
<geometry>
<box size="0.01 0.04 0.04" />
</geometry>
<material name="Black"/>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
<geometry>
<box size="0.01 0.04 0.04" />
</geometry>
</collision>
</link>
</xacro:macro>
</robot>
设置摄像头为box杆件,是最为简单的示意图
通过将不同模块(诸如摄像头,kinetic等)写成相应的xacro文件,并利用总xacro文件引用这些模块,方便后期进行机器人模块组装和修改
创建名为robot.xacro文件,其引用usb_camera.xacro文件:
<?xml version="1.0"?>
<robot name="robot" xml