• 卡尔丹旋转规则


    Cardanian rotation matrix推导(卡尔丹旋转规则):

    按照Yaw(偏转角)->Pitch(翻滚角)->Roll(滚动角)的顺序进行旋转
    Y a w : κ ⇢ 旋转矩阵 R Z ( κ ) Yaw:\kappa \dashrightarrow 旋转矩阵R_Z(\kappa) Yaw:κ旋转矩阵RZ(κ)
    P i t c h : ϕ ⇢ 旋转矩阵 R Y ( ϕ ) Pitch:\phi \dashrightarrow 旋转矩阵R_Y(\phi) Pitch:ϕ旋转矩阵RY(ϕ)
    Y a w : ω ⇢ 旋转矩阵 R X ( ω ) Yaw:\omega \dashrightarrow 旋转矩阵R_X(\omega) Yaw:ω旋转矩阵RX(ω)

    旋转图示如下:
    在这里插入图片描述

    根据推导,存在:
    R Z ( κ ) = [ c o s κ s i n κ 0 − s i n κ c o s κ 0 0 0 1 ] R_Z(\kappa)= [cosκsinκ0sinκcosκ0001]

    cosκsinκ0sinκcosκ0001
    RZ(κ)= cosκsinκ0sinκcosκ0001
    R Y ( ϕ ) = [ c o s ϕ 0 − s i n ϕ 0 1 0 s i n ϕ 0 c o s ϕ ] R_Y(\phi)= [cosϕ0sinϕ010sinϕ0cosϕ]
    cosϕ0sinϕ010sinϕ0cosϕ
    RY(ϕ)= cosϕ0sinϕ010sinϕ0cosϕ

    R X ( ω ) = [ 1 0 0 0 c o s ω s i n ω 0 − s i n ω c o s ω ] R_X(\omega)= [1000cosωsinω0sinωcosω]
    1000cosωsinω0sinωcosω
    RX(ω)= 1000cosωsinω0sinωcosω

    按照卡尔丹旋转规则,存在旋转矩阵
    R = R Z ( κ ) R Y ( ϕ ) R X ( ω ) R = R_Z(\kappa) R_Y(\phi) R_X(\omega) R=RZ(κ)RY(ϕ)RX(ω)
    R = [ cos ⁡ ( κ ) sin ⁡ ( κ ) 0 − sin ⁡ ( κ ) cos ⁡ ( κ ) 0 0 0 1 ] [ cos ⁡ ( ϕ ) 0 − sin ⁡ ( ϕ ) 0 1 0 sin ⁡ ( ϕ ) 0 cos ⁡ ( ϕ ) ] [ 1 0 0 0 cos ⁡ ( ω ) sin ⁡ ( ω ) 0 − sin ⁡ ( ω ) cos ⁡ ( ω ) ] R = [cos(κ)sin(κ)0sin(κ)cos(κ)0001]

    cos(κ)sin(κ)0sin(κ)cos(κ)0001
    [cos(ϕ)0sin(ϕ)010sin(ϕ)0cos(ϕ)]
    cos(ϕ)0sin(ϕ)010sin(ϕ)0cos(ϕ)
    [1000cos(ω)sin(ω)0sin(ω)cos(ω)]
    1000cos(ω)sin(ω)0sin(ω)cos(ω)
    R= cos(κ)sin(κ)0sin(κ)cos(κ)0001 cos(ϕ)0sin(ϕ)010sin(ϕ)0cos(ϕ) 1000cos(ω)sin(ω)0sin(ω)cos(ω)
    R = [ cos ⁡ ( κ ) cos ⁡ ( ϕ ) sin ⁡ ( κ ) − cos ⁡ ( κ ) sin ⁡ ( ϕ ) − sin ⁡ ( κ ) cos ⁡ ( ϕ ) cos ⁡ ( κ ) sin ⁡ ( κ ) sin ⁡ ( ϕ ) sin ⁡ ( ϕ ) 0 cos ⁡ ( ϕ ) ] [ 1 0 0 0 cos ⁡ ( ω ) sin ⁡ ( ω ) 0 − sin ⁡ ( ω ) cos ⁡ ( ω ) ] R = [cos(κ)cos(ϕ)sin(κ)cos(κ)sin(ϕ)sin(κ)cos(ϕ)cos(κ)sin(κ)sin(ϕ)sin(ϕ)0cos(ϕ)]
    [1000cos(ω)sin(ω)0sin(ω)cos(ω)]
    R= cos(κ)cos(ϕ)sin(κ)cos(ϕ)sin(ϕ)sin(κ)cos(κ)0cos(κ)sin(ϕ)sin(κ)sin(ϕ)cos(ϕ) 1000cos(ω)sin(ω)0sin(ω)cos(ω)

    R = [ cos ⁡ ( κ ) cos ⁡ ( ϕ ) sin ⁡ ( κ ) cos ⁡ ( ω ) + cos ⁡ ( κ ) sin ⁡ ( ϕ ) sin ⁡ ( ω ) sin ⁡ ( κ ) sin ⁡ ( ω ) − cos ⁡ ( κ ) sin ⁡ ( ϕ ) cos ⁡ ( ω ) − sin ⁡ ( κ ) cos ⁡ ( ϕ ) cos ⁡ ( κ ) cos ⁡ ( ω ) − sin ⁡ ( κ ) sin ⁡ ( ϕ ) sin ⁡ ( ω ) cos ⁡ ( κ ) sin ⁡ ( ω ) + sin ⁡ ( κ ) sin ⁡ ( ϕ ) cos ⁡ ( ω ) sin ⁡ ( ϕ ) − cos ⁡ ( ϕ ) sin ⁡ ( ω ) cos ⁡ ( ϕ ) cos ⁡ ( ω ) ] R = [cos(κ)cos(ϕ)sin(κ)cos(ω)+cos(κ)sin(ϕ)sin(ω)sin(κ)sin(ω)cos(κ)sin(ϕ)cos(ω)sin(κ)cos(ϕ)cos(κ)cos(ω)sin(κ)sin(ϕ)sin(ω)cos(κ)sin(ω)+sin(κ)sin(ϕ)cos(ω)sin(ϕ)cos(ϕ)sin(ω)cos(ϕ)cos(ω)]
    R= cos(κ)cos(ϕ)sin(κ)cos(ϕ)sin(ϕ)sin(κ)cos(ω)+cos(κ)sin(ϕ)sin(ω)cos(κ)cos(ω)sin(κ)sin(ϕ)sin(ω)cos(ϕ)sin(ω)sin(κ)sin(ω)cos(κ)sin(ϕ)cos(ω)cos(κ)sin(ω)+sin(κ)sin(ϕ)cos(ω)cos(ϕ)cos(ω)

    当 κ , ϕ , ω 很小时,存在 : 当\kappa,\phi,\omega很小时,存在: κ,ϕ,ω很小时,存在:
    cos ⁡ ( κ ) ≈ 1.0 , cos ⁡ ( ϕ ) ≈ 1.0 , cos ⁡ ( ω ) ≈ 1.0 sin ⁡ ( κ ) ≈ κ , sin ⁡ ( ϕ ) ≈ ϕ , sin ⁡ ( ω ) ≈ ω ϕ ω ≈ 0.0 , κ ω ≈ 0.0 , κ ϕ ω ≈ 0.0 , κ ϕ ≈ 0.0 \cos(\kappa)\approx1.0, \cos(\phi)\approx1.0, \cos(\omega)\approx1.0 \\ \sin(\kappa)\approx\kappa, \sin(\phi)\approx\phi, \sin(\omega)\approx\omega \\ \phi\omega\approx0.0,\kappa\omega\approx0.0,\kappa\phi\omega\approx0.0,\kappa\phi\approx0.0 cos(κ)1.0,cos(ϕ)1.0,cos(ω)1.0sin(κ)κ,sin(ϕ)ϕ,sin(ω)ωϕω0.0,κω0.0,κϕω0.0,κϕ0.0
    则旋转矩阵为 : 则旋转矩阵为: 则旋转矩阵为:
    R = [ 1 κ − ϕ − κ 1 ω ϕ − ω 1 ] R= [1κϕκ1ωϕω1]
    R= 1κϕκ1ωϕω1

    参考:
    [1] Harvey B R . Transformation of 3D Co-ordinates[J]. Australian Surveyor, 1986, 33(2):105-125.

  • 相关阅读:
    人工智能-第三阶段-k近邻算法1-算法理论、kd树、鸢尾花数据
    Windows11下Python安装GTK4
    vivo 手机云服务建设之路-平台产品系列04
    SqL--DCL数据控制语言
    SpringBoot 之配置加密
    python之 flask 框架(2)项目拆分的 执行逻辑
    CSS定位
    JAVA卓越导师双选系统计算机毕业设计Mybatis+系统+数据库+调试部署
    Go接口 - 构建可扩展Go应用
    1004 Counting Leaves
  • 原文地址:https://blog.csdn.net/xys206006/article/details/126723818