现代机器人:力学,规划,控制(chapter3 Ⅱ)

发布时间: 2021-07-14 17:27:24 来源: 励志妙语 栏目: 读后感 点击: 98

目录链接放在下方,学习过程中会逐步更新现代机器人:力学,规划,控制读书笔记(chapter1)-Mr.Bo的文章-知乎...

现代机器人:力学,规划,控制(chapter3 Ⅱ)

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

现代机器人:力学,规划,控制读书笔记(chapter1) - Mr.Bo的文章 - 知乎 https://zhuanlan.zhihu.com/p/369236960

上一帖链接:

现代机器人:力学,规划,控制(chapter3 Ⅰ) - Mr.Bo的文章 - 知乎 https://zhuanlan.zhihu.com/p/369361857


接上一帖,我们已经介绍完了旋转矩阵和角速度的相关知识,接下来我们来看旋转的另一种表示方法,指数坐标(Exponential Coordinate )。

那么指数坐标(Exponential Coordinate )的作用是什么呢,这里依旧用原书给出的定义:

The exponential coordinates parametrize a rotation matrix in terms of a rotation axis (represented by a unit vector hat omega ) and an angle of rotation θ about that axis; the vector hatomegathetain R^3 then serves as the three-parameter exponential coordinate representation of the rotation.

用指数坐标 hatomegatheta 来描述旋转矩阵R可以这样解释:

(1)如果定系s绕 hatomega 轴旋转θ,新的位置相对于定系将由旋转矩阵R表达

另外两个描述一时想不出如何好的翻译,就先贴在这里,有知道的大佬欢迎来评论区讨论啊

(2)the angular velocity hatomegatheta expressed in {s} such that, if a frame initially coincident with {s} followed hatomegatheta for one unit of time (i.e., hatomegatheta is integrated over this time interval), its final orientation would be expressed by R.

(3)the angular velocity hatomega expressed in {s} such that, if a frame initially coincident with {s} followed hatomega for θ units of time (i.e., θ is integrated over this time interval) its final orientation would be expressed by R.

之后继续来讨论一下需要的基础知识,线性微分方程的一些内容:

有这样的一个方程,初始条件为 x(0)=x_0

 dot {x(t)}=ax(t),x(t)in R,ain R  is  a  const

根据高等数学的知识,我们知道这个方程的解为:

x(t)=e^{at}x_0

这时候,如来神展就要发功了,利用 e^x 的麦克劳林级数,有:

e^{at}=1+at+frac{{at}^2}{2!}+frac{{at}^3}{3!}+.......

进阶,现在换成向量微分方程,初始条件不变:

 dot {x(t)}=Ax(t),x(t)in R^n,Ain R^{ntimes n}  is  a  const

这个方程的解为:

x(t)=e^{At}x_0

根据矩阵分析中的知识

e^{At}=I+At+frac{{At}^2}{2!}+frac{{At}^3}{3!}+.......

可以证明,如果A是常数且有限,那么这个级数总是保证收敛,具体请看矩阵分析相关的书。

继续,对于 ABnot=BA 的任意方阵A和B,下式总是成立:

Ae^{At}=e^{At}A

如果: A=PDP^{-1},Din R^{ntimes n},Pin R^{ntimes n}

那么:

如果D是一个对角阵,那么结果将非常好计算。

推导了这么半天,总结一下:

向量微分方程  dot {x(t)}=Ax(t),x(t)in R^n,Ain R^{ntimes n}  is  a  const,在初始条件为 x(0)=x_0 时,解为 x(t)=e^{At}x_0 ,式中:

e^{At}=I+At+frac{{At}^2}{2!}+frac{{At}^3}{3!}+.......

矩阵指数 e^{At} 有如下性质:

这样,热身工作结束,接下来进入旋转指数坐标

旋转指数坐标可以看成:

(1)绕某轴 hatomegahatomegain R^3,{||hatomega||=1} )旋转 thetain R

(2)将(1)中两者相乘形成的三维向量 hatomegathetain R^3

