GPS-RTK and Sik radio

Hi, I have a working RTK system that route the signal as follow:
Base station send RTCM to 3DR radio transmitter. --> This go to a 3DR receiver radio connected directly to a mobile GPS uart port. The mobile GPS is RTK enable and then output a fully corrected GPS position that I can use for any purpose.
My initial plan was to send this corrected signal directly in the PIxhawk 2.4.8 GPS port that I have and used mission planner to move the rover around.

While googling, I realized that most of what I read on the net involve connecting the radio to the telem1 port and the GPS to the GPS port. If I do this the RTCM info will enter the pixhawk instead of the GPS. Will it find it way to the GPS port somehow or then it will be the pixhawk that will do the rtk correction by combining the attach GPS + the received telemetry rtcm signal? In other word, is the Pixhawk RTK capable?

Obviously, the second opition is better since the radio can also be use to send command to the rover while my initial plan “waste” a 3DR pair just to obtain a GPS correction.

what do you think about this?
thank you for your advices

Hi and welcome to the discussion groups. You can make the system work either way.

You do not state what type of GPS you are using. I am most familiar with the Ublox F9P. With that GPS, the most common way to connect it is to connect UART1 of the F9P to the GPS port on the Pixhawk. Then, to get the RTCM3 corrections from the Fixed Base, you will need to connect the Fixed Base GPS to a computer of some type that can use the MAVLink protocol to communicate using your 3DR radio to the Pixhawk’s TELEM1 or TELEM2 port. Commonly, you will run Mission Planner on the computer to do this. You will enable a feature called MAVLink Injection that injects the RTCM3 corrections into the MAVLink stream. Ardupilot on the Pixhawk will strip the RTCM3 data from MAVLink and send it to the rover GPS. This same communication link will be used for Mission Planner and Ardupilot to pass data back and forth for your monitoring of the rover and to send it commands. So, one radio link does it all.

An alternate way is to use a telemetry radio to send corrections directly from your Fixed Base GPS into your Rover GPS on UART2. You still connect UART1 of the Rover GPS to the Pixhawk GPS port. You would have another telemetry radio on the TELEM1 or TELEM2 port to communicate with Mission Planner.

2 Likes

This is a clear answer!
My GPS is F9P from Ublox (both the base and the rover).

I am using Ardusub because I build a boat / submarine hybrid. I will have to check if the mavlink RTCM3 injection feature is also available in this version since usually ardusub are use with a tether and without GPS.

thank you

Well, the good news is that if you can tether the Pixhawk to the computer running Mission Planner with a serial cable, that should be all you need it, no radios involved.

You will need to feed your fixed base RTCM3 from one of the UARTs or the USB port on the F9P into the Mission Planner computer. If your Fixed Base is not near your computer, you could do that wirelessly. You might get insight from this video from @Yuri_Rage: (5) ArduPilot WiFi Enabled Fixed Base + Telemetry for RTK GPS - YouTube.

You could also use a telemetry radio that just acts as a wireless serial link connected to one of the UARTs on the Fixed Base F9P and then to a serial port (or more likely these days, a serial to USB converter) on the computer.

I would love to see pictures and videos of your boat/submarine!

1 Like

Good to know that the rtcm3 can find the rover GPS through the tether. I can already connect my F9P on my pc so this should be straigth forward for testing. I will try this. In my final project I aim to remove the tether to increase the operation range then the radio link will be mandatory.

For the picture it is not as freak as it sound. It is a submarine that will “fly” just 30cm below the surface with an antenna that go out of the water. In this configuration (boat like), it should communicate with the surface computer and do RTK stuff like bathymetric survey. Here and then, I want to send a vertical dive command. During the dive, I will lost communication and the submarine will be autonomous for a few minutes (unless I have the tether). For this last step I still need to dig into ardupilot thing to understand how to do it without tether. Usually when communication is lost, the failsafe want to return the drone to the base I believe! Not what I want.

thank you
Charles

2 Likes

Sounds very interesting. Ardupilot is very configurable. I’m sure you can get it to behave the way you want.

You’re using very similar hardware as I am. The video Kenny posted might show a setup that’s little more trouble than you need.

Simply connect your fixed base F9P to the computer via USB. Configure Mission Planner on the Setup/Optional Hardware/RTK Inject page to process RTCM3 messaging from the fixed base.

Connect a SIK radio to any unused serial port on the flight controller and make sure you set it to use MavLink 2 messaging. Set GPS_AUTO_CONFIG=1.

Connect the other SIK radio via USB to the computer. Use the created serial port to connect to the sub. RTCM3 will then be passed via the radio link to the GPS automatically.

I finally found time to test the setup further but it did not work. My first attemp was to connect one GPS directly into the pixhawk. No RTK involve at this point. My GPS is 3m accurate which is fine for testing.
So,
1- I configure my F9P to output just a plane GPS signal (NMEA 4.1) through my board USB port AND serial port 2 and feed these directly (USB) or via a 3.3v TTL to serial adapter in my PC.
With Realterm, I could confirm that the nmea sentence was sent with the USB and Serial 2. I set this to 1 hz and 57600 kps.
2- I then feed this signal into Qgroundcontrol base station by selecting the corresponding com port. This also work and I end-up having a QGC icon that show my actual location and refresh at 1hz.
For this to work I had to uncheck the RTK-GPS auto config box otherwise every time it connect QGC was more or less deconfiguring my GPS and I end up not having a signal. When uncheck, it seems that my Ucenter config was enough to make it work.
3- Now with the F9P configure as per point 1 in Ucenter, I now connected it directly on the GPS port of my Pixhawk 2.4.8. In this configuration, the vehicule fail to send to QGC or copy any positions. I swapped tx and rx numerous time… I also tried the autoconnect mode. In autoconnect, I totally loose the f9P configuration and have hard time to connect back with U-center. For instance, the USB port stop working when I allow the vehicule autoconfig to override my ucenter config.

I am wandering. Is this a matter of compass because I don’t have a compass on my F9P board. My board is from Sparkfun: the ZED-F9P RTK2. I also saw some wiring that involve connecting I2C AND tx/rx/gnd and I think it was for compass related data. UNfortunately I can’t use Mission planner. ArduSub is only supported in QGC at the moment.

thank you for reading through this!

The GPS config is completely independent of a compass. For your current testing, you should be able to set the GPS_TYPE to 2, GPS_AUTO_CONFIG to 1, plug your GPS into the Pixhawk and Ardupilot will configure it. Note, that it will NOT configure it to send NMEA but instead the UBX protocol. NMEA is ASCII based and very bandwidth intensive. UBX is much more compact binary.

1 Like