文件目录
1、编写urdf文件
// 创建工作空间
mkdir -p /home/hzx/autolabor_ws/teacher_zhao/catkin_ws/src
cd /home/hzx/autolabor_ws/teacher_zhao/catkin_ws
catkin_make
// 创建功能包
cd src
catkin_create_pkg urdf_demo urdf // 创建名为urdf_demo的功能包 并 载入依赖 urdf
cd urdf_demo
mkdir -p urdf/urdf
mkdir launch
mkdir config
mkdir meshes
// 编写urdf相关
cd urdf/urdf
gedit urdf_demo.urdf
// 填入如下内容
<!-- urdf_demo.urdf -->
<?xml version="1.0" encoding="utf-8"?>
<robot name="demo"> <!-- 机器人名字【机器人可能由多个部件构成】 -->
<link name="base_link"> <!-- 机器人部件的刚体部分link -->
<visual> <!-- 1、部件的可视化,看起来是什么样子 -->
<geometry> <!-- 部件的几何模型 -->
<box size="0.5 0.2 0.1" /> <!-- 盒子形状 尺寸 -->
</geometry> <!-- /部件的几何模型 -->
<origin xyz="0 0 0" rpy="0 0 0" /> <!-- 此部件相对于其上一级 joint 的相对安装位置与姿态 -->
<material name="Blue"> <!-- 此部件的颜色 -->
<color rgba="0 1 1 1"/> <!-- 通过三原色与透明度来确定 -->
</material> <!-- /此部件的颜色 -->
</visual> <!-- /部件的可视化,看起来是什么样子 -->
<inertial> <!-- 2、部件的转动惯量 -->
<mass value="4.0"/> <!-- 部件质量 -->
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/> <!-- 部件位置和姿态 -->
<inertia ixx="0.00443333156" ixy="0.0" ixz="0.0" iyy="0.00443333156" iyz="0.0" izz="0.0072"/> <!-- 部件的转动惯量 -->
</inertial> <!-- /转动惯量 -->
<collision> <!-- 3、碰撞检测【将部件进行包围的空间,一般选择部件本身】 -->
<geometry> <!-- 碰撞几何体 -->
<box size="0.5 0.2 0.1" /> <!-- 碰撞几何体的尺寸 -->
</geometry> <!-- /碰撞几何体 -->
<origin xyz="0.5 0 0" rpy="0 0 1"/> <!-- 碰撞几何体的位置和姿态 -->
<material name="Blue"> <!-- 碰撞几何体的颜色 -->
<color rgba="0 1 1 1"/> <!-- 通过三原色与透明度来确定 -->
</material> <!-- /碰撞几何体的颜色 -->
</collision> <!-- /碰撞检测 -->
</link> <!-- /机器人部件的刚体部分link -->
</robot> <!-- /机器人名字 -->
2、urdf文件集成Rviz
cd launch
gedit urdf_demo.launch
// 填入如下内容
<!-- urdf_demo.launch -->
<?xml version="1.0"?>
<launch>
<!-- 在参数服务器载入 urdf 文件,将文件路径保存进robot_description -->
<param name="robot_description" textfile="$(find urdf_demo)/urdf/urdf/urdf_demo.urdf" />
<!-- 启动 rviz -->
<node pkg="rviz" type="rviz" name="rviz" />
<!--node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf_demo)/config/urdf_demo.rviz" /-->
</launch>
// 启动roslaunch
cd catkin_ws
catkin_make
source devel/setup.bash
roslaunch urdf_demo urdf_demo.launch
// 打开rvi后,选择Rviz中的Add,选择 by display type ,选择RobotModel;
// 修改Rviz中的Fixed Frame 为 base_link,即可以显示出组件【将配置好的rviz 存储为 /config/urdf_demo.rviz, 之后将launch文件中的注释去掉,并注意上一行,每次打开后不必再重新设置】
<?xml version="1.0" encoding="utf-8"?>
<robot name="box"> <!-- 机器人名字【机器人可能由多个部件构成】 -->
<link name="box_link"> <!-- 机器人部件的刚体部分link -->
<visual> <!-- 1、部件的可视化,看起来是什么样子 -->
<geometry>
<!--<box size="0.5 0.2 0.1" />--> <!-- 部件的几何模型 -->
<mesh filename="package://urdf_rviz/meshes/visual/top_part.dae" /> <!-- 盒子形状 尺寸 -->
</geometry> <!-- /部件的几何模型 -->
<origin xyz="0 0 0" rpy="0 0 0" /> <!-- 此部件相对于其上一级 joint 的相对安装位置与姿态 -->
<material name="Blue"> <!-- 此部件的颜色 -->
<color rgba="0 1 1 1"/> <!-- 通过三原色与透明度来确定 -->
</material> <!-- /此部件的颜色 -->
</visual> <!-- /部件的可视化,看起来是什么样子 -->
<inertial>
<mass value="0.4"/>
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
<inertia ixx="0.1" ixy="0.0" ixz="0.0" iyy="0.1" iyz="0.0" izz="0.1"/>
</inertial>
<collision> <!-- 3、碰撞检测【将部件进行包围的空间,一般选择部件本身】 -->
<geometry> <!-- 碰撞几何体 -->
<box size="0.5 0.2 0.1" /> <!-- 部件的几何模型 -->
<!--<box size="0.5 0.2 0.1" />--> <!-- 部件的几何模型 -->
<mesh filename="package://urdf_rviz/meshes/visual/top_part.dae" /> <!-- 盒子形状 尺寸 -->
</geometry> <!-- /碰撞几何体 -->
<origin xyz="0 0 0" rpy="0 0 0"/> <!-- 碰撞几何体的位置和姿态 -->
<material name="Blue"> <!-- 碰撞几何体的颜色 -->
<color rgba="0 1 1 1"/> <!-- 通过三原色与透明度来确定 -->
</material> <!-- /碰撞几何体的颜色 -->
</collision> <!-- /碰撞检测 -->
</link> <!-- /机器人部件的刚体部分link -->
</robot> <!-- /机器人名字 -->
3、urdf文件集成Gazebo
4、编写xacro文件
4.1 xacro引入变量、宏、计算公式 和 文件包含
5、xacro集成Rviz
6、xacro集成gazebo