|
最近在MFC中搭建了OPENGL环境打算写了姿态解算的小程序,阅读了《捷联惯导算法心得》,对我这种新手很有帮助,那么问题来了
在帖子中,四元数更新算法是这样的
然而,在下面的代码实现部分是这样的
q0 = q0 + (-q1*gx - q2*gy - q3*gz)*halfT;
q1 = q1 + (q0*gx + q2*gz - q3*gy)*halfT;
q2 = q2 + (q0*gy - q1*gz + q3*gx)*halfT;
q3 = q3 + (q0*gz + q1*gy - q2*gx)*halfT;
我们那个公式中得出来的q(n+1)是指后一个时刻的四元数,假设用这个代码来实现的话,q0算出来是没问题,但是计算q1的时候,这个时候的q0就已经是更新后的q0了,即q(0+T),那么这么算下来q2和q3都不是严格意义上的q2和q3了,
难道这么算的话对整个姿态解算的影响不怎么大么?
我翻开我大学同学做四轴的代码,发现他也是这样写的,貌似也能飞的样子。
大家怎么看
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|