ardupilot开发 --- 坐标变换 篇

在这里插入图片描述

0. 一些概念

  • 相关概念:旋转矩阵、平移矩阵、单应矩阵、齐次变换矩阵。
  • 坐标变换包括旋转变换和平移变换。
  • 为什么要坐标变换?引入坐标变换可以解决哪些问题?应用场景?
    • 已知一点p在坐标系A中的坐标,计算p在坐标系B中的坐标。
    • 已知一向量v在坐标系A中的值,计算v在坐标系B中的值。
    • 描述坐标系A和坐标系B之间的位姿关系(姿态和位置)。
      用于描述三维空间中刚体的姿态
    • 一向量v绕坐标系A的xyz轴旋转 ϕ θ ψ \phi \theta \psi ϕθψ角度并进行一定平移后在坐标系A中的新坐标。
    • 在数学建模过程中,往往需要将不同的物量量表示在同一个坐标系内才能列出等式。
    • 刚体运动学。
    • 图像的投影。

1. 坐标系的旋转

描述坐标系的旋转常用的方法包括:

  • 轴角法
  • 旋转矩阵
  • 欧拉角
  • 四元数

这几种旋转表示方法有各自的优缺点和应用场景,这里不作赘叙。

1.1 轴角法

不常用,略…

1.2 四元素

待续…

1.3 基于欧拉角的旋转矩阵

欧拉角形式的方向余弦矩阵。
轴角法和四元数,这两个可以归纳为用一次旋转来表示两个坐标系间的姿态关系。欧拉角则是用三次旋转来表示姿态。
在这里插入图片描述
欧拉角指:横滚角 ϕ \phi ϕ,俯仰角 θ \theta θ,偏航角 ψ \psi ψ
ϕ , θ , ψ \phi, \theta, \psi ϕ,θ,ψ在不同的领域有不同的定义规则:主要的区别是旋转顺序的不同,绕原始(固定)坐标轴轴旋转还是绕新(运动)坐标轴的不同(也称外旋或内旋)。
航天航空领域的欧拉角:

  • 内旋
    绕运动轴旋转得到新坐标系。
  • Z → Y → X Z \to Y \to X ZYX
    原始坐标系经过 Z → Y → X Z \to Y \to X ZYX 顺序旋转一定的角度得到新坐标系。
  • 右手系
    涉及的坐标系都遵循右手定则。

1.3.1 单轴旋转矩阵

前提:右手系
这里只给出结论,不作推导。
坐标系A分别单独绕 x , y , z x,y,z x,y,z轴旋转 ϕ , θ , ψ \phi, \theta, \psi ϕ,θ,ψ角度,欧拉旋转矩阵表达式如下:
T B A = R x ( ϕ ) = [ 1 0 0 0 c o s ϕ − s i n ϕ 0 s i n ϕ c o s ϕ ] (式 1 ) T B A = R y ( θ ) = [ c o s θ 0 s i n θ 0 1 0 − s i n θ 0 c o s θ ] (式 2 ) T B A = R z ( ψ ) = [ c o s ψ − s i n ψ 0 s i n ψ c o s ψ 0 0 0 1 ] (式 3 ) T_B^A=R_x(\phi)= \begin{bmatrix} 1&0&0\\ 0&cos{\phi}&-sin{\phi}\\ 0&sin{\phi}&cos{\phi} \end{bmatrix}(式1)\\[3mm] T_B^A=R_y(\theta)= \begin{bmatrix} cos{\theta}&0&sin{\theta}\\ 0&1&0\\ -sin{\theta}&0&cos{\theta} \end{bmatrix}(式2)\\[3mm] T_B^A=R_z(\psi)= \begin{bmatrix} cos{\psi}&-sin{\psi}&0\\ sin{\psi}&cos{\psi}&0\\ 0&0&1 \end{bmatrix}(式3) TBA=Rx(ϕ)= 1000cosϕsinϕ0sinϕcosϕ (式1TBA=Ry(θ)= cosθ0sinθ010sinθ0cosθ (式2TBA=Rz(ψ)= cosψsinψ0sinψcosψ0001 (式3
这些旋转矩阵的意义是:新坐标系到原始坐标系的变换矩阵,即:
[ x A y A z A ] = T B A [ x B y B z B ] \begin{bmatrix} x_A\\ y_A\\ z_A \end{bmatrix}=T_B^A \begin{bmatrix} x_B\\ y_B\\ z_B \end{bmatrix} xAyAzA =TBA xByBzB
注意:

  • ϕ , θ , ψ \phi, \theta, \psi ϕ,θ,ψ是原始坐标系A旋转运动到新坐标系B的旋转量,但是得到的旋转矩阵 R x , R y , R z R_x,R_y,R_z Rx,Ry,Rz却是新坐标系B到原始坐标系A的坐标变换矩阵!
    即:
    ϕ , θ , ψ : A → B 的旋转量 R x ( ϕ ) , R y ( θ ) , R z ( ψ ) : B → A 的旋转矩阵 \phi, \theta, \psi :A \to B 的旋转量 \\ R_x(\phi),R_y(\theta),R_z (\psi):B \to A 的旋转矩阵 ϕ,θ,ψAB的旋转量Rx(ϕ),Ry(θ),Rz(ψ)BA的旋转矩阵
  • ϕ , θ , ψ \phi, \theta, \psi ϕ,θ,ψ满足右手定则,绕右手坐标系的正方向旋转时为正。
  • 系B到系A的变换矩阵可以有多种符号表示方式,通常有: T B A , A T B , T A B T_B^A,^AT_B,T_{AB} TBAATBTAB都表示 B ~> A 的变换关系矩阵!注意上下标的位置!!
  • 旋转矩阵是正交的,因此有:
    [ x B y B z B ] = T A B [ x A y A z A ] = ( T B A ) − 1 [ x A y A z A ] = ( T B A ) T [ x A y A z A ] \begin{bmatrix} x_B\\ y_B\\ z_B \end{bmatrix}=T_A^B \begin{bmatrix} x_A\\ y_A\\ z_A \end{bmatrix}=(T_B^A)^{-1} \begin{bmatrix} x_A\\ y_A\\ z_A \end{bmatrix}=(T_B^A)^{T} \begin{bmatrix} x_A\\ y_A\\ z_A \end{bmatrix} xByBzB =TAB xAyAzA =(TBA)1 xAyAzA =(TBA)T xAyAzA
    即: T A B = ( T B A ) − 1 = ( T B A ) T T_A^B=(T_B^A)^{-1}=(T_B^A)^{T} TAB=(TBA)1=(TBA)T.

1.3.2 多轴旋转矩阵

12种常用的内旋欧拉角又可分为两个类别:

  • 常规欧拉角
  • 泰特 - 布赖恩角

注意: 下表中如 X

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值