Connecting 2 Rover To One Base

Q&A forumCategory: QuestionsConnecting 2 Rover To One Base
vcorp asked 4 months ago
Hi, the company where I work has bought a new kit: simpleRTK2B – Starter Kit LR
So now we have two.
The reason for the purchase was initially to mount it on a second agricultural vehicle.
Then we decided to remove the magnetic compass and calculate the direction using two gps antennas.

I need some guidance on how to configure everything for it to work in the following way:
1 Base -> 2 Rover

Thanks for your help.
Ardusimple
Staff replied 4 months ago

Hi vcorp,
Configuration files are available here: http://www.ardusimple.com/configuration-files

– The base station remains the same.
– One of your rovers with LR radio remains the same. Just update the firmware “moving base from simpleRTK2B+heading kit”
– Take another simpleRTK2B board, remove the LR radio and load the “rover from simpleRTK2B+heading kit”. Now connect: rover-with-LR-radio-TX1 pin, to rover-without-radio-TX2 pin. Also connect GNS pins, and enable IOREF on both boards.

Should now work as a simpleRTK2B+heading kit. Check the hookup guide: https://www.ardusimple.com/simplertk2heading-hookup-guide/

6 Answers
vcorp answered 4 months ago
Thanks for your reply, i\’ll try it.
vcorp
replied 4 months ago

I forgot to specify that I read nmea data via tx1 and rx1 with arduino mega.
Changing the configurations you suggest how can I read the gps data and the direction?

Ardusimple
Staff replied 4 months ago

with the suggested setup, you can still use tx1-rx1 of the rover-without-LR-radio for your application.
But you can also change the connections and use the uarts that you want, it’s just that you will have to understand how to re-configure the interfaces via u-center.

vcorp answered 4 months ago
In the meantime, I summarize what I think I understand:

I keep the base unaltered from the first kit.
From the first kit I take the rover (with LR radio) and load: simpleRTK2B_FW113_HeadingKit_MovingBase_5Hz-00.txt

From the second kit I take the rover, remove the LR radio and load: simpleRTK2B_FW113_HeadingKit_Rover_5Hz-00.txt

Lastly I connect the TX1 pin of the Rover with the LR radio to the TX2 pin of the rover without the LR radio.

The GNS pins of the LR rover with the GNS pins of the rover without LR
and I put the IOREF pins at + 5v

Once this is done, how can I read the data via arduino? As I said above, I currently read via Arduino’s Serial3 and the rover’s TX1 RX1 with LR.

clive1
replied 4 months ago

For accurate position and orientation you’d typically use two serial ports and mix the information.

NAV-HPPOSLLH from the Moving Base (Rover Primary)
NAV-RELPOSNED from the Rover (Rover Secondary)

vcorp
replied 4 months ago

This is clear.
But using the tx1 of the rover with lr radio to connect it to the tx2 of the rover without lr radio how i can get the rover 1 nmea info?

Another question from rover 2 (without lr radio) what kind of data do I get? Example the degrees of the compass? from 0 to 360?

By connecting and changing the configurations as you suggested, which pins should I connect to my arduino mega board?

clive1
replied 4 months ago

I’d connect the RX1/TX1 for each of the receivers to different hardware serial ports on Mega.

The ZED-F9P Interface Description should describe the data format of the UBX-NAV-RELPOSNED, one of the records describes the angle of the antennas with respect to each other vs GPS Truth North

https://www.u-blox.com/en/docs/UBX-18010854

vcorp
replied 4 months ago

Does this mean that I have to connect the two rovers as I have done up to now?
Rover 1 (Antenna lr) Serial3
Rover 2 (No antenna lr) Serial1
in this way I will have the nmea data on Serial3 and the heading data on Serial1?

Is it not possible to use the two rovers connected to the base and then obtain the position from the NMEA signals?

What I mean is:
I know how to calculate the header based on two gps signals.
I wish I had something easy to replicate when this prototype is finished.

clive1
replied 4 months ago

>>Is it not possible to use the two rovers connected to the base and then obtain the position from the NMEA signals?

Let’s just say that’s not how I’m approaching this. As I recall these uBlox parts don’t report $GxTHS or $GxHDT
The position reported by the Moving Base (Rover Primary) is a first generation solution, tied to a Fixed Base with some provenance. Whereas the position reported by the Rover (Rover Secondary) is a SECOND generation solution (dependent on two links of a chain) so it is apt to have more noise and be more fragile. The separation of the Primary and Secondary is generally relatively fixed and hard, the math for the orientation is much more constrained and can be scrutinized. My view is that the vehicle position on the ground is more critical, and if the antenna is over the centre line of the rear axle on a car/tractor, it has VERY LIMITED side to side freedom of motion

vcorp answered 4 months ago
OK, I'm still a little confused but let's move on.

Let's say i want to use the solution suggested here:

@@@@@@@@@@
Hi vcorp,
Configuration files are available here: http://www.ardusimple.com/configuration-files

- The base station remains the same.
- One of your rovers with LR radio remains the same. Just update the firmware "moving base from simpleRTK2B + heading kit"
- Take another simpleRTK2B board, remove the LR radio and load the “rover from simpleRTK2B + heading kit”. Now connect: rover-with-LR-radio-TX1 pin, to rover-without-radio-TX2 pin. Also connect GNS pins, and enable IOREF on both boards.