如下图所示,向量p(0)绕轴经过时间t旋转θ为 p(theta)

根据我们之前的结论,这样p(t)矢量末端的线速度 dot p 可以表示为:

 dot p=hatomegatimes p=left[hatomegaright]p

这个式子和我们之前介绍的向量微分方程如出一辙,因此它的解为:

p(t)=e^{left[hatomegaright]t}p(0)

那意味着p(0)绕轴旋转后的新位置为:

p(theta)=e^{left[hatomegaright]theta}p(0)

接着我们进一步展开这个式子,由于 left[hatomegaright] 是斜对称阵,运算一下就有 left[hatomegaright]^3=-left[hatomegaright] left[hatomegaright]^4=-left[hatomegaright]^2 left[hatomegaright]^5=-left[hatomegaright]^3

这样:

继续化简,可以看出括号内正好和sin和cos的麦克劳林级数有联系:

这样就有了下面这个描述:

对于一个向量 hatomegathetain R^3theta 是任意标量, hatomega 是单位向量, left[hatomegaright]theta=left[hatomegathetaright]in SO(3) , 绕轴hatomegain R^3,{||hatomega||=1} 旋转 theta 的旋转矩阵就可以写成:

上式就是著名的Rodrigues’formula。

通过这种方式,我们就可以很方便的完成旋转操作。比如我们要对3x3的矩阵B进行旋转,那么 e^{left[hatomegaright]theta}B 表示在定系中绕 hatomega 轴旋转θ, Be^{left[hatomegaright]theta} 表示在动系中绕 hatomega 轴旋转θ。

纯理论是不是过于抽象,这里我们举个例子:

图中定系s绕 hatomega=(0,0.866,0.5) 旋转30°,那么旋转矩阵就可以表示为:

假设定系s的矩阵是单位阵I,那么转动后的新位置就是R,注意角度不同,旋转后的位置不一致。

接下来进一步进行讨论:

如果 hatomegathetain R^3 表示旋转矩阵R的指数坐标,那么斜对称阵 {left[hatomegaright]theta} 就是旋转矩阵R的矩阵对数(matrix logarithm)。通过这种方式,就在旋转矩阵和向量之间搭建了桥梁:

旋转矩阵表示为:

 R=left[begin{array}{ccc} r_{11} & r_{12} & r_{13}  r_{21} & r_{22} & r_{23}  r_{31} & r_{32} & r_{33} end{array}right]

为了推导矩阵对数,我们先将Rodrigues’formula展开:

式中, hat{omega}=left(hat{omega}_{1}, hat{omega}_{2}, hat{omega}_{3}right)cθ=cosθ,sθ=sinθ ,由于旋转矩阵是对称阵,对矩阵减去它的转置后我们可以得到:

上式中 sin(theta)not=0 ,就有:

上面解出的式子可以表示为斜对称阵:

由于 sintheta 的存在,这里得做出讨论:

sinthetanot=0 时,引入矩阵的迹:

因为 hat{omega}=left(hat{omega}_{1}, hat{omega}_{2}, hat{omega}_{3}right) 是单位向量,因此 hat{omega}_{1}^2+hat{omega}_{2}^2+hat{omega}_{3}^2=1 ,那么对于任意 theta满足 trR=1+2costhetasinthetanot=0 ,旋转矩阵R就可以用指数坐标 e^{left[hatomegaright]theta} 来描述,其中:

sintheta=0 时, theta=pm kpi,kin Z ,

当k为偶数时,这意味着已经绕轴转回了 R=I ,所以转轴 hat{omega}=left(hat{omega}_{1}, hat{omega}_{2}, hat{omega}_{3}right) 没有被定义。

当k为奇数时,旋转矩阵可以表示为:

继续运算就有:

由于旋转矩阵是对称阵,因此所有元素都计算完毕了。

到这里,矩阵对数的推导就结束了,总结一下:

