机械臂的类型及控制分类
1.机械臂构型
一旦操作臂的自由度数确定之后,必须合理布置各个关节来实现这些自由度。对于串联的运动连杆,关节数目等于要求的自由度数目。大多数操作臂的设计是由最后n-3个关节确定末端执行器的姿态,且它们的轴相较于腕关节原点,而前面3个关节确定腕关节原点的位置。采用这种方法设计的操作臂,可以认为是由定位结构及其后部串联的定向结构或手腕组成的
笛卡尔操作臂
关节1到关节3都是移动副,且相互垂直,分别对应于笛卡尔坐标系的X,Y,Z三轴。这类构型的逆运动学解是很简单的。
笛卡尔操作臂的一个优点是前面的三个关节是解耦的,从而使其设计简单化,并且避免了前三个关节出现运动学奇异点。
铰接型操作臂
铰接型操作臂,有时候被称为关节型,轴型或者拟人操作臂。这种类型的操作臂通常由两个“肩”关节。一个肘关节。以及2个或者3个位于操作臂末端的腕关节组成。
铰接型机器人减少了操作臂在工作空间中的干涉,使操作臂能够到达指定的空间位置。它们的整体结构比笛卡尔操作臂小,可应用于工作空间较小的场合,成本较低
SCARA操作臂
SCARA构型有三个平行的旋转关节,使机器人能在一个平面内移动和定向,第四个移动关节可以使末端执行器垂直于该平面。
球面坐标型操作臂
与铰接型操作臂有很多相似之处,但是用移动关节代替了肘关节。这种设计在某些场合比铰接型操作臂更加适用。移动连杆可以伸缩,缩回时,甚至可以从后面伸出
UR构型
2.机械臂的数学模型构建——DH
DH参数主要用于机械臂的运动学建模,是机器人学中用于描述机械臂连杆和关节之间几何关系的一种方法。
DH参数由四个基本参数组成:连杆长度(ai)、连杆扭转角(αi)、关节角(θi)和连杆偏移量(di)。
通过定义每个关节的局部坐标系,并使用这四个参数来描述关节之间的关系,可以构建整个机械臂的运动学模型。
DH参数用于描述每两个相邻关节之间的空间几何关系。具体来说:
连杆长度 ai:沿连杆坐标系xi轴的距离,表示两个关节轴线之间的水平偏移。
扭转角 αi:沿连杆坐标系xi轴的旋转角度,表示两个关节轴线的相对扭转。
关节角 θi:沿连杆坐标系θi:沿连杆坐标系zi轴的旋转角度,表示关节的旋转。
连杆偏移量 di:沿连杆坐标系zi轴的距离,表示两个关节之间的垂直偏移
1.SDH(标准DH模型)
坐标系建立规则:
Zi轴沿第 i 关节的旋转轴或移动方向。
Xi轴沿两相邻 Z 轴的公垂线方向。
变换顺序:绕 Zi轴旋转 θi→ 沿 Zi 轴平移 di → 沿 Xi 轴平移 ai → 绕 Xi轴旋转 αi
对应的变换矩阵代码:
def dh_matrix(theta, d, a, alpha):
T= Matrix([
[cos(theta), -sin(theta)*cos(alpha), sin(theta)*sin(alpha), a*cos(theta)],
[sin(theta), cos(theta)*cos(alpha), -cos(theta)*sin(alpha), a*sin(theta)],
[0, sin(alpha), cos(alpha), d],
[0, 0, 0, 1]
])
return T
优势:参数定义直观,适合传统串联机械臂(如 PUMA560、SCARA)。
场景:工业机器人、教学示例、标准运动学分析1012。
2.MDH(改进DH模型)
核心改进:调整坐标系建立顺序,将 Xi 轴的定义改为从 Zi 到 Zi+1 的公垂线方向,更直观地描述关节间的几何关系。
变换顺序:沿 Xi轴平移 ai → 绕 Xi 轴旋转 αi → 沿 Zi 轴平移 di → 绕 Zi 轴旋转 θi
对应的变换矩阵代码:
优势:避免坐标系歧义,适合复杂关节(如并联机械臂、含偏移关节的机械臂)。
场景:协作机器人、柔性关节建模、多自由度机械臂仿真
3.主要区别及转换
4.建立坐标轴
建立坐标轴的步骤如下:
1)确定Zi轴
作为第i+1个关节的驱动轴,其方向和关节轴线方向保持一致。例如Z0是第1个关节的驱动轴,Z1是第2个关节的驱动轴。可能看上去有点混乱,但是符合规则的,这保证了:当关节i被驱动时,连杆i以及与其相连的坐标系 OiXiYiZi,将会经历一个对应的运动。
另外 Zi轴的方向符合右手定则,注意和关节的转动方向对应!
2)确定基础坐标系
基础坐标系的选择近乎是任意的,我们可以选择将基础坐标系的原点 Oo放置在Z0 轴上任何一点。然后,可以通过任意方便的方式来选择X0轴和Y0轴。但是建立0坐标系时,要尽可能使得最后的DH参数简单。
3)确定 Xi方向
a.轴 Zi-1和轴Zi不共面
那么轴Zi-1和轴Zi的公垂线定义了Xi轴,并且它于轴Zi的交点即为原点Oi。
b.轴Zi-1平行于轴Zi
这种情况下,轴Zi-1和轴Zi之间存在无穷多个共同法线。将穿过原点Oi-1的法线选作Xi轴, Oi是该法线和Zi轴的交点。
c.轴Zi-1和轴Zi相交
选择Xi垂直于由Zi-1和Zi组成的平面。原点Oi一般设为Zi-1和Zi的交点。不过,轴线Zi上的任意一点都可以被选作原点。
4)确定坐标系N
以上的三个步骤适用于坐标系0,…N-1。最终的坐标系通常被称为末端执行器或者工具坐标系。最常见的是,将原点Oi以对称方式布置在夹具的中间, Zi轴方向沿着末端移动方向(最后一个关节伸缩的方向)。Xi轴方向沿着夹具的上下开合方向。
因为有很多情况可以随意选择坐标系 Xi轴的方向,这就导致了不同的DH参数。为了规范DH建模方法,总结“使得DH参数简单”的一些法则。
1、确定Xi轴方向时,如果有很多种选择,尽可能选择与Xi-1相同的方向
2、确定坐标系0时,使得关节变量1的取值为零。如果是转动关节,关节变量就是theata1;如果是平动关节,关节变量是d
3、符合人的习惯
建模示例:
例1
例2
3.从基座到末端——正运动学解算
已知机械臂关节角度,求解机械臂末端在空间中位姿(关节空间到笛卡尔空间的映射)
def forward_kinematics(theta, dh_params):
#根据DH参数和关节角度计算6轴机械臂末端执行器的位置
T = np.eye(4)
for i in range(6):
T = T @ dh_matrix(dh_params[i, 0]+theta[i], dh_params[i, 1], dh_params[i, 2], dh_params[i, 3])
return T
4.从末端到基座——逆运动学解算
1.解析解
根据正运动学的结果直接方程解算对应的关节角度,适用于自由度较低、结构较简单的机械臂(6自由度以下),可以通过数学推导得到关节变量的显式表达式,可以快速的得到精确的结果,但仅适用于特定的机械臂结构,难以推广到通用情况。
2.迭代法(数值法)
适用于任意结构的机械臂,但是计算量大,可能收敛缓慢,存在收敛性问题,求得的解也是近似解。
LM法:结合牛顿法和梯度下降法的混合优化算法,平衡了收敛速度和稳定性。
牛顿法
高斯-牛顿法
3.冗余机器人的逆解
冗余机器人运动学逆解的由于其冗余的特点,所以其运动学逆解有无穷多组解。
我们可将方法分为两大类:迭代法和解析法。
1)迭代法
逆运动学问题通常是通过线性化一个点周围的构型空间来解决的。即,首先利用由雅可比矩阵
表示的线性化的一阶瞬时运动学关系,将逆解问题映射到速度域上,然后在线性化的速度域上寻找瞬时逆解。
对于冗余机械臂,雅可比矩阵有一个零空间,有效利用零空间使我们能够实现各种子任务,如提高可操作度、扭矩优化、避障和奇异回避。这些基于雅可比矩阵的方法可用于跟踪末端执行器的轨迹,该轨迹可以动态生成。
但是,并不适用于分析受关节极限约束的全局构型空间。为了处理关节极限约束下的全局可达区域,我们需要基于位置的解析解法。
2)解析法
需要采用一个待定参数来描述其冗余性,并基于该待定参数解出有限组有效解。通过增加操作空间数或者减少关节自由度数,最终达到操作空间数和关节自由度数相等的情况,从而避免了无穷解的情况。
常用的主要有关节角参数化和臂型角参数化
关节角参数化:
减少关节待求数,是将其中一个关节变量作为给定参数来代表冗余性,而其他六个关节变量作为待定参数来进行求解,相当于变成了六自由度机械臂运动学逆解问题。
臂型角参数化:
通过增加操作空间数目来达到消除冗余的效果,是把冗余机械臂的冗余度也看作一个描述机械臂的自由度。而且,这个臂型角是可以结合实际应用场景来人为给定的。臂角是衡量机械臂整臂姿态的一个很好的参变量,且由于臂角函数是各个关节角度为自变量,其可以结合机械臂的T矩阵进行位置级别的逆向运动学求解,进而求得其解析解。
5.机械臂的瞬时运动——雅克比矩阵
机械臂雅可比矩阵是关节速度到末端执行器速度的映射矩阵,反映关节微小运动对末端位姿的瞬时影响。数学上,x˙=J(q)q˙,其中 x˙为末端速度,q˙为关节速度。用于运动规划、奇异点分析和力控制,是机器人动力学的核心工具
6.机械臂规划——关节空间与笛卡尔空间
1.Joint-Space
对 Joint-Space 来说进行轨迹规划需要以下步骤:
确定轨迹的起点(Initial Point) - 途径点(Via Point) - 终点(Finial Point)
通过 Inverse Kinematics (IK) 计算出以上所有点的 Joint Angle,即 Joint-space 下的所有点关于时间的位置.
设计一条轨迹将 Joint-space 所有点都平滑的连接起来。
再通过 Forword Kinematics (FK) 算出在这种情况下末端关于世界坐标的曲线。
检查世界坐标下的曲线是否合理。
2.Cartesian-space
对 Cartesian-space 来说进行轨迹规划需要以下步骤:
确定轨迹的起点(Initial Point) - 途径点(Via Point) - 终点(Finial Point)
设计一条曲线将 Cartesian-space 所有点都平滑的连接起来。
使用 IK 计算出这条曲线在 Joint-space 的曲线。
检查 Joint-space 的曲线是否平滑。
3.两种方法的对比
Cartesian-space 来做轨迹规划是一种直观的对位姿轨迹的规划。但可能出现机器人的运动速度上的不平滑。
Joint-space 可以保证运动速度的平滑,但是运动位姿的轨迹可能与设计前预想的轨迹有区别,不会出现尖锐的拐角。
一般来说需要根据实际应用的情况来选择使用那种方法来设计轨迹。
机械臂轨迹规划——3-5样条差值法
为什么需要样条插值?——从机械臂的“卡顿问题”说起
1.1 机械臂运动的痛点
问题:如果直接用直线或简单多项式连接路径点,会导致:
加速度突变 → 电机抖动(像开车急刹再猛加速)。
力矩不连续 → 关节冲击,缩短寿命。
假设机械臂要从A点→B点→C点,如果直接用直线连接:
在B点速度方向突然改变 → 需要无限大加速度(物理不可能)。
实际电机只能硬扛,导致振动和噪声。
1.2 样条的物理本质
核心思想:用分段柔性钢条的变形来类比(就像机械臂的轨迹是一根弹性梁)。
钢条在固定点(路径点)之间自然弯曲 → 保证位移、速度、加速度连续。
数学体现:用3-5次多项式拼接,确保光滑过渡(具体次数由连续性要求决定)。
2.1 三次样条(最常用)
为什么是3次?
最低能满足 C2连续(位移、速度、加速度均连续)。
物理意义:
位移连续 → 路径不跳变。
速度连续 → 电机转速平滑。
加速度连续 → 力矩无突变(τ=I⋅ατ=I⋅α,惯性矩 II 固定时,力矩 ττ 与角加速度 αα 成正比)。
机械臂应用场景:
搬运、喷涂等对加加速度(Jerk)无严格要求的任务。
2.2 五次样条(高阶需求)
为什么需要5次?
满足 C3 连续(加加速度也连续)。
物理意义:
加加速度连续 → 电机扭矩变化率平滑(避免电流冲击)。
应用场景:
高速拾放(如Delta机器人)、精密手术机器人等对运动抖动极度敏感的场景。
3.1 建模步骤
输入:机械臂的路径点 (ti,qi)(ti,qi),其中 qiqi 是关节角度或末端位姿。
构造分段多项式: 每段轨迹 Si(t)=ai+bit+cit2+dit3
约束条件:
插值条件:Si(ti)=qiSi(ti)=qi(经过路径点)。
连续性:
Si(ti+1)=Si+1(ti+1)(位置连续)。
Si′(ti+1)=Si+1′(ti+1)(速度连续)。
Si′′(ti+1)=Si+1′′(ti+1)(加速度连续)。
边界条件:
自然样条:S′′(t0)=S′′(tn)=0两端加速度为零,类似悬臂梁自由端)。
4.1 典型场景
轨迹规划:
关节空间规划 → 对每个关节角度做样条插值。
笛卡尔空间规划 → 对末端位姿(位置+姿态)插值。
力控交互:
混合力/位控中,用样条平滑接触力的过渡(如从自由运动→接触环境)。
8.机械臂的奇异性
UR构型的奇异点
关节4与关节6平行时,发生腕部奇异
关节234共面时,发生肘部奇异
关节56交点在过关节1轴线且平行关节2轴线的平面内时,发生肩部奇异
9.机械臂冗余度
冗余机械臂,雅可比矩阵有一个零空间,有效利用零空间使我们能够实现各种子任务,如提高可操作度、扭矩优化、避障和奇异回避。
冗余机器人的位置控制核心是冗余分解模块。逆解的实际步骤包括:a设定关节极限,b计算雅可比矩阵,c奇异判断,d寻找最优解。利用运动学目标函数参数化冗余机械臂的自运动,是将笛卡尔空间轨迹直接通过雅克比矩阵转化为关节空间轨迹的逆运动模块,进一步通过阻尼最小平方法中参数的选择完成冗余机械臂的关节限位、避障规划等寻找最优解的任务。
机械臂力控
基本概念
核心目标:控制机械臂末端与环境的接触力(如装配、打磨、抓取易碎物体)。
与传统位置控制的区别:
位置控制:以轨迹跟踪为核心,忽略环境交互力。
力控制:主动调节力/力矩,适应环境接触(如柔顺操作)。
2.力控分类
类型
原理
应用场景
直接力控
通过力传感器反馈直接闭环控制接触力。
精密装配、医疗手术
阻抗控制
模拟弹簧-阻尼系统,动态调整力与位置关系(F=Kpx+Kdx˙)。
人机协作、柔顺抓取
导纳控制
外力输入→生成位置调整(与阻抗控制互为对偶)。
工业打磨、抛光
3.关键技术
力传感器:六维力/力矩传感器(如Robotiq FT-300)。
动力学模型:需补偿重力、摩擦力等干扰(如牛顿-欧拉方程)。
控制频率:通常需 ≥1 kHz 以保证稳定性。
11.机械臂混合力位控
基本思想
核心问题:某些任务需同时控制位置和力(如拧螺丝:旋转方向需力控,轴向需位控)。
解决方案:
任务空间分解:将自由度分为力控方向(约束方向)和位控方向(自由方向)。
选择矩阵(Selection Matrix):定义力控和位控的权重(如对角矩阵 SS,0=位控,1=力控)。
2.控制框架
任务空间建模:
位控方向:xp=S⋅x
力控方向:Fc=(I−S)⋅F
控制器设计:
位控部分:PID或模型预测控制(MPC)。
力控部分:阻抗控制或直接力控。
3.典型应用
任务
力控方向
位控方向
装配插孔
轴向(Z轴)
平面(X-Y轴)
曲面打磨
法向(接触面垂直方向)
切向(沿曲面移动)
拧螺丝
旋转方向(力矩)
轴向推进(位置)
12.值得学习和借鉴的开源功能包
ikfast_c
https://gitcode.com/open-source-toolkit/4a937/?utm_source=tools_gitcode&index=bottom&type=card
本仓库提供了ikfast_c++逆运动学求解程序,它是针对机器人臂进行精确、高效逆运动学计算的强大工具。Ikfast,源自OpenRAVE机器人环境,利用优化算法生成高效的C++代码,专门用于解决机器人关节到末端执行器位置的映射问题,即如何通过给定的目标位置来确定机器人的关节角度。
特点
高性能:Ikfast通过数学优化大大提高了逆运动学求解的速度。
自动生成代码:基于特定的机器人模型,Ikfast可以自动产生优化后的C++代码,减少人工编写复杂算法的时间。
高精度:确保在大多数情况下得到精确的解,对于机器人控制至关重要。
易于集成:提供的C++代码方便嵌入到机器人控制系统中,适用于多种开发环境和平台。
广泛兼容:虽然根植于OpenRAVE框架,其生成的代码相对独立,可服务于更广泛的机器人应用项目。
技术分析
算法原理: 通过解析几何和代数方法将逆运动学问题转化为数学方程,利用优化算法生成高效代码。
代码生成: 自动化生成过程确保代码高效、可维护,同时支持用户自定义机器人模型。
兼容性: 支持工业机器人、服务机器人等多样化硬件平台,适配 ROS 等常见框架。
应用场景
领域
用途
工业自动化
机械臂精准抓取、装配,提升生产效率和精度。
服务机器人
家庭/医疗机器人运动规划(如手臂操控、导航避障)。
科研与教育
快速验证算法,加速机器人学教学和研究。
特种机器人
救援、农业机器人复杂环境下的运动控制(如崎岖地形操作)。