2013-02-03 4 views
2

2D 공간에서 장치의 움직임을 추적하는 응용 프로그램을 만들려고합니다. 온라인으로 연구를 한 후에 선형 가속을 두 번 통합하는 방법이 있지만 오류는 끔찍한 것입니다.가속도계 (자이로 스코프?)를 사용하여 2D 공간에서 그리기

이 문제를 해결할 수있는 방법이 있습니까? 전화기를 위로 움직여서 수직선을 화면에 그려서 전화 이동 거리를 측정 할 수 있기를 바랍니다. 그런 다음 전화기를 왼쪽으로 옮기면 수평선이 그려 지므로 효과적으로 휴대 전화의 움직임을 사용하여 화면을 그릴 수 있습니다.

이 작업을 수행 할 수 있습니까? 그렇다면 어떤 방향으로 개발해야합니까? 어디서부터 시작 나는 모르겠어 ...

편집 :

내가 다리/팔의 움직임을 추적하는 운동 응용 프로그램을 만들려고 노력하고 있어요 : : 프로젝트에 대한 자세한 예를 들어, 당신은 위 크런치를하고 있고 전화는 당신의 발목에 팔걸이 끈으로 붙어 있습니다.

응용 프로그램은 다리의 반복 움직임을 추적합니다.

답변

2

유감스럽게도이 전화기의 가속도계는 관성 측정 장치를 구현하는 데 필요한 곳에 가까이 있지 않습니다. 큰 문제는 두 번 통합하는 것이 항상 상수 적분 (x, dx) = x^2/2 + c와 함께 온다는 것입니다.이 상수는 이것을 어렵게 만듭니다. 상황을 악화 시키려면 속도를 얻기 위해 통합하고 위치를 얻으려면 한 번, 두 번 얻습니다.

상업용 측정 단위에서 보았던이 문제를 해결하는 한 가지 방법을 0 속도 null이라고합니다. 여기서는 장치의 움직임을 멈출 때이를 알려주는 다른 데이터 소스를 사용합니다 속도를 제로로 만든다. 예를 들어, 프로젝트에서 신발에 관성 측정 단위를 넣은 다음 신발을 땅에 대두는 것을 감지 할 때마다 속도가 0이되어 정확성이 크게 향상되었습니다. 당신이 이것을 결정하기 위해 카메라 또는 무언가를 사용할 수있는 가능성은 있지만, 나는 그것이 끝난 것을 보지 못했습니다. 당신이 이것으로 어지럽히 기 시작하고 싶다면 당신은 멋진 분이 십니다. 나는 그것이 어떻게 나오는지 듣고 싶습니다.

편집 : 위에서 언급 한 상수는 오류가 누적되는 부분임을 분명히해야합니다. 속도가 0이 될 수 있으면 저장된 현재 속도에서 누적 된 오류를 주기적으로 삭제합니다. 위치의 오류는 여전히 누적되지만, 그리드를 상대적으로 계속 잡고있을 때 드리프트되지 않으므로 드로잉에 대해 무난하게 만들 수 있습니다.

+0

안녕하세요, 속도 null은 내 문제에 대한 실현 가능한 해결책입니다. 나는 다리의 움직임을 추적하는 연습용 앱을 만들기 위해 노력하고 있습니다. 예를 들어 위 크런치를하고 전화가 발목에 팔걸이 끈으로 연결되어있는 경우입니다.그것은 바보 같지만 나에게 관심의 대상이된다 :) – LucasSeveryn

+0

흥미롭게도, 신발이 잘 작동하는 이유는 바닥에 닿아 스위치가 움직이지 않을 때 센서에 정확하게 알려주는 것이었기 때문이다. 실제로 아무 것도 발을 내려 놓지 않으므로 위기에 어려움을 겪을 수 있습니다. 그러나 방향을 바꾸는 곳과 같은 반복적 인 동작으로 만보계가 걸음 수를 계산하는 방식과 비슷한 발목 잡아 늘임 횟수를 확실히 계산할 수 있습니다. 움직임의 주기적 특성으로 인해 가속이 멈 추면 영점 속도를 추론 할 수도 있지만 이것은 더 복잡 할 것입니다. – FearTheCron

1

가속을 두 번 통합하는 것 외에 다른 방법은 없습니다.

또한 내 장치에있을 수있는 다른 센서에 대한 지식이없는 경우에는 불가능하다고 생각합니다. 예를 들어 내 장치 중 하나에서 장치가 가질 수있는 다양한 물리적 신호와 관련된 센서가 7 개 있습니다. 받음).

센서 데이터가 잡음이 많으며 거의 ​​항상 이 사전 필터링되어야 함을 기억하십시오. 예를 들어 지난 10 개 샘플의 기하 평균을 사용할 수 있습니다. 그것은 통합 기능에 더 부드러운 입력 데이터를 제공하여 오류를 줄여야합니다.