Matlab Simscape导入urdf创建机器人模型-以ABB六轴机器人为例

 URDF(Unified Robot Description Format,统一机器人描述格式)是一种用于描述机器人模型的XML格式文件。今天以ABB六轴机器人为例,使用Matlab Simscape导入urdf文件来创建机器人模型。

在上一节,我们使用Simscape对二连杆系统进行了建模,请参考文章:

http://t.csdnimg.cn/BHlBV

URDF(Unified Robot Description Format,统一机器人描述格式)是一种用于描述机器人模型的XML格式文件。今天以ABB六轴机器人为例,使用Matlab Simscape导入urdf文件来创建机器人模型。

图片

先来预览下最终效果:

图片

01

什么是URDF

URDF(Unified Robot Description Format,统一机器人描述格式)是一种用于描述机器人模型的XML格式文件。它被广泛应用于机器人操作系统中,用于定义机器人的物理结构和特性,包括关节、链接、传感器等。URDF文件使得机器人模型的描述变得标准化和易于共享,从而促进了机器人领域的研究和开发。

URDF文件的核心内容主要包括以下几个部分:

  1. 机器人声明(Robot Declaration)

  2. 连杆(Links)

  3. 关节(Joints)

  4. 传感器和执行器(Sensors and Actuators)

1. 机器人声明

每个URDF文件都以一个<robot>标签开始,用于声明机器人的名称和其他全局属性。这个标签是整个URDF文件的根节点。

<robot name="my_robot">
    ...
</robot>
2. 连杆(Links)

连杆是URDF文件中的基本构建块,表示机器人的刚体部分。每个链接包含以下属性:

  • 名字(Name):链接的唯一标识符。

  • 惯性(Inertial):链接的质量和惯性矩信息。

  • 视觉(Visual):链接的可视化模型,通常用于仿真和渲染。

  • 碰撞(Collision):链接的碰撞模型,通常用于物理仿真。

  • <link name="base_link">
        <inertial>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <mass value="1.0"/>
            <inertia ixx="0.1" ixy="0.0" ixz="0.0" iyy="0.1" iyz="0.0" izz="0.1"/>
        </inertial>
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <box size="1 1 1"/>
            </geometry>
            <material name="gray"/>
        </visual>
        <collision>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <box size="1 1 1"/>
            </geometry>
        </collision>
    </link>
    3. 关节(Joints)

    关节连接两个链接,并定义它们之间的运动关系。关节有不同的类型,如固定关节(fixed)、旋转关节(revolute)、平移关节(prismatic)等。每个关节包含以下属性:

  • 名字(Name):关节的唯一标识符。

  • 类型(Type):关节的类型。

  • 父链接(Parent Link):关节的父链接。

  • 子链接(Child Link):关节的子链接。

  • 原点位置(Origin):关节相对于父链接的起始位置和姿态。

  • 运动轴(Axis):关节的运动轴(旋转关节和平移关节)。

    <joint name="base_to_link1" type="revolute">
        <parent link="base_link"/>
        <child link="link1"/>
        <origin xyz="0 0 1" rpy="0 0 0"/>
        <axis xyz="0 0 1"/>
        <limit lower="-1.57" upper="1.57" effort="10" velocity="1.0"/>
    </joint>
    4. 传感器和执行器(Sensors and Actuators)

    虽然URDF文件本身不直接定义传感器和执行器的详细内容,但它们可以通过链接和关节的属性进行扩展。例如,可以通过定义插件的方式将传感器和执行器添加到机器人模型中。

    <gazebo>
        <sensor type="camera" name="camera_sensor">
            <camera>
                <horizontal_fov>1.3962634</horizontal_fov>
                <image>
                    <width>800</width>
                    <height>800</height>
                    <format>R8G8B8</format>
                </image>
                <clip>
                    <near>0.1</near>
                    <far>100</far>
                </clip>
            </camera>
        </sensor>
    </gazebo>

    举个例子,下图中所示的二自由度机器人:

    图片

    其URDF模型可以表示为:

    图片

    02

    Simscape导入urdf

    URDF文件的创建我们在这里不赘述。此处直接给出ABB某款机器人模型的URDF文件。

    图片

    URDF文件包常见文件结构如下:

    图片

    此处我们使用同样的文件结构:

    图片

    此时我们已经具备了导入urdf模型的基础条件,那么如何导入呢?

    很简单,只需要smimport即可,具体如下:

  • addpath([pwd filesep 'Geometry'])
    [mdl_h] = smimport('sm_abbIrb120.urdf','ModelName','sm_abbIrb120_1_RawImport_test');

    静待几秒后,你会看到:

    图片

    是不是似曾相识?没错,导入urdf文件后,因为urdf文件中已经描述了机器人的模型信息,所以simcape会根据urdf中描述自动创建模型。让我们随便打开一个子系统,可以看到:机器人的坐标系描述、3d模型、质量惯量等信息均已被导入。

    图片

    同样按照上节中所讲内容创建输入输出:

    图片

    简单加个正弦输入:

    图片

    仿真曲线:

    图片

    到此我们就能看到文章开头的预览效果啦。

    图片


    代码分享给大家,供学习交流。

    图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值