2010-05-04 7 views
5

내 응용 프로그램에 나침반을 설치해야합니다. 문서를 읽어에서 나침반의 정확성 딜레마

는이 일이 개 합리적인 방법이 보인다 :

  • Sensor.TYPE_ORIENTATION 방법 :이 그것을하는 쉬운 방법입니다. 이 문제는 정확하지 않습니다. 내 독서를 Snaptic Compass와 비교할 때 내 목표에 맞지 않는 약 10-15도 정도가 적당합니다.
  • sensor.TYPE_ACCELEROMETER, sensor.TYPE_MAGNETIC_FIELD 및 getRotationMatrix() remapCoordinateSystem() 및 getOrientation() 메서드와 함께 사용 : 설명서에 "일반적으로 더 정확합니다"라고 표시됩니다. 문제는 장치가 평평한 표면에 고정되어 있어도 청취자가 등록한 지연에 관계없이 나침반이 미친다는 것입니다.

이 문제를 해결하기위한 모든 제안을 크게 환영합니다.

답변

8

http://developer.android.com/reference/android/hardware/SensorManager.html

보인다. an online model from NOAA을 시도하면 세계 각국의 차이점을 파악할 수 있습니다.

Android에는 위도, 경도 및 고도가 주어진 대략적인 적위를 계산하는 데 사용할 수있는 GeomagneticField이라는 모델이 포함되어 있습니다. 따라서 북쪽을 계산하기 위해해야 ​​할 일은 Sensor.TYPE_ORIENTATION에서 azimuth value을 읽고 GeomagneticField.getDeclination()에 추가하는 것입니다.

+0

네, 이것이 정확하게 문제였습니다. – mob1lejunkie

1

휴대 전화 용 소형 부품의 단점이 있습니다. 우리가 지금 사용하고있는 $ 5000의 IMU는 +/- 2 도의 오차를 가지고 있으며 그 범위에서 미친 듯합니다.

간섭, 금속 표면을 피하고 성능이 향상되는지 확인하십시오. 그렇지 않다면 나는 나쁜 소식을 깰 수는 없지만 그것은 하드웨어 다.

본 적이 있습니까? mob1lejunkie은 이미 알아 냈하지만, 단지 나중에 참조 할 수 있도록, 내가 문제가 여기 magnetic declination (자북과 진북의 차이)이라고 언급하자 것처럼

http://groups.google.com/group/android-developers/browse_thread/thread/bbb0e8b97c673cf9/5c16bc2e49f6e972?lnk=raot

+0

내가 말하고자하는 것은 똑같은 휴대 전화 (Nexus One)의 부엌 테이블에있는 똑같은 장소에 있습니다. Android 마켓의 타사 응용 프로그램 인 Snaptic Compass가 더 정확합니다. Snaptic이 더 정확하고 신뢰할 수있는 독서를하기 위해 어떤 기술을 사용하고 있는지 궁금합니다. – mob1lejunkie

+0

링크를 참조하여 답변을 추가했습니다. –

+0

Snaptic Compass 환경에서 주위를 파고 들자 마자 나는 자기 북쪽을 사용하는 반면 참 북쪽을 사용한다는 것을 알아 차렸다. 이제는 북쪽으로도 응용 프로그램을 사용하고 Snaptic Compass는 동일한 읽기 기능을 사용합니다. 물론 독서가 완벽하지는 않지만 Nexus One 하드웨어가 나침반 구현의 잘못이 아니기 때문입니다. 도움을 주셔서 감사합니다. – mob1lejunkie