Career/Barrier Free Application Development

기능: 낙상 감지(fall detector) - 낙상 알고리즘 (4단계)

김 정 환 2020. 2. 20. 15:59
반응형
낙상 감지 기능의 필요성

낙상 감지 기능이 필요했던 이유는 다음과 같습니다. 시각장애인분들이 거리에서 볼라드와 같은 물체에 부딪혀서 넘어지는 경우가 있고, 거리의 턱이나 무엇에 걸려서 넘어지는 경우가 있다고 합니다. 일반인의 경우 대처가 쉬울 수 있지만 시각장애인분들은 그렇지 못하는 경우가 있다고 합니다. 따라서 조금 더 편의를 제공하기 위해서 낙상 감지 기능을 추가하기로 했습니다.

 

 

 

낙상 감지 알고리즘

기계공학을 공부한 경험이 없고 Java로 수학 알고리즘을 작성해본 경험이 전무했습니다. 그래서 제가 손수 제작하기에는 엄청난 난이도가 있다는 것을 알고 검색을 한 결과 아래 사이트를 발견했습니다. 제가 원하는 소스코드의 90% 이상을 구현해 주셨고 공유해 놓으셨습니다. 저의 블로그에 그대로 사용하는 것은 무례할 것 같아서, 필요하신 분들은 여기로 이동하셔서 참고해주시면 되겠습니다. 

 

https://seongjaemoon.github.io/android/2018/04/19/ajmFallDetection.html

 

슈퍼문의 개발일지

Android, Git, Algorithm, IT, Firebase, Web, Database, My Story, etc.

seongjaemoon.github.io

 

 

저희가 추가적으로 더한 코드는 낙상이 감지되었을 때, TTS로 알려드리고 연락처가 저장된 팝업을 띄워줍니다. 그리고 10초 동안 아무런 클릭이 없을 경우 SMS을 통해서 저장된 연락처를 통해서 낙상자의 위치가 전송됩니다.

 

SMV>60으로 설정했습니다. 블로그에서 35 정도면 충분하다고 했지만, 여러번의 실험결과 60 이하에서는 핸드폰을 주머니에 넣었을 때 툭 떨어지는 경우도 낙상으로 감지하는 경우가 많았습니다. 낙상이 감지되면 "낙상이 감지되었습니다."라는 음성이 나오고 Fallpopup이라는 팝업창을 띄워줍니다. 그리고 현재 경도와 위도도 함께 보내줍니다.

 

 

팝업창은 아래와 같이 띄워집니다. 번호라고 씌여져 있는 곳에 사용자가 입력한 이름이 기입됩니다. 그리고 버튼을 누르면 기입된 전화번호로 연락이 됩니다.

10초 뒤에 SMS로 보내는 소스 코드는 아래와 같습니다. 

 

현재 SMS 기능은 구글 플레이어의 승인이 없으면 어플 출시에서 제한이 됩니다. 관련 사항은 여기를 통해서 참고하시기 바랍니다. 그 외에 민감성이 높거나 위험한 권한도 제한 되었습니다. 이러한 권한을 승인 받고 구글 플레이어에 등록하기 위해서는 관련 권한을 꼭 사용해야 하는 이유를 양식을 작성해서 제출하여야 합니다. 저희 팀은 이러한 사실을 모르고 코드에 권한 확인이 제대로 이루어지지 않았다고 생각해서 2주 동안 코드만 수정했었습니다. 그런데 양식을 제출하니 쉽게 통과 되었습니다... 2주 동안 뭘 한 건지...

 

 

 

반응형