赞
踩
URDF,全称为统一机器人描述格式(Unified Robot Description Format),是一个基于XML的语法框架,用于在机器人操作系统(ROS)中描述和定义机器人模型。
既然我们知道URDF是一种基于XML的语法框架,那必然是会使用到标签去描述和定义机器人模型,下面是关于URDF所使用的标签的介绍
URDF内容:
link 标签说明
link标签它定义了机器人的各个刚体部分,如底座、轮子、激光雷达和摄像头等。这些实体部件都是机器人模型中可见的部分,每个部件都对应一个link标签。以下是link标签的一些关键属性:
<link name="<link name>">
<!-- 描述机器人link部分的外观参数, 尺寸、颜色、形状等的外观信息 -->
<inertial>......</inertial>
<!-- 描述link的惯性参数,主要用到机器人动力学的运算部分 -->
<visual>......</visual>
<!-- 描述link的碰撞属性 -->
<collision>......</collision>
</link>
在URDF(Unified Robot Description Format)中,joint标签用于描述机器人关节的运动学和动力学属性。
以下是joint标签的xml表示
<joint name="joint1" type="revolute">
<parent link="base_link"/> <!-- 父链接的名称 -->
<child link="link1"/> <!-- 子链接的名称 -->
<origin xyz="0 0 0" rpy="0 0 0"/> <!-- 关节的原点位置 -->
<axis xyz="0 0 1"/> <!-- 关节的运动轴 -->
<limit lower="-1.57" upper="1.57" effort="10" velocity="1"/> <!-- 运动的限制范围、力矩限制和速度限制 -->
</joint>
robot标签在URDF中作为根标签使用,以确保XML语法的完整性。
以下是robot标签的XML的格式表示
<robot name="name of the robot">
<link>......</link>
<link>......</link>
<joint>......</joint>
<joint>......</joint>
</robot>
首先我们建立一个用来描述机器人建模的功能包,首先创造一个ros的工作空间
mkdir -p ~/catkin_ws/src
初始化工作空间
cd ~/ctakin_ws/src
catkin_init_spacework
初始化完成之后会在catkin_ws/src中创建一个CMakeLists.txt文件
回到刚刚创建的工作空间中,对工作空间进行编译
cd ~/catkin_ws
catkin_make
编译完成之后,catkin_ws中会出现build文件夹和devel文件夹
进入src文件中,建立一个新的功能包
cd ~/catkin_ws/src
catkin_create_pkg mbot_description urdf xacro
进入我们新建的功能包,创建四个文件夹
cd ./catkin_ws/src/mbot_description
mkdir urdf
mkdir meshes
mkdir launch
mkdir config
创建我们的launch启动文件
cd ./catkin_ws/src/mbot_description/launch
sudo gedit display_mbot_base_urdf.launch
写入以下内容
<launch>
<!-- 加载的参数名字叫robot_description,具体内容是urdf相关模型的路径 -->
<param name="robot_description" textfile="$(find mbot_description)/urdf/mbot_base.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可视化界面,保存每次打开之后的相关插件,保存到config文件夹下面 -->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find mbot_description)/config/mbot_urdf.rviz" required="true" />
</launch>
接下来创建我们的URDF模型
我们创建一个原型底盘的小车
cd ./catkin_ws/src/mbot_description/urdf
sudo gedit mbot_base.urdf
写入以下内容
<?xml version="1.0" ?> <robot name="mbot"> <link name="base_link"> <visual> <origin xyz=" 0 0 0" rpy="0 0 0" /> <geometry> <cylinder length="0.16" radius="0.20"/> </geometry> <material name="yellow"> <color rgba="1 0.4 0 1"/> </material> </visual> </link> <joint name="left_wheel_joint" type="continuous"> <origin xyz="0 0.19 -0.05" rpy="0 0 0"/> <parent link="base_link"/> <child link="left_wheel_link"/> <axis xyz="0 1 0"/> </joint> <link name="left_wheel_link"> <visual> <origin xyz="0 0 0" rpy="1.5707 0 0" /> <geometry> <cylinder radius="0.06" length = "0.025"/> </geometry> <material name="white"> <color rgba="1 1 1 0.9"/> </material> </visual> </link> <joint name="right_wheel_joint" type="continuous"> <origin xyz="0 -0.19 -0.05" rpy="0 0 0"/> <parent link="base_link"/> <child link="right_wheel_link"/> <axis xyz="0 1 0"/> </joint> <link name="right_wheel_link"> <visual> <origin xyz="0 0 0" rpy="1.5707 0 0" /> <geometry> <cylinder radius="0.06" length = "0.025"/> </geometry> <material name="white"> <color rgba="1 1 1 0.9"/> </material> </visual> </link> <joint name="front_caster_joint" type="continuous"> <origin xyz="0.18 0 -0.095" rpy="0 0 0"/> <parent link="base_link"/> <child link="front_caster_link"/> <axis xyz="0 1 0"/> </joint> <link name="front_caster_link"> <visual> <origin xyz="0 0 0" rpy="0 0 0"/> <geometry> <sphere radius="0.015" /> </geometry> <material name="black"> <color rgba="0 0 0 0.95"/> </material> </visual> </link> <joint name="back_caster_joint" type="continuous"> <origin xyz="-0.18 0 -0.095" rpy="0 0 0"/> <parent link="base_link"/> <child link="back_caster_link"/> <axis xyz="0 1 0"/> </joint> <link name="back_caster_link"> <visual> <origin xyz="0 0 0" rpy="0 0 0"/> <geometry> <sphere radius="0.015" /> </geometry> <material name="black"> <color rgba="0 0 0 0.95"/> </material> </visual> </link> </robot>
保存,我们查看一下模型
roslaunch mbot_description display_mbot_base_urdf.launch
如果没有模型显示,可以进行以下步骤
就会出现我们刚刚设计好的模型了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。