I’m working on a project with a BlueBoat USV that is equipped with a Cerulean Surveyor Multibeam Echosounder. To achieve the high-precision positioning required for the multibeam data, my goal is to use our Trimble R8 GNSS as a base station to provide RTK corrections to the BlueBoat’s standard onboard GPS.
My understanding of the general workflow is as follows:
Base Station: Set up the Trimble R8 at a known point to generate and broadcast RTCM correction data.
Data Transmission: Stream this RTCM data from the R8 to the BlueBoat. I am planning to do this over the internet using an NTRIP service (setting up the R8 as an NTRIP server/caster or using a third-party caster service).
Rover (BlueBoat): Configure BlueOS/ArduPilot on the BlueBoat to act as an NTRIP client, connecting to the data stream to receive the corrections.
GPS Injection: Use the ArduPilot GPS_INJECT_TO parameter to feed the incoming RTCM corrections to the primary onboard GPS, allowing it to achieve an “RTK Fixed” solution.
I’m hoping to get some guidance from anyone who has experience with a similar setup. My specific questions are:
Is my understanding of the workflow correct, or am I missing a key step?
Could someone provide more detailed guidance on the software configuration within BlueOS and ArduPilot? Specifically, how to properly configure the NTRIP client and ensure the GPS_INJECT_TO parameter is working as expected.
Are there any specific hardware considerations or potential pitfalls I should be aware of when connecting a system like this?
Has anyone successfully used a professional-grade base station (like a Trimble or Topcon) to feed corrections to the standard BlueBoat GPS? I’d be very interested to hear about your experience.
Hi @tjrickey -
Welcome to the forums!
RTK setup is covered in the BlueBoat FAQ - did you see this information?
Any NMEA position stream can be parsed by the Navigator Autopilot. To receive the messages from a network-connected device simply configure the Autopilot parameters GPS_Type to NMEA, Serial2_Protocol to GPS, and verify no other Serial port # protocol is set to GPS. Finally, under Autopilot Firmware, Serial port Configuration, set Serial 2 to: udpin:0.0.0.0:27000. Then direct your UDP NMEA stream to the IP address of the BlueBoat. Note that these NMEA messages are required for navigation: RMC, GGA, VTG, HDT. This approach uses the ArduPilot driver to interpret the NMEA messages - you can also use the NMEA Injector in BlueOS, which has support for fewer messages. If using a serial connection to bring the NMEA position data to the Navigator serial port 3 or 4, set the appropriate Serial# Protocol parameter to GPS and restart the autopilot. NMEA messages should be sent at 10hz or faster.
In answer to your questions - you’ll first want to configure the Trimble GPS on the BlueBoat to send position to the autopilot as detailed in the FAQ. Once that is working, handling corrections is as simple as installing the appropriate BlueOS extension (called Ntrip), and configuring it to receive the corrections over the internet (cellular modem sourced, or how do you plan to provide internet access to the system?)
I’m not familiar witht he GPS_INJECT_TO parameter - maybe the Ntrip extension is using this, but I don’t think you’ll need to touch it directly (if it even exists on ArduRover firmware.)
The only potential stumbling point I can think of is if you’re using two receivers on the BlueBoat to get a GPS heading measurement, they need to be seperated by sufficient distance, and the locations of all the components should be captured in the relevant parameters. A recent default parameter update sets the INS and default GPS pos information - you’ll want to configure your additional GPS pos relative to the center of the vehicle ( a point at water level centered between hulls.)
Let us know if you get stuck! Quite a lot of users seems to be using various RTK GPS systems without issues, and we’re evaluating options to eventually offer a Blue Robotics (low cost) solution.
Hi @tjrickey -
I believe you need two identical receivers ideally - and the F9P is what units we’ve been testing with are based on. If you’re just using one, you won’t get heading, and I’m not sure what degree of precision you can expect - certainly cm scale, and obviously condition dependent - I’ve not tested with only one GPS receiving corrections. QGC supports streaming corrections automatically when a compatible base station is connected.
Hi @tjrickey -
To further clarify - the M8N GPS on the BlueBoat by default does not support using corrections to prove position estimation. A ZED-F9P does, and so when communicating with the autopilot via serial, any corrections from the Ntrip extension or a Zed-F9P base-station connected to QGroundControl would be applied, and should result in centimeter level accurate position. Adding a second Zed-F9P GPS to the BlueBoat at sufficient separation, with all positions of the units set in Autopilot parameters, will result in centimeter-scale accuracy of position + heading from GPS (not reliant on magnetic fields, just a clear view of sky.)
Hi @tjrickey -
The GPS connect to the Navigator via USB. My current testing has found that mounting the antennas inside the hull, under the deck doesn’t give them quite enough separation for reliable heading… but if you only need GPS, a single unit can be installed and you’ll be good to go!
You’ll want the antenna and the ZED-F9P module. Happy to share the 3D printed under-deck mount if it’s helpful.
You’ll want a good quality USBA to USB-C cable to run from the starboard hull to port side if you go to install a second GPS.
This unit and the UART to USB adapter should be all you need, at least if you plan to get corrections online. A BaseStation unit can be helpful for local corrections if you’ll be on land (stationary)!
I do this kind of thing at work all the time. I would say the solutions discussed so far will get you good positioning, but for useful multibeam data collection (depending on the water depth and desired level of accuracy) you’ll need a really good IMU and data collection software to tie it all together. The software side of things puts definite limits on your hardware choices, i.e. what devices does the software support? What software were you planning to use and what kind of accuracy are you aiming for?
Hi @rperkins -
To clarify the software aspects - if using a Cerulean Surveyor Multibeam, SonarView is used to capture data. This means that the heading and position information from the BlueBoat running BlueOS / ArduRover are provided, giving broad compatibility with GPS/IMU sources (just need NMEA stream.) The pitch and roll of the multibeam are measured onboard.
We’ve been comparing some data from a high-end multibeam and the Surveyor, used over the same region, and found that while other options may have a broader beam and deliver dramatically more points, telling the difference from a resulting contour map is quite challenging! Improving accuracy further requires information on the sound velocity profile in the survey region, this is not yet supported by SonarView but is planned, and potentially 2-3 months away!
I do agree that knowing the accuracy spec you’re after is critical when selecting hardware.
I just read up on Cerulean’s Surveyor, its internal IMU and SonarView. Very cool! I guess I should have read up on that before my earlier reply. Sounds like a very capable setup.