(Rv)^ = Rv^R' 的简单证明

2017-12-10

从零开始的 IMU 状态模型推导》里提到

对任意旋转矩阵 $\bf R$ 和三维向量 $\bf v$,都有 $({\bf R v})^{\land} = {\bf Rv^{\land}R}^{T}$

这个性质在机器人动力学等很多地方都用得到。有人问这个性质怎么证明,这里提供一个思路。思路很简单,只是需要转个弯。

这里要把 $()^{\land}$ 运算符转换成叉乘。我们知道,对于任意 ${\bf v,u}\in \mathbb{R}^3$,总有${\bf v}^{\land}{\bf u}={\bf v \times u}$。于是

\[\begin{aligned} & ({\bf R v})^{\land} = {\bf Rv^{\land}R}^{T} \\ \Leftrightarrow\quad & ({\bf R v})^{\land}{\bf R} = {\bf Rv^{\land}} \\ \Leftrightarrow\quad &\forall {\bf u}\in \mathbb{R}^3, ({\bf Rv})^{\land}{\bf Ru}={\bf Rv}^{\land}{\bf u} \\ \Leftrightarrow\quad &\forall {\bf u}\in \mathbb{R}^3, ({\bf Rv})\times({\bf Ru})={\bf R(v\times u)} \end{aligned}\]

最后一式利用向量叉乘的旋转变换不变性(参看 Wikipedia)可证。即,对于任意 ${\bf v,u}\in \mathbb{R}^3$,永远有

\[({\bf Rv})\times({\bf Ru})={\bf R(v\times u)}\]

这一点,可以调用你的空间想象力,从三维几何的角度来理解:${\bf v,u}$ 是任意两个三维向量,$({\bf v\times u})$ 是一个和 ${\bf v,u}$ 都垂直、大小为 ${\bf |v| |u|} \sin ({\bf u, v})$ 的三维向量;将 ${\bf v,u,v\times u}$ 三个向量都经过同一个旋转,它们的相对位姿和模长都不会改变,所以 $({\bf Rv})$ 和 $({\bf Ru})$ 的叉乘仍是 ${\bf R(v\times u)}$。


标签: robotics

留言请用 Github Issues

聊天请在 Gitter/fan-farm

授权协议 (CC) BY-NC-SA | 订阅 RSS | 邮箱 hi@fzheng.me