[ROS] URDF 建模,UR5 机械臂

本文详细介绍了如何使用URDF在ROS中为UR5机械臂建模,包括关键参数设置、URDF代码编写,并分享了调试验证过程中的参考资源、常见问题及解决方案,适合机器人和ROS开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[ROS] URDF 建模,UR5 机械臂



UR5模型下载https://github.com/ros-industrial/universal_robot/blob/kinetic-devel/ur_description/urdf/ur5.urdf.xacro


1. UR5 参数

在这里插入图片描述

urdf 文件中没有使用此参数。参数手动调试。


2. UR5 URDF 代码

<?xml version="1.0" encoding="utf-8" ?>

<!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/base.dae"/>       -->
<!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/forearm.dae"/>    -->
<!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/shoulder.dae"/>   -->
<!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/upperarm.dae"/>   -->
<!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist1.dae"/>     -->
<!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist2.dae"/>     -->
<!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist3.dae"/>     -->

<robot name="ur5">

    <link name="base_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <mesh filename="package://demo_urdf/meshes/ur5/visual/base.dae"/>
            </geometry>
        </visual>
    </link>

    <link name="shoulder_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <mesh filename="package://demo_urdf/meshes/ur5/visual/shoulder.dae"/>
            </geometry>
        </visual>
    </link>

    <joint name="joint1" type="revolute">
        <!-- 0.089159 -->
        <origin xyz="0 0 0.0862" rpy="0 0 0"></origin>
        <axis xyz="0 0 1"/>
        <parent link="base_link" />
        <child link="shoulder_link"/>
        <!-- -360 - 360 -->
        <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
    </joint>

    <link name="upperarm_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <mesh filename="package://demo_urdf/meshes/ur5/visual/upperarm.dae"/>
            </geometry>
        </visual>
    </link>

    <joint name="joint2" type="revolute">
        <!-- 0.089159 -->
        <origin xyz="0 0.136 0" rpy="0 0 0"></origin>
        <axis xyz="0 1 0"/>
        <parent link="shoulder_link" />
        <child link="upperarm_link"/>
        <!-- -360 - 360 -->
        <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
    </joint>

    <link name="forearm_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <mesh filename="package://demo_urdf/meshes/ur5/visual/forearm.dae"/>
            </geometry>
        </visual>
    </link>

    <joint name="joint3" type="revolute">
        <!-- 0.089159 -->
        <origin xyz="0 -0.12 0.425" rpy="0 0 0"></origin>
        <axis xyz="0 1 0"/>
        <parent link="upperarm_link" />
        <child link="forearm_link"/>
        <!-- -360 - 360 -->
        <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
    </joint>

    <link name="wrist1_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist1.dae"/>
            </geometry>
        </visual>
    </link>

    <joint name="joint4" type="revolute">
        <!-- 0.089159 -->
        <origin xyz="0 0 0.3922" rpy="0 0 0"></origin>
        <axis xyz="0 1 0"/>
        <parent link="forearm_link" />
        <child link="wrist1_link"/>
        <!-- -360 - 360 -->
        <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
    </joint>

    <link name="wrist2_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist2.dae"/>
            </geometry>
        </visual>
    </link>

    <joint name="joint5" type="revolute">
        <!-- 0.089159 -->
        <origin xyz="0 0.093 -0.0015" rpy="0 0 0"></origin>
        <axis xyz="0 0 1"/>
        <parent link="wrist1_link" />
        <child link="wrist2_link"/>
        <!-- -360 - 360 -->
        <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
    </joint>

    <link name="wrist3_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist3.dae"/>
            </geometry>
        </visual>
    </link>

    <joint name="joint6" type="revolute">
        <!-- 0.089159 -->
        <origin xyz="0 0 0.0948" rpy="0 0 0"></origin>
        <axis xyz="0 1 0"/>
        <parent link="wrist2_link" />
        <child link="wrist3_link"/>
        <!-- -360 - 360 -->
        <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
    </joint>

</robot>


3. 调试验证

在这里插入图片描述

*. 参考


*. 问题解决


*. rough

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值