0 前面
sudo apt-get install ros-melodic-urdf
sudo apt-get install ros-melodic-xacro
1 创建包
catkin_create_pkg littleCar_description urdf xacro
四个文件
cd littleCar_description
mkdir urdf launch meshes config
2 编辑URDF文件
底盘描述
cd urdf
gedit littleCar_chassis.urdf
<robot>:
<link>:支杆
<joint>:关节
<?xml version="1.0" ?>
<robot name="littleCar_chassis">
<link name="base_link">
<visual>
<origin xyz=" 0 0 0" rpy="0 0 0" />
<geometry>
<cylinder length="0.005" radius="0.13"/>
</geometry>
<material name="yellow">
<color rgba="1 0.4 0 1"/>
</material>
</visual>
</link>
</robot>
关节类型:
关节类型 | 描述 |
---|---|
continuous | 旋转关节,可以围绕单轴无限旋转 |
revolute | 旋转关节,类似continuous,但是有旋转角度极限 |
prismatic | 滑动关节,沿某一轴线移动的关节,带有位置极限 |
planar | 平面关节,允许在平面正交方向上平移或者旋转 |
floating | 浮动关节,允许进行平移、旋转运动 |
fixed | 固定关节,不允许运动的特殊关节 |
3 launch文件
display_littleCar_chassis_urdf.launch
<launch>
<param name="robot_description" textfile="$(find littleCar_description)/urdf/littleCar_chassis.urdf" />
<!-- 设置GUI参数,显示关节控制插件 -->
<param name="use_gui" value="true"/>
<!-- 运行joint_state_publisher节点,发布机器人的关节状态 -->
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
<!-- 运行robot_state_publisher节点,发布TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
<!-- 运行rviz可视化界面 -->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find littleCar_description)/config/littleCar_urdf.rviz" />
</launch>
source devel/setup.bash
roslaunch littleCar_description display_littleCar_chassis_urdf.launch
报警告
[ WARN] [1597978761.868620005]: The ‘state_publisher’ executable is deprecated. Please use ‘robot_state_publisher’ instead
[WARN] [1597978762.278786, 0.000000]: The ‘use_gui’ parameter was specified, which is deprecated. We’ll attempt to find and run the GUI, but if this fails you should install the ‘joint_state_publisher_gui’ package instead and run that. This backwards compatibility option will be removed in Noetic.
解决
sudo apt-get install ros-melodic-joint-state-publisher-gui
修改launch
<launch>
<param name="robot_description" textfile="$(find littleCar_description)/urdf/littleCar_chassis.urdf" />
<!-- 设置GUI参数,显示关节控制插件 -->
<param name="use_gui" value="true"/>
<!-- 运行joint_state_publisher节点,发布机器人的关节状态 -->
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
<!-- 运行robot_state_publisher节点,发布TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<!-- 运行rviz可视化界面 -->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find littleCar_description)/config/littleCar_urdf.rviz" />
</launch>
4 rviz
修改为base_link
添加机器人
添加TF
将rviz设置另存为littleCar_urdf.rviz
到config
文件