RTK GPS PX1122r Tests
General Idea:
The base station GPS receiver will take into its coordinates from surveying and radio signals from satellites and generate RTCM messages which it will send to the GPS receiver on the drone. A minimum of 5 satellites are required to start the RTK initialization. In total, at least 8 satellites split across 4 quadrants will be needed to get the RTK fix.
The GPS on the drone will generate NMEA sentences with information regarding position, time, and velocity depending on the type of NMEA message and communicate it with Ardupilot.
NMEA sentence parser driver Ardupilot - https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_GPS/AP_GPS_NMEA.cpp
Test 1: Connecting Base and Rover directly with wire:
This test was not completed entirely because one of the PX1122-r receivers got bricked. The user guide said to connect the TX->TX and RX->RX for the GPS receiver to the USB-to-UART adapter when configuring the receiver as base or rover. This might have caused the contention of the pin, even though we were operating under 3.3V.
Configuration of Base using GNSS viewer:
Configure RTK Mode, select RTK base mode and update to SRAM+Flash
Select Configure RTK Mode And Operational Function, select Survey Mode and set survey Length to 60 seconds and Update to SRAM+Flash
Configure Binary Measurement Data Output and RTCM Measurement Data Output.
Refer for more details about how to do this in the User Guide:
Configuration of Rover
Step 1: Using GNSS viewer:
From GNSS Viewer RTK pull-down menu, select Configure RTK Mode, select RTK rover mode, and update to SRAM+Flash
Step 2: Using Misson Planner:
Select GPS_TYPE to 5 (i.e NMEA)
Select RXD_2 Baud Rate to 115200
Output To Observe:
We should see the rover state going from Position Fix 3D or DGPS mode, to Float RTK or to Fix RTK in the GNSS viewer software depending on the number of Satellites tracked.
8 or more satellites spread across 4 quadrants of the sky are preferred in getting a faster RTK fix with reliable results.
Test 2: Using an NTRIP Caster
NTRIP is a protocol that sends RTCM correction data over the internet over HTTP using TCP/IP communication protocols. We have 3 components of the NTRIP system, the NTRIP server, NTRIP Castor & NTRIP client.
Ntrip Server: This is a PC or OBC that receives the RTCM correction data from the base station GPS receivers and sends it to the Ntrip Castor. These days most of the GNSS receivers have the NTRIP server built directly onto them.
Ntrip Castor: The Ntrip castor takes in RTCM messages from one or more Ntrip servers and sends them to one or more Ntrip clients over the internet.
Ntrip Client: This is the rover GPS receiver that receives the RTCM corrections from a Ntrip castor.
To conduct the test, the AVRIL cluster was used which is an NTRIP cluster set up in the Waterloo region (should be within 15km). This cluster connects to Ntrip servers that support GPS and GLONASS satellites.
Configuration details are in the user guide and Castor details are on the AVRIL castor page.
An RTK Fix was obtained which did not stay for long before it fell back to RTK float status when moving the antenna of the rover GPS receiver.
A minimum of 1 hour is required to get RTK fix status in clear sky and higher altitude. This is because the time to get this fix not only depends on the satellite signals but also the correction data broadcasted over the internet based on the receiver location. This means that before the receiver can start floating, it needs an active internet connection, it needs to send its location to the network of base stations and receive the correction data. If the receiver is powered on as a cold start, it will take some time to get the fix compared to the hot start.
Test 3: Wireless connection with base & rover using telemetry radio
This test entails to use the HERE+ GPS as the base & PX1122r as the rover receiver. The RTCM corrections are sent wirelessly over MAVLINK packets. We can use the Minipix for Ardupilot functionalities and for telemetry radios, we can configure the Happymodel EP2 rx and radiomaster ranger with ELRS Airport.
Flash the EP & ranger with the latest ELRS firmware over wifi. We can use the EP as the telem radio for the rover, connected to the Minipix in this case. The ranger can be used as the GS telemetry radio, it has a USB connection to the PC. We would also require an LDO for logic level compatibility i.e. to step down the 5V power from the minipix to the GPS receiver as its logic high is 3.3V.
Rover Side Connections:
Base Side Connections and Configurations:
Refer to the Here+ for detailed instructions on configuring it as a base station. We will use the GPS inject feature from Mission Planner to stream the RTCM corrections over MAVLINK from GS which will be received by the rover side to get the RTK fix.
Use the survey feature in Mission Planner to get the coordinates of the base station. Also set/make sure the following parameters in MP:
GPS1_Type: 5 (for NMEA)
Serial3_Protocol: 5 (For GPS)
Serial_3 Baud rate should be set to 115200 as this is the baud rate PX1122r communicates with
Reboot MP after changing the parameters.
Update this section after completing the test with results & changes in test setup.
References:
https://docs.cubepilot.org/user-guides/here-3/here-3-manual#rtk-use-operation
https://ardupilot.org/copter/docs/common-gps-for-yaw.html#antenna-offsets
https://ardupilot.org/copter/docs/common-pixhawk-overview.html
https://support.marxact.com/article/108-why-and-how-long-do-i-have-to-wait-for-a-rtk-fix
https://ardupilot.org/copter/docs/common-rtk-correction.html