Good news from Andrew Tridgell and the rest of the APM:Rover (ArduRover) Development Team: they've pushed out a major new release (2.45). Major changes include: numerous updates for PX4 and Pixhawk, dual sensor support on the Pixhawk and reduced GPS latency for all three navigation controllers.
The following is from Tridge's release announcement. Please post any questions or comments there.
The biggest set of changes are for the PX4 and Pixhawk boards. The Pixhawk production boards started shipping a few weeks ago and include some nice hardware features that didn't make it into the 2.44 release. The most important of these is dual sensor support. The Pixhawk has two gyros and two accelerometers, and (if you have an external GPS/compass combo) dual compass as well. In the 2.44 release only one of each of these sensors could be used. With the 2.45 release the health of each sensor is monitored and if one sensor fails the second sensor can take over. In addition to failover support the code logs both sets of sensor values both to MAVLink and to the logs on the microSD card, which is very useful for diagnostics. We are also working on dual GPS support which we hope to get into the next release.
GPS navigation improvements
A very simple change to our GPS configuration made a big difference for this release. In previous rover releases we setup the uBlox as ENGINE_AUTOMOTIVE as we thought that would be the best match for a rover. What we discovered recently is that using the AUTOMOTIVE mode led to much more time delay (lag) in the GPS velocity data, which led to poor handling of sharp turns. We have now switched to ENGINE_AIRBORNE_4G and found that we get much better navigation at higher speed with sharp turns.
Another major change for this release is the way parameters are stored on PX4 and Pixhawk. In previous releases we stored parameters on a file on the microSD card. That usually worked fine, but recently there have been a few too many issues with FAT filesystem corruption of microSD cards, especially when powering off while writing to the SD card. For this release we have moved all parameters to the EEPROM on the PX4 and the FRAM chip on the Pixhawk. This makes parameter storage independent of the microSD card, avoiding parameters becoming corrupt due to microSD card problems. Parameters from a microSD card will be automatically copied to EEPROM/FRAM when you upgrade to APM:Rover 2.45.
Improved relay code
The relay and servo set code has had a major overhaul, with up to 4 relays now supported for MAVLink control and much better support for the DO_SET_SERVO, DO_SET_RELAY, DO_REPEAT_SERVO and DO_REPEAT_RELAY MAVLink commands. Along with these changes is a new parameter BRD_PWM_COUNT which allows you to specify how many auxillary PWM outputs to enable, with the remaining outputs being available as digital relays. This allows you to re-assign some of the aux servo outputs on Pixhawk for use as relays, by setting the RELAY_PIN, RELAY_PIN2, RELAY_PIN3 and RELAY_PIN4 parameters. The pin numbers for these pins start at 50 for the first aux servo pin, and go to 55 on Pixhawk.
There have been logs of logging improvements in this release. Apart from the dual sensor logging, we can now transfer on-board log files to the ground station over MAVLink, which makes it much easier to get detailed logs without having to pull a microSD card out, or boot to the CLI. We're hoping to remove the need for the CLI completely in a future release, doing everything over MAVLink.
The new logging code also includes the git version number of APM and (if needed) the PX4Firmware and PX4NuttX repositories used to build the firmware in the logs. This makes it easier to track down any issues to the exact code used.
More telemetry ports
On Pixhawk and PX4 you can now have a 3rd telemetry port, allowing USB and two serial telemetry ports to be active at the same time, which is very useful when you have an onboard computer.
TCIII ArduRover2 Developer