Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用加速计(陀螺仪?)在二维空间绘图_Android_Accelerometer_Physics_Gyroscope - Fatal编程技术网

Android 使用加速计(陀螺仪?)在二维空间绘图

Android 使用加速计(陀螺仪?)在二维空间绘图,android,accelerometer,physics,gyroscope,Android,Accelerometer,Physics,Gyroscope,我正在尝试创建一个应用程序来跟踪设备在二维空间中的移动。在网上做了研究之后,我发现一种方法是将线性加速度积分两次,但误差很可怕 这个问题有什么解决办法吗?我希望能够向上移动我的手机,这将导致在屏幕上画一条垂直线,以缩放手机移动的距离。然后,如果我将手机向左移动,就会画出一条水平线——实际上,我可以通过手机的移动在屏幕上画画 这能做到吗?如果是的话,我应该朝什么方向发展?我不知道从哪里开始… 编辑:有关项目的详细信息: 我正在尝试制作一款能够跟踪腿部/手臂运动的运动应用程序:例如,当你做仰卧起坐时

我正在尝试创建一个应用程序来跟踪设备在二维空间中的移动。在网上做了研究之后,我发现一种方法是将线性加速度积分两次,但误差很可怕

这个问题有什么解决办法吗?我希望能够向上移动我的手机,这将导致在屏幕上画一条垂直线,以缩放手机移动的距离。然后,如果我将手机向左移动,就会画出一条水平线——实际上,我可以通过手机的移动在屏幕上画画

这能做到吗?如果是的话,我应该朝什么方向发展?我不知道从哪里开始…

编辑:有关项目的详细信息:

我正在尝试制作一款能够跟踪腿部/手臂运动的运动应用程序:例如,当你做仰卧起坐时,手机会在你的脚踝上系上一条臂带


该应用程序将跟踪腿部的重复运动。

不幸的是,这些手机中的加速度计远不能满足安装惯性测量单元的需要。最大的问题是,因为积分是两次积分,所以积分总是伴随着一个常数积分(x,dx)=x^2/2+c,这个常数使积分变得困难。更糟糕的是,你们得到了两次,一次积分得到速度,一次得到位置

我在商业内部测量装置中看到的一种修复方法称为零速度零点,在这里,你可以使用其他数据源来告诉它你何时停止了设备的运动,这样你就可以将速度归零。例如,我看到一个项目将惯性测量单元放在一只鞋上,每当它检测到鞋被放在地面上时,它就会将速度归零,这大大提高了精度。这可能是你可以用相机或其他东西来确定这一点,但我没有看到它这样做。如果你想开始搞砸这件事,那么你是一个很棒的人,我很想听听结果如何


编辑:我应该澄清,我上面提到的常数是错误累积的地方。如果你可以将速度归零,那么你可以周期性地从你存储的当前速度中删除累积误差。位置误差仍然会累积,但是当他们保持相对静止时,这将使其不会漂移,这可能使其可以绘制。

除了将加速度积分两次,我不知道其他方法

此外,我认为,如果您不了解设备中可能存在的其他传感器(例如,在我的一台设备上,我有7(七)个传感器,它们与设备可能接收的各种物理信号相关),那么这是不可能的


除此之外,请记住,传感器数据有噪声,几乎总是必须进行预过滤。例如,您可以使用最后10个样本的几何平均值。通过向积分函数提供更平滑的输入数据,可以降低误差。

嘿,速度零点是解决我问题的可行方案。我正在尝试制作一款能够跟踪腿部运动的运动应用程序,例如,当你做仰卧起坐时,手机会在你的脚踝上系上一条臂带。这听起来很愚蠢,但我对此很感兴趣:)有趣,但请记住,鞋子的工作原理是它们有一个开关,可以接触地面,准确地告诉传感器何时不动。你可能会有嘎吱嘎吱声的问题,因为你实际上没有把脚放在任何东西上。然而,像这样的重复动作,你可以反转方向,你当然可以计算出嘎吱嘎吱的次数,就像计步器计算步数一样。由于运动的周期性,当加速度停止时,你也可以推断出你的零速度,但这会更复杂。