MPU6050的DMP坐标初始化问题
为什么我把板子倾斜一个大一点的角度来运行程序初始化后,用DMP输出的四元素计算出的三个导航角就会变得不准呢?难道一定要把板子水平放好来初始? 自己顶起!!{:cry:}{:cry:} 这是个惯性导航,没有绝对平面,每次初始化后,就默认当前状态位水平面,及时你认为它不是水平面。这个也可以把参数固定,让它每次初始化后都确定一个固定的水平面。 study_hardware 发表于 2014-5-11 20:45这是个惯性导航,没有绝对平面,每次初始化后,就默认当前状态位水平面,及时你认为它不是水平面。这个也可 ...
这正是我想实现的,但如何设定参数才能让他每次都以一个固定的坐标系来初始化呢?就是说要修改DMP的哪部分程序呢? a44416434 发表于 2014-5-12 14:42
这正是我想实现的,但如何设定参数才能让他每次都以一个固定的坐标系来初始化呢?就是说要修改DMP的哪部 ...
我也在纠结这个问题呢 study_hardware 发表于 2014-5-15 12:12
我也在纠结这个问题呢
经过这几天的研究,DMP确实不能以任意空间角度来进行初始化,但是可以修改部分代码,让它可以以水平(重力与z轴重合),侧放(重力与x轴重合),竖直放(重力与y轴重合)来进行初始化。 初始化一次就行了,然后把校准之后的值保存起来。下次开机直接用 cargle 发表于 2014-5-21 10:37
初始化一次就行了,然后把校准之后的值保存起来。下次开机直接用
请问这样做实际验证过可行么?如果可行那是保存些什么值呢? cargle 发表于 2014-5-21 10:37
初始化一次就行了,然后把校准之后的值保存起来。下次开机直接用
将自检测的值保存起来这方法,刚初步验证了下,应该是可行的,而且还能在任意空间角度进行初始化。 mpu_run_self_test(gyro, accel);
理论上将得到的gyro,accel的值保存起来就行 cargle 发表于 2014-5-23 10:34
mpu_run_self_test(gyro, accel);
理论上将得到的gyro,accel的值保存起来就行
想问你一个简单的问题,DMP数据一定要8秒才能稳定吗?有修改稳定时间的方法吗? 这个应该是没有的,就像dmp最高只能是200HZ. cargle 发表于 2014-5-23 11:50
这个应该是没有的,就像dmp最高只能是200HZ.
恩,说到这个频率,那么dmp_set_fifo_rate和mpu_set_sample_rate这两个频率有什么分别呢?你所说的200hz应该是设置dmp_set_fifo_rate这个? a44416434 发表于 2014-5-23 11:05
想问你一个简单的问题,DMP数据一定要8秒才能稳定吗?有修改稳定时间的方法吗? ...
你保存的值读出来补偿,就不需要8秒了 a44416434 发表于 2014-5-21 10:25
经过这几天的研究,DMP确实不能以任意空间角度来进行初始化,但是可以修改部分代码,让它可以以水平(重 ...
楼主是如何修改代码使重力在其它轴重合初始化的 chuanming 发表于 2014-5-27 11:06
楼主是如何修改代码使重力在其它轴重合初始化的
你好,首先我不是楼主哦,然后呢,不好意思最近少上论坛,这么久才回复你,最后呢,你可以通过修改mpu_run_self_test函数下的get_st_biases函数里的最后一个if语句,如下:
if (accel > 0L) //数组2修改为1 由z轴水平初始变为y轴水平初始
accel -= 65536L;
else
accel += 65536L; //
只要把accel数据中的标号修改成你想要的方向就好了,0是x轴,1是y轴,2是z轴,DMP默认程序写的是accel,所以只能通过将芯片水平放置让z轴和G重合才能让mpu_run_self_test函数自检成功。 这个DMP功能的特点,把初始化默认为是水平,然后进行传感器校正。 a44416434 发表于 2014-6-3 08:59
你好,首先我不是楼主哦,然后呢,不好意思最近少上论坛,这么久才回复你,最后呢,你可以通过修改mpu_ru ...
解释非常好,太感谢了,正好用上,之前可能是轴方向改变了,垂直放置初始化后8秒过程中,角度漂的很厉害,然后才慢慢的回到零点,不知道是不是这个原因,有空验证一下 a44416434 发表于 2014-6-3 08:59
你好,首先我不是楼主哦,然后呢,不好意思最近少上论坛,这么久才回复你,最后呢,你可以通过修改mpu_ru ...
非常感谢,你的回答让我解决了不少麻烦! 太好了正是我需要的,我修改后可以换轴了~~以及保存初值的方法真是太好了 asha 发表于 2014-6-3 17:47
这个DMP功能的特点,把初始化默认为是水平,然后进行传感器校正。
这个由办法矫正么? cargle 发表于 2014-5-23 10:34
mpu_run_self_test(gyro, accel);
理论上将得到的gyro,accel的值保存起来就行
这个怎么保存纠正呀求指导 楼主有办法解决么
页:
[1]