1.本文通过在urdf进行机器人的建模
建模的urdf文件如下:
joint 标签是用来描述两个坐标系之间的关系的
<robot name="mycar">
<!--小车底盘-->
<link name="base_link">
<visual>
<geometry>
<!--设置机器人的形状 盒型,圆柱型,球形-->
<!--<box size="1 1 1"/>-->
<cylinder radius="0.3" length="0.2" />
<!--<sphere radius="0.3" />-->
</geometry>
<!-- xyz坐标 rpy翻滚俯仰与偏航角度(3.14=180度 1.57=90度) 设置原点在xyz方向上的偏移,以及翻滚,俯仰和偏航角度-->
<origin xyz="0 0 0" rpy="0 0 0" />
<!--设置材料的属性 颜色 r= g= b= a(透明度)= -->
<material name="black">
<color rgba="0.7 0.5 0 1" />
</material>
</visual>
</link>
<!--坐标系原点-->
<link name="base_footprint">
<visual>
<geometry>
<sphere radius="0.1"/>
</geometry>
<origin xyz="0 0 0" rpy="0 0 0"/>
<material name="bsf_color">
<color rgba="0 0 1 0"/>
</material>
</visual>
</link>
<!--坐标系原点和底盘的位置关系-->
<joint name="base_link2base_footprint" type="fixed">
<parent link="base_footprint" />
<child link="base_link"/>
<origin xyz="0 0 0.115" />
</joint>
<!--添加相机-->
<link name="camera">
<visual>
<geometry>
<box size="0.02 0.05 0.05" />
</geometry>
<origin xyz="0 0 0" rpy="0 0 0" />
<material name="red">
<color rgba="1 0 0 1" />
</material>
</visual>
</link>
<!--相机和底盘的位置关系-->
<joint name="cameratobase_link" type="continuous">
<parent link="base_link"/>
<child link="camera"/>
<origin xyz="0.3 0 0.125"/>
<axis xyz="0 0 1" />
</joint>
<!--添加左轮子-->
<link name="left_wheel">
<visual>
<geometry>
<cylinder radius="0.0325" length="0.015" />
</geometry>
<origin xyz="0 0 0" rpy="1.57 0 0" />
<material name="left_w">
<color rgba="0 0 0 1" />
</material>
</visual>
</link>
<!--左轮子和底盘的关系-->
<joint name="left_wtobase" type="continuous">
<parent link="base_link"/>
<child link="left_wheel"/>
<origin xyz="0 0.3075 -0.1"/>
<axis xyz="0 1 0" />
</joint>
<!--添加右轮子-->
<link name="right_wheel">
<visual>
<geometry>
<cylinder radius="0.0325" length="0.015" />
</geometry>
<origin xyz="0 0 0" rpy="1.57 0 0" />
<material name="right_w">
<color rgba="0 0 0 1" />
</material>
</visual>
</link>
<!--右轮子和底盘的关系-->
<joint name="right_wtobase" type="continuous">
<parent link="base_link"/>
<child link="right_wheel"/>
<origin xyz="0 -0.3075 -0.1"/>
<axis xyz="0 1 0" />
</joint>
<!--添加万向轮-->
<link name="all_wheel">
<visual>
<geometry>
<sphere radius="0.0075"/>
</geometry>
<origin xyz="0 0 0" rpy="0 0 0" />
<material name="all_w">
<color rgba="1 1 1 1" />
</material>
</visual>
</link>
<!--万向轮和底盘的关系-->
<joint name="all_wtobase" type="continuous">
<parent link="base_link"/>
<child link="all_wheel"/>
<origin xyz="0.2 0 -0.1075"/>
<axis xyz="1 1 1" />
</joint>
</robot>
2.在rviz中的显示: