【问题标题】:Drawing in air with Android phone用安卓手机在空中画画
【发布时间】:2011-11-27 22:24:47
【问题描述】:

我正在开发一个使用安卓手机在空中画画的应用程序。

当我的手机在移动时,借助加速度计,我可以检索每个轴 ax、ay、az 上的加速度。我感兴趣的是:x,y,z。

根据我在论坛和一些教程中阅读的内容,两次集成加速会产生巨大的错误。

那么,对于我来说,获取手机更换信息的最佳解决方案是什么?

感谢您的帮助。

【问题讨论】:

  • 我对 Android 编程一无所知,但 AFAIK 集成两次是找出手机位置的唯一数学方法。
  • 如果您只是将起始位置定义为 (0, 0, 0) 并积分一次以获得速度,然后将该速度添加到矢量到每次加速度计更新时的前一个位置以确定一个新职位?
  • 嗨!这就是我想要做的,但加速度计值变化如此之快,以至于我的绘图变得一团糟!
  • 你是怎么得到一半合理的价值的?由于必须使用高通滤波器来去除重力矢量,当我的手机甚至没有移动时,我的积分结果会在几分钟内超过光速!

标签: android accelerometer android-sensors gyroscope


【解决方案1】:

不是你要找的东西:

Store orientation to an array - and compare

跟踪方向效果很好。也许您可以对加速度计数据执行类似的操作(无需任何集成)。

正如您在帖子中提到的,将加速集成两次是行不通的。

更新:

如果精度根本不重要,那么双积分可能会工作几秒钟,但结果会很差。

不过,在我看来,陀螺鼠标是更好的选择。在

中查看 37:00-38:25 之间

Sensor Fusion on Android Devices: A Revolution in Motion Processing.

【讨论】:

  • 你觉得我可以用陀螺仪来记录手机的移动吗?俯仰、滚动和偏航?
  • 使用电流传感器无法准确跟踪手机的运动。请参阅here 中的第 6.2.3 小节错误传播。不管你是轨道运动还是方向,无论如何你都需要陀螺仪,即使它很好地隐藏在 SensorManager 中。
  • 我是学生助理,我的学期工作就是做这个项目!!!我现在压力很大,因为我被这个问题锁定了好几个星期!即使跟踪不准确,我也只是(起初)想做一个可以画一些涂鸦的应用程序!没有什么非常精确的。你真的认为这是不可能的吗?有一个 Iphone 应用程序可以做到!
【解决方案2】:

看看:

http://www.youtube.com/watch?v=C7JQ7Rpwn2k

http://www.freescale.com/files/sensors/doc/app_note/AN3397.pdf

我也在做一个类似的项目,我认为你不需要双重积分加速度和计算移动距离。而是使用加速度本身进行移动。

但是,如果您坚持使用距离,则通过在短时间间隔 (t0,t1,...,tn) 内采样加速度 (a0,a1,...,an) 并假设您在此间隔内的加速度平均值为边界,你可以有类似的东西;

 Vs=(t1-t0)*(a1+a0)/2 + (t2-t1)*(a2+a1)/2 + ... + (t[n]-t[n-1])(a[n]+a[n-1])/2

 T=t[n]-t[0]

 Xs=Vs*T

这与双插有点不同。祝你好运。

【讨论】:

  • 非常感谢您的建议。你用什么来做你的应用程序?我说的是距离,因为我认为它可能是检索用户绘图的唯一方法。 “使用加速度本身进行移动”是什么意思?你是怎么做到的?
  • 一开始我也是这么想的。但后来我意识到这一点:例如,如果你的加速度是 1G(10m/s^2),那么你应该将你的笔向左移动 10 像素,直到加速度发生变化。如果是 2G 移动 20 个像素。我希望你明白吗?我会通知你我的项目进展。祝你好运。我正在努力将设备用作空中 pc 鼠标。
  • 但是如何将更改映射到像素?例如,我的手机以 1G 的加速度向左移动,我如何在我的屏幕上在这个方向上画一条 10 像素的线?
  • @kubudi 你写的是双积分。没有双积分,你就无法从加速度中获得距离。
  • 计算好要绘制多少像素后,剩下的就是简单的绘制了。看看:developer.android.com/guide/topics/graphics/index.html@Ali 不是双重积分,是求和。正如我所说,它有点不同。执行此操作时,您将在此时间间隔内忽略更改。只有样品很重要。我希望你能有所作为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 2016-12-10
  • 2011-11-15
  • 2011-12-04
  • 1970-01-01
相关资源
最近更新 更多