I have a mapping project in a place with no internet connection and no cell service. Ill be using a Mavic3E and would like to use one of the Reach RS models as a base station (I’m not sure which ones will work for this). Can anyone give me some tips, advice or ideas on what model is best for making this work and how to go about it. Thanks!!
Hey Chris, you will need an RS2/2+/3 with multiband capability. Do you need cm-level relative accuracy with sub-meter absolute or cm-level on both? Will there be any type of known control available in the vicinity? These will determine what lengths you need to go to in order to meet your requirements.
Thanks Michael! cm level relative accuracy with sub-meter absolute will work for this project. As for ground control - only if I set of the GCPs, which I was also considering. I believe I would need two RS units to set up the GCPs, but if that’s what I need I will consider that.
I’ve been trying to use a single RS3 for measuring the GCPs and to then provide NTRIP to a M3E. While it has kind of worked, it hasn’t given me the accuracy i was hoping for. The fact that the stop & go measurements (for the GCPs) and the Static (for NTRIP) were done on the same unit seems to cause issues with post processing due to the movement of the single RS3 and the time slots over which the corrections were done. Either the GCP point data was good, or the drone PPK’d data was good, but not both together. The distance to the nearest source of PPK data was too far to get decent results.
So, to improve things I’ve just bought a 2nd RS3 unit to use as a Rover. The setup I’m now using will be:
RS3 - Base - setup on a static (unknown) point throughout all data collection.
RS3 - Rover - a 2nd Rs3 acting as a Rover for collecting GCP and other point data, either though local NTRIP or LoRa.
M3E - Rover - takes local NTRIP output from the RS3 base via WiFi.
In this way, both the RS3 Rover and the M3E are taking corrections with reference to the same local origin (the RS3 Base).
So, my workflow is something like:
Set up Base RS3 and configure for LoRa output.
Start RINEX logging on the Base RS3.
Power on RS3 Rover, configure to recieve corrections from Base via LoRa
Start RINEX logging on RS3 Rover (as backup data).
Set out GCP’s and take measurements with RS3 Rover.
Stop Rinex Loggin on Rover and power off.
Connect Base and M3E to same Wifi network (either phone hotspot or portable WiFi AP).
Change Base correction output from LoRa to Local NTRIP.
Fly M3E mission(s).
Stop RINEX logging on the Base RS3 & power off.
Once back at the office:
Download project data from EmlidFlow
Download RINEX logs from RS3 Base
Download RINEX logs from RS3 Rover
Download mission files from M3E sd Card(s)
Download RINEX logs from CORS stations.
Use EmlidStudio to generate corrected location for the RS3 base.
Use EmlidStudio to correct Rover Measurements using Stop & Go Processing and the corrected base location obtained above.
Use EmlidStudio to correct the Drone image locations using Drone Processing & the corrected base location obtained above.
Process images and ground data in whatever your favourite mapping/modelling software is
Something is wrong here. I use a single RS3 every day via network (Rock Base) to establish checkpoints and a base position and then fly using local NTRIP and get 1-2cm relative accuracy with global at about 3-5cm. What are you processing with? How are you determining the variance between GCP and image geolocation?
I’m using Metashape Pro for modelling & the points on the models aren’t corresponding with those measured for the GCP’s. I’m looking for low errors in the model reporting, and also looking for good initial co-location when setting up markers in Metashape for the CP’s and GCP’s.
Also, I’ve had problems getting the GCP positions to post-process to FIX in EmlidStudio. From project to project they’d end up as varying mixtures of FIX, float and single when post processed using EmlidStudio & RINEX logs from my national CORS network (we don’t have free-to-air NTRIP in the UK). It’s not a single site, it’s over many, and across several months. Even running local ntrip to the M3E ends up showing float/single for some of the image points when post processed with EmlidStudio afterwards. The unprocessed points show as FIX in the M3E logs (ie the drone has the ntrip stream), but EmlidStudio then processes some back to lower accuracy afterwards. I’ve had better luck with processing to FIX using RedToolBox for the same files.
TBH, the whole thing has been an exercise in frustration, from EmlidStudio not working on Mac M3 Pro systems forcing me to shunt GB of files around between computers to process them, to having to set up Virtual PC’s to try and compare/get better FIX results using RedToolBox, to Base Stations on my national government CORS Network being permanently out of action forcing 10-20km longer baselines…
I’ve not had a chance to check results from a two-RS3 Base-Rover setup yet to compare. Even the first readings from that got messed up by the over enthusiastic LoRa connecting to the wrong base 8 miles away. Fortunately I caught that on-site and took the readings again with the right Base.
I’m not knocking the Emlid equipment - I’m sure it’ll be excellent once I’ve flushed all my user errors & teething issues out of the workflow… just wish I wasn’t falling over every bloomin’ problem I can find!
I don’t quite understand points not corresponding to the GCP points? Are you talking about the tie-points before you tag the GCP’s? Do you have a geoid loaded?
I typically,
Align photos
Clean outliers and define scope box
Optimize cameras (GCP’s after this if you choose)
Process dense point cloud
So you’re not running network RTK to the RS3 for GCP’s? You’re doing PPK with Emlid Studio?
Think about your process here. It’s sounds like you are doing two different types of corrections and need to make sure the everything about those corrections is the same. Otherwise you data between the two will never match Survey-grade. I can run PPK with all constellations and then again with just GPS and/or GLONASS and if you calculate the deltas between each photo geotag can get slightly different results, some of which may be outside my Survey tolerance.
The fact is that you are looking for relative accuracy during this part of the process and your GCP’s will control your final “global” location. I choose to process with a geoid and without GCP’s so those points essentially become checkpoints. They are always on the same datum whether that be natural grid or localized. Final rectification to Survey data for our process is outside of photogrammetry.
I’m expecting the ‘modelled’ GCP’s to be in roughly the right place for when I add in the marker locations and configure them as either CP’s or GCP’s. I’m finding that the Metashape projected locations are out from those RS3 recorded locations. Obviously i can tie them back, but I’m finding that the errors in the reporting are not of the order of 1-2cm. Heights show the greatest error, I’d expect that, but again they’re more than I’d expect or like them to be.
I’ve a Geoid loaded, and the appropriate CRS set for each set of data (Images and markers).
My site workflow was
start up the RS3 and let it settle doing it’s initial Average reading. It auto starts logging on power-on.
I’d then layout the GCP targets & use the RS3 to take point measurements from them as I walked around.
I then set the RS3 up on a pole & bipod to use as a local Ntrip caster for the M3E.
Connect up the M3E, let it converge to FIX, and fly the mission(s).
When I’d finish the missions, I’d then walk round and re-measure the GCP points as I collected them.
Finally stop the RS3 logging and shutdown.
Back at home:
I’d download the RINEX files for the nearest CORS base & it’s ECEF coordinates.
Download the RS3 RINEX logs
3 ) Download the Flow Project CSV.
Download the Drone project files.
use EmlidStudio to generate the Base Position for the RS3 using Static processing with the RS3 logs and the CORS RINEX. The CORS position is input using it’s ECEF coordinate.
Use EmlidStudio to generate updated GCP locations using Stop & Go processing and the CORS Rinex files as the Base (with ECEF coordinates).
Use EmlidStudio to generate updated Drone tags using Drone Processing, along with the RS3 logs for the Base and with the processed/updated base location from #5.
Fire up Metashape, then Align Images
Clean up the inital points
10 ) Size up the bounding box.
Import GCP csv.
Tag images with Markers.
Set markers as either GCP or CP & click update.
Optimise Cameras.
Build Model (or Build Point Cloud).
Build Textures, DEMs etc.
Metashape settings are configured to
Load camera calibration from XMP meta data
Load camera orientation angles from XMP meta data
Load camera location accuracy from XMP meta data
Load GPS/INS offset from XMP meta data
In a nutshell, I’m using a single RS3 to collect the GCP point data, then to act as an NTRIP base for the M3E, then as a collector to re-measure the GCP points.
I then process the GCP Emlid Flow project data against a known CORS Base using it’s rinex logs & ECEF coordinates. I do the same to then obtain the static location for the RS3 when it’s acting as an NTRIP base for the M3E. I fly the drone missions. I then correct the drone image data by processing it using the RS3 as a Base withhe it’s updated/corrected location.
It should have worked, but the errors never reduced enough - I’d expected it to give me a few cm error, but it was always well over that ( I don’t have the projects to hand to give you the actual errors).
So, figuring there was something screwing up the relative positioning between the drone data & the GCP data, I decided that I’d be better off measuring everything relative to a single local point… hence one RS3 acting solely as a local base for everything. Then it’s one base location to correct, and hopefully (!) everything should adjust relative to that position.
(Apologies LonePineGeo, I’d not intended to semi-hijack your topic. but hopefully it might help you avoid some of the pitfalls I’ve run into.)
RS2+ or RS3 would be your best choice. These can act as an RTK base that sends corrections to the drone’s remote controller. They send corrections over Emlid NTRIP Caster through the internet or Local NTRIP within a Wi-Fi network.
Since the site doesn’t have cell service, the latter integration would suit your workflow best. More info about the integration can be found here.
Stop and Go gives results in geographic coordinates. Did you convert these points to Local before importing them in Metashape? If so, what coordinate system were the points converted to?
What CS was used in Metashape? Also, feel free to share one of your test datasets. I can try to process and create a sparse cloud and mark the points to check how well the cloud aligns with the GCPs/CPs.
Does your GCP network include a localization? If not then your main culprit is the error produced by the processing using every bit of the tolerance you allowed it to have in camera movement. It should be reading your geotags and determining the accuracy of each image and then using that as a tolerance of how much it is allowed to move the image values to achieve the “visual” stitch.
What are your values in Metashape for Camera and Marker accuracy?
Thanks for the suggestions @michaelL & @ruth.bongon, I’ll check what I’ve got set on the projects. It may be I’ve not got everything set quite right yet. I’ve a busy few days tidying up some condition survey work and then I’ll hopefully have my head clear enough to concentrate on checking things.
I’ll create a new topic when I reply with my settings, I’m aware that our discussion (while relevant) is diverting @lonepinegeo 's topic away from his original question a bit.
Thanks for the help and conversation everyone. And no worries Profile - ElectroNick - Emlid Community Forum. I was glad to have provided a topic that helped you out. Between this conversation and another I feel that I have the info I need to proceed with my project.