机器人导论-通过逆矩阵公式证明齐次变换矩阵的逆

通过逆矩阵公式证明齐次变换矩阵的逆

1. 变换矩阵的定义

设齐次变换矩阵 TTT 为:

T=nxoxaxPxnyoyayPynzozazPz0001=Rp0⊤1, T = \begin{bmatrix} n_x & o_x & a_x & P_x \\ n_y & o_y & a_y & P_y \\ n_z & o_z & a_z & P_z \\ 0 & 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} R & \mathbf{p} \\ \mathbf{0}^\top & 1 \end{bmatrix}, T= nxnynz0oxoyoz0axayaz0PxPyPz1 =R0⊤p1,

其中

R=noa=nxoxaxnyoyaynzozaz,p=PxPyPz. R = \begin{bmatrix} \mathbf{n} & \mathbf{o} & \mathbf{a} \end{bmatrix} = \begin{bmatrix} n_x & o_x & a_x \\ n_y & o_y & a_y \\ n_z & o_z & a_z \end{bmatrix}, \quad \mathbf{p} = \begin{bmatrix} P_x \\ P_y \\ P_z \end{bmatrix}. R=noa= nxnynzoxoyozaxayaz ,p= PxPyPz .

这里 RRR 是旋转矩阵,满足正交性 R−1=R⊤R^{-1} = R^\topR−1=R⊤ 且行列式 det⁡(R)=1\det(R) = 1det(R)=1。

2. 逆矩阵公式

利用逆矩阵公式:

T−1=1det⁡(T)adj⁡(T), T^{-1} = \frac{1}{\det(T)} \operatorname{adj}(T), T−1=det(T)1adj(T),

其中 adj⁡(T)\operatorname{adj}(T)adj(T) 是 TTT 的伴随矩阵(代数余子式矩阵的转置)。

3. 计算行列式 det⁡(T)\det(T)det(T)

按最后一行展开:

det⁡(T)=(−1)4+4⋅1⋅det⁡(R)=det⁡(R)=1. \det(T) = (-1)^{4+4} \cdot 1 \cdot \det(R) = \det(R) = 1. det(T)=(−1)4+4⋅1⋅det(R)=det(R)=1.

4. 计算伴随矩阵 adj⁡(T)\operatorname{adj}(T)adj(T)

伴随矩阵的元素定义为 adj⁡(T)ij=Cji\operatorname{adj}(T){ij} = C{ji}adj(T)ij=Cji,其中 Cji=(−1)j+iMjiC_{ji} = (-1)^{j+i} M_{ji}Cji=(−1)j+iMji,MjiM_{ji}Mji 是去掉第 jjj 行和第 iii 列后的子矩阵行列式。

4.1 计算 CjiC_{ji}Cji 对 i,j≤3i, j \leq 3i,j≤3

对于 i,j≤3i, j \leq 3i,j≤3,去掉第 jjj 行第 iii 列后,子矩阵包含行 1,2,3,41,2,3,41,2,3,4(除第 jjj 行)和列 1,2,3,41,2,3,41,2,3,4(除第 iii 列)。由于第 4 行元素为 0,0,0,10,0,0,10,0,0,1,按最后一行展开,得:

Mji=det⁡(剩余列的前三行)=Mji(R), M_{ji} = \det\left( \text{剩余列的前三行} \right) = M_{ji}^{(R)}, Mji=det(剩余列的前三行)=Mji(R),

其中 Mji(R)M_{ji}^{(R)}Mji(R) 是 RRR 去掉第 jjj 行第 iii 列的 2×22 \times 22×2 子式。故:

Cji=(−1)j+iMji(R)=Cji(R), C_{ji} = (-1)^{j+i} M_{ji}^{(R)} = C_{ji}^{(R)}, Cji=(−1)j+iMji(R)=Cji(R),

