旋转——欧拉角,旋转矩阵,与四元数

库的使用

参考:https://zhuanlan.zhihu.com/p/445936075

from scipy.spatial.transform import Rotation as R
rot = R.random()
rot.as_euler('xyz', degrees=True)
rot.as_matrix()
rot.as_rotvec()

其他

欧拉角,旋转矩阵的转换

四元数

本文主要参考了来源于github 地址的文档

四元数定义

\[q = a + b i + c j + d k , \quad ( a , b , c , d \leq R) \]

\[i ^ { 2 } = j ^ { 2 } = k ^ { 2 } = i j k = - 1 \]

\[q = \left[ \begin{array} { l } { a } \\ { b } \\ { c } \\ { d } \end{array} \right] \]

除此之外,我们经常将四元数的实部与虚部分开,并用一个三维的向量来表示虚部,将它表示为标量和向量的有序对形式

\[q = [ s , \mathbb{v} ] , \quad ( \mathbb{v} = \left[ \begin{array} { l } { x } \\ { y } \\ { z } \end{array} \right], s , x , y , z \in \mathbb{R} ) \]

运算

加减

对应维度进行加减

乘法

image
对于 $q _ { 1 } = a + b i + cj + dk $ 和 $ q _ { 2 } = e + f i + g j + h k$ :
image
左乘矩阵为:
image
右乘矩阵为:
image

posted @ 2021-08-03 17:37  小康要好好学习  阅读(169)  评论(0编辑  收藏  举报