Skip to content

RTK GPS Holybro M8P

Tomoki Anzai edited this page Jun 10, 2021 · 4 revisions

System

Case1: One rover

test

※1: U-center is used as a server, not a configurator. The key of RTK GPS system is RTCM which is packet from RTK calculation from base station. NTRIP system is to transfer RTCM from base station server to client.

※2: ROS receives the RTCM from NTRIP system to convert to ROS topic, and finally transfer to ROVER GPS. Note that, the ROS topic for RTCM /rtk_gps/rtcm has no robot name prefix; on the other hand, the published topics from rover gps (e.g. rtk_gps/rel_pos, rtk_gps/fix) have the robot name prefix ~ (e.g., /hydrus).

Case2: Multiple rovers

test

: This is a special case that ROS master is in Base Station Laptop2. Because ROS topic for RTCM /rtk_gps/rtcm has no robot name prefix, if each rover has a NTRIP client (ROS node) to run, then there were multiple /rtk_gps/rtcm published in the whole ROS system simultaneously. So, we need to only establish one NTRIP client in the whole system. This is the reason we run one NTRIP client in Base Station Laptop2.

Important Topics

  • ~/rtk_gps/rel_pos: position of rover GPS antena related to the base station antena with XYZ (North-West-UP) world frame.
  • ~/rtk_gps/fix: latitude and longitude of rover GPS antena with high accuracy
  • ~/rtk_gps/fix_velocity: velocity of rover GPS antena with high accuracy with NED (North-East) world frame.
  • ~/rtk_gps/navpvt: raw message of UBX::NAV_PVT. Useful information is satellite number.

ROS Nodes:

Base Station

  • U-Center is necessary to not only change configuration, but also publish RTCM from connected base station GPS module.
  • Select proper port from the left-top "connector" icon and also the baudrate (115200) from neighboring "signal" icon. When the connection is established, the "connector" icon will turn to be green.

Publish RTCM message by U-Center

1. Setup NTRIP server

Select Reciever/NTRIP Server/Caster from top tabs, then fill the server configuration as following images. After click OK, you can see NTRIP server: xxx.xxx.xxx.xxx:2101 at the bottom bar of u-center.

test

test

2. Wait for the initialization.

After connecting the USB cable more than 300s and the position accuracy (3D Acc) is less than 4 m, you can confirm the fix mode is TIME in the right top window as shown in the follow images. then the base station is ready to publish RTCM messages for RTK. You can also confirm the change of base station GPS by View/Message Packets/UBX/NAV/PVT as following images.

test

Option: change configuration

Note: this is only required for the first time to configure a new module with factory settings.

Method1 (recommended): load configuration file

  1. Download the configuration file Holybro_M8P_BaseStation.txt

  2. Click Tools/Receiver Configuration: test

  3. Load the configuration file and click Transfer file -> GNSS (TODO: please rename the configuration file) test

Method2: manually modify configuration one by one

Please refer to this site to know which configuration should be modified, but do not set the same value. Please confirm the value in our provided configuration file.

Rover GPS

Option: change configuration

Note: this is only required for the first time to configure a new module with factory settings.

Method1 (recommended): load configuration file

  1. Download the configuration file Holybro_M8P_Rover.txt

  2. Click Tools/Receiver Configuration: test

  3. Load the configuration file and click Transfer file -> GNSS (TODO: please rename the configuration file) test

Method2: configurate from ROS (ublox_gps)

The factory settings allow to publish NMEA protocol message, which should be blocked in both USB and UART1 port. Besides, we have to entirely stop UART1 output. Otherwise, you will see an error message from ublox gps: Inf: TX buffer alloc, which indicate the overflow in ublox chip tx buffer.

TODO: add more parameters to https://github.com/tongtybj/ublox/blob/holybro_rtk_m8p/ublox_gps/config/holybro_m8p.yaml to address above issues, and test with factory settings module.

Trouble Shooting

See here.