本帖最后由 lujiashun1 于 2014-12-16 13:39 编辑
建议楼主参考一下Android 线性加速度传感器的用法 他是加速度传感器经过过滤将重力去除得到的然后应该根据当前的角度等计算x y z的位移TYPE_LINEAR_ACCELERATION
不知道大家有没有用过这个东西,从视频和参数介绍上看貌似很强大,省去了数据融合的麻烦,但也失去了亲自去实践的乐趣,呵呵,我一个新手,很多方面要向大家学习啊。第二个视频是记录轨迹的,从视频上看来还是很准确的,可惜没有找到关于这个东西更多深入一些的资料。
http://www.youtube.com/watch?v=LEYPILpe0Dk
http://www.sensorexpert.com.cn/UploadFiles/FCK/PNI%20Sentral轨迹视频(3).swf
楼主你好,这个东西本人接触不久,最终结果不是那么尽人意,本人感觉这东西难点在于对于输出信号的滤波处理和积累误差的处理,但是个人感觉难点还在积累误差的处理上面。
探讨MPU6050加速度的位移
楼上大神们算出积分了吗?我最近也在折腾这个,求助~
MPU6050 Z轴指北不零 ?
伟创电子工作室 发表于 2013-5-18 18:16 static/image/common/back.gif
于是我肯定了MPU6050 使能做到记录位移的,然而第一步是先把位移的加速度算出来,我 ...
分享一下源码咯 好人一生平安呀
楼主,这东西有研究出来了吗?求探讨!
我勒个去!!!!!!!!!!!!!
误差大,还是算法有问题?这位移难搞!
mpu.dmpGetQuaternion(&q, fifoBuffer);//
mpu.dmpGetAccel(&r,fifoBuffer);
mpu.dmpGetGravity(&gravity, &q);
mpu.dmpGetLinearAccel(&aaReal,&r,&gravity);
mpu.dmpGetLinearAccelInWorld(&aaWorld, &aaReal, &q);
unsigned long nowtime =millis();
float acc1=aaWorld.x;
if(abs(acc1)<20)
{
AccX=abs(acc1);
AccXT=nowtime;
AccXT+=nowtime;
/*if(AccXT>1000)
{
AccXT=0;
JL1=0;
}*/
}
if(abs(acc1)>20)
{
AccX=abs(acc1);
AccXT=nowtime;
JL=abs((AccX*(AccXT-AccXT)+0.5*AccX*(AccXT-AccXT)*(AccXT-AccXT))/1000000);//:s=v0t+at*t/2;
JL1=JL1+JL;
Serial.print("JL1\t");
Serial.print(JL1);
Serial.print("\t");
AccX=AccX;
AccXT=AccXT;
}
探讨MPU6050加速度的位移(内附官方说明带中文翻译书签
http://www.iaeej.com/xxydzgc/ch/reader/download_pdf.aspx?file_no=20130417&year_id=2013&quarter_id=4&falg=1
伟创电子工作室 发表于 2013-5-18 18:16 static/image/common/back.gif
于是我肯定了MPU6050 使能做到记录位移的,然而第一步是先把位移的加速度算出来,我 ...
我测出的水平加速度 变化很大,
lz没法下载呀。。。