引用: hs伊红美蓝 发表于 2015-7-30 17:31
按你说的方法重新试了一下,没有加卡尔曼滤波,果然这次没有出现上面的错误,不过这个滤波程序是网上用得很流行的按理说应该不会有问题的呀!
引用: ICHLIEBEDICH13 发表于 2015-7-29 15:44
加速度的正负问题是自己程序里面定义的,以直立状态为零点,,向前为正,向后为负,至于角速度变化的问题,这个是原始数据还是滤波之后的数据?滤波用的什么???
引用: newdavid.cool 发表于 2015-7-29 15:41
我想仔细问几个问题:
1.你是直接读取的寄存器,还是用采用了DMP数据处理;
2.你旋转是用什么旋转的,转台还是手动;
引用: ICHLIEBEDICH13 发表于 2015-7-29 15:44
加速度的正负问题是自己程序里面定义的,以直立状态为零点,,向前为正,向后为负,至于角速度变化的问题,这个是原始数据还是滤波之后的数据?滤波用的什么???
引用: hs伊红美蓝 发表于 2015-7-29 20:11
通过卡尔曼滤波后的数据,角度Angle ,角速度Angle_dot 如下图。
引用: ICHLIEBEDICH13 发表于 2015-7-29 21:06
说实话,卡尔曼滤波没用明白,后来就没用,直接用的PID和中值滤波,看着程序熟悉,但我也解释不清楚啊,而且我已经一年多没用了。。。
引用: hs伊红美蓝 发表于 2015-7-29 20:04
回答:1.直接读取寄存器,通过加速度计得到y轴角度,通过陀螺仪得到y轴角速度,再通过卡尔曼融合得到角度Angle,和角速度Angle_dot
2. 手动旋转
3.输出的只有通过卡尔曼滤波后的角度Angle,和角速度Angle_dot。(只是y轴上的) ...
引用: newdavid.cool 发表于 2015-7-30 17:01
我原来用的是DMP,但是没有出现过这种情况,我觉得先不要滤波,直接把数据读出来转换成浮点型看一下,如果还有错误,那看一下读的寄存器对不对,如果差别不大,那就说明是算法的问题。
引用: newdavid.cool 发表于 2015-7-29 13:37
那你再仔细看一下算法的各个参数是怎么回事,首先清楚各输入参数的具体含义,再逐个调试输入参数,确定参数的输入是正确的,如果这些都是对的,还出现问题,那就是算法本身的问题了。调算法的话就自己模拟数值进行验证。这一套走下来应该会发现问题所在。 ...
引用: newdavid.cool 发表于 2015-7-29 13:37
那你再仔细看一下算法的各个参数是怎么回事,首先清楚各输入参数的具体含义,再逐个调试输入参数,确定参数的输入是正确的,如果这些都是对的,还出现问题,那就是算法本身的问题了。调算法的话就自己模拟数值进行验证。这一套走下来应该会发现问题所在。 ...
引用: newdavid.cool 发表于 2015-7-29 13:37
那你再仔细看一下算法的各个参数是怎么回事,首先清楚各输入参数的具体含义,再逐个调试输入参数,确定参数的输入是正确的,如果这些都是对的,还出现问题,那就是算法本身的问题了。调算法的话就自己模拟数值进行验证。这一套走下来应该会发现问题所在。 ...
引用: newdavid.cool 发表于 2015-7-29 13:37
那你再仔细看一下算法的各个参数是怎么回事,首先清楚各输入参数的具体含义,再逐个调试输入参数,确定参数的输入是正确的,如果这些都是对的,还出现问题,那就是算法本身的问题了。调算法的话就自己模拟数值进行验证。这一套走下来应该会发现问题所在。 ...
更多回帖