quaternion in eigen

本文详细介绍了在Eigen库中如何表示和操作四元数,包括四元数的构造、乘法以及在流形空间上的优化。讨论了四元数乘法的矩阵表示,以及在优化过程中如何处理四元数模为1的约束。同时,阐述了四元数误差计算的方法及其雅可比矩阵的求解过程。
摘要由CSDN通过智能技术生成

Representations

eigen中quaternion的构造函数为Quaternion (const Scalar &w, const Scalar &x, const Scalar &y, const Scalar &z),注意w在前。然而在内部存储时eigen将四元数的w放在最后,例如通过Eigen::Vector4d q = q_AB.coeffs();访问时,q中的最后一个元素才是w。

在论文中,比较常见的四元数分为两种hamilton quaternionJPL quaternion。主要的区别在于前者是右手系 ij=k ,后者是左手系 ij=k ,eigen中的四元数为hamilton quaternion,然而有点不一样的是四元数内的顺序定义不一样,即w在最后。

Q=pw+pxi+pyj+pzkQ=pw+pv
q=[pxpypzpw]T

Product

四元数的乘积具有以下形式,在eigen中直接调用*即可。
pq=pwqx+pxqw+pyqzpzqypwqypxqz+pyqw+pzqxpwqz+pxqypyqx+pzqwpwqwpxqxpyqypzqz

同时也可以将四元数的乘法写成矩阵的乘法,这里定义四元数的左乘矩阵 []L 和右乘矩阵 []R
pq=[p]Lq=[q]Rp

[q]L

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值