The APM dev team is delighted to announce the release of APM:Plane 2.75, a major new release with a lot of new features. This release is recommended for anyone flying fixed wing aircraft with an APM1, APM2, PX4 or Pixhawk.
As you might expect for a release that took 5 months to develop there are a lot of changes in this release! In total around 1000 patches have gone into the ArduPilot git tree in that time, so it isn’t practical for me to describe them all in these release notes, but I will try to highlight the most significant ones.
Arguably the most significant changes are:
support for the new ‘Pixhawk’ FMUv2 Pixhawk board
new airspeed auto-calibration algorithm to calculate the airspeed ratio in flight
support for the new MS4525DO I2C airspeed sensor
several scheduling improvements which greatly improve performance on both APM2 and PX4
added automatic scaling of all control laws for pressure altitude
added ‘rally points’ as alternative RTL locations
support for GPS timestamps on camera messages and over MAVLink
new ground steering code
Enable camera triggering
preliminary support for the FlyMaple ARM board
very early development for embedded Linux autopilots like the BeagleBone black
This release adds support for the new ‘Pixhawk’ PX4 board. That board has been released to developers flying the new Iris quadcopter for a while, and is now supported by APM:Plane. It is a great board that I think a lot of people will enjoy using!
New airspeed auto-calibration
The new airspeed autocalibration code makes calibrating your airspeed sensor much easier. This is also the first Kalman filter in the APM code, although it is only a small one. Many thanks to Paul Riseborough for developing this code!
CPU Performance Improvements
This release includes a lot of scheduling and related performance improvements, especially for the APM2. This gives us a bit more room to grow on the APM2, and also improves the scheduling consistency on PX4 to make flight control a bit smoother.
Automatic control law scaling
A big effort was put into this release to make all our control algorithms scale correctly with pressure altitude. This was done after a few users contacted us about using APM guided planes at very high altitudes, even up to 30km above sea level! To support that sort of altitude required some major changes, as the airpressure at those altitudes is very low, and a plane flying at a reasonable airspeed might be flying at a ground speed of several hundred kilometers per hour. We hope that the users flying at very high altitudes will be able to post some results soon.
A side effect of these changes is that the tuning parameters in APM:Plane are now altitude invarient. So if you tune at sea level then take your plane up a mountain the tuning will still be right. You will still need to cope with the reduced thrust and maybe switch to a different propeller, but at least the main control tuning will be right.
Added rally points
A major new feature is ‘rally’ points contributed by Michael Day (thanks Michael!). Rally points are a set of up to 10 ‘return to launch’ locations. When APM does a RTL it will choose the nearest rally point if one is available, and if not the come back to the home location. Michael is working on a new documentation page with more details.
We have finally added GPS timestamps, which has been requested by quite a few users for a long time. Camera log messages in dataflash now have GPS timestamps, and MAVLink contains a SYSTEM_TIME message giving UTC time derived from the GPS time. Listing dataflash logs on the PX4 now shows their GPS timestamp, and the log files on the SD card are now correctly timestamped with GMT time.
New ground steering code
The ground steering code in APM:Plane has been completely replaced, with the adoption of the ground steering code from APM:Rover. This can be used both in AUTO mode and FBWA mode, by setting the GROUND_STEER_ALT option to the altitude above the ground to switch between ground steering and normal rudder control. The new ground steering code still needs some documentation, but certainly works nicely on my planes!
Camera triggering improvements
One of the most common requests we had after the last release was for a way to enable/disable the CAM_TRIGG_DIST option during a mission. To support this we now have a MAV_CMD_DO_SET_CAM_TRIGG_DIST mavlink command which can be setup in a mission to change the triggering distance. Combined with the new GPS timestamps in the camera logs we hope this will greatly improve the aerial survey options for APM users.
This release also includes preliminary code for two new types of autopilot board. The FlyMaple port was done by Mike McCauley (thanks Mike!). This port is quite complete, but has not yet been flown on a plane. We expect it will fly well, but watch out for a blog posting from Mike in the near future.
The second experimental board is the embedded Linux port, which I’ve been working on in some spare time. I’m testing a direct port of APM to Debian running on a RaspberryPi and a BeagleBone Black board. It looks good so far, but is not complete, so don’t rush out and buy one just yet! I’ll do a blog post once I’ve got to the first flight stage.
Lots of other changes!
The above highlights are really just the tip of the iceberg. Here are a few more that may be noticible by users:
[ul]set mode CIRCLE on short failsafe
changed default throttle slewrate to 100
fixed GUIDED mode change of altitude downwards
removed old speed control code
added ACRO_LOCKING parameter
allow integrator in STABILIZE with no stick input
sped up parameter download
changed default FBW_MIN to 9
new AP_Notify system
added FENCE_ACTION=3 option
added AUTO_FBW_STEER option
added WP_MAX_RADIUS option
use AHRS projected position for waypoints and geofence
new auto-takeoff code from Paul
new battery monitory library
auto-cal baro and gps when disarmed
improved ACRO integrator accuracy
fixed wp set in non-auto (thanks Mike!)
initial TECS flight stage handling
added bank-to-throttle compensation to non-airspeed controller
improved integrator scaling with speed
improved NMEA driver
fixed ublox set rates to be async
As you can see, this new release has a lot of new features that should improve the flying experience for all APM users. The APM dev teams wishes all APM users many enjoyable flights, and we hope you have as much fun flying this release as we had making it.
I should also mention that the documentation hasn’t yet caught up with the release, so please ask on the forums if you need to know more about a feature that we haven’t properly documented yet.