px4+vins+ego单机鲁棒飞行五(坐标系变换篇)

px4+vins+ego单机鲁棒飞行五(坐标系变换篇)

一、齐次矩阵变换原理

参考一参考二

二、无人机上利用旋转矩阵求飞机中心位置

首先写出相机相对于world的旋转T_wc,然后量出相机和飞机中心body的旋转矩阵T_cb,最后

T_wc*T_cb=T_wb

则T_wb的最后一列就是无人机位置。

  1. T_wc
# 从欧拉角获取四元数
def eulerAnglesToRotationMatrix(theta) :
    
    R_x = np.array([[1,         0,                  0                   ],
                    [0,         math.cos(theta[0]), -math.sin(theta[0]) ],
                    [0,         math.sin(theta[0]), math.cos(theta[0])  ]
                    ])
                
    R_y = np.array([[math.cos(theta[1]),    0,      math.sin(theta[1])  ],
                    [0,                     1,      0                   ],
                    [-math.sin(theta[1]),   0,      math.cos(theta[1])  ]
                    ])
                
    R_z = np.array([[math.cos(theta[2]),    -math.sin(theta[2]),    0],
                    [math.sin(theta[2]),    math.cos(theta[2]),     0],
                    [0,                     0,                      1]
                    ])

    R = np.dot(R_x, R_y, R_z)
    return R
    RotationMatrix = eulerAnglesToRotationMatrix(vins_euler)
    T_wc = np.array([[RotationMatrix[0][0],RotationMatrix[0][1],RotationMatrix[0][2], vins_odom.pose.pose.position.x],
                     [RotationMatrix[1][0],RotationMatrix[1][1],RotationMatrix[1][2], vins_odom.pose.pose.position.y],
                     [RotationMatrix[2][0],RotationMatrix[2][1],RotationMatrix[2][2], vins_odom.pose.pose.position.z],
                     [0,                    0,                   0,                    1]
                     ])
  1. T_cb
T_cb = np.array([[1,    0,    0,    -0.08],
                 [0,    1,    0,    -0.02],
                 [0,    0,    1,    0],
                 [0,    0,    0,    1]
                 ])
  1. T_wb
T_wb = np.dot(T_wc, T_cb)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nankel Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值