对于给出的旋转矩阵 Rin SO(3) ,绕单位旋转轴 hat{omega}in R^3,{|hat{omega}|=1} 旋转一个角度 theta in[0,pi] ,向量 hatomegathetain R^3 表示旋转矩阵R的指数坐标,斜对称阵 {left[hatomegaright]theta}in so(3) 表示旋转矩阵R的矩阵对数(matrix logarithm )。

就有以下情况:

(1)如果 R=I ,意味着 theta =0 且旋转轴 hat{omega} 没有被定义

(2)如果 R=-1 ,意味着 theta =pi ,旋转轴 hat{omega} 的表示为下式三者任意一个:

(3)如果 theta =arccos(frac{1}{2}(trR-1))in[0,pi) ,那么:

满足上述三个条件中的一个,对于一个旋转矩阵R的指数坐标就存在一个矩阵对数。

接下来介绍刚体运动或齐次变换矩阵:

先来说明一些符号,刚体运动的矩阵用T来表示,转轴表示为S,指数坐标就为 Sthetain R^6 ,这样速度向量 V=Sdottheta ,动系b相对于定系s的转动用旋转矩阵 Rin SO(3) 来描述,动系b的原点相对于定系的位置用向量 pin R^3来描述,这样:

一个 special Euclidean group SE(3) ,被称为刚体运动或齐次变换矩阵,就写作下式:

它也可以写成这个形式 (R,p) ,这个在前面的文章中我们介绍过了,可以返回去看一下。

上面的式子是描述三维空间刚体运动的矩阵,那么刚体在二维平面的运动如何表示呢,其实定义方式一样:

一个 special Euclidean group SE(2) , Rin SO(2) , pin R^2 ,那么二维平面内刚体运动的矩阵就为:

 T=begin{bmatrix} R&p 0&1 end{bmatrix}= begin{bmatrix} r_{11}&r_{12}&p_{1} r_{21}&r_{22}&p_{2} 0&0&1 end{bmatrix}

常用的形式就是:

有了上面的矩阵,我们就可以描述刚体的运动,接下来对刚体运动矩阵的性质进行探究:

变换矩阵的逆矩阵为:

两个变换矩阵的乘积还是一个变换矩阵,但是矩阵乘法不满足交换律,因此:

T_1T_2not=T_2T_1

但是这里出现了一个问题,变换矩阵是4x4的,但是在坐标系里表达的向量x是1x3的,可以通过添1的方法把向量x扩展成4维的,和变换矩阵相乘就可以对向量x进行几何操作,如下式:

如果我们用向量坐标来描述刚体上的点,那么通过上式就能很好的描述刚体的运动。

对于变换矩阵T,它有着和旋转矩阵一致的性质,这里就不再赘述,矩阵内部值不同,代表的含义也不同,比如只旋转不平移的矩阵:

只平移不旋转的矩阵:

变换矩阵可以完成很多操作,个人感觉本书这里讲的不是很好,大家可以去看看图形变换的矩阵方法,相信会对变换矩阵有一个深入的了解。


写到这里,我么所需要的所有预备知识就介绍完毕了,接下来我们将讨论刚体运动的线速度,角速度组成的twist,力和力矩组成的wrench,这就需要开新帖了(应该是chapter3的最后一帖),链接如下:

现代机器人:力学,规划,控制(chapter3 Ⅲ) - Mr.Bo的文章 - 知乎 https://zhuanlan.zhihu.com/p/369718204

本文标题: 现代机器人:力学,规划,控制(chapter3 Ⅱ)
本文地址: http://www.lzmy123.com/duhougan/148592.html

如果认为本文对您有所帮助请赞助本站

支付宝扫一扫赞助微信扫一扫赞助

  • 支付宝扫一扫赞助
  • 微信扫一扫赞助
  • 支付宝先领红包再赞助
    声明:凡注明"本站原创"的所有文字图片等资料,版权均属励志妙语所有,欢迎转载,但务请注明出处。
    商君书读书笔记之-说“民”《通货膨胀如何欺诈股票投资者》主要观点
    Top