介绍
通过本篇文章学习,你可以收获以下内容
了解机械臂基础关节类型
版本平台
系统版本:ubuntu20.04
ROS版本:noetic
Moveit版本:moveit-noetic
一、机械臂关节的分类
-
旋转关节(Revolute Joint):
-
特点:以某一固定轴为中心,执行旋转运动。
-
应用:大多数机械臂的基本构造关节,用于实现灵活的角度调整。
-
示例:工业机器人中广泛应用的关节类型。
-
-
滑动关节(Prismatic Joint):
-
特点:沿直线轨道进行平移运动,通常也被称为线性关节。
-
应用:适用于需要直线伸缩的场景,例如物料装配或搬运任务。
-
示例:物流分拣机械臂中的抓取装置。
-
-
球面关节(Spherical Joint):
-
特点:支持三自由度的旋转运动,能够模拟人体肩关节的功能。
-
应用:用于复杂运动需求较高的机器人,例如医疗手术机械臂。
-
-
其他关节:
-
螺旋关节(Screw Joint):结合旋转和平移运动。
-
平面关节(Planar Joint):允许沿平面运动和旋转。
-
本文主要针对前两种关节进行介绍
二、旋转关节
旋转关节的特点与应用
旋转关节(Revolute Joint)是机械臂中最常见的关节类型,其灵活性和多功能性使其成为大多数机器人设计的核心组件。
1. 旋转关节的结构
旋转关节通常由以下几部分组成:
-
轴承与轴心: 提供支撑并确保关节的旋转运动平稳。
-
驱动系统: 采用伺服电机、步进电机或液压驱动来提供旋转动力。
-
传感器: 用于监测旋转角度、速度等参数,确保精确运动。
2. 旋转关节的优点
-
高灵活性: 允许机械臂围绕固定轴进行旋转,能够适应多角度操作需求。
-
多功能性: 可通过多个旋转关节组合,实现复杂的多自由度运动。
-
结构简单: 相较于球面关节,旋转关节的设计和维护更为简单。
3. 旋转关节的局限性
-
自由度有限: 单个旋转关节仅能实现一个旋转自由度。
-
负载能力受限: 过大的负载可能影响关节的精度和寿命。
-
控制复杂性: 在多关节系统中,需要协调多个旋转关节的运动,增加控制难度。
4. 典型应用场景
-
工业机器人: 如六轴机械臂,利用多个旋转关节实现复杂路径规划。
-
医疗手术: 手术机器人通过旋转关节完成精确的微创操作。
-
服务机器人: 家用机器人利用旋转关节灵活调整运动方向。
三、滑动关节
滑动关节的特点与应用
滑动关节(Prismatic Joint)作为机械臂中的重要组成部分,以其独特的直线运动能力,在特定场景下有着不可替代的作用。
1. 滑动关节的结构
滑动关节的核心是一个滑轨系统,其设计能够保证运动的平稳性和精确性。典型的滑动关节包括以下部分:
-
滑轨:用来限制和引导直线运动的路径。
-
驱动装置:包括伺服电机或液压系统,用于提供动力。
-
支撑组件:如滚珠丝杆、导轨滑块,减少摩擦并增强稳定性。
2. 滑动关节的优点
-
直线运动精准性高: 滑轨系统的设计使得机械臂能够以极高的精度完成平移任务。
-
负载能力强: 滑动关节适合用在需要高负载能力的场景,例如运输重物或装配大型工件。
-
易于控制: 相较于复杂的旋转运动,直线运动在控制系统中更易建模。
3. 滑动关节的局限性
-
运动范围有限:滑轨的长度决定了滑动关节的最大平移范围。
-
灵活性较低:仅能在单一方向上运动,无法实现复杂的多自由度操作。
-
维护要求较高:滑轨系统需要定期润滑和清洁以保证精度。
4. 典型应用场景
-
工业生产线: 滑动关节用于搬运和装配流水线中的直线取放任务。
-
物流分拣: 在自动化仓储系统中,滑动关节机械臂用于抓取和分类物品。
-
精密加工: 滑动关节可以用于CNC机床的工具位置调整。
滑动关节与其他关节的比较
属性 | 滑动关节 | 旋转关节 | 球面关节 |
---|---|---|---|
自由度 | 1(平移) | 1(旋转) | 3(旋转) |
灵活性 | 较低 | 中等 | 高 |
典型应用 | 直线取放、抓取 | 角度调整、关节灵活运动 | 高自由度复杂操作 |
运动范围 | 受轨道长度限制 | 取决于设计 | 可实现大范围运动 |
控制难度 | 低 | 中 | 高 |
四、urdf文件关节配置
旋转关节(Revolute Joint)的URDF配置
旋转关节的核心是定义绕固定轴的旋转运动,使用type="revolute"
,同时需要指定旋转轴(axis
)、关节限制(limit
)以及动力学参数(dynamics
)。若使用type="continuous"
,
则旋转关节没有施加限制,该关节会绕指定旋转轴进行360度或更大的连续旋转。
示例urdf文件
<joint name="joint1" type="revolute">
<parent link="link1"/> <!-- 父链接 -->
<child link="link2"/> <!-- 子链接 -->
<origin xyz="0 0 0" rpy="0 0 0"/> <!-- 关节在父链接中的位姿 -->
<axis xyz="0 0 1"/> <!-- 旋转轴方向 -->
<limit effort="10" velocity="1.0" lower="-1.57" upper="1.57"/> <!-- 限制参数 -->
<dynamics damping="0.1" friction="0.2"/> <!-- 动力学参数 -->
</joint>
说明:
axis
:定义关节的旋转轴方向,通常为单位向量。例如xyz="0 0 1"
表示绕Z轴旋转。limit
:effort
:关节所能承受的最大力矩。velocity
:关节的最大转速(弧度/秒)。lower
和upper
:关节旋转的角度范围(弧度)。
dynamics
:damping
:关节的阻尼系数。friction
:关节的摩擦系数。
滑动关节(Prismatic Joint)的URDF配置
滑动关节的核心是沿特定方向的平移运动,使用type="prismatic"
,需要定义运动轴以及位移限制等参数。
示例urdf文件
<joint name="joint2" type="prismatic">
<parent link="link2"/>
<child link="link3"/>
<origin xyz="0 0 0" rpy="0 0 0"/>
<axis xyz="1 0 0"/> <!-- 平移轴方向 -->
<limit effort="100" velocity="0.5" lower="0.0" upper="0.2"/> <!-- 限制参数 -->
<dynamics damping="0.05" friction="0.1"/>
</joint>
说明:
axis
:定义关节的平移方向。例如xyz="1 0 0"
表示沿X轴平移。limit
:effort
:关节所能承受的最大推力。velocity
:关节的最大平移速度(米/秒)。lower
和upper
:关节的平移范围(米)。
dynamics
:同样可以定义阻尼和摩擦参数。