2016-08-24 3 views
0

Unity에서 Epson Moverio BT-200의 연속적이고 정확한 방향을 잡으려고 할 때 현재 상당히 어려운 문제에 직면하고 있습니다. 사용자가 위/아래를보고있을 때 (이미 가속도계 만 사용할 때) 꽤 좋은 결과를 얻을 수 있지만 왼쪽/오른쪽 움직임에는 적합하지 않습니다. 다음 코드 부분으로 장치의 자이로 스코프에만 의존 할 때 왼쪽/오른쪽 움직임은 어떻게 든 괜찮습니다. 그러나 제거해야하는 시간이 지나면 여전히 드리프트가 있습니다. Unity 3D의 Epson Moverio BT-200에서 정확한 장치 방향

Quaternion newAttitude = new Quaternion (gyro.attitude.x, gyro.attitude.y, gyro.attitude.z, gyro.attitude.w); 
transform.rotation = newAttitude; 
Vector3 ea = newAttitude.eulerAngles; 
transform.eulerAngles = new Vector3(-ea[0], -ea[1], ea[2]); 

는 이미 안드로이드 내부 getOrientation 방법 및 각종 센서 퓨전 튜토리얼 및 구현 (예를 들어 http://www.codeproject.com/Articles/729759/Android-Sensor-Fusion-Tutorial)를 사용하여 시도. 작은 힌트는 절대적으로 감사합니다. :) 미리 감사드립니다!

답변

0

"왼쪽/오른쪽 회전"은 중력 방향을 따르는 축을 중심으로 한 회전이라고 가정합니다.

그런 경우 자이로 스코프 및 가속도계 만 사용하여 드리프트를 제거 할 수 없습니다. 중력과 평행하지 않은 방향에 대한 지속적인 참조를 제공하는 세 번째 센서를 통합해야합니다. 자력계는 드리프트를 완화하는 데 사용할 수있는 고정 자장 방향 기준을 제공하므로 일반적으로이 목적으로 사용됩니다.

이 센서는 실제로 참조한 자습서에서 사용됩니다. 보완 센서 외에도, 확장 또는 무감각 칼만 필터, Mahony의 DCM 필터 등과 같은보다 강력한 대안을 사용할 수 있습니다.

+0

예, 이미 시도했지만 성공하지 못했습니다. Kalman 필터보다 구현이 훨씬 쉽기 때문에 처음에는 상보적인 필터를 사용하십시오. 나는 그것이 장치와 화합의 조합과 관련이 있다는 느낌을 가지고 있습니다 ... – KitKat

+0

각 참조 시스템에 대한 규칙을 철저히 확인하십시오! 그것은 왼손잡이와 오른 손잡이 시스템 또는 NED와 ENU를 혼합하는 꽤 흔한 실수입니다. 전체 알고리즘을 통해 일관된 규칙을 사용해야합니다. – dunadar

+0

잘 작동해야한다. (자이로 스코프 나 센서 퓨전 만 사용하여 위/아래를 찾는다는 말처럼). 그것은 좌/우로 흔들리는 일종의 문제이며 기초로 사용할 수있는 값을 제공하지 않고 함께 작업 할 수 있습니다. – KitKat