Reach RTK Navio/Pixhawk integration released!

Originally published at: http://www.emlid.com/reach-rtk-naviopixhawk-integration-released/
precisionlanding

This landing looks so good like it is a reversed takeoff video. In reality this is a demonstration of using Reach RTK integrated with Pixhawk. This feature is now available for all ArduPilot based autopilots, including our beloved Navio+ and Navio2.

Only single radio has been used, with RTCM3 corrections tunneled through telemetry and Pixhawk. As Reach is equipped with Wi-Fi it is easy to connect to it and use Mission Planner to inject correction data into the MAVLink stream.

pixhawk-08-flipped-antenna

We got several requests from the ArduPilot developers not to use NMEA protocol for this integration as it does not carry all required data. GPS gives autopilot more than just location data. Speed, accuracy estimates, heading and more is required for ArduPilot to take full advantage of an RTK GPS. This is why we have added custom ERB (Emlid Reach Binary) protocol. For other autopilot systems NMEA output is available as well.

In this test flight we used ArduCopter 3.3.3-Reach, it is stable firmware with ERB protocol support added on top. We will provide custom builds for now, but considering that this code is already in master we expect to see full Reach RTK support in ArduCopter 3.4 . If you would like to build your own firmware, here is the related pull-request.

We have put together detailed docs about this integration that cover Pixhawk, Radio and Reach settings as well as Mission Planner GPS inject feature.

Reach users will need to perform an update through ReachView app. ArduPilot integration is available in version 0.3.0 or higher.

Only four months since we have shipped first units to our Indiegogo backers and development is moving forward at a great speed! During this time we have been working restlessly adding new features, improving stability and overall user experience with Reach. This release brings an amazing feature - integration with ArduPilot based autopilots. New features also include Bluetooth solution output, which allows to output enhanced coordinates to a number of Android apps, automatic log conversion to RINEX and many more.

Best regards,
Emlid Team

P.S.
You can also read an incredible report by Luke Wijnberg about using Reach for placing Ground Control Points for mapping and general surveying.

Update

Weā€™ve just pushed a new version, v0.3.1. Apart from fixing a couple of bugs, it adds a new parameter to the Roverā€™s general settings tab, called Dynamics model of the rover. When set to on, it enables a powerful dynamics filter, that significantly improves RTK solution quality, especially in UAV area applications.

This option has one downside, though. It requires a whole lot of computing power, so we will only allow this option with an update rate of 5Hz and less.

We encourage you to try it, as it gives a very nice improvement in performance. Stay tuned for more updates!

5 Likes

Congratulations on your hard work paying off! This is very exciting for Ardru users everywhere.

1 Like

Congratulations for this job !! And now the questions are coming !!! :smile:

  1. I already ask it 2 weeks ago : is it possible to set the distance between the camera and the antenna GPS ? Because in most cases, they are not exactly at the same place and is important to set up properly to make a good geotagging of the pictures

  2. What about the log file in the pixhawk ? Usually, after a fly, i download the log file of the flight with missionplanner (download data flash log with MAVLINK) and after i use this log containing gps coordinates to geottag my pictures. So if you have two gps device, what is in the log file : the two devices ? the default gps device when the RTK solution is not ok ?

  3. What about the rtk during a flight : if the reach modules canā€™t find a solution in real time (for example when they canā€™t see the same satellites), the pixhwak will take account with the first device or the reach device ? Can you explain this ?

  4. Thank you for all ! Itā€™s great to send the correction with the same radio than the telemetry !

1 Like

Thanks for the hard work! Cant wait to test it!

Congratulations Guys!
This is an awesome job. I wish you could provide more kits to procure since all are backorder :smile:
Actually I consider Arnaudā€™s questions valuable.
And it may be very helpful if reach wiki can provide additional information about integrating reach with pixhawk.

Best Regards.

Onur.

Thank you all for your kind words!

No and it is not how it should be done. Lever arm adjustment has to be performed by photogrammetry software (Pix4D, Photoscan) as it knows the orientation much better than the onboard IMU.

