官方DMP库不得不说是对姿态融合新手的是一个福音,什么也不用管,只需要移植好就可以得到四元函数,然后官方库中给的demo中有将四元函数转化成欧拉角的函数,可以说可以完完全全绕开这个麻烦的姿态融合,毕竟不是我等小白可以短时间吸收创造的。
移植过程比较简单,只需要添加一些函数,便可使用,我用STM32做的移植,在这里就不贴源码,只说一些过程便可,之后会把工程已经上传,需要的可以去下载
官方DMP:http://download.csdn.net/detail/shaynerain/9779752 其中加入了几个说明
STM32移植好的DMP:http://download.csdn.net/detail/shaynerain/9779816
1、官方库中比较重要的就是eMPL文件夹中的几个文件,其中inv_mpu.c,inv_mpu_dmp_motion_driver.c便是我们需要移植修改的几个文件
2、加入工程后,inv_mpu.c需要添加上
#define MPU9250
#define MOTION_DRIVER_TARGET_MSP430
inv_mpu_dmp_motion_driver.c中加入
#define MOTION_DRIVER_TARGET_MSP430
3、如果英文稍微好一些就可以看到上面的英文提示,需要添加什么函数,原文如下
/* The following functions must be defined for this platform:
* i2c_write(unsigned char slave_addr, unsigned char reg_addr,
* unsigned char length, unsigned char const *data)
* i2c_read(unsigned char slave_addr, unsigned char reg_addr,
* unsigned char length, unsigned char *data)
* delay_ms(unsigned long num_ms)
* get_ms(unsigned long *count)
*/
意思就是添加这几个函数,按照要就添加这几个函数,当然是可以用的,特别是IIC函数
4、接下来就是直接套用demo中的man函数,里面内容稍作修改,添加上我们自己的iic初始化函数,接下来就可以编译,看哪里出错,根据提示去修改
此文章只是写下我当初移植过程,上传文件是我在网上直接找到的,并非是我移植的工程,移植过程主要看自己,根据错误提示去修改,一定会成功的