即 TTT 的代数余子式等于 RRR 的代数余子式。由于 RRR 正交且 det⁡(R)=1\det(R)=1det(R)=1,有 adj⁡(R)=R⊤\operatorname{adj}(R) = R^\topadj(R)=R⊤,即 Cji(R)=(R⊤)ijC_{ji}^{(R)} = (R^\top)_{ij}Cji(R)=(R⊤)ij。因此:

adj⁡(T)ij=Cji=(R⊤)ij,i,j≤3. \operatorname{adj}(T){ij} = C{ji} = (R^\top)_{ij}, \quad i,j \leq 3. adj(T)ij=Cji=(R⊤)ij,i,j≤3.

4.2 计算 C4iC_{4i}C4i 对 i=1,2,3i = 1,2,3i=1,2,3

C4i=(−1)4+iM4iC_{4i} = (-1)^{4+i} M_{4i}C4i=(−1)4+iM4i,其中 M4iM_{4i}M4i 是去掉第 4 行第 iii 列的 3×33 \times 33×3 子矩阵行列式。该子矩阵由列 {1,2,3,4}∖{i}\{1,2,3,4\} \setminus \{i\}{1,2,3,4}∖{i} 的前三行组成。

  • 若 i=1i=1i=1,子矩阵为 o a p\\mathbf{o} \\ \\mathbf{a} \\ \\mathbf{p}o a p,故
    M41=det⁡(o,a,p)=p⋅(o×a)=p⋅n, M_{41} = \det(\mathbf{o}, \mathbf{a}, \mathbf{p}) = \mathbf{p} \cdot (\mathbf{o} \times \mathbf{a}) = \mathbf{p} \cdot \mathbf{n}, M41=det(o,a,p)=p⋅(o×a)=p⋅n,

    则 C41=−p⋅nC_{41} = -\mathbf{p} \cdot \mathbf{n}C41=−p⋅n。

  • 若 i=2i=2i=2,子矩阵为 n a p\\mathbf{n} \\ \\mathbf{a} \\ \\mathbf{p}n a p,故
    M42=det⁡(n,a,p)=p⋅(n×a)=−p⋅o, M_{42} = \det(\mathbf{n}, \mathbf{a}, \mathbf{p}) = \mathbf{p} \cdot (\mathbf{n} \times \mathbf{a}) = -\mathbf{p} \cdot \mathbf{o}, M42=det(n,a,p)=p⋅(n×a)=−p⋅o,

    则 C42=p⋅oC_{42} = \mathbf{p} \cdot \mathbf{o}C42=p⋅o。

  • 若 i=3i=3i=3,子矩阵为 n o p\\mathbf{n} \\ \\mathbf{o} \\ \\mathbf{p}n o p,故
    M43=det⁡(n,o,p)=p⋅(n×o)=p⋅a, M_{43} = \det(\mathbf{n}, \mathbf{o}, \mathbf{p}) = \mathbf{p} \cdot (\mathbf{n} \times \mathbf{o}) = \mathbf{p} \cdot \mathbf{a}, M43=det(n,o,p)=p⋅(n×o)=p⋅a,

    则 C43=−p⋅aC_{43} = -\mathbf{p} \cdot \mathbf{a}C43=−p⋅a。

因此:

adj⁡(T)i4=C4i=−(p⋅vi),v1=n, v2=o, v3=a. \operatorname{adj}(T){i4} = C{4i} = -(\mathbf{p} \cdot \mathbf{v}_i), \quad \mathbf{v}_1 = \mathbf{n},\ \mathbf{v}_2 = \mathbf{o},\ \mathbf{v}_3 = \mathbf{a}. adj(T)i4=C4i=−(p⋅vi),v1=n, v2=o, v3=a.

即 adj⁡(T)i4=(−R⊤p)i\operatorname{adj}(T)_{i4} = (-R^\top \mathbf{p})_iadj(T)i4=(−R⊤p)i。

4.3 计算 Cj4C_{j4}Cj4 对 j=1,2,3j = 1,2,3j=1,2,3