Should now work as a simpleRTK2B + heading kit. Check the hookup guide: https://www.ardusimple.com/simplertk2heading-hookup-guide/
@@@@@@@

Is the tinygps ++ library still valid?
From which pins will I read the nmea data and from which pins the header for the compass.

@@@@@@@@@@
Using the "Plumbing" solution instead, will I get the nmea data from both rtk boards? I apologize for the thousand questions but it is not very clear how to use more than one product to also have the header.
 
clive1
replied 4 months ago

Not clear on your technical background here, so hard to know how to frame all the detail.

It’s not really designed to convey all the details in NMEA, you can likely use tinygps++ to parse the NMEA sentences, but I don’t think that’s particularly ideal.

Which pins on the MEGA do you want to use? Pick TWO real serial ports, look at the RX pins used by then, wire them to TX1’s of the GNSS Receivers. Have a common ground connection, and power the IOREF with the 5V those Arduino’s use for pin level comms. The Arduino Due, and Adafruit Grand Central have a similar form factor, have more capable processors, and use 3.3V.

I used a radio subsystem, with it’s own MCU, and used the Arduino UNO Rev 3 type shield header, where I found it simple to stack the boards vertically and bend out the UART pins so they didn’t conflict, and then connect them with flying leads.

A port-starboard mount of the antennas should be good for roll/yaw, and identifying a point on the ground below the vehicle. But this generally involves the application of geometry and math to compute from the UBX reported measurements, rather than NMEA ones, which aren’t going to yield cm accuracy on a vehicle that’s leaning to the side, as they simply don’t convey sufficient details/perspectives.

The uBlox app note might provide some good background/context https://www.u-blox.com/en/docs/UBX-19009093

vcorp answered 4 months ago
First of all I apologize because I realize that my English is bad.
I doubt it is necessary to know my background.
The question I asked is very simple: can I use two rtk boards with one base?
The answer was no. But i can connect the two rtk boards together, removing the lr antenna from the second board.

Hence my new question.
Since I currently use Arduino mega, an rtk kit from which I read the nmea data on Serial3, connecting the second board to the RX2 pin with the TX1 pin of the first Board, i was wondering how I can read the data in the new configuration.

(Because TX1 RX1 pins were connected to Serial3) If you read above, you will see that I have described what I use and how I read the data.
Having eliminated the magnetic compass, I calculate the direction using two GPS antennas (And I know how to do this calculation …).

If I transform my rtk kit: https://www.ardusimple.com/product/simplertk2b-starter-kit-lr-ip65/ in an RTK Heading kit, it seems logical to me to ask how I will read the data.
My goal is to know the direction in which I am going (Example North West) and from the gps data to go to the stored waypont.
The code is already wrote by me and it works.
But I realized that the magnetic compass has too much interference.

So having already two rtk kits I wanted to use them for the purpose I just described.
I hope I have explained myself more precisely.

clive1
replied 4 months ago

UBX-NAV-RELPOSNED reports the angle between the two antenna, and also NED displacement wrt each other..

vcorp
replied 4 months ago

Ok. Just last question (i hope).
Wich pins i need to use now? (I mean with new connection and configuration files)

clive1
replied 4 months ago

So, you get to pick. Serial1 and Serial3 sound fine. Each receiver has a TX1/RX1 pair, you should use these to communicate with the receivers, to understand the position and orientation they are reporting.
UART2, you don’t need to get this to the Arduino, you need to connect RX2 (it’s the output in ArduSimple’s XBee nomenclature) of the primary to the TX2 of the secondary rover unit. This will be used to feed the RTCM3 data the Moving Base mode is generating into the Secondary Unit. See Plumbing diagram I posted/described earlier.

vcorp answered 4 months ago
I think to start (Until I understand how to use boards in heading mode) i will use two rovers with two bases.
From the first (rover + base) i will collect the data for navigation.
From the second (rover + base) I will calculate the heading using the NMEA data present on the current position towards the first rover antenna.

This is the site from which I made the bearing heading calculation:
http://www.edwilliams.org/avform147.htm#Crs

clive1
replied 4 months ago

Doing the math that way is one approach, given the proximity of the antennas there are a number of ways to get roughly the same results using various levels of computational complexity. Ideally involving the least number of coordinate space transforms, and transcendental math, especially on MCU lacking strong floating point support.

The UBX-NAV-RELPOSNED form supported by the ZED-F9P/H provides for the baseline length, angle, and NED displacements, and this achieved through sub-mm carrier level measurements of a dozen or more satellites, and the constraining geometry between a pair of different observation points.

vcorp answered 4 months ago
Thanks for the reply.
I’m in the company doing tests.
As mentioned above, I want to try two rovers and two bases.

Question: Do the bases need to be configured so that they each connect to a pre-established rover? Example: Hey I’m base 1 and connecting to rover 1? If yes can you help me understand how to do it from u-center?
As always thanks in advance

vcorp
replied 4 months ago

Any advise?

vcorp
replied 4 months ago

In the meantime i have found how to use two rover with one base.