1. 从关节到整机:机械臂的组成
一台六轴机械臂拆开看,核心单元是关节执行器——一个"电机 + 减速器 + 编码器 + 驱动器"的模组,外加连杆和末端执行器。关节模组在电机侧看就是一台伺服(FOC 电流环/速度环/位置环,见站内驱动算法系列),在连杆侧看却要面对大惯量、强耦合与自重负载:
| 部件 | 作用 | 与 FOC/伺服的关系 |
|---|---|---|
| 电机 | 产生驱动力矩 | 无框力矩电机/伺服电机,FOC 控制,电流环带宽决定关节带宽 |
| 减速器 | 放大转矩、降低转速、提高分辨率 | 谐波/RV/行星(见减速器篇),减速比 50~160 常见 |
| 编码器 | 电机侧/输出侧角度反馈 | 磁编/光编/绝对值,双编码器方案可辨识减速器误差 |
| 驱动器 | 功率变换与控制 | CANopen/EtherCAT 总线伺服(见 CANopen 专题) |
| 力矩/力传感器 | 关节输出力矩或末端力反馈 | 力控与柔顺(见力觉篇) |
关节模组性能的三个硬指标:减速比×电机转矩(负载能力)、输出侧分辨率(编码器位数×减速比,决定重复定位精度)、带宽(电流环→速度环→位置环层层变慢,最终关节带宽通常只有 1~10Hz)。
2. 自由度与构型:机械臂 vs 人臂
自由度(DOF)决定机械臂能完成什么运动。工业六轴与人臂的自由度分布对比:
| 部位 | 工业 6 轴 | 人臂(上肢) | 备注 |
|---|---|---|---|
| 肩/腰部 | 1(腰转) | 3(屈伸/外展内收/内旋外旋,球窝关节) | 人肩是球窝,机械臂用多轴叠加近似 |
| 肩(俯仰) | 1(肩俯仰) | — | 工业臂把肩展开为 1~2 个正交轴 |
| 肘 | 1(肘俯仰) | 1(屈伸)+ 前臂旋前旋后 1 | 前臂旋前旋后独立于肘 |
| 腕 | 3(俯仰/偏摆/滚转,球腕) | 2(屈伸/尺桡偏) | 人腕缺滚转,靠前臂旋前补 |
| 手 | —(末端法兰) | 20+(灵巧手) | 灵巧手是独立子系统(见第 5 节) |
关键概念:任务空间(笛卡尔 6 维:位置 3 + 姿态 3)需要至少 6 个关节 DOF;7 轴冗余臂多出 1 个自由度,用于"同一个末端位姿保持时改变肘部位置"(零空间运动),这在狭窄空间作业与避障中非常有用。少于 6 DOF 的构型(如 SCARA 4 轴、Delta 3 轴)则靠特殊构型换取速度/刚度/成本。
3. 正运动学:从关节角到末端位姿
正运动学(FK):已知关节角,求末端位置。工业臂用 DH 参数(连杆长度 a、偏置 d、扭角 α、关节角 θ)建立相邻坐标系变换,串联相乘得末端位姿矩阵。平面臂是最直观的入门模型:
x = l1cosθ1 + l2cos(θ1+θ2)
y = l1sinθ1 + l2sin(θ1+θ2)
3 连杆加一段:x += l3cos(θ1+θ2+θ3),y 同理;末端姿态角 φ = θ1+θ2+θ3
正运动学是"确定性"的:每个关节角组合唯一对应一个末端位姿,公式可直接编程(见第 8 节代码与第 7 节演示)。
4. 逆运动学:从末端位姿到关节角
逆运动学(IK)是控制的难点:给定末端目标,反解关节角。解析法(几何/代数推导出闭式解)快且确定,但只在特定构型成立;数值法(雅可比迭代、阻尼最小二乘)通用但慢、可能陷入局部解。2 连杆平面臂有优雅的几何闭式解:
cosθ2 = (x² + y² − l1² − l2²) / (2 l1 l2) ← 目标可达要求 |c| ≤ 1
θ2 = atan2(±√(1−c²), c) ← ± 对应肘上/肘下
θ1 = atan2(y, x) − atan2(l2sinθ2, l1+l2cosθ2)
3 连杆带姿态角 φ 时:先按 (x−l₃cosφ, y−l₃sinφ) 解 2 连杆,再 θ3 = φ − θ1 − θ2
IK 前先判可达性:目标到原点距离必须在 [|l₁−l₂|, l₁+l₂] 内(|c|≤1)。奇异:末端靠近工作空间边界或两杆伸直(θ₂=0)时雅可比降秩,关节速度趋向无穷——控制上要做奇异规避与阻尼。多解:2 连杆有两个解(肘上/肘下),六轴臂可达 8~16 组解,需按关节限位、避障、连续性原则选一组。
5. 仿生臂设计:向人手学习
仿生臂与工业臂的分水岭不在"长得像",而在驱动架构——工业臂每个关节一个"大而强"的执行器(刚性、高精度、重),仿生臂追求"小而灵":
| 设计 | 原理 | 收益 | 代价 |
|---|---|---|---|
| 腱驱动(Tendon) | 电机放在基座/近端,通过腱索(绳)把力传到远端关节 | 远端质量小、惯量低、动态好 | 腱摩擦/弹性/张力管理复杂,需张力传感器 |
| 串联弹性(SEA) | 电机与负载之间串一个弹性元件 | 输出力精确可控、抗冲击、本质柔顺安全 | 带宽下降、位置精度妥协 |
| 变刚度(VSA) | 两个电机独立控制位置与刚度 | 低速高刚度定位、高速低刚度缓冲,兼顾两者 | 双电机、控制复杂 |
| 欠驱动手(Underactuated) | 少于关节数的电机 + 耦合/差动机构 | 手指自适应包络抓取、控制简单、重量轻 | 无法独立控制每个关节 |
灵巧手的核心权衡是驱动数量 vs 自由度:人手 20+ DOF 由肌肉驱动,仿生手若每自由度一个电机,手本身就会又重又大。主流方案是欠驱动——如腱驱动欠耦合(几根腱驱动多关节,抓握时指节自动贴合物体)或直驱微型电机(每指 1~2 个电机 + 连杆机构)。无论哪种,最终执行器还是微型伺服(空心杯/无框电机 + 小型行星减速 + 磁编),FOC 电流环照常用。
6. 关节与笛卡尔控制:重力补偿、阻抗与零空间
机械臂控制比单轴伺服多三层问题:自重负载(重力矩随姿态变化,需实时前馈补偿)、多轴耦合(关节间惯性/科氏耦合)、人机交互(协作场景需柔顺)。三层控制架构:
- 关节层:每个关节的伺服环(位置/速度/力矩),电机侧三环带宽决定响应上限
- 笛卡尔层:把末端目标位置/速度/力映射到关节(IK + 雅可比 + 阻抗控制),重力补偿在此层叠加到各关节力矩指令
- 任务层:轨迹规划、避障、零空间冗余利用(7 轴臂在末端位姿不变时调整肘位)
力控/柔顺的核心是 阻抗控制:把机器人末端等效成"弹簧-阻尼"系统,位置偏差产生期望力(阻抗),力偏差产生位置修正(导纳)。实现上衔接力觉篇:关节力矩传感器测输出扭矩 → 力矩环叠加在电流环外;末端六维力传感器 → 笛卡尔导纳控制。安全逻辑上,协作机器人通常限定 关节力矩上限 + 末端速度上限 + 功率上限,触发即停机——这是"碰撞检测"的最简实现。
7. 交互式演示:平面机械臂正运动学
拖动关节角滑块,实时计算并绘制 2/3 连杆平面臂的姿态;勾选"轨迹"记录末端路径,直观看出工作空间与"肘上/肘下"两个 IK 解对应的姿态。杆长滑块可改变构型。
观察要点:2 连杆时末端可达范围是半径为 l₁+l₂ 的圆盘(内圈 |l₁−l₂| 为不可达盲区);3 连杆增加一个自由度后,同一末端位置可有多种"肘部姿态"组合——这就是冗余与零空间概念的雏形。
8. 运动学 C 代码(正/逆解)
下面是可编译的平面臂运动学库:2 连杆正/逆解(含肘上肘下双解)、3 连杆正解与带姿态的逆解。可直接移植进机器人控制器,或用于上位机仿真验证。
9. 工程要点
- 减速比与惯量匹配:减速比 n 把负载惯量折算到电机侧 Jeq = Jm + JL/n²,惯量比过高会让电流环到位置环的整定很难做(见三环整定篇);谐波减速器还要算柔轮扭转刚度引入的谐振。
- 自重负载别忽略:机械臂重力矩随姿态大范围变化,力矩模式或高性能位置控制必须加重力前馈(用 DH 参数+质量/质心在线算),否则低速/悬停时抖动明显。
- 编码器装在电机侧还是输出侧:电机侧分辨率高(×减速比)但看不到减速器误差,输出侧(关节端)才能测真实角度;高端方案双编码器+标定。
- 背隙与柔顺:谐波/RV 背隙小但柔轮有弹性;行星减速背隙大;仿生腱驱动有腱弹性——这些"软环节"都进入控制环,需建模或加 SEA 主动控制。
- 安全优先:协作场景强制力矩/速度/功率三上限,碰撞检测触发即停;灵巧手抓取要用电流限幅或力传感器做"抓握力限制",防夹坏物体。
- 仿生电机选型:灵巧手/腱驱动用微型无框/空心杯电机 + 小型行星减速 + 磁编(FOC 控制同站内流程),注意持续转矩下的温升——手指空间小,散热是硬约束。
10. 小结
机械臂与仿生臂的差距不在"像不像人",而在驱动架构与控制的取舍:工业臂用刚性大执行器换精度与负载,仿生臂用腱驱动/弹性/欠驱动换轻量与安全。共通的内核仍是站内反复强调的三件事——关节就是伺服(FOC + 减速器 + 编码器)、运动学是几何(FK/IK 可精确计算)、柔顺靠力控(力矩环/阻抗,见力觉篇)。把这三层打通,六轴机械臂和五根手指的灵巧手在控制上就是同一套方法论。