机器人学中的旋转矩阵怎么理解?-机器人旋转矩阵公式是什么

2023-08-28 00:47:25

 

旋转矩阵是用来描述三维空间中两个不同笛卡尔坐标系之间姿态(不含位置)关系的一个3×3矩阵。

1.矢量与坐标

我们常常用矢量 vv 来描述一个物体的线速度,矢量是一个抽象概念,要让计算机处理矢量,就需要将矢量用相应的坐标来表示。要找到矢量的坐标,必须先选定一个坐标系,在三维空间下,若我们选取一个符合右手法则的笛卡尔坐标系,那么对于矢量 vv 就有:v=uex+vey+wezv=ue_{x}+ve_{y}+we_{z},其中 ex,ey,eze_{x},e_{y},e_{z} 是三维空间中的一组基(准确说应该是一组标准正交基),该坐标系可以用原点 OO 和这组基 ex,ey,eze_{x},e_{y},e_{z} 唯一确定。在该坐标系下,矢量 vv 对应的坐标由三个实数 u,v,wu,v,w 表示,为与矢量区分记作 v¯=[u,v,w]T\bar{v}=[u,v,w]^T .

所以连接矢量与坐标的桥梁就是坐标系(或者说是一组基),然而坐标系的选取是不唯一的,所以与矢量对应的坐标也是不唯一的,同一个矢量在不同坐标系 {A}\{A\}{B}\{B\} 下对应不同的坐标 Av¯\ ^A \bar{v}Bv¯\ ^B \bar{v} 。虽然坐标系不同,坐标就会不同,但它们表示的都是同一个矢量,所以不同坐标之间是有一定关系的,也就是说可以找到 Av¯\ ^A \bar{v}Bv¯\ ^B \bar{v} 等表达同一矢量的不同坐标之间的关系,而旋转矩阵 BAR\ _{B}^{A}R 就能完成这一任务: Av¯=BARBv¯\ ^A \bar{v}=\ _{B}^{A}R\ ^B \bar{v}

注:1)由于题主是看过《机器人学导论》的,这里就沿用该书中上下角标等符号规则;

2)由于问题是旋转矩阵,故不讨论不同坐标系坐标原点不重合的情况,只讨论如下图所示的坐标原点重合的两个坐标系之间的姿态关系。

2.旋转矩阵 BAR\ _{B}^{A}R

当只讨论坐标系姿态不同时,坐标与坐标系的一组基的线性组合就是矢量:

v=[exAeyAezA]Av¯v=[e_{x}^A\ e_{y}^A\ e_{z}^A]\ ^A \bar{v}

v=[exBeyBezB]Bv¯v=[e_{x}^B\ e_{y}^B\ e_{z}^B]\ ^B \bar{v}

⇒v=[exAeyAezA]Av¯=[exBeyBezB]Bv¯\Rightarrow v=[e_{x}^A\ e_{y}^A\ e_{z}^A]\ ^A \bar{v}=[e_{x}^B\ e_{y}^B\ e_{z}^B]\ ^B \bar{v}

⇒Av¯=[exAeyAezA]−1[exBeyBezB]Bv¯\Rightarrow \ ^A \bar{v}=[e_{x}^A\ e_{y}^A\ e_{z}^A]^{-1}[e_{x}^B\ e_{y}^B\ e_{z}^B]\ ^B \bar{v}

⇒Av¯=[exAeyAezA]T[exBeyBezB]Bv¯\Rightarrow \ ^A \bar{v}=[e_{x}^A\ e_{y}^A\ e_{z}^A]^T[e_{x}^B\ e_{y}^B\ e_{z}^B]\ ^B \bar{v}

⇒BAR=[exAeyAezA]T[exBeyBezB]\Rightarrow \ _{B}^{A}R=[e_{x}^A\ e_{y}^A\ e_{z}^A]^T[e_{x}^B\ e_{y}^B\ e_{z}^B]

显然,相对于A坐标系的旋转变换矩阵其实就是B坐标系的一组基在A坐标系基上的投影,因此可以记作 BAR=[Ae¯xBAe¯yBAe¯zB] \ _{B}^{A}R=[\ ^A\bar{e}_{x}^B\ \ ^A\bar{e}_{y}^B\ \ ^A\bar{e}_{z}^B] , Ae¯xB\ ^A\bar{e}_{x}^B 表示B坐标系的 xx 轴在A坐标系中的坐标。具体的例子就不举了,你可以假设B坐标系相对于A坐标系的z轴旋转了90°,画张图结合上式验证一下。

3.多说几句

旋转矩阵有九个元素,但这九个元素不是线性独立的。所以描述三维空间中的两个笛卡尔坐标系之间的姿态关系,除了旋转矩阵 BAR \ _{B}^{A}R ,还有别的方法。

1)一个旋转轴+一个角度。绕A坐标系中的旋转轴 ω\omega 旋转 θ\theta 就能得到B坐标系。与旋转矩阵之间的关系可以应用Rodrigues公式:

BAR=R(ω,θ)=I3×3+S(ω)sinθ+S(ω)2(1−cosθ) \ _{B}^{A}R=R(\omega,\theta)=I_{3\times3}+S(\omega)sin\theta +S(\omega)^2(1-cos\theta)

BAR=R(ω,θ)=cosθI3×3+S(ω)sinθ+ωωT(1−cosθ) \ _{B}^{A}R=R(\omega,\theta)=cos\theta I_{3\times3}+S(\omega)sin\theta +\omega \omega^T(1-cos\theta)

2)欧拉角。(24种)

3)四元数


以上就是关于《机器人学中的旋转矩阵怎么理解?-机器人旋转矩阵公式是什么》的全部内容,本文网址:https://www.7ca.cn/baike/71981.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明

排行榜