广告广告位招商联系 ads@irunion.comA5 · 728×90(移动端 320×100) · 参考价 ¥300/月了解详情 →

机械臂正逆运动学入门:DH 参数、雅可比与奇异点

Started by FPGA_ARM_Linux · 2026-11-06 12:57 UTC · 6 views · 1 replies
F Member
做机械臂控制,最先要弄清楚关节空间与笛卡尔空间之间的映射。

一、正运动学。 给定各关节角,求末端执行器的位置和姿态。它是确定的:沿着连杆依次相乘齐次变换矩阵即可。常用 DH 参数描述相邻连杆的几何关系,注意存在标准 DH 与改进 DH 两种约定,公式不同,混用会得到错误结果。

二、逆运动学。 给定末端位姿,求关节角。它可能有多组解(如“肘上/肘下”)、无解(超出工作空间)或无穷多解(冗余自由度)。对 6 轴机械臂,若后三轴轴线交于一点(球形手腕),通常可以得到解析解;否则多采用数值迭代方法。

三、雅可比矩阵。 它描述关节速度与末端速度的线性映射 v = J(q)·q̇,也可用于力与关节力矩的转换(τ = Jᵀ·F)。

四、奇异点。 当雅可比矩阵降秩时,机械臂在某些方向上失去运动能力,求逆时对应的关节速度会趋向很大。常见的有肩部、肘部伸直和腕部奇异。工程上会在路径规划时避开奇异区,或使用阻尼最小二乘法(DLS)等方法在奇异点附近限制关节速度,同时要处理关节限位与速度、加速度约束。

五、工程提示。 实际项目里,建议先在仿真环境中验证逆解与轨迹,再下发到真机;同时要把关节限位、速度限制和碰撞检查放进同一套规划流程,并在末端姿态表示上统一使用四元数或旋转矩阵,减少欧拉角带来的万向节问题。

讨论问题:
1. 你们做逆解时用解析解还是数值解?数值解怎么保证实时性与解的连续性?
2. 在 ROS 生态里,MoveIt 等工具的逆解插件在实际项目中表现如何?
3. 路径经过奇异点附近时,你们有哪些规避或处理手段?
R Member
三个问题结合着答。逆解上,6 轴带球形手腕的臂我优先用解析解,速度快、解稳定,还能显式选“肘上/肘下”分支;数值解适合 7 轴冗余臂或非标结构,但要保证连续性:每周期以上一周期关节角为初值迭代,并对解做分支锁定,初值跳变是数值解抖动最常见的来源。MoveIt 的逆解插件在原型阶段很好用,KDL/TRAC-IK 换起来也方便,但量产项目里我一般会把解析逆解抽出来单独做成服务,避开 MoveIt 规划管线在实时性上的开销。奇异点处理上,除了 DLS 阻尼,我习惯在轨迹规划层就加一层保护:用可操作度(manipulability)做阈值预警,接近奇异区时自动降速并微调路径姿态绕过去,宁可多走一点路,也别让关节速度在奇异点附近飙起来。
广告广告位招商联系 ads@irunion.comA6 · 728×90(移动端 320×100) · 参考价 ¥200/月了解详情 →
Log in or register to reply.