今天刚入手了一款自带卡尔曼滤波算法的姿态测量模块JY-901,因为我的项目中要用到角度测量,用传统的电位器测量很不方便,需要把电位器安装到关节的轴心位置,采用这种JY-901姿态测量模块就不会有这个问题,只需要把模块固定到运动杆的任意位置即可,非常方便。
到货以后,厂家的包装还是很用心的,并且配备了一排直排针和一排弯排针。
我为了测试方便,就直接焊上了弯排针。焊上以后的效果如下。
接下来就需要把模块和电脑接起来,看看实际的运行效果了。和电脑连接需要一个USB转TTL串口模块,因为这个模块是TTL电平的串口。厂家提供了两种USB模块,我选择了六合一串口模块,这种模块设计挺巧妙的,一个小模块集成了六种常用的串口转换功能,USB转TTL,USB转RS232,USB转RS485,TTL转RS232,TTL转RS485,RS232转RS485,最难得的是,还能实现485数据的自动收发,不用再人为去控制收发使能。需要注意的是,六合一模块需要选择正确的模式,拨码开关的位置需要拨对,否则无法和上位机通讯上。
JY901模块和六合一模块连接方法如下图。
接上模块以后,打开模块的上位机软件(模块资料下载地址:)。上位机软件在资料包里的上位机文件夹内。
首先选择硬件版本,我买的是普通版的,就选择普通版。如果是蓝牙版本的,就选择蓝牙版。
点端口配置菜单,选择USB串口模块对应的端口号,这里是COM3,每个人的端口号可能不一样。
如果不知道串口号,可以右键单击我的电脑->管理->设备管理器,找到端口(COM和LPT),找到silicon labs CP210x USB to UARTBridge(COM3),后面的COM3就是端口号,如果在你的电脑上面显示的是COM4,那么在miniIMU软件的端口配置菜单里面也选择COM4。
波特率需要选择9600。选完以后,就可以看到曲线输出了。
如果没有看到曲线,说明模块接线没有接好,仔细检查一下线路即可。
初步验证了一下,数据曲线能够很好地跟踪模块的运动,不愧是使用了强大的卡尔曼滤波算法,真心牛逼。还有三维模型,可以很直观地看到模块的运动状态。
需要注意的一点是模块在使用前需要校准,否则磁场的偏差比较大。磁场校准的方法相对比较麻烦一些,不过厂家提供了一个三视投影图,可以非常直观地看到校准的情况,从而判断校准是否到位。点击设置页面,然后点击磁场校准按钮,就可以进入磁场校准模式,刚进入磁场校准模式,会弹出一个磁场校准的对话框,是这样的:
然后绕三个轴转动模块,让数据点在三个平面内画点,等画出比较规则的椭圆以后,就可以停止校准了。
停止校准是,先将这个MagCal校准界面关掉,然后在设置页面里点击正常模式按钮,模块的磁场校准值就会被写入模块,然后再点击保存配置按钮,就可以将校准的参数保存到模块的Flash中,即使模块掉电也可以保存这个参数了。
这里有个小技巧,就是让模块坐标平面在南北竖直平面内旋转一圈,然后再交换另外一个平面,也在南北竖直平面内旋转一圈,就可以校准好了。
如下图,第一次先将模块水平放置,X轴朝东,Y轴朝北,然后将模块绕着X轴旋转,这时候,由于地球磁力线是南北向的,在南北竖直平面内,模块转动以后,磁场值将投影到Z\Y平面内,慢慢旋转一圈以后,将在Z\Y平面内画出一个椭圆。
第二次旋转,如下图,先将模块垂直放置,X\Y平面放置在竖直平面内,X轴指向被,Y轴指向天,然后将模块缓慢绕Z轴旋转一周,这样地球的磁场值将在模块的X\Y平面内画出一个完整的椭圆。
理论上经过这两次旋转以后,模块就可以找到磁场的零偏值了,不过为了保险起见,还可以将模块的X、Z平面放置在竖直平面内,然后绕Y轴旋转一周,这样地球的磁场值就可以在X,Z平面内画出椭圆,这样经过三次旋转,模块就可以在三个象限里面均画出完整的椭圆了,磁场的校准效果更好。
经过磁场校准以后,就可以观察到,模块输出的三轴角度可以很好的跟踪模块的运动,精度很好,效果也比较稳定。不过基于磁场测量的方法都怕被干扰,使用的时候一定要远离铁钴镍等磁性物质,铜、铝等非磁感物质倒是没什么影响,因为地球的磁场本身很弱,一旦被干扰,就没法准确地测量出方位了。
这是JY901的资料(资料型号是WT901):http://wiki.wit-motion.com/doku.php