首先感谢古月居转载我的文章,但是本文有很多乱码和不清晰的地方影响阅读体验,如果对本文感兴趣,欢迎大家去看我的知乎原帖,同时欢迎留言讨论!


目录链接放在下方,学习过程中会逐步更新

现代机器人:力学,规划,控制(chapter1) - Mr.Bo的文章 --- https://www.guyuehome.com/author/60fa658fe2861

写在开头:前面几帖的基础知识还是很重要,建议先去看看第三章的几帖。


本章进入正儿八经的机器人运动问题,前面几章的基础知识比较重要

首先介绍什么是机器人正运动学:

机器人的正运动学是指根据关节坐标θ计算其末端执行器坐标系的位置和姿态。

下图是一个3R平面开链的正运动学问题:

各连杆的长度分别为 [公式] ,定系 [公式] 在基座位置,动系 [公式] 位于第三根连杆的末端,那么末端执行器的坐标可以表示为:

使用上面的描述方法显然连杆和关节数变多时会十分复杂,因此我们在连杆上附加坐标系,例如图中的 [公式] ,此时这个开链机械臂的正运动学方程就可以用转换矩阵T来描述:

[公式]式中:

[公式]


[公式]

除此之外,还有另外一种表示方法:

如果所有连杆的角度均为0,那么坐标系4的位置就可以表示为:

[公式]

再假设每一个关节都是0螺距的screw axis,保持 [公式]  [公式] 为0,那么对于关节3现对于定系0的运动就用下面的表示来描述:

将上式写成矩阵,利用我们上一章学过的知识,就为:

那么连杆3转过任意角度[公式]就有:

[公式]

向前类推就有:

这样正运动学就表示为矩阵指数的乘积。

那么用转换矩阵相乘表示末端执行器运动的就被称为Denavit–Hartenberg parameters,也就是D–H parameters,用矩阵指数乘积表示的,就被称为productof exponentials (PoE) formula。

其实写到这里本章的主线已经相当清晰,D-H parameters会在附录c中讨论,接下来就是对PoE formula的两种表示方式加以讨论,得到泛化的用于所有机器人的描述,同时也要对机器人的描述提出要求,这样方便结论的使用,同时有一个通用的框架。

要使用PoE formula,只需要规定好定系s的位置,末端执行器的动系为b,在所有关节角度为0时的初始位置记为M,这样我们去描述一个n关节机器人的运动时,用 [公式] 来代表定系s, [公式] 表示构件i在关节i处的动系,同时在末端执行器上也定义一个动系 [公式] ,它相对于 [公式] 是固定的,这样可以更好的描述末端执行器的有关量,当然在某些情况下 [公式]  [公式] 是重合的。

图1 n关节开链机器人示意图

介绍完坐标系的定义,接下来讨论两种情况:

(1)Screw Axes in the Base Frame

(2)Screw Axes in the End-effector Frame

其实(1)就是在定系中对末端执行器进行描述,(2)就是末端执行器动系中的量描述机器人运动,本质上还是两个坐标系互相看这样一个关系。

那么对应(1)的就是PoE公式的space form:

式中 [公式]  [公式] 就是各个关节转动的角度,M是各关节初始角度为0时末端执行器的位置,这个公式可以理解为你把自己当定系,然后看机器人的末端执行器相对于你的运动。

那么,如果现在你站在机器人的末端执行器上,你看到的定系的运动又会是什么样的呢?这种情况对应的就是(2),即PoE公式的body form,在这里想必大家都发现了,这其实就是坐标系变换了而已,因此只需要利用我们第三章中的结论对(1)中的公式做处理即可:

这里回顾一下第三章的结论:

如果 [公式] ,那么 [公式] ,那么对于 [公式] ,再处理一下就表示为 [公式] ,现在套用这个结论在(1)中,就可以得到:

式中 [公式] 也就是 [公式] ,根据第三章对伴随表示的探讨,其实这里的物理意义就很明显了。

这样PoE公式就介绍完毕,下面介绍机器人的Universal Robot Description Format(URDF),Robot Operating System (ROS)可以使用URDF 文件中的xml格式来描述机器人的运动学,惯性参数还有几何参数,ROS会为URDF文件提供解析器。

注意,URDF文件可以表示任何开链的机器人,不能描述如Stewart平台或其他闭链机器人。

图2 一个5连杆机器人示意图,节点是link,树枝是joint

在URDF文件中,描述机器人的参数为joint(关节)和link(连杆):

它们的关系可以看这张图:

图3 joint和link关系

joint连接parent link和child link,用来描述机器人关节的运动学和动力学,对关节运动提供位置和速度限制,在xml文件中它包含:

<calibration>: 关节的绝对位置

<dynamics>:描述关节的物理属性,如阻尼,摩擦等

<limit>:关节运动的极限,如空间上下限,速度限制,力、力矩限制等

<mimic>:描述关节与关节之间关系

<safety_controller>:描述安全控制器参数

link则定义了机器人的尺寸(size),颜色(color),形状(shape),惯性矩阵(inertial matrix),碰撞参数(collision properties)等等,在xml文件中有:

<visual> :描述机器人link部分的外观参数

<inertial>:描述link的惯性参数

<collision>:描述link的碰撞属性

图4 link图

这样,一个机器人<robot>,就由一系列<link>和<joint>组成,这里随手写一个URBF文件的框架,不全:

总结一下:

URDF是机器人操作系统和其他软件使用的一种文件格式,用于表示一般开链机器人机构(包括串行链)的运动学、惯性属性、几何属性和其他信息。URDF文件包括连接父连杆和子连杆的关节描述,描述机器人的运动学,以及记录了其惯性属性的连杆。