Skip to content

GNSS · RTK (위성 측위) ​

로봇에 GNSS 수신기를 연결하면 위성 측위 데이터를 NMEA 문장 그대로 받아 쓸 수 있습니다. 로봇의 GPS 프로그램이 수신기에서 문장을 읽어 ROS 2 토픽으로 그대로 흘려보냅니다.

참고

GNSS 는 GPS 프로그램이 포함된 로봇 소프트웨어와 GNSS 수신기가 있어야 동작합니다. 수신기·LTE/GPS 모듈은 액세서리를 참고하세요.

토픽 ​

항목값
토픽/rbq/gps/nmea
타입nmea_msgs/Sentence
방향Pub (로봇 → 클라이언트)

메시지는 두 필드뿐입니다.

필드내용
header.stamp로봇이 그 문장을 읽은 시각 (문장 안의 UTC 가 아닙니다)
header.frame_idgps — 수신기(안테나) 기준 좌표계
sentenceNMEA 0183 문장 원문 한 줄 ($ 로 시작, 체크섬 포함)

문장은 가공하지 않습니다. 파싱은 받는 쪽에서 하며, NMEA 는 표준 형식이라 대부분의 언어에 파서가 있습니다.

bash
ros2 topic echo /rbq/gps/nmea
ros2 topic echo /rbq/gps/nmea 출력 — GNRMC · GNGGA · GNGST 문장
[ 실제 수신 출력 — 한 주기에 세 문장이 순서대로 올라옵니다 ]

나오는 문장 세 가지 ​

수신기가 내보내는 문장 중 아래 세 종류만 골라 발행합니다. 나머지는 버립니다. 접두어 GN 은 여러 위성군(GPS·GLONASS·Galileo·BeiDou)을 함께 쓴다는 뜻입니다.

$GNRMC — 위치 · 속도 · 시각 ​

$GNRMC,<UTC 시각>,<유효>,<위도>,<N/S>,<경도>,<E/W>,<속도>,<방위>,<UTC 날짜>,<자기편차>,<E/W>,<모드>,<항법상태>*<체크섬>
필드내용
UTC 시각 · 날짜측정 시각
유효데이터 유효 여부 (A 유효 / V 무효)
위도 · 경도위치
속도지면 속도 (knots)
방위진행 방향 (진북 기준)
자기편차진북과 자북의 차이
모드 · 항법상태위치결정 방식과 항법 상태

$GNGGA — 측위 품질 · 고도 ​

$GNGGA,<UTC 시각>,<위도>,<N/S>,<경도>,<E/W>,<측위품질>,<위성수>,<HDOP>,<고도>,M,<지오이드 분리>,M,<보정 경과시간>,<기준국 ID>*<체크섬>
필드내용
측위품질RTK 상태를 여기서 확인합니다 — 아래 표 참고
위성수측위에 사용한 위성 개수
HDOP수평 정밀도 저하율 — 낮을수록 좋습니다
고도평균해수면 기준
지오이드 분리타원체와 지오이드의 차이
보정 경과시간 · 기준국 ID보정정보(RTCM)를 마지막으로 받은 뒤 지난 시간과 그 기준국

측위품질 값은 NMEA 0183 표준입니다.

값뜻
0측위 없음
1단독 측위 (GPS fix)
2DGPS — 보정정보 적용
4RTK Fixed — 정수 모호성 해결, 가장 정확
5RTK Float — 모호성 미해결

$GNGST — 위치 오차 추정 ​

$GNGST,<UTC 시각>,<RMS>,<장축 σ>,<단축 σ>,<타원 방향>,<위도 σ>,<경도 σ>,<고도 σ>*<체크섬>
필드내용
RMS거리측정 잔차의 RMS
장축 · 단축 σ · 타원 방향위치 오차 타원의 표준편차와 방향
위도 · 경도 · 고도 σ축별 위치 오차 표준편차 (m)

RTK 로 얼마나 정확해졌는지는 이 문장으로 판단합니다. 위도·경도 σ 가 센티미터 수준으로 떨어지면 RTK 가 물린 것입니다.

잘 동작하는지 확인 ​

  1. 토픽이 흐르는지 — ros2 topic echo /rbq/gps/nmea 에 문장이 올라오는지 봅니다.
  2. 측위가 잡혔는지 — $GNGGA 의 측위품질이 0 이면 아직 위성을 못 잡은 것입니다. 하늘이 열린 곳으로 옮겨 잠시 기다리세요.
  3. RTK 가 물렸는지 — 측위품질이 4(Fixed) 또는 5(Float) 인지, 그리고 $GNGST 의 위도·경도 σ 가 충분히 작은지 확인합니다.

로그는 로그 → Real Time 에서 GPS 프로세스만 남겨 보면 접속·해제 메시지를 바로 확인할 수 있습니다.

잘 안 될 때 ​

증상원인과 조치
토픽에 아무것도 안 옵니다수신기가 로봇에 물려 있고 전원이 들어와 있는지 확인하세요. 로봇에서 수신기 주소로 닿는지도 함께 봅니다
접속은 되는데 문장이 없습니다위 세 종류(GNRMC·GNGGA·GNGST) 외에는 버립니다. 수신기 설정에서 해당 문장 출력을 켜세요
측위품질이 1 에서 안 올라갑니다보정정보(RTCM)가 안 들어오는 상태입니다. $GNGGA 의 보정 경과시간과 기준국 ID 를 확인하세요
실내에서 측위가 안 잡힙니다GNSS 는 하늘이 보여야 합니다. 실내·고층 사이에서는 측위가 안 되거나 오차가 큽니다

그래도 해결되지 않으면 ​

수신기 모델과 ros2 topic echo /rbq/gps/nmea 출력 몇 줄을 함께 알려주시면 확인이 빠릅니다.

→ 기술지원 요청

This user manual is intended for RBQ users.