我想构建一个应用程序,使用陀螺+加速度计计算iPhone(非长距离)的准确行进距离.这里不需要GPS.
我该如何处理这个问题?
我正在为我的应用程序开发一个演示,其中有两个按钮,分别命名为"START"和"STOP".当用户点击"开始"时,他将开始行走.我想要做的是,当用户点击"STOP"时,演示将计算他在"START"和"STOP"之间的距离.如果用户按下"START"并按下"STOP"而不执行任何步骤,则必须显示0km或0m.我不知道如何开始这个; 请提出建议.
据我了解,GPS的准确性有限.是否有可能为3D空间中的人获得更精确的位置?
我打算编写一个应用程序,用户可以在任何方向上移动手机,但只需要移动几英尺.是否有任何技术,可能使用加速度计和陀螺仪来实现这种精确度?
例如,用户将电话保持平坦(使得电话的底部与地板平行).屏幕上有一些东西,当人向前,向后和左右移动时,它不会随着屏幕移动.因此,对象看起来是不可移动的,并且只有通过将电话放在3D空间中的正确位置才能发现.
我不需要任何人编写一些代码,只要简单地了解一下,如果通过一些努力工作,这甚至是可能的.
谢谢!
德里克
我正在开发一个应用程序,我想跟踪移动用户在GPS不可用的建筑物内的位置.用户在众所周知的固定位置(精确到5厘米内)开始,此时电话中的加速度计将被激活以跟踪相对于该固定位置的任何进一步的移动.我的问题是,在当代智能手机(iphone,Android手机等)中,人们可以准确地根据这些手机通常配备的加速度计来跟踪某些人的位置吗?
具体的例子很好,例如"如果我从起点移动50米X,从起点移动35米Y,从起点移动5米Z,我可以预期我的位置近似在+/- 80之内大多数现有智能手机上的厘米",或者其他什么.
我对卡尔曼滤波器等技术只有肤浅的理解来校正漂移,但是如果这些技术与我的应用相关并且有人想要描述我可能从这些技术中获得的校正的质量,那将是一个加分.
我想通过移动iPhone在iPhone屏幕上移动对象(矩形,圆形等).例如,我沿着X轴移动iPhone,对象沿着X轴移动.Y轴,Z轴相同.
我怎样才能做到这一点?我可以获得算法吗?
谢谢.
PS:我看了一会儿,似乎有可能使用加速度计.
虽然GPS适用于长距离更换,但我想使用iPhone的加速度计测量更短的距离.
假设我想使用iPhone应用程序测量盒子的高度.您可以启动应用程序,按一个按钮在框底部开始测量,将iPhone移动到框顶部,然后按一个按钮停止测量.然后,应用程序将计算并显示框的高度.
我如何使用加速度计进行这种测量?
我必须编写一个iphone应用程序,它可以跟踪iphone本身的运动,考虑到它的初始位置,而不使用GPS.也就是说,我只能使用陀螺仪和加速度计提供的数据.我需要测量的距离相当小,我所寻找的精度最多是40-50厘米(~2英尺).
这可能吗?如果是这样,最好的方法是什么?另外,您是否知道已经实现此功能的任何现有(也可能是开源)项目?
非常感谢!
我正在开发一个使用Android OS的应用程序,我需要知道如何计算设备在垂直方向上的移动.
例如,设备处于静止状态(A点),用户手拿它(B点),现在A点和B点之间有高度变化,我该如何计算?
我已经阅读了有关传感器和加速度计的文章,但我找不到任何可以帮助我的东西.有人有主意吗?
最近我做了一些研究,使用加速度计+陀螺仪来使用那些传感器在没有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) 我一直试图弄清楚如何制作一个应用程序来检测设备是否已被移动了很多,不仅仅是震动.我试图检测一个距离,比如至少一英尺.阅读官方Android开发网站上的培训部分,我最好的猜测是我应该使用重要运动传感器,但我找不到如何使用它的示例.我只是将我的"当前"位置存储在一个数组中,然后在调用Event时将其与's值数组进行比较onTrigger()?
或者我应该使用加速度计吗?其他一些传感器?的LocationManager(是一个不够准确?)?
是否可以使用加速度计来检测高度?例如,如果我拿着手机,然后抬起手臂后检测身高?
谢谢
android ×6
iphone ×5
gyroscope ×4
distance ×3
gps ×2
ios4 ×2
calculator ×1
filter ×1
geolocation ×1
motionevent ×1
sensor ×1
tracking ×1
xcode ×1