相关疑难解决方法(0)

使用线性加速度android计算距离

可能重复:
Android加速计精度(惯性导航)

我使用以下代码来计算距离.tnewanew分别arraylists包含时间戳加速度.

 double distance=0;
 double init_vel=0;
long time_prev=tnew.next();
   while(anew.hasNext())
   {
    float temp_acc=anew.next();
    long temp_time=tnew.next();

    interval=(temp_time-time_prev)/1000f;   //milliseconds to seconds
    double fin_vel=init_vel+(temp_acc*interval);
    distance+=(init_vel*interval)+0.5f*temp_acc*interval*interval;

    init_vel=fin_vel;
    time_prev=temp_time;
   }
Run Code Online (Sandbox Code Playgroud)


代码中是否有任何逻辑错误?因为我得到的值远小于实际长度.

产量LogCat:

--------- beginning of /dev/log/system

--------- beginning of /dev/log/main

V/PhonetapeActivity( 8842): Sensor Listener Registered

V/PhonetapeActivity( 8842): Sensor Unregistered

V/PhonetapeActivity( 8842): No. of Iterations : 49

V/PhonetapeActivity( 8842): Value of acceleration : 3.5762787E-7

V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665585965

V/PhonetapeActivity( 8842): Value …
Run Code Online (Sandbox Code Playgroud)

android accelerometer android-sensors

8
推荐指数
2
解决办法
3万
查看次数

使用加速度计和陀螺仪计算位移(MPU6050)

我是一名计算机科学专业的学生,​​从事电子项目,需要计算偏航,俯仰,滚动和X,Y,Z位移.我想用一把枪连接IMU并跟踪它的方向和位移.我能够得到Yaw,Pitch和Roll,但遗憾的是无法理解如何计算我的枪的位移或位置.我使用的是包含MPU-6050的10-DOF GY-87传感器.

我得到了g和m/s2格式的值.从我研究过的研究来看,我需要获得加速度/时间2,然后添加所有值.但是我不明白我应该使用什么时差.参考:如何根据手机加速度计算距离

#include "I2Cdev.h"
#include "MPU6050.h"

// Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
// is used in I2Cdev.h
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
    #include "Wire.h"
#endif

// class default I2C address is 0x68
// specific I2C addresses may be passed as a parameter here
// AD0 low = 0x68 (default for InvenSense evaluation board)
// AD0 high = 0x69
MPU6050 accelgyro;
//MPU6050 accelgyro(0x69); // <-- use for AD0 high

int16_t ax, ay, az;
float dx, dy, …
Run Code Online (Sandbox Code Playgroud)

position arduino accelerometer dead-reckoning gyroscope

5
推荐指数
2
解决办法
4万
查看次数