6轴模块JY61P:经过我们的卡尔曼滤波算法修正处理,X,Y轴没有角度漂移。Z轴在静止状态下没有漂移,运动情况下有累积误差。因为Z轴角度是通过对角速度积分计算出来的,没有观测量滤波,所以漂移是不可避免的。X,Y轴是有重力场滤波,所以不会有漂移。Z轴只能用短时间内的相对测量量。 就是相邻两次的角度差来计算转过的角度。
9轴模块JY901:Z轴角度是也地磁有关的,所以使用的时候尽量避免周围磁和铁的物质的干扰就是要远离磁和铁的物质20CM以上,
在远离磁场干扰情况下在进行磁场校准,测试效果会更好!http://jingyan.baidu.com/article/546ae185dd6b8b1149f28c9b.html
注意:9轴Z轴是不会有累计误差或者漂移的,如果使用9轴还会有误差,就只有两点
1.使用前一定要进行加计校准和磁场校准。
2.使用时和校准时,一定要远离磁场干扰。
如何验证有没有磁场干扰:模块在同一个位置绕Z轴旋转个90° 或者180°,然后看下总的磁场数据H会不会有很大的变化,如果有的话说明还是有磁场的干扰。
使用环境不变的话,模块只要校准一次就可以了。
可以设置下回传内容,把加速度的勾给去掉,如果还有加速度输出则说明模块没有接受到指令,上位机没有控制到模块!
注意:能接受到数据不代表能控制模块
欧拉角表示姿态的时候,会有奇点现象。奇点位置和欧拉角的旋转顺序有关。比如欧拉角的旋转顺序定义为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轴也发生了突变。
东北天坐标系定义:就是当3个轴的角度为0时 X轴指向东 Y轴指向北 Z轴竖直向上
Q0-Q3:W X Y Z
欧拉角顺序:ZYX
输出数据的正负号是按照补码的方式表示的,也就是其二进制数据的最高位如果为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
https://blog.csdn.net/u012700322/article/details/52252305
https://www.cnblogs.com/21207-iHome/p/6894128.html
https://blog.csdn.net/u012700322/article/details/52252305
波特率115200 = 115200 (位/秒) 如果没有校验位,就应该除以 10,得到的是每秒字节数: 波特率115200 = 115200 (位/秒) = 11520 (字节/秒) 我们传感器回传的数据一个包是11个字节 例如JY901默认回传四个包也就是44字节 11520/44 = 261HZ(当前波特率能回传的最大速率)注意:JY901最大回传速率是200HZ
持续更新…