我正在考虑为Android手机实施一个惯性导航系统,我意识到加速度计的准确性和读数的不断波动很难实现.
首先,我将手机放在一个平面上,并在X和Y方向上取样1000个加速度计读数(平行于工作台,因此没有重力作用于这些方向).然后我平均这些读数并使用该值来校准手机(从每个后续读数中减去该值).
然后我再次将它放在桌面上并在X和Y方向上采样5000个加速度计读数来测试系统.考虑到校准,我预计这些加速度应该在每个方向上加起来为0(大致).然而,情况并非如此,并且超过5000次迭代的总加速度远不及0(每个轴上平均大约10).
我意识到没有看到我的代码,这可能很难回答,但在更一般的意义上......
这只是移动电话(HTC Desire S)上加速度计读数不准确的一个例子,还是我在编码中出错的可能性更大?
我想构建一个应用程序,使用陀螺+加速度计计算iPhone(非长距离)的准确行进距离.这里不需要GPS.
我该如何处理这个问题?
我只是应用程序开发行业的初学者.我知道加速度计可用于沿三轴返回当前加速度,单位为米/秒平方(m/s2).但我已经知道加速度计也可以用作速度计.
我想知道如何使用加速度计来确定Android设备在兴趣点之间的行进距离.如果可能,那我该如何实现呢?我已经看到了类似的问题"我如何使用加速度计测量 Iphone行进的距离" 如何测量iPhone使用加速度计行进的距离?.但我没有达到目的.
谢谢,阿尔斯兰
我想通过移动iPhone在iPhone屏幕上移动对象(矩形,圆形等).例如,我沿着X轴移动iPhone,对象沿着X轴移动.Y轴,Z轴相同.
我怎样才能做到这一点?我可以获得算法吗?
谢谢.
PS:我看了一会儿,似乎有可能使用加速度计.
我必须编写一个iphone应用程序,它可以跟踪iphone本身的运动,考虑到它的初始位置,而不使用GPS.也就是说,我只能使用陀螺仪和加速度计提供的数据.我需要测量的距离相当小,我所寻找的精度最多是40-50厘米(~2英尺).
这可能吗?如果是这样,最好的方法是什么?另外,您是否知道已经实现此功能的任何现有(也可能是开源)项目?
非常感谢!
最近我做了一些研究,使用加速度计+陀螺仪来使用那些传感器在没有GPS帮助的情况下跟踪智能手机(参见这篇文章) 基于陀螺仪和加速度计的室内定位系统
为此我需要我的方向(角度(俯仰,滚动等))所以这里到目前为止我所做的:
public void onSensorChanged(SensorEvent arg0) {
if (arg0.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
{
accel[0] = arg0.values[0];
accel[1] = arg0.values[1];
accel[2] = arg0.values[2];
pitch = Math.toDegrees(Math.atan2(accel[1], Math.sqrt(Math.pow(accel[2], 2) + Math.pow(accel[0], 2))));
tv2.setText("Pitch: " + pitch + "\n" + "Roll: " + roll);
} else if (arg0.sensor.getType() == Sensor.TYPE_GYROSCOPE )
{
if (timestamp != 0) {
final float dT = (arg0.timestamp - timestamp) * NS2S;
angle[0] += arg0.values[0] * dT;
filtered_angle[0] = (0.98f) * (filtered_angle[0] + arg0.values[0] * dT) + (0.02f)* (pitch); …Run Code Online (Sandbox Code Playgroud) 是否可以使用加速度计来检测高度?例如,如果我拿着手机,然后抬起手臂后检测身高?
谢谢