刚体运动和坐标变换-1

刚体运动和坐标变换-1

基础代数

外积

\bf a\bf b 两个向量的外积代表一个垂直这两个向量的向量,大小为 \bf |a||b|\sin\langle a, b\rangle
\textbf{a} \times \textbf{b} = \begin{Vmatrix} e_1 & e_2 & e_3\\ a_1 & a_2 & a_3\\ b_1 & b_2 & b_3 \end{Vmatrix} = \begin{bmatrix} a_2b_3 -a_3b_2\\ a_3b_1 -a_1b_3\\ a_1b_2 -a_2b_1 \end{bmatrix} = \begin{bmatrix} 0 & -a_3 & a_2\\ a_3 & 0 & -a_1\\ -a_2 & a_1 & 0 \end{bmatrix} \textbf{b} = \textbf{a}^\wedge \textbf{b}
其中, e_i 是互相正交的基底向量。

我们可以将外积的形式写成矩阵乘以向量的形式,即:a的反对称矩阵左乘b

反对称矩阵A ,满足A^T = -A

欧式变换

两个坐标系之间的变换,可以被解释成旋转加上平移。

旋转矩阵 :旋转矩阵可以表示向量的旋转,其本质是两个坐标系基底之间的内积构成的矩阵
SO(n) = \{R\in \mathbb{R}^{n\times n}\vert RR^T=I, \det(R) = 1\}
SO(n) 是特殊正交群, 这个集合包含所有n维的旋转矩阵,行列式为1,并且都是正交矩阵。

正交矩阵,即 A^{-1} = A^T

平移可以用一个向量 \bf t 来表示

整个欧式变换,可以理解成:
\textbf a' = R\textbf a + \textbf t
齐次坐标和变换矩阵

为了将平移和旋转融合成一个式子,我们将欧式变换写成如下形式:
\begin{bmatrix} R & \bf t\\ 0 & 1 \end{bmatrix} \begin{bmatrix} \bf a\\ 1 \end{bmatrix} = T\begin{bmatrix} \bf a\\ 1 \end{bmatrix} = \begin{bmatrix} \bf a'\\ 1 \end{bmatrix}
其中,我们扩展了向量 \bf a 变成四维,称之为 齐次坐标,矩阵 T 称之为 变换矩阵

同样的,变换矩阵构成的集合,称之为 特殊欧式群
SE(n) = \Bigg \{T = \begin{bmatrix} R & \bf t\\ 0 & 1 \end{bmatrix} \in \mathbb R^{4\times 4} \vert R\in SO(3), \textbf t \in \mathbb R^3 \Bigg \}
变换矩阵的逆,也可以简单求出,即:
T^{-1} =\begin{bmatrix} R^T & -R^T\bf t\\ 0 & 1 \end{bmatrix}
Rodrigues's Formula

Rodrigues's Formula 是将旋转矩阵 R, 变换成旋转轴 \textbf n \in \mathbb R^{3} 和旋转角 \theta 的形式:
R = (\cos\theta) \textbf I + (1 - \cos \theta)\textbf n\textbf n^T + (\sin\theta) \textbf n^{\wedge }
更进一步地,我们可以使用旋转矩阵的迹,来计算旋转角:
\tr(R) = 3\cos \theta + (1-\cos\theta) = 2\cos\theta + 1\\ \theta = \arccos(\frac{\tr(R) - 1}{2})

四元数

旋转矩阵用9个变量来描述三个自由度的旋转,具有冗余性,由于我们找不到无歧义的三维旋转表示,我们引入四元素来进行旋转的表示

注意到复数的乘法,表示复平面上的旋转,比如我们对复向量乘一个虚数 i,就等于逆时针旋转90度。

比如,对于复数向量 v = a + 0i, 代表实数轴上的一个向量

v\cdot i = 0+ ai, 代表虚轴正方向的一个向量,即逆时针旋转90度

四元数可以表示为,一个实部 + 三个虚部:
q = q_0 + q_1\textbf i + q_2\textbf j + q_3 \textbf k
三个虚部满足:
\textbf i^2 =\textbf j^2=\textbf k^2=-1\\ \textbf i \textbf j = \textbf k, \textbf j \textbf i =-\textbf k\\ \textbf j \textbf k = \textbf i, \textbf k \textbf j = -\textbf i\\ \textbf k \textbf i =\textbf j, \textbf i \textbf k = -\textbf j
我们可以将四元数记作实部和虚部的向量表示,即:
\textbf q = [s, \textbf v]^T

四元数的运算

不妨记, \textbf q_a = [s_a, \textbf v_a]^T, \textbf q_b = [s_b, \textbf v_b]^T

其中, \textbf v_a =x_a\textbf i + y_a \textbf j + z_a \textbf k, \textbf v_b = x_b\textbf i + y_b \textbf j + z_b \textbf k

  • 加减法:\textbf q_a \pm \textbf q_b = [s_a\pm s_b, \textbf v_a\pm \textbf v_b]^T
  • 乘法: \textbf q_a \textbf q_b = [s_as_b - \textbf v_a^T\textbf v_b, s_a \textbf v_b + s_b \textbf v_a + \textbf v_a\times \textbf v_b]
  • 模长: \Vert \textbf q_a \Vert =\sqrt{s_a^2 + x_a^2 + y_a^2 + z_a^2}
  • 共轭:q_a^* = [s_a, -\textbf v_a ]^T
  • 逆:q_a^{-1} = q_a^* / \Vert q_a\Vert^2

用四元数表示旋转

假设有一个三维空间点 \textbf p = [x,y,z]\in \mathbb R^3, 和一个单位四元数 \textbf q 指定的旋转,记旋转后的点为 \textbf p',我们有矩阵描述:
\textbf p' = R\textbf p
我们将三维空间点,记成一个虚四元数,即:
\textbf p = [0, x, y, z]^T = [0, \textbf v]^T
则旋转后的点,可以被表示成:
\textbf p' = \textbf q\textbf p\textbf q^{-1}
这个点也是一个虚四元数

Proof:

假设旋转四元数为 \textbf q = [s, a, b, c]^T = [s, \textbf v_q], 可得
\textbf q^{-1} = [s, -a, -b, -c]^T \cdot \frac{1}{s^2 + a^2 + b^2 + c^2}
从而:
\begin{aligned} \textbf q\textbf p\textbf q^{-1} & = [-\textbf v^T\textbf v_q, s\textbf v + \textbf v\times \textbf v_q]\cdot \frac{\textbf q^*}{\Vert \textbf q\Vert^2}\\ & =[-\textbf v^T\textbf v_q, s\textbf v + \textbf v\times \textbf v_q]\cdot [s, -\textbf v_q]\cdot \frac{1}{\Vert \textbf q\Vert^2}\\ & = [-\textbf v^T\textbf v_qs - (s\textbf v + \textbf v\times \textbf v_q)^T (-\textbf v_q), \cdots]\cdot \frac{1}{\Vert \textbf q\Vert^2} \end{aligned}
注意到, \textbf v \times \textbf v_q 的结果是和 \textbf v 以及 \textbf v_q 都垂直,所以 \textbf v\times \textbf v_q \times -\textbf v_q = 0
-\textbf v^T\textbf v_q s - s\textbf v^T (-\textbf v_q) = 0

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容