在空白世界里放一个立方体
一、导入模型
建立catkin工作空间
mkdir -p catkin_ws/src
cd catkin_ws
catkin_make
建立一个box功能包:
catkin_create_pkg box
将https://github.com/czhherry/self-driving-vehicle-101中的04_intro_to_urdf工程下的两个文件clone到cartkin_ws/src/box目录下,使用如下命令,可在gazebo中打开一个立方体:
roslaunch box spawn_box_urdf.launch
二、URDF介绍
URDF(Unified Robot Description Format), 是一种特殊的xml文件格式, 作为机器人的一种描述文件, 在ROS里面大量使用。在仿真中用的很多,用于创建机器人的仿真模型。
如下是工程中的box.urdf文件代码:
<?xml version="1.0" ?>
<robot name="box"> //模型命名为box
<link name="base_link">
<collision> //碰撞体积
<origin xyz="0 0 0" rpy="0 0 0"/> //设置原点及roll、pitch、yaw
<geometry>
<box size="1 1 1"/> //定义几何尺寸,长宽高
</geometry>
</collision>
<visual> //外观,可以与collision不同
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="1 1 1"/>
</geometry>
</visual>
</link>
<joint name="inertial_joint" type="fixed"> //关节,连接两个属性,第一个零部件才需要写joint
<parent link="base_link"/> //
<child link="main_mass"/>
<origin xyz="0 0 0" rpy="0 0 0"/>
</joint>
<link name="main_mass" type="fixed">
<parent link="inertial_joint"/>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0"/>
<mass value="1000"/> //质量1000kg
<inertia //转动惯量
ixx="166.6666" ixy="0.000000" ixz="0.000000"
iyy="166.6666" iyz="0.000000"
izz="166.6666"/>
</inertial>
</link>
</robot>