ROS使用介绍——URDF

URDF全称为Unified Robot Description Format,中文可以翻译为“统一机器人描述格式”。与计算机文件中的.txt文本格式、.jpg图像格式等类似,URDF是一种基于XML规范、用于描述机器人结构的格式。根据该格式的设计者所言,设计这一格式的目的在于提供一种尽可能通用(as general as possible)的机器人描述规范。

其实最好的urdf入门教程是ROS Wiki里的教程。这里主要是按照自己实际接触的进行总结。URDF能设置的属性有很多,但在项目刚开始时并不需要那么多,也没必要浪费太多精力在外观上,因此,本博客将根据后续会引入的其余特性持续更新。

文章目录

    • 初始的四轮demo

初始的四轮demo

最初的需求是弄出一个四轮小车的样子,形象来讲也就是一个立方体加四个圆柱体的组合。代码如下:

<?xml version="1.0"?>
<robot name = "scout_xu">
    <link name="base_link">
        <visual>
            <geometry>
                <box size="0.2 0.3 0.1"/>
            </geometry>
            <origin rpy = "0 0 0" xyz="0 0 0.05"/>
            <material name = "white">
                <color rgba = "1 1 1 1"/>
            </material>
        </visual>
    </link>

    <link name="wheel_RF">
        <visual>
            <geometry>
                <cylinder length="0.05" radius="0.05"/>
            </geometry>
            <origin rpy="0 1.5 0" xyz="0.1 0.1 0"/>
            <material name ="black">
                <color rgba = "0 0 0 1"/>
            </material>
        </visual>
    </link>

    <link name="wheel_LF">
        <visual>
            <geometry>
                <cylinder length="0.05" radius="0.05"/>
            </geometry>
            <origin rpy="0 1.5 0" xyz="-0.1 0.1 0"/>
            <material name ="black"/>
        </visual>
    </link>

    <link name="wheel_RB">
        <visual>
            <geometry>
                <cylinder length="0.05" radius="0.05"/>
            </geometry>
            <origin rpy="0 1.5 0" xyz="0.1 -0.1 0"/>
            <material name ="black"/>
        </visual>
    </link>

    <link name="wheel_LB">
        <visual>
            <geometry>
                <cylinder length="0.05" radius="0.05"/>
            </geometry>
            <origin rpy="0 1.5 0" xyz="-0.1 -0.1 0"/>
            <material name ="black"/>
        </visual>
    </link>

    <joint name= "base_to_wheel_RF" type="fixed">
        <parent link="base_link"/>
        <child link="wheel_RF"/>
        <origin xyz="0 0 0 "/>
    </joint>

    <joint name= "base_to_wheel_LF" type="fixed">
        <parent link="base_link"/>
        <child link="wheel_LF"/>
        <origin xyz="0 0 0 "/>
    </joint>

    <joint name= "base_to_wheel_RB" type="fixed">
        <parent link="base_link"/>
        <child link="wheel_RB"/>
        <origin xyz="0 0 0"/>
    </joint>

    <joint name= "base_to_wheel_LB" type="fixed">
        <parent link="base_link"/>
        <child link="wheel_LB"/>
        <origin xyz="0 0 0"/>
    </joint>
</robot>

建好后,起名为myfirst.urdf。可以使用check_urdf来检查下是否是一个有效的urdf文件。

check_urdf myfirst.urdf

输出结果应当为:

robot name is: scout_xu
---------- Successfully Parsed XML ---------------
root Link: base_link has 4 child(ren)
    child(1):  wheel_LB
    child(2):  wheel_LF
    child(3):  wheel_RB
    child(4):  wheel_RF

表示有一个base_link,并有四个子零件与他相连。
想在rviz中进行可视化则可运行下面命令:

roslaunch urdf_tutorial display.launch model:=myfirst.urdf

这个命令会报错,提示没有GUI,这也是正常的,因为我们的urdf里没涉及这一块,暂时不用理会。可以看到可视化效果大概是下面这个样子的。
ROS使用介绍——URDF_第1张图片

你可能感兴趣的:(ROS)