用户工具

站点工具


wt61c常见问题

WT61C常见问题


通用问题

累计误差

经过我们的卡尔曼滤波算法修正处理,X,Y轴没有角度漂移。Z轴在静止状态下没有漂移,运动情况下有累积误差。因为Z轴角度是通过对角速度积分计算出来的,没有观测量滤波,所以漂移是不可避免的。X,Y轴是有重力场滤波,所以不会有漂移。Z轴只能用短时间内的相对测量量。 就是相邻两次的角度差来计算转过的角度。

旋转轴向的定义

旋转轴向的定义是按照右手法则定义的,右手的大拇指指向轴向,四指握拳,此时四指弯曲的方向就是绕着这个轴旋转的方向。模块的三个轴向定义在说明书里面有图示

验证上位机是否控制到了模块

点击Z轴角度归零,看看上位机上显示的Z轴是否为零,为零则说明上位机控制到了模块。
注意:能接受到数据并不代表能控制到模块

Y轴接近90°数据不准

欧拉角表示姿态的时候,会有奇点现象。奇点位置和欧拉角的旋转顺序有关。比如欧拉角的旋转顺序定义为Z-Y-X,那么Y轴±90°为奇点位置。如果旋转顺序定义为Z-X-Y,那么X轴±90°为奇点位置。我们的模块按照Z-Y-X定义。可以这么理解,Z轴表示方向角,相当于X轴朝向。当Y轴为90度,X朝向上方,就Z轴为任何角度都表示的同一个姿态,没有意义。另外,假设X轴为0度,Z轴为0度。Y轴由89°变为91°,姿态会由【0,89,0】,【180,91,180】,也X轴角度发生了0~180°的突变,Z轴也发生了突变。

正负号计算

输出数据的正负号是按照补码的方式表示的,也就是其二进制数据的最高位如果为1则表示负数。程序编写的时候,可以采用强制转化为有符号的short类型来解决符号的问题,具体做法是,将数据的高位强制DataH转化为short类型,然后再左移8位,和低字节DataL进行与操作。例如角速度包的解析方法:
角速度包一共有11个字节,chrTemp[11],其中chrTemp[3]为X轴角速度的高8位,chrTemp[2]为X轴角速度的低8位,那么角速度的解析代码如下:
float w[0];
w[0]=(( ((short)chrTemp[3])«8)|chrTemp[2])/32768*2000;
其中( ((short)chrTemp[3])«8)|chrTemp[2]得到short类型的有符号数据,short类型的数据表示范围是-32768~32767之间,角速度的量程范围是正负2000°,所以需要除以32768再乘以2000。这样处理以后,得到的数据就是有符号的float类型数据了。
http://elecmaster.net/forum.php?mod=viewthread&tid=812&page=1&extra=#pid1582

持续更新…

wt61c常见问题.txt · 最后更改: 2018/04/17 15:59 由 witmotion