首先感谢古月居转载我的文章,但是本文有很多乱码和不清晰的地方影响阅读体验,如果对本文感兴趣,欢迎大家去看我的知乎原帖,同时欢迎留言讨论!
目录链接放在下方,学习过程中会逐步更新
现代机器人:力学,规划,控制(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)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平台或其他闭链机器人。
在URDF文件中,描述机器人的参数为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的碰撞属性
这样,一个机器人<robot>,就由一系列<link>和<joint>组成,这里随手写一个URBF文件的框架,不全:
总结一下:
URDF是机器人操作系统和其他软件使用的一种文件格式,用于表示一般开链机器人机构(包括串行链)的运动学、惯性属性、几何属性和其他信息。URDF文件包括连接父连杆和子连杆的关节描述,描述机器人的运动学,以及记录了其惯性属性的连杆。
评论(0)
您还未登录,请登录后发表或查看评论