• ROS自学笔记十四:URDF语法详解


    URDF 文件是一个标准的 XML 文件,在 ROS 中预定义了一系列的标签用于描述机器人模型,机器人模型可能较为复杂,但是 ROS 的 URDF 中机器人的组成却是较为简单,可以主要简化为两部分:连杆(link标签) 与 关节(joint标签), URDF 中的有以下不同标签:

    一、robot 根标签

    在机器人建模领域,URDF(Unified Robot Description Format)是一种用于描述机器人模型的XML文件格式。在URDF文件中,`` 元素是根标签,用于包含整个机器人模型的描述。以下是一个简单的URDF文件的例子,展示了 `` 根标签的基本结构:

    1. <robot name="my_robot">
    2.  
    3.   
    4.  
    5.   
    6. robot>

    在上面的例子中,`` 标签包含了一个名为 "my_robot" 的机器人模型。在 `` 标签内部,通常会包含 `` 和 `` 标签,用于定义机器人的链接和关节。

    `` 标签用于描述机器人的刚体或部件,包括其几何形状、质量属性等。
     `` 标签用于描述连接两个链接的关节,包括关节类型(如固定关节、旋转关节等)和关节参数。以下是一个简单的例子,包含了一个机器人模型,其中有两个链接和一个关节:

    1. <robot name="my_robot">
    2.   <link name="base_link">
    3.     <!-- Link properties go here -->
    4.   </link>
    5.   <link name="end_effector">
    6.     <!-- Link properties go here -->
    7.   </link>
    8.   <joint name="joint1" type="revolute">
    9.     <!-- Joint properties go here -->
    10.     <parent link="base_link"/>
    11.     <child link="end_effector"/>
    12.   </joint>
    13. </robot>

    上述例子中,`` 标签包含了两个链接 (``),分别命名为 "base_link" 和 "end_effector"。同时,它还包含一个旋转关节 (``),将这两个链接连接起来,关节的名字是 "joint1"。

    这只是一个简单的例子,实际的URDF文件会更加复杂,具体的内容会根据机器人的结构和特性而有所不同。通过使用 `` 根标签,URDF提供了一种结构化的方式来描述机器人的物理结构和连接关系。

    二、link 连杆标签

    在URDF(Unified Robot Description Format)文件中,`` 元素用于描述机器人模型中的刚体或连接杆。每个 `` 元素定义了一个机器人的一个物理部分,包括它的几何形状、质量属性和其他相关信息。

    以下是一个简单的 `` 元素的示例

    1. <link name="my_link">
    2. link>

    在这个例子中,`` 元素有一个名为 "my_link" 的名称,可以用来唯一标识该链接。在 `` 标签内部,你可以定义该链接的属性,这些属性通常包括:

    Visual Properties: 用于描述链接的外观,可以包括几何形状、颜色、纹理等。例如:

    1. <visual>
    2. <geometry>
    3. <box size="0.1 0.1 0.1"/>
    4. </geometry>
    5. <material name="red">
    6. <color rgba="1 0 0 1"/>
    7. </material>
    8. </visual>

    Collision Properties: 用于描述链接在物理碰撞中的属性。通常与 `visual` 属性相似,但可能有不同的几何形状和分辨率。

    1. <collision>
    2. <geometry>
    3. <box size="0.1 0.1 0.1"/>
    4. </geometry>
    5. </collision>

    Inertial Properties:用于描述链接的质量和惯性矩阵。

    1. <inertial>
    2. <mass value="1.0"/>
    3. <origin xyz="0 0 0" rpy="0 0 0"/>
    4. <inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
    5. </inertial>

    其他属性:你还可以添加其他属性,例如传感器、附着点等。

    实际的 `` 元素会包含一个或多个这样的子元素,具体取决于你对链接的描述。下面是一个简化的例子,包含了一个带有视觉、碰撞和惯性属性的链接:

    1. <link name="my_link">
    2. <visual>
    3. <geometry>
    4. <box size="0.1 0.1 0.1"/>
    5. </geometry>
    6. <material name="red">
    7. <color rgba="1 0 0 1"/>
    8. </material>
    9. </visual>
    10. <collision>
    11. <geometry>
    12. <box size="0.1 0.1 0.1"/>
    13. </geometry>
    14. </collision>
    15. <inertial>
    16. <mass value="1.0"/>
    17. <origin xyz="0 0 0" rpy="0 0 0"/>
    18. <inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
    19. </inertial>
    20. </link>

    三、joint 关节标签

    在URDF(Unified Robot Description Format)文件中,`` 元素用于描述机器人模型中连接两个链接的关节。 `` 元素定义了连接链接的类型、位置、方向以及其他关节属性。

    以下是一个 `` 元素的简单示例:

    1. <joint name="my_joint" type="revolute">
    2. <!-- Joint properties go here -->
    3. <parent link="link1"/>
    4. <child link="link2"/>
    5. </joint>

    在这个例子中,`` 元素有一个名为 "my_joint" 的名称,表示关节的唯一标识符。它的类型是 "revolute",这表示这是一个旋转关节。 `` 元素指定了连接到关节的父链接(`link1`),而 `` 元素指定了连接到关节的子链接(`link2`)。

    在 `` 标签内部,你可以定义关节的其他属性,这些属性通常包括:

    Origin: 指定关节相对于父链接的位置和方向。

    <origin xyz="0 0 0" rpy="0 0 0"/>

    Axis: 对于旋转关节,指定旋转轴的方向。

    <axis xyz="0 0 1"/>

    Limit: 对于关节的角度或位移限制。

    <limit lower="-3.14" upper="3.14" effort="10" velocity="3.14"/>

    -Dynamics: 描述关节的动力学特性,如摩擦和阻尼。

    <dynamics damping="0.01" friction="0.1"/>

    其他属性: 你还可以添加其他属性,例如传感器、附着点等。

    下面是一个带有更多关节属性的示例:

    1. <joint name="my_joint" type="revolute">
    2. <origin xyz="0 0 0" rpy="0 0 0"/>
    3. <parent link="link1"/>
    4. <child link="link2"/>
    5. <axis xyz="0 0 1"/>
    6. <limit lower="-3.14" upper="3.14" effort="10" velocity="3.14"/>
    7. <dynamics damping="0.01" friction="0.1"/>
    8. </joint>

  • 相关阅读:
    g2o报错修改
    jfinal中如何使用过滤器监控Druid监听SQL执行?
    vivo大数据日志采集Agent设计实践
    C++数据结构与算法:布隆过滤器(Bloom Filter)原理与实现
    27岁Python程序员做独立开发年收入超900万,家中有屋又有田,生活乐无边
    基于Matlab的高压直流输电系统仿真研究
    【音视频】H264视频压缩格式
    [数据集][目标检测]螺丝螺母检测数据集VOC+YOLO格式2100张13类别
    经典网络解析(四) transformer | 自注意力、多头、发展
    perl 简明教程 perl教程集合
  • 原文地址:https://blog.csdn.net/m0_71721954/article/details/133917308