2. 运动学基础:正逆运动学快速回顾,DH参数对避障路径的影响
做机械臂避障,绕不开运动学。说白了,你得知道机器人“能到哪里”和“怎么到那里”。
我见过不少新手,一上来就调避障参数,结果路径规划总失败。为什么?因为运动学模型就没建对。你想想看,连末端位置都算不准,避什么障?
这一章,我们快速回顾正逆运动学,重点聊聊DH参数——这个看似枯燥的参数表,其实直接影响你的避障路径质量。
2.1 正运动学:从关节空间到笛卡尔空间
正运动学很简单:给定一组关节角度,算出末端执行器的位置和姿态。
公式长这样:
T = A1 * A2 * A3 * ... * An
每个A_i就是相邻两个连杆的变换矩阵。把所有矩阵乘起来,就得到了末端位姿。
我个人习惯用标准DH法。为什么?因为参数定义清晰,不容易搞混。来看一下DH参数的四个核心量:
| 参数 | 符号 | 物理含义 | 对避障的影响 |
|---|---|---|---|
| 连杆长度 | ai-1 | zi-1到zi沿xi-1的距离 | 决定工作空间大小,影响可达区域 |
| 连杆扭角 | αi-1 | zi-1到zi绕xi-1的转角 | 影响姿态变化率,奇异性位置 |
| 连杆偏距 | di | xi-1到xi沿zi的距离 | 影响关节偏移,避障时的冗余自由度 |
| 关节角 | θi | xi-1到xi绕zi的转角 | 直接控制变量,路径规划的核心 |
2.2 逆运动学:从笛卡尔空间回到关节空间
逆运动学就麻烦多了。给定末端位姿,求关节角度。这是个多解问题,有时候还没解。
常用的方法有:
- 解析法:适合特定构型,比如6轴球腕机器人。速度快,能拿到所有解。
- 数值法:通用性强,但迭代慢,可能陷入局部最优。
- 几何法:直观,适合简单构型,比如2轴、3轴平面臂。
避障时,我建议优先用解析法。为什么?因为你能拿到所有可能的关节构型,然后从中选一个不撞的。
避障路径规划的核心思路:
在笛卡尔空间规划路径 → 用逆运动学映射到关节空间 → 在关节空间做碰撞检测 → 调整路径或选不同解
2.3 DH参数对避障路径的影响
你可能觉得DH参数就是个建模工具,跟避障没关系。其实关系大了去了。
第一,DH参数决定工作空间形状。
a和d的值直接决定了机械臂能伸多远、能弯多大角度。如果工作空间本身就有空洞,那避障路径规划器再怎么调也没用。
第二,DH参数影响奇异性分布。
奇异性位置附近,逆运动学不稳定,关节速度会突变。避障路径一旦经过奇异点,轻则抖动,重则报错。
第三,DH参数影响冗余自由度利用。
对于7轴臂,多出来的自由度可以用来避障。但前提是DH参数建得准,冗余运动学模型正确。
2.4 知识体系:运动学与避障的关系
下面这张图,是我自己总结的运动学与避障路径规划的关系框架。你看一眼,心里就有谱了。
2.5 实战:快速验证你的DH参数
光说不练假把式。我教你一个快速验证DH参数的方法。
- 画坐标系:在纸上画出每个关节的坐标系,标出z轴和x轴方向。
- 填参数表:按标准DH或改进DH,逐行填写a、α、d、θ。
- 仿真验证:用Python或MATLAB,给一组随机关节角,算末端位姿。
- 交叉检查:换一组关节角,看末端运动是否合理。
- 真机测试:让机械臂走几个简单路径,看实际位置和计算位置是否一致。
2.6 避障路径规划中的运动学选择
实际做避障时,你需要在笛卡尔空间和关节空间之间来回切换。我的建议是:
- 笛卡尔空间规划:适合直线路径、圆弧路径。直观,但需要频繁调用逆运动学。
- 关节空间规划:适合点到点运动。计算快,但路径不可控,容易撞。
- 混合规划:先笛卡尔规划关键路径点,再关节空间插值。兼顾可控性和效率。
嗯,这里要注意:笛卡尔空间规划时,逆运动学求解一定要处理多解问题。我一般会按“最小关节变化”原则选解,但如果那个解会撞,就换一个。