android - 检测人是否跌倒

标签 android accelerometer

我正在 android 中创建一个应用程序,我需要在其中检测人是否摔倒了。我知道这个问题已经在其他论坛中被问及关于使用矢量数学的问题,但我没有从中得到准确的结果。

下面是我检测跌倒的代码:

@Override
public void onSensorChanged(SensorEvent arg0) {
  // TODO Auto-generated method stub
  if (arg0.sensor.getType()==Sensor.TYPE_ACCELEROMETER) {
    double gvt=SensorManager.STANDARD_GRAVITY;

    float vals[] = arg0.values;
    //int sensor=arg0.sensor.getType();
    double xx=arg0.values[0];
    double yy=arg0.values[1];
    double zz=arg0.values[2];
    double aaa=Math.round(Math.sqrt(Math.pow(xx, 2)
                                    +Math.pow(yy, 2)
                                    +Math.pow(zz, 2)));

    if (aaa<=6.0) {
      min=true;
      //mintime=System.currentTimeMillis();
    }

    if (min==true) {
      i++;
      if(aaa>=13.5) {
        max=true;
      }
    }

    if (min==true && max==true) {
      Toast.makeText(FallDetectionActivity.this,"FALL DETECTED!!!!!" ,Toast.LENGTH_LONG).show();
      i=0;
      min=false;
      max=false;
    }

    if (i>4) {
      i=0;
      min=false;
      max=false;
    }
  }
}

为了解释上面的代码,我使用了向量和并检查该值是否已达到低于或等于 6(坠落时)并突然大于 13.5(着陆时)以确认坠落。

现在有人在论坛上告诉我,如果设备仍然是向量和,则向量和将返回 9.8 的值。下降时它应该接近 0 并且在着陆时应该达到 20 左右。在我的情况下,这似乎没有发生。如果我哪里出错了,有人可以建议吗?

最佳答案

有人为此开发了一个 Android 应用程序。也许你可以从他的网站上得到一些信息:http://ww2.cs.fsu.edu/~sposaro/iFall/ .他还发表了一篇文章,解释了他是如何发现跌倒的。这真的很有趣,你应该看看!

论文链接:http://ww2.cs.fsu.edu/~sposaro/publications/iFall.pdf

恢复时,跌倒检测基于 X-Y-Z 加速度的结果。基于这个值:

  1. 下落时,下落通常以自由落体阶段开始,使结果大大下降到 1g 以下。
  2. 在撞击地面时,合成物的振幅有一个峰值,其值高于 3g。
  3. 之后,如果这个人因为跌倒而不能动弹,结果将保持接近1G。

关于android - 检测人是否跌倒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8804227/

相关文章:

android - 当 Droid/Nexus One 上的屏幕关闭时,加速度计停止提供样本,即使使用 WakeLock

android - Android 上加速度计读数的最大值

android - 在 Android 上注册多个传感器监听器时出现问题

android - 空 EditText 错误(很多 EditText)

java - 使用 handler.obtainmessage 时出现空指针异常

android - 在 logcat 中获取空白屏幕

将 Arduino 加速度计的 G 值转换为 float

android - 使用 faSTLane 管理 alpha/beta/release channel 的 bundle id 的正确方法

android - Activity 加载内容的速度不够快

mobile - J2ME加速度计有什么好的引用资料吗,我似乎没有找到