Cj4=(−1)j+4Mj4C_{j4} = (-1)^{j+4} M_{j4}Cj4=(−1)j+4Mj4,其中 Mj4M_{j4}Mj4 是去掉第 jjj 行第 4 列的 3×33 \times 33×3 子矩阵行列式。该子矩阵由列 1,2,31,2,31,2,3 的前三行(除第 jjj 行)和第 4 行组成。第 4 行元素为 0,0,00,0,00,0,0,故子矩阵有一行全零,行列式为 0。因此 Cj4=0C_{j4} = 0Cj4=0,即:

adj⁡(T)4j=Cj4=0,j=1,2,3. \operatorname{adj}(T){4j} = C{j4} = 0, \quad j=1,2,3. adj(T)4j=Cj4=0,j=1,2,3.

4.4 计算 C44C_{44}C44

C44=(−1)4+4M44=det⁡(R)=1C_{44} = (-1)^{4+4} M_{44} = \det(R) = 1C44=(−1)4+4M44=det(R)=1,故 adj⁡(T)44=1\operatorname{adj}(T)_{44} = 1adj(T)44=1。

5. 组合伴随矩阵

综上,伴随矩阵为:

adj⁡(T)=R⊤−R⊤p0⊤1. \operatorname{adj}(T) = \begin{bmatrix} R^\top & -R^\top \mathbf{p} \\ \mathbf{0}^\top & 1 \end{bmatrix}. adj(T)=R⊤0⊤−R⊤p1.

6. 代入逆矩阵公式

由于 det⁡(T)=1\det(T) = 1det(T)=1,得:

T−1=1det⁡(T)adj⁡(T)=R⊤−R⊤p0⊤1. T^{-1} = \frac{1}{\det(T)} \operatorname{adj}(T) = \begin{bmatrix} R^\top & -R^\top \mathbf{p} \\ \mathbf{0}^\top & 1 \end{bmatrix}. T−1=det(T)1adj(T)=R⊤0⊤−R⊤p1.

该矩阵即为 (3.33) 的形式,其中

R⊤=nxnynzoxoyozaxayaz,−R⊤p=−p⋅n−p⋅o−p⋅a. R^\top = \begin{bmatrix} n_x & n_y & n_z \\ o_x & o_y & o_z \\ a_x & a_y & a_z \end{bmatrix}, \quad -R^\top \mathbf{p} = \begin{bmatrix} -\mathbf{p} \cdot \mathbf{n} \\ -\mathbf{p} \cdot \mathbf{o} \\ -\mathbf{p} \cdot \mathbf{a} \end{bmatrix}. R⊤= nxoxaxnyoyaynzozaz ,−R⊤p= −p⋅n−p⋅o−p⋅a .

证毕。

相关推荐
我送炭你添花3 小时前
工业现场疑难软故障实录:09 老旧产线,稳定裕量已经被吃光了
机器人·自动化·智能工厂
智信中科张炜5 小时前
中国洗地机器人行业竞争现状与发展前景分析报告
机器人
猿的天空6 小时前
机器人双手迎来全栈训练系统:灵初智能EgoSteer让灵巧手无所不能
网络·人工智能·计算机·ai·程序员·机器人·编程
Xzaveir_7777 小时前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
guanchabao8 小时前
大模型智能电话机器人比传统规则机器人强在哪?2026按规则/LLM混合架构拆解
机器人
闪电悠米8 小时前
力扣hot100-73.矩阵置零-标记数组详解
算法·leetcode·矩阵
某林2129 小时前
ROS2 + WebRTC + MQTT 异构系统架构
架构·系统架构·机器人·硬件架构·webrtc·ros2
G***技10 小时前
破解康养机器人稳定性难题:IB3-281嵌入式主板打造“零中断”智慧护理体验
机器人
renhongxia110 小时前
AI安全保卫战:我们如何防止“失控”的智能体?
人工智能·深度学习·安全·机器学习·架构·机器人
威联通安全存储11 小时前
TS-h1677AXU-RP在工程机械机器人弧焊中的部署
大数据·人工智能·python·机器人