ntripclient 是一個簡單的開源 NTRIP 程式,透過程式建立連線後,可以從基站 Server 取得 RTCM 修正資料,並透過 USB 等介面送入 GNSS 裝置,再把 GNSS 處理完的 RTK NMEA 語句拋出。
上一篇使用的 PyGPSClient 雖然可以做 RTK NTRIP 連線,但使用非 ublox 的 GPS / GNSS 設備時,事情會變得很複雜。舉例來說, PyGPSClient 必定要 Parser NMEA 語句,當遇到非標準或非 ublox 定義的 NMEA 語句時,它不認識就無法拋出資料。程式架構又比較龐大,處理起來就很麻煩。 ntripclient 則相對簡單。
ntripclient Github
ntripclient 是一個可在 POSIX 系統運行的程式, Github 網址:
https://github.com/nunojpg/ntripclient
ntripclient操作步驟
下載完程式碼以後,直接編譯:
make
運行指令:
./ntripclient -s xxx.xx.xxx.xxx -r 2101 -u user -p password -m mountpoint -M 3 -D /dev/ttyUSB -B 115200 -n GNGGA | grep RMC
- -s xxx.xx.xxx.xxx:xxx.xx.xxx.xxx 是 RTK 服務的 Server IP
- -u user:user 是 RTK 服務的使用者帳號
- -p password:password 是 RTK服務使用者帳號的密碼
- -m mountpoint:mountpoint 是選用的 RTK 基站,一般選離自己最近的站點
- -M 3:ntrip verison,3是 NTRIP Version 1.0 Caster,其他選項可參考官方說明
- -D /dev/ttyUSB:是 GPS / GNSS 設備的 Serial port name,例如 ttyUSB0,RTK 如為 VRS (Virtual Reference Station) 類型的服務,須設定此項,才能將 Rover 定位資訊的 NMEA 傳至 Server。同時設定此項也會在 console 輸出設備的 NMEA output
- -B 115200:115200 是 Serial port 的 baudrate
- -n GNGGA:設定向 Server 傳輸的 NMEA 語句類型
grep NMEA RMC 語句的成果畫面:
NMEA RMC 語句的的 fix mode 從 Differential GNSS fix “D” 切換到 RTK fixed “R”,表示 RTK 定位成功。
如果你使用的設備 NMEA 語句為 GN 開頭,例如 GNGGA,而不是 GPGGA,記得到ntripclient.c 內修改 591 行: