1. 抽象类

几个点:

(1)KDL求解运动链的正逆运动学

(2)KDL的基于抽象类层层继承和实现

(3)抽象类SolverI,派生出求解正逆运动学位置和速度的四个抽象类

从抽象类变成普通类,正运动学有2个具体类,逆运动学有7个具体类,雅克比有2个具体类

2. 运动学

虽然KDL提供了电机运动学(减速比)和动力学(电机MCK),但是一般还是仅考虑从关节空间到笛卡尔空间的正逆运动学,不考虑驱动空间

3. 正运动学

JntToCart方法:求解关节空间到某一个(些)segment笛卡尔空间的正运动学(位置或速度)

注意:关节位置类和关节速度类的定义

以PUMA560为例,介绍正运动学的求解,注意segmentNr参数,代表segment的编号

4. 逆运动学

注意两个抽象类的方法:末端位姿(速度)到关节角度(速度)

逆解:解析解(几何法和代数法)与数值法,KDL使用数值法求逆解

注意多解的处理

数值法的选择:

(1)位置求解有3种(Levenberg Marquardt,Newton Raphson迭代法,Newton Raphson迭代法(关节限位))

(2)速度求解有4种(SVD分解及其优化)

位置求逆解,一般采用Levenberg Marquardt法

速度求逆解,一般是求解雅克比矩阵(KDL中求解空间雅克比)

然后对Jacobi求逆解做一些优化

Reference

  1. https://orocos.org/wiki/Kinematic_and_Dynamic_Solvers.html
  2. https://blog.csdn.net/u014170067/article/details/83119306?spm=1001.2014.3001.5501
  3.  https://blog.csdn.net/gpeng832/article/details/56296495?spm=1001.2014.3001.5501
  4. 林沛群. 机器人学. 国立台湾大学