SLAM基础之四元数 | 旋转矩阵转四元数原理及C++ Code

原理如下:

R=(R00R01R02R10R11R12R20R21R22)R = \left(\begin{matrix} R00 & R01 & R02\\ R10 & R11 & R12\\ R20 & R21 & R22\\ \end{matrix}\right)R= R00R10R20R01R11R21R02R12R22

DiagonalR=R00+R11+R22DiagonalR00=R00−R11−R22DiagonalR11=R11−R00−R22DiagonalR22=R22−R00−R11DiagonalR = R00 + R11 +R22\\ DiagonalR00 = R00 - R11 - R22\\ DiagonalR11 = R11-R00-R22\\ DiagonalR22 = R22 - R00 - R11DiagonalR=R00+R11+R22DiagonalR00=R00R11R22DiagonalR11=R11R00R22DiagonalR22=R22R00R11

分情况如下:

情况一
if(DiagonalR00>=DiagonalR11&&DiagonalR00>=DiagonalR22&&DiagonalR00>=DiagonalR)quart.x=DiagonalR00+12quart.y=R10+R014.0∗quart.xquart.z=R20+R014.0∗quart.xquart.w=R21−R124.0∗quart.xif(DiagonalR00 >= DiagonalR11 \quad\&\& \quad DiagonalR00 >= DiagonalR22 \quad\&\& \quad DiagonalR00 >=DiagonalR)\\\\ \begin{aligned} &quart.x = \frac{\sqrt{DiagonalR00 + 1}}{2}\\ &quart.y = \frac{R10 + R01}{4.0*quart.x}\\ &quart.z = \frac{R20 + R01}{4.0*quart.x}\\ &quart.w = \frac{R21 - R12}{4.0*quart.x}\\ \end{aligned}if(DiagonalR00>=DiagonalR11&&DiagonalR00>=DiagonalR22&&DiagonalR00>=DiagonalR)quart.x=2DiagonalR00+1 quart.y=4.0quart.xR10

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值