机器人建模与仿真(一)——统一机器人描述格式——URDF

机器人建模与仿真(一)——统一机器人描述格式——URDF

总述

URDF(Unified Robot Description Format,统一机器人描述格式)是ROS中一个非常重要的机器人模型描述格式,ROS同时也提供URDF文件的C++解析器,可以解析URDF文件中使用XML格式描述的机器人模型。
在使用URDF文件构建机器人模型之前,要了解URDF文件中常用的XML标签。

1、< link >标签

< link >标签用于描述机器人某个刚体部分的外观和物理属性,包括尺寸(size)、颜色(color)、形状(shape)、惯性矩阵(inertial matrix)、碰撞参数(collision properties)等。
机器人的link结构一般如图所示,其基本的URDF描述语法如下:在这里插入图片描述

<link name="my_link">
   <inertial>
     <origin xyz="0 0 0.5" rpy="0 0 0"/>
     <mass value="1"/>
     <inertia ixx="100"  ixy="0"  ixz="0" iyy="100" iyz="0" izz="100" />
   </inertial>

   <visual>
     <origin xyz="0 0 0" rpy="0 0 0" />
     <geometry>
       <box size="1 1 1" />
     </geometry>
     <material name="Cyan">
       <color rgba="0 1.0 1.0 1.0"/>
     </material>
   </visual>

   <collision>
     <origin xyz="0 0 0" rpy="0 0 0"/>
     <geometry>
       <cylinder radius="1" length="0.5"/>
     </geometry>
   </collision>
 </link>

包括3个子标签
< inertial >:描述link的惯性参数,主要用到机器人动力学的运算部分;
< visual >:描述机器人link部分的外观参数, 尺寸、颜色、形状等的外观信息;
< collision >:描述link的碰撞属性;
link还有一个比较关键的部分,就是坐标系
Link origin 是起始坐标,整个link创建的时候都是相对 Link origin坐标系创建的;

2、< joint >标签

< joint >标签就是用来连接两个具体的link部分的;描述机器人关节的运动学和动力学属性,包括关节运动的位置和速度限制。根据关节的运动形式,可以将其分为六种类型。
在这里插入图片描述
与人的关节一样,机器人关节的主要作用是连接两个刚体link,这两个link分别称为parent link和child link,如图所示。
蓝色关节表示出一个运动的轴,蓝色关节是可以围绕蓝色的轴旋转的,也就是child这个link是可以围绕joint上下旋转。
joint是连接两个link,需要分一个主次关系,主关节是parent link,子关节是child link, 在xml形式的描述中这个两个 link是必须存在的。
在这里插入图片描述
< joint >标签的描述语法如下:

 <joint name="my_joint" type="floating">
    <origin xyz="0 0 1" rpy="0 0 3.1416"/>
    <parent link="link1"/>
    <child link="link2"/>

    <calibration rising="0.0"/>
    <dynamics damping="0.0" friction="0.0"/>
    <limit effort="30" velocity="1.0" lower="-2.2" upper="0.7" />
    <safety_controller k_velocity="10" k_position="15" soft_lower_limit="-2.0" soft_upper_limit="0.5" />
 </joint>

其中必须指定joint的parent link和child link,还可以设置关节的其他属性。
子标签:
< calibration >:关节的参考位置,用来校准关节的绝对位置;
< dynamics >:描述关节的物理属性,例如阻尼值、物理静摩擦力等,经常在动力学仿真中用到;
< limit >:描述运动的一些极限值,包括关节运动的上下限位置、速度限制、力矩限制等;
< mimic >:描述该关节与已有关节的关系;
<safety_controller>:描述安全控制器参数。保护机器人关节的运动;

3、< robot >标签

< robot >是完整机器人模型的最顶层标签, < link >和< joint >标签都必须包含在< robot > 标签内。如图所示,一个完整的机器人模型由一系列< link >和< joint >组成。
在这里插入图片描述

< robot >标签内可以设置机器人的名称,其基本语法如下:

<robot name="pr2">
  <link> ... </link>
  <link> ... </link>
  <link> ... </link>

  <joint>  ....  </joint>
  <joint>  ....  </joint>
  <joint>  ....  </joint>
</robot>

4、< gazebo>标签

< gazebo >标签用于描述机器人模型在Gazebo中仿真所需要的参数,包括机器人材料的属性、gazebo插件等。该标签不是机器人模型必需的部分,只有在Gazebo仿真时才需加入。
该标签的基本语法如下:

<gazebo reference="link_1">
    <material>Gz=azebo/Black</material>
</gazebo>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
    随着ICT技术不断深化和传统场景的结合,自动化、智能化相融合已经成为ICT技术的下一代浪潮,以工业机器人、服务机器人、自动驾驶等的新一代技术浪潮目前已经方兴未艾,成为又一波热点。而作为次级操作系统的ROS则提供了一系列的调试、仿真工具,能支持激光导航、视觉导航等算法,是切入机器人和自动驾驶技术的重要基础。    机器人是一个复合型的领域,涉及软件、算法、硬件、结构等诸多方向,是一个理论性和实践性并重的学科,考虑到其复杂性和讲解的循序渐进,整个系列课程将分为三个系列即入门系列、中级系列、高级系列。   在入门系列中,我们将介绍ROS的基础知识(机器人基础知识、ROS开发环境等)、ROS配置管理(系统架构、参数管理、Launch启动、编译配置以及如何基于源代码开发等)、ROS系统调试(代码调试、可视化调试、消息回放、单元测试等),获得该领域的入门券。   在中级系列中,我们将围绕机器人建模仿真涉及的URDF机器人模型、Gazebo仿真环境、坐标变换、运动控制、环境感知等展开介绍,熟练掌握利用RVIZ、Gazebo等仿真和调试工具调试机器人程序与算法。   在高级系列中,我们将着眼于人工智能框架及算法,分享机器人开发涉及的运动控制、SLAM、语音交互、计算机视觉等。逐层递进,为大家一层层剥开机器人的神秘面纱。    本系列课程的特色在于:    1、从基础知识、建模仿真、环境感知与智能决策、人机交互等4个方面循序渐进、逐步深化,知识覆盖全面,便于深度认知;    2、从基本理论、源码解读、工程示例等领域开展ROS系统入门知识的深度介绍和分析,源于工程实践,利于快速上手;   3、基于全新的环境Ubuntu 20.04、ROS Noetic、Gazebo 11、GMapping、Cartographer、tensorFlow 2.*、OpenCV 4.*等讲解,紧跟时代前沿。   整个系列的课程将会逐步开发并上线,三个系列是一个逐步深入、环环相扣的课程内容,感兴趣的同学可以开始学习啦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不是“耀”神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值