NOVA Project(Hovering Robot)

U-Blox GPS Module 테스트 (NMEA프로토콜을 UBX로 변경하기)

SuperMjs 2009. 12. 1. 00:51

 이번에 새로 구매한 UIGOODS에서 판매하는 GPS모듈입니다.  
  가로세로 48mm x 25mm정도의 상당히 작은 모듈이며 U-Blox사의 LEA-5S칩셋이 장착되어있습니다. 
  U-Blox사의 gps칩을 탑재한 모듈은 국내에서는 쉽게 구하기 어려운 모델입니다.  스위스에서 제조된 칩셋으로 상당히 우수한 수신률을 가지고 있으며 50개까지의 위성을 잡을 수 있습니다.  현재 국내에서는 아이나비 네비게이션 모델에 탑재되어 나오고 있습니다.  UIGoods에서 판매하고 이 모듈은 LEA-5S칩셋을 사용하고 있는데 전원이 일정시간 공급이 되지 않으면 임의로 설정한 설정값이 날아가게되는 단점이 있습니다.


  판매하고 있는 GPS칩은 U-Blox사 홈페이지(http://www.u-blox.com)에서 다음과 같이 확인하실 수 있습니다.
 
  UIGoods에서 판매하는 모듈은 default setting으로 NMEA-0183방식으로 되어있습니다.  따라서 출력되는 방식 또한 NMEA표준 프로토콜로 출력이 됩니다.  필자는 UBX Protocol방식의 데이터가 필요하기 때문에 이를 변경하기 위해서 별도의 셋팅이 필요하여 이를 설명하고자 합니다.  이를 변경하기 위해서는 U-Blox사에서 제공하는 U-Center라는 Application이 필요합니다.  이 프로그램은 아래 링크를 통해서 설치하실 수 있습니다.







  NMEA Protocol을 UBX Protocol로 바꾸는 방법은 Paparazzi Free Autopilot에 올려진 내용과 같이 다음 몇번의 설정으로 쉽게 바꾸실 수 있습니다.

 1. Right Click on the NMEA Text on top of the tree and choose disable child messages
2. Choose UBX->CFG->NAV5(Navigation 5) - set it to use Airborne 8 <4G. This tells the Kalman filter to expect significant changes in direction.
   Note that this setting is only good for faster moving airplanes. For a fixed position hovering heli, 'pedestrian' setting is better
3. UBX->CFG->PRT - set USART1 to 38400bps (must match the value in your
Airframe file)
4. Change the baudrate of U-Center to 38400bps if the connection is lost at this point
5. UBX->CFG->RATE(Rates) - change the Measurement Period to 250ms This gives a 4 Hz position update since 4 x 250ms is one second.
6. UBX->CFG->SBAS : Disable (SBAS appears to cause occasional severe altitude calcuation errors)
7. UBX->NAV (not UBX->CFG->NAV): double click on POSLLH, SOL, STATUS, SVINFO, VELNED. They should change from grey to black
(add the flag -DGPS_USE_LATLONG in your
Airframe file) also make sure you set tiny_2_1_1.h if you have the latest boards Tiny/TinyWOG)
8. UBX->CFG->CFG : save current config, click "send" in the lower left corner to permanently save these settings to the receiver

 






1. 우선 Message박스를 열어서 NMEA Protocol출력 부분을 모두 Disable시켜줍니다.






2. 또는 UBX-CFG-MSG에서 개별적으로 원하는 Port로 해당 프로토콜에 대한 정보를 출력 또는 삭제할 수 있습니다.  또한 NMEA Protocol과 UBX Protocol을 동시에 출력해줄 수 있으며 UART1으로는 NMEA, UART2로는 UBX Protocol등으로 임의지정해서 사용할 수도 있습니다(단, 포트가 모두 외부로 나와있다는 가정하에...)










3.  다음은 UBX-CFG-NAV5로 가셔서 모델 선택을 해주셔야 합니다.  이 부분은 해주셔도 되는 부분이고 안해주셔도 굳이 상관은 없는 부분입니다.  이 부분을 수정해주시면 GPS가 Kalman Filter적용 시 참조하는 부분입니다.  모드에 따라서 Portable인지 Fixed인지 또는 Pedestrian등등 GPS장착 모델과 기본적인 이동 속도 등을 고려하여 Kalman Filter를 적용하게 끔 합니다.
  저의 경우에는 움직임 속도가 빠르지 않은 Hovering Robot에 적용을 하기 때문에 Pedestrian을 선택하였습니다.







4. NMEA Protocol방식의 GPS는 기본적으로 1Hz의 주기로 GPS로부터 수신을 받습니다.  이 부분을 4Hz로 변경하여 주기 위해서 UBX-CFG-RATE부분으로 가시면 주기를 변경해 주실수 있습니다.   Measurement Period가 기본적으로 1000ms로 되어있을 겁니다.  이 부분을 250ms로 바꾸어주게되면 Measurement Frequency가 4Hz로 바뀌게 됩니다.













5.  마지막으로 이렇게 변경된 설정에 대해서 저장을 시켜줍니다.  LEA-5H칩이 탑재된 모델 같은 경우에는 이 부분이 지속적으로 메모리에 저장되어 향후에도 변경된 내용이 저장이 되지만 저같은 경우에는 LEA-5S모델이 탑재되어있는 관계로 백업배터리가 있지만 설정 값이 전원이 들어오지 않은지 한참 후에는 설정 값들이 다시 Default상태로 돌아가더군요.






  참고로 직접 GPS어플리케이션을 작성하여 UBX Protocol로 GPS를 사용하실 분들은 해당 스크린 캡쳐사진을 보시면 오른쪽 하단부에 Hex값들을 보실 수 있으실 겁니다.  이 Hex값들을 통신을 통해서 GPS로 보내주시게되면 U-Centre에서에서 사용하신 설정방법과 동일한 설정이 적용되는 것을 확신 하실 수 있습니다.