3、机器人学基础(二):机械臂运动学(正解与逆解)、DH参数建模法、工作空间分析
好,咱们接着聊机械臂。上一章我们把位姿描述和坐标变换打好了底,这一章就要真刀真枪地让机械臂动起来了。
核心就三个东西:正解、逆解、DH参数。说白了,正解就是我知道每个关节转了多少度,问末端在哪儿;逆解就是我知道末端要去哪儿,反推每个关节该转多少度。DH参数呢,是连接这两者的桥梁。
我个人习惯,讲运动学之前,先画一张图把整个知识体系串起来,这样你心里有个谱。
3.1 DH参数建模法——机械臂的“身份证”
DH参数法,说白了就是用四个参数来描述一个连杆和它相邻关节的关系。你想想看,一个机械臂那么多连杆,每个连杆怎么连到下一个?角度偏了多少?杆子多长?扭了多少?DH参数就是干这个的。
我记得刚入行时,师傅丢给我一本机器人学的书,让我自己看DH参数。我看了三天,脑子里全是α、a、d、θ这四个字母在打架。后来我自己动手建了一个六轴臂的模型,才真正搞明白。
3.1.1 四个参数的含义
| 参数 | 符号 | 物理含义 | 我的理解 |
|---|---|---|---|
| 连杆长度 | ai-1 | 沿xi-1轴,从zi-1到zi的距离 | 杆子有多长 |
| 连杆扭角 | αi-1 | 绕xi-1轴,从zi-1到zi的转角 | 杆子拧了多少 |
| 连杆偏距 | di | 沿zi轴,从xi-1到xi的距离 | 关节之间错开多少 |
| 关节角 | θi | 绕zi轴,从xi-1到xi的转角 | 关节转了多少 |
3.1.2 坐标系建立步骤
建坐标系是DH参数里最容易出错的一步。我总结了一个口诀,你试试看:
- 找轴线: 每个关节的轴线就是z轴。
- 定原点: 相邻两轴线的交点或公垂线与z轴的交点。
- 画x轴: 沿公垂线方向,从当前z轴指向下一个z轴。
- 定y轴: 右手定则,y = z × x。
嗯,这里要注意:如果相邻两关节轴线平行,公垂线不唯一,这时候一般取使di = 0的位置。我曾经在一个协作臂项目里,因为平行关节的坐标系选得不对,导致正解算出来末端位置差了5厘米,查了两天才找到原因。
3.1.3 齐次变换矩阵
有了DH参数,相邻坐标系之间的变换矩阵就是标准形式了:
T = [ cosθ -sinθ·cosα sinθ·sinα a·cosθ
sinθ cosθ·cosα -cosθ·sinα a·sinθ
0 sinα cosα d
0 0 0 1 ]
这个矩阵你不需要死记硬背,用的时候查一下就行。但你要理解它的结构:左上角3×3是旋转,右上角3×1是平移,最后一行是[0 0 0 1]。
3.2 正运动学(正解)——从关节空间到笛卡尔空间
正解,说白了就是“已知关节角度,求末端位姿”。
对于一个n自由度的机械臂,正解就是把这n个相邻变换矩阵乘起来:
T_0^n = T_0^1 · T_1^2 · T_2^3 · ... · T_{n-1}^n
结果是一个4×4的齐次变换矩阵,包含了末端的位置和姿态。
我举个例子,一个简单的2自由度平面臂:
- 连杆1:a0 = L1, α0 = 0, d1 = 0, θ1 = 变量
- 连杆2:a1 = L2, α1 = 0, d2 = 0, θ2 = 变量
正解结果:
x = L1·cosθ1 + L2·cos(θ1+θ2)
y = L1·sinθ1 + L2·sin(θ1+θ2)
你看,就是简单的三角函数叠加。但到了六轴臂,表达式会变得非常复杂,一般不会手算,都是用工具库(比如Robotics Toolbox)来算。
3.3 逆运动学(逆解)——从笛卡尔空间回到关节空间
逆解就麻烦多了。给定末端位姿,求关节角。这玩意儿通常有多解,甚至无解。
为什么会这样?你想想看,一个六轴臂,末端到了某个位置,手臂可以“弯着”过来,也可以“伸着”过来,肘关节可以朝上也可以朝下。这就是多解。
3.3.1 逆解的方法
| 方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 解析法(封闭解) | 满足Pieper准则的臂(相邻三轴交于一点) | 速度快,精度高 | 通用性差 |
| 数值法(迭代法) | 任意构型 | 通用性强 | 速度慢,可能不收敛 |
3.3.2 多解的选择策略
逆解出来好几个解,选哪个?我一般按这个优先级来:
- 关节限位优先: 先排除超出关节物理限位的解。
- 行程最短: 选离当前关节角最近的解,减少运动时间。
- 避障: 如果前面两个条件打平,选能避开障碍物的那个。
- 构型偏好: 比如“肘部朝上”还是“肘部朝下”,根据工艺要求定。
3.4 工作空间分析——机械臂的“活动范围”
工作空间,说白了就是机械臂末端能到达的所有点的集合。这东西在选型和布局时特别重要。
我记得有一次做产线仿真,客户说“我这工位就这么大,你帮我看看这个臂能不能够到所有点”。我二话不说,先跑了个工作空间分析,结果发现有一个角落死活够不着。后来换了臂长更大的型号才解决。
3.4.1 工作空间的分类
- 可达空间: 末端至少以一个姿态能到达的点集。
- 灵活空间: 末端能以任意姿态到达的点集。
- 灵巧工作空间: 末端能以一定范围内的姿态到达的点集(介于两者之间)。
3.4.2 蒙特卡洛法求工作空间
实际工程中,最常用的方法是蒙特卡洛法。步骤很简单:
- 在关节范围内随机采样N组关节角(N一般取10000~50000)。
- 对每组关节角做正解,得到末端位置。
- 把所有位置点画出来,就是工作空间的点云图。
3.4.3 影响工作空间的因素
| 因素 | 影响 |
|---|---|
| 连杆长度 | 越长,工作空间越大,但精度和刚度下降 |
| 关节限位 | 限位越宽,工作空间越大,但可能产生奇异位形 |
| 构型 | 关节型臂工作空间是球壳状,SCARA是圆柱状 |
| 奇异位形 | 在工作空间边界附近,逆解困难,速度骤降 |