1. 运动学树

KDL用树形结构来表示机器人的机构

而现代机器人通常用URDF模型来描述机器人运动学,所以KDL官方在ROS例编写了一个功能包kdl_praser,提供了从URDF中的XML文件来构造KDL树的工具

而使用这个包也很简单,直接使用apt安装后,

(1) CMakeLists:find_package

(2) package.xml:依赖

(3) 头文件引用

使用算法有四种,可以参考文献2,这里给出最简单的从file中读取URDF

2. 运动学类

这里汇总了运动学类中需要了解的hpp头文件

首先是机器人的三级机构

(1)由关节和连杆组成的最小单元segment

(2)由segment组成的核心单元chain,chain也是后续求解运动学和动力学的单元

(3)由chain组成的最高单元tree

KDL可以克服URDF描述串联机器人的不足(但是,我感觉还是不好使)

3. Segment成员

Segment类中四个重要的成员变量:name, Joint, Frame和RigidBodyInertia

四个重要的坐标系:

(1)reference坐标系(输入坐标系,上一个segment的输出坐标系)

(2)joint坐标系(通常与reference坐标系重合)

(3)cog坐标系(reference坐标系原点平移到质心)

(4)tip坐标系(输出坐标系,下一个segment的输入坐标系)

比较重要的是:旋转轴axis和关节位姿joint_pose

注意:固定关节(例如:基座)也可以表达

Get函数:由于都是public成员变量,所以直接可以得到

注意:质量,质心和转动惯量

Frame一般采用DH参数来描述

4. Segment类

注意构造函数与Get函数

以及三个重要的方法:

5. Chain

注意构造函数与Get函数

6. Tree

注意构造函数与Get函数

注意Tree的遍历算法

Reference

  1. http://wiki.ros.org/kdl_parser/Tutorials/Start%20using%20the%20KDL%20parser
  2. http://wiki.ros.org/urdf/XML/model
  3.  https://blog.csdn.net/qq_27838307/article/details/80715277(Robotics Toolbox解读)
  4. https://orocos.org/wiki/main-page/kdl-wiki/user-manual/kinematic-trees/kinematic-trees-kdl-10x.html
  5.  林沛群. 机器人学. 国立台湾大学.