理解 SE3 变换矩阵
2024-10-09
julyfun
notes
数学基础
$"target" A "source" B$ 为 $R, t$ 的意义又称 parent A child B, A from B表示任意向量在 B 坐标系下的表示法 $v_B$ 和 A 下表示法 $v_A$ 满足 $v_A = R v_B + t$几何意义:表示 A 坐标系三轴在自身坐标系下先平移 $t$,然后新 $x$ 轴为 $R$ 的第一列向量(A 坐标系意义下),新 $y$ 轴为 $R$ 第二列向量,新 $z$ 轴为 $R$ 第三列向量变换矩阵乘法的意义$A <- B$ 表示 A from B 的变换$v_A = (A <- B) dot (B <- C) dot bold(v_C) = A <- C dot v_C$可以认为 A 到 C 三轴几何变换方式为先按照 $A <- B$ 平移 + 旋转,再按照 $B <- C$ 平移 + 旋转经过测试,四元数,欧拉角和旋转向量的几何意义均为从 $A$ 的旋转到 B 的三轴注意到 $(A <- B) dot (B <- C)$ 可理解为左边矩阵变换了右边矩阵的向量Example已知Unity 左手系下 world from A 变换为 M对所有左手系,定义附属右手系为...(一种变换)求 world 附属右手系 from A 附属右手系的变换事实上后来还求了 A1 附属右手系 from A2 附属右手系等解法$v = (t, q) = (x, y, z, w, x, y, z)$ 这是 world from target$q_"反 y 右手系, world from A" = v * (1, -1, 1, 1, -1, 1, -1)$world 和 A 都转为 y 轴相反的右手系看待了,此时几何变换平移向量不变,但表示法的 y 分量取反,但要保证旋转向量的大小和转向不变注意左手系旋转正方向是正方向看原点的顺时针注意到附属右手系几何上可以先绕自己 $y$ 轴旋转 90 读,再绕 z 轴旋转 -90 度得到 反 y 右手系return $M_"绕自己 y 转 90 度" * M_"绕自己 z 转 -90 度" * M_"反 y 右手系"