2011-10-10 4 views
0

나는 (멋진) WiiYourself를 사용하여 Wiimote로 제스처 인식을하고 있습니다! 도서관. 모든 것이 C++ (Visual Studio 2010)에서 개발 중입니다.웨이브 분석 - WiiMote Acceleration

wiimote의 이동을 위해 가속도 벡터 (크기와 각도 모두)를 처리하려고합니다. 개인이 그것을 흔들 때, 나는 그것이 움직이는 방향과 얼마나 많은 힘을 가지는지 찾고 싶다.

문제는 두 가지이다 :

나는 Wiimote의 초기 가속 및 원격 정지에서하지 감속 값을 처리 할 수 ​​있어야합니다
  1. .

  2. 유용한 정보를 얻기 위해 리모컨에서 나오는 가속 데이터의 상수 스트림을 어떻게 관리 할 수 ​​있습니까?

이 문제는 더 논리적 인 문제임을 알고 있습니다.하지만 문제가 발생하기 시작했습니다.

답변

0

처음에는 다른 축에서 일련의 샘플을 캡처하려고 할 수 있습니다. 벡터 크기 및 합계 벡터와 같은 일부 기능을 만들고 모두 그릴 수 있습니다. 값이 신호로서 어떻게 작동하는지보십시오.

어쩌면 당신은 가치관의 관점에서 관찰하고자하는 움직임을 볼 수 있습니다.

0

"완벽한"스윙을 녹음하고 데이터를 내부적으로 플로팅 한 다음 응용 프로그램 내부의 리소스에 해당 데이터를 저장하고 시간 경과에 따라 응용 프로그램에서 내부적으로 동작을 매핑 한 다음 벡터 비교를 사용하여 두 데이터를 비교하면됩니다. 각 내부 저장된 모션에 대해 마지막 X 초의 시점에서 이동 점수를 계산하고 잘못된 이동에 대해 컷오프 값을 사용합니다. 그런 다음 가장 가까운 점수를 가진 사람이 점수를 얻습니다.

성공적인 동작이 감지되면 해당 시간 스팬을 "사용됨"으로 표시해야하므로 더 많은 점수에 적용 할 수 없습니다 (컨트롤러의 한 동작에서 여러 동작이 선택되지 않도록).

비교는 시간 경과에 따른 주요 위치에서의 포인트의 평균 차이를 찾아서 수행 할 수 있습니다. 즉. 5 밀리 초 간격으로 각 포인트를 확인하고 3 개의 가속도 벡터의 차이를 결정하면이 차이의 합계 평균이 점수가 될 수 있습니다. 점수가 가장 낮은 제스처가 가장 일치합니다.