机械臂UR5教程

1、机械臂结构

UR5是一种6R(具有6个旋转关节)的串联机械臂。机械臂基本结构由基座(Base)、连杆(Link)、关节(Joint)和末端执行器(End-effector)组成(如下图所示)。详细研究可见 机器人导论第三版
在这里插入图片描述

2、URDF文件格式

在ROS中,机器人的3D模型有两种存储格式,一种是存储在一个.urdf文件中,另外一种是存储在一个.xacro文件中。本篇咱们只讨论URDF格式。URDF(Unified Robot Description Format,统一机器人描述格式)是ROS中一个非常重要的机器人模型描述格式,ROS提供URDF文件的C++解析器,可以解析URDF文件中使用XML格式描述的机器人模型。URDF文件中包含很多标签(tag)以定义机器人的各个组成部分及其属性,最常见的标签是和,分别用于描述机器人的连杆和关节。一个典型的URDF文件格式如下:
作者:webcohort
链接:https://zhuanlan.zhihu.com/p/642380536
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

<robot name="ur5">
  <link name="base_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur5/visual/base.dae"/>
      </geometry>
    </visual>
  </link>
  <joint name="shoulder_pan_joint" type="revolute">
    <parent link="base_link"/>
    <child link="shoulder_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.089159"/>
    <axis xyz="0 0 1"/>
    <limit effort="150.0" lower="-3.14159265" upper="3.14159265" velocity="3.15"/>
  </joint>
  <link name="shoulder_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur5/visual/shoulder.dae"/>
      </geometry>
    </visual>
  </link>
  <joint name="shoulder_lift_joint" type="revolute">
    <parent link="shoulder_link"/>
    <child link="upper_arm_link"/>
    <origin rpy="0.0 1.570796325 0.0" xyz="0.0 0.13585 0.0"/>
    <axis xyz="0 1 0"/>
    <limit effort="150.0" lower="-3.14159265" upper="3.14159265" velocity="3.15"/>
  </joint>
  <link name="upper_arm_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur5/visual/upperarm.dae"/>
      </geometry>
    </visual>
  </link>
  <joint name="elbow_joint" type="revolute">
    <parent link="upper_arm_link"/>
    <child link="forearm_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 -0.1197 0.425"/>
    <axis xyz="0 1 0"/>
    <limit effort="150.0" lower="-3.14159265" upper="3.14159265" velocity="3.15"/>
  </joint>
  <link name="forearm_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur5/visual/forearm.dae"/>
      </geometry>
    </visual>
  </link>
  <joint name="wrist_1_joint" type="revolute">
    <parent link="forearm_link"/>
    <child link="wrist_1_link"/>
    <origin rpy="0.0 1.570796325 0.0" xyz="0.0 0.0 0.39225"/>
    <axis xyz="0 1 0"/>
    <limit effort="28.0" lower="-3.14159265" upper="3.14159265" velocity="3.2"/>
  </joint>
  <link name="wrist_1_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur5/visual/wrist1.dae"/>
      </geometry>
    </visual>
  </link>
  <joint name="wrist_2_joint" type="revolute">
    <parent link="wrist_1_link"/>
    <child link="wrist_2_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 0.093 0.0"/>
    <axis xyz="0 0 1"/>
    <limit effort="28.0" lower="-3.14159265" upper="3.14159265" velocity="3.2"/>
  </joint>
  <link name="wrist_2_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur5/visual/wrist2.dae"/>
      </geometry>
    </visual>
  </link>
  <joint name="wrist_3_joint" type="revolute">
    <parent link="wrist_2_link"/>
    <child link="wrist_3_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.09465"/>
    <axis xyz="0 1 0"/>
    <limit effort="28.0" lower="-3.14159265" upper="3.14159265" velocity="3.2"/>
  </joint>
  <link name="wrist_3_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur5/visual/wrist3.dae"/>
      </geometry>
    </visual>
  </link>
</robot>

(1)< link> 标签

< link>标签用于描述连杆的外观和物理属性,包括尺寸(size)、颜色(color)、形状(shape)、惯性矩阵(inertial matrix)、碰撞参数(collision properties)等。
在< link>标签中可以使用如下的子标签:
< collision>:连杆的碰撞检测信息
< visual>:连杆的外观
< inertial>:连杆的惯性矩阵
< mass>:连杆重量(单位:kg)
< inertia>:惯性张量(Inertia tensor)
< origin>:连杆坐标系的原点
< geometry>:机器人3D模型的形状。提供box、cylinder、sphere等基本形状,也可以导入COLLAD(.dae)、STL(.stl)格式的设计文件。
< material>:连杆的颜色和纹理
作者:webcohort
链接:https://zhuanlan.zhihu.com/p/642380536
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

(2)< joint>标签

< joint>标签用于描述关节的运动学和动力学属性,包括关节运动的位置和速度限制。URDF将关节分为六种类型。
在这里插入图片描述
< parent>:关节的父连杆(上一级连杆)
< child>:关节的子连杆(下一级连杆)
< origin>:将父连杆坐标系转换为子连杆坐标系
< axis>:关节的旋转轴
< limit>:关节的速度、力和极限值,极限值包括运动的上下限位置、速度限制、力矩限制等
官网文档

3、在RViz中显示机器人3D模型

urdf_tutorial包用于在RViz中显示机器人的3D模型,其用法如下:

roslaunch urdf_tutorial display.launch model:='机器人3D模型文件名'

如果“机器人3D模型文件名”中不包含空格,上述命令中的单引号可以省略。在“机器人3D模型文件名”中指定文件的路径时,有一个很容易遇到,但也是很困惑的BUG,详见下面的“故障排除”。要加载自己的机器人模型,model参数不可少。如果省略model参数,display.launch会加载一个简单的圆柱体当作机器人模型,如下所示:

 roslaunch urdf_tutorial display.launch

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值