2012-01-10 29 views
5

Tôi đang tạo một ứng dụng trong Android, nơi tôi cần phát hiện xem người đó có rơi xuống không. Tôi biết rằng câu hỏi này đã được yêu cầu và trả lời là sử dụng toán học vector trong các diễn đàn khác nhưng tôi không nhận được kết quả chính xác từ nó.Phát hiện nếu Người đó rơi xuống

Dưới đây là mã của tôi để phát hiện sự sụp đổ:

@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; 
    } 
    } 
} 

Để giải thích các mã trên tôi đã sử dụng tổng vector và kiểm tra nếu giá trị đã đạt đến mức thấp hơn hoặc bằng 6 (trong khi mùa thu) và đột nhiên lớn hơn hơn 13.5 (trong khi hạ cánh) để xác nhận mùa thu.

Bây giờ tôi đã được thông báo trong diễn đàn rằng nếu thiết bị vẫn là tổng vector sẽ trả về giá trị là 9,8. Trong khi rơi nó phải gần bằng 0 và nên đi đến khoảng 20 trong khi hạ cánh. Điều này dường như không xảy ra trong trường hợp của tôi. Xin vui lòng ai có thể đề nghị nếu tôi đang đi sai bất cứ nơi nào?

+3

Đề xuất của tôi là ... Tìm một tấm nệm và tự làm một số xét nghiệm. Làm cho một ứng dụng nhỏ đăng nhập tất cả các giá trị có liên quan và mang nó từ đó. – Cheesebaron

+0

Tôi đã thực hiện một số thử nghiệm trên ứng dụng và nó đi đến khoảng 6 trong khi giảm, 15 trong khi nhấn mặt đất mà tôi không chắc chắn là chính xác hay sai. – Karan

+0

Bạn đã tìm thấy mã làm việc chính xác cho điều này chưa? Tôi đang ở cùng một nơi, bạn có thể xin vui lòng gửi câu trả lời của bạn nó sẽ thực sự hữu ích cho tôi.Cảm ơn. –

Trả lời

1

Tiếp theo sẽ xảy ra nếu người/điện thoại rơi xuống:

  • tuyệt đối giá trị vectơ gia tốc đi vào 0 (với một số tiếng ồn tất nhiên)
  • sẽ có spike công bằng về giá trị vector tuyệt đối trên hạ cánh (lên giá trị tối đa được cung cấp bởi gia tốc kế)

Khi điện thoại là bất động, bạn có véc tơ trọng lực trái đất modulo hướng lên

Mã của bạn về cơ bản là chính xác, nhưng tôi sẽ sử dụng một số trung bình vì gia tốc được sử dụng trong điện thoại có giá rẻ - không ồn ào và thiếu chính xác

+1

Xin lỗi, tôi không thể hiểu ý bạn bằng cách làm trung bình. Sẽ tuyệt vời nếu bạn có thể xây dựng thêm một chút. – Karan

7

Có một người đã phát triển một ứng dụng Android cho điều đó. Có thể bạn có thể nhận được một số thông tin từ trang web của mình: http://ww2.cs.fsu.edu/~sposaro/iFall/. Ông cũng làm một bài báo giải thích cách ông phát hiện ra sự sụp đổ. Nó thực sự thú vị, bạn nên kiểm tra xem nó ra!

Link cho giấy: http://ww2.cs.fsu.edu/~sposaro/publications/iFall.pdf

Tiếp tục, việc phát hiện vào mùa thu được dựa trên kết quả của sự tăng tốc X-Y-Z. Dựa trên giá trị này:

  1. Khi rơi, rơi thường bắt đầu với một khoảng thời gian rơi tự do, làm cho kết quả giảm xuống dưới 1g.
  2. Trên tác động trên mặt đất, có một đỉnh trong biên độ của kết quả, với giá trị lớn hơn 3g.
  3. Sau đó, nếu người đó không thể di chuyển do mùa thu, kết quả sẽ vẫn gần 1G.
1

Để thêm trung bình vào tín hiệu của bạn có nghĩa là: - di chuyển trung bình. Nó phụ thuộc vào kích thước cửa sổ của bạn. Ví dụ. Giả sử tôi có một vector với các số sau: 1,2,3,4,5,6. và kích thước cửa sổ của tôi là 2. Sau đó, trung bình di chuyển là lấy mỗi hai số từ véc tơ của bạn và trung bình chúng bằng 2. Vì vậy, bạn sẽ mất 1 + 2/2, và sau đó di chuyển một đến twos tiếp theo. 2 + 3/2, v.v.

Các vấn đề liên quan