Problem
使用雅克比矩阵可以通过关节速度,得到EE的速度和角速度。如果雅克比矩阵是方阵且满稚可逆,这时,可以通过EE的线速度和角速度求出关节的速度。
以上是比较理想的情况。
但是,实际情况,往往有很多奇异构型的机器人,7DOF或者是6DOF但是雅克比矩阵不满稚的机器人。
这些问题,可以粗略分为两类:
- 雅克比矩阵不是方阵
- 雅克比矩阵是方阵但不满稚,不可逆
Solution
1. 雅克比矩阵不是方阵
这种情况,可以使用广义逆的方法来进行求解。具体可以查看参考文献里面的第一篇文章。很详细的介绍了。
2. 雅克比矩阵是方阵但不满稚,不可逆
第二种就需要应用一种叫阻尼最小二乘法/渐消最小二乘法的方法,核心是引入一个因子 λ \lambda λ, 它是一个大于零且通常比较小的因子。引入后的伪逆公式如下:
J ∗ = J T ( J J T + λ I ) − 1 J^*=J^T(JJ^T+\lambda I)^{-1} J∗=JT(JJT+λI)−1
其中, I I I是单位矩阵。
上述方法,亲测可行,就是求出的解不是完全准确的,有一定的偏差,毕竟是通过最小二乘法得来的。测试的数据还不是很多,可能会有些地方出问题也说不准,有遇到的话,之后再补充。更详细的资料可以查看一下第二篇参考文献,作者很用心,还配了图。点赞
Reference
- 机器人正运动学—雅克比矩阵伪逆:
https://www.guyuehome.com/19829 - 机器人正运动学—可操作性:
https://www.guyuehome.com/22081 - 机器人的微分运动学:
https://zhuanlan.zhihu.com/p/148726045 - 伪逆矩阵的意义及求法?:
https://www.zhihu.com/question/47688307 - 广义逆阵:
https://zh.wikipedia.org/wiki/%E5%B9%BF%E4%B9%89%E9%80%86%E9%98%B5