You will have both in the logs.

Reach can work as a standalone GPS as well, so if corrections stop it will switch to single mode. Pixhawk will choose the GPS with better fix. Fixed RTK > Float RTK > Single 3D Fix > No Fix.

Also, here are some important notes about mapping.

1 Like

We are making even more this time! As soon as they show up in stock they are sold out very quickly.

Thank you. Iā€™m agree thaht we can perform the orientation and position with a software like pix4D or agisoft photoscan but what about the z value ? These softwares wonā€™t be able to detect the good z value if it isnā€™t fixed in a really accurate way. So the distance between the gps antenna and the picture sensor will be seen in the results of the 3D reconstruction and the z value of the ground will be a little bit wrong. I hope you understand me !! thank you.

Important information for missionplanner users : in the beta release, itā€™s now possible to select just the second GPS unit when you make a geotagg : their is a checkbox for that in the geottag option.

How is the ERB file used is it in reachview or has to be added to the pixhawk firmware? I am interested in the plane implementation.

Modern photogrammetry software will allow you to enter the lever arm X,Y and Z that you need to measure on your airframe. During processing it will make the adjustment automatically.

1 Like

Both. ERB support is now in ReachView 0.3.0 and later. ERB for Pixhawk currently requires a custom build from the APM repository. We have builds for copters, but can probably make for the plane as well. You can build it yourself from GitHub - ArduPilot/ardupilot: ArduPlane, ArduCopter, ArduRover, ArduSub source .

http://docs.emlid.com/reach/apm-integration/

Update

Weā€™ve just pushed a new version, v0.3.1. Apart from fixing a couple of bugs, it adds a new parameter to the Roverā€™s general settings tab, called Dynamics model of the rover. When set to on, it enables a powerful dynamics filter, that significantly improves RTK solution quality, especially in UAV area applications.

This option has one downside, though. It requires a whole lot of computing power, so we will only allow this option with an update rate of 5Hz and less.

We encourage you to try it, as it gives a very nice improvement in performance. Stay tuned for more updates!

2 Likes

Hi,

How do you upload the new firmware (ArduCopter-octa-v3.3.3-ERB.px4) in Navio+? I tried to use Mission Planner (Load Custom Firmware) but I got the error: ā€˜No Response from Boardā€™.

Thank you for all your help.

So following the integration and getting everything setup to add reach + Navio2. The only docs I can find is https://docs.emlid.com/reach/apm-integration/. Does anybody have a writing setup for Navio2?

Also looking at the tutorial it requires Mission Planner, which doesnā€™t work on Linux. Iā€™m trying to track down a Windows VirutalMachine to get by for now. Are there plans for a more permanent setup that doesnā€™t require Windows? (crossing fingers!)

Hi @mr337,

With Navio2 you will need to plug in Reach in the UART port using the provided cable. To tell APM to use Reach as second GPS use -E /dev/ttyAMA0

You can skip the Mission Planner part if you are using two sets of radios.

While using Navio2 with Reach and one 3DR radio, the Reach uses the UART port on the Navio2 and there is no way to use the radio.

Is it required to use a USB radio of some type? The https://docs.emlid.com/reach/apm-integration/ isnā€™t clear what to do in the case of Navio2.

Mission planner within Inject GPS functions, has to inject corrections with the NTRIP protocol, you can use a corrections be ROVER REACH mode ?. I connect to a caster and RTCM messages appear me, how can I use it with my module REACH?

Iā€™m new at thisā€¦

Iā€™m working on a server, kinda like Mavproxy, that will allow receiving Reach gps corrections from the base GPS via network or serial interface and then send the corrections to the vehicle using a telemetry radio (serial). Iā€™m not using a traditional ā€œground stationā€ so I need to inject the gps data into the mavlink stream of my server. Or, at least that is how imagine it to work.

Can you tell me which mavlink message is being used to transport the gps correction data from the ground station to the drone?

Thanks,
Tim

Thanks,
Tim

@t3eaOregon

https://pixhawk.ethz.ch/mavlink/#GPS_INJECT_DATA