OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 求助mpu6050各轴除去重力加速度问题

共9条 1/1 1 跳转至

求助mpu6050各轴除去重力加速度问题

菜鸟
2015-07-24 10:31:56    评分
标题:求助mpu6050各轴除去重力加速度问题
内容:各位大侠好,学生最近也开始学着使用mpu6050了,我们的应用主要想测量X,Y,Z轴上面的真实加速度!最近我也查了许多资料,发现直接读取出来的加速度是包含了重力加速度的,我想咨询一下如何才能将各轴的重力加速度减掉,望大侠多多指点一 二,不吝赐教!谢谢!我的邮箱mtd527@163.com



关键词: mpu6050     重力加速度     X     Y     Z轴    

菜鸟
2015-07-24 10:44:50    评分
2楼

参考【讨论帖】姿态解算相关知识储备http://forum.eepw.com.cn/thread/250804/1 中的算法,我是否可以理解为:

下面代码中的ax是X轴包含了重力加速度的加速度值!!!

                     exX轴重力加速度的值!!!

用  ax - ex 所得的值就是X轴上面除去重力加速度后的真实加速度值???

请大家多多指教!谢谢!

void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az) {
        float norm;
        float vx, vy, vz;
        float ex, ey, ez;        
      
        // normalise the measurements
        norm = sqrt(ax*ax + ay*ay + az*az);     
        ax = ax / norm;     
        ay = ay / norm;
        az = az / norm;     
把加计的三维向量转成单位向量。

// estimated direction of gravity
        vx = 2*(q1*q3 - q0*q2);
        vy = 2*(q0*q1 + q2*q3);
        vz = q0*q0 - q1*q1 - q2*q2 + q3*q3;

这是把四元数换算成《方向余弦矩阵》中的第三列的三个元素。
根据余弦矩阵和欧拉角的定义,地理坐标系的重力向量,转到机体坐标系,正好是这三个元素。
所以这里的vx\y\z,其实就是当前的欧拉角(即四元数)的机体坐标参照系上,换算出来的重力单位向量。


        // error is sum of cross product between reference direction of field and direction measured by sensor
        ex = (ay*vz - az*vy);
        ey = (az*vx - ax*vz);
        ez = (ax*vy - ay*vx);

axyz是机体坐标参照系上,加速度计测出来的重力向量,也就是实际测出来的重力向量。
axyz是测量得到的重力向量,vxyz是陀螺积分后的姿态来推算出的重力向量,它们都是机体坐标参照系上的重力向量。


菜鸟
2015-07-24 10:46:48    评分
3楼
请大家多多帮忙,谢谢

菜鸟
2015-07-27 10:21:55    评分
4楼
请大家多多帮忙,谢谢

高工
2015-08-07 19:52:40    评分
5楼

先补充一下理论知识吧

不要着急得到答案


菜鸟
2015-10-11 12:34:05    评分
6楼
ex,ey,ez是误差吧

菜鸟
2015-10-11 12:35:31    评分
7楼
ax-vx-ex才是实际加速度的值吧

菜鸟
2015-10-16 08:33:33    评分
8楼
说实话我也是一知半解;是不是应该先初始化开启高低通滤波,之后再用过滤后的数据求得实际各轴的加速度!

菜鸟
2015-10-16 08:36:44    评分
9楼
大家一起探讨,学习吧,谢谢大家!

共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]