APM:Plane 2.75 released

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:

[ul]
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
[/ul]

Pixhawk support

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.

GPS timestamps

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.

Experimental boards

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
added SKIP_GYRO_CAL
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
added FS_ACTION=2
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
[/ul]

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.

Happy flying!

The topic has been unlocked for posting now.
Using these forums for release announcements is a bit of an experiment. There was some confusion about how we arrange the followup replies. I hadn’t realised it was setup to lock the announcement thread when I posted the announcement of 2.75.
So what we’ve done now is unlock it for comments. So questions and comments about the release can now be posted as replies here.
If instead of a comment or question on the release you have (for example) a crash log then it would probably be best to post that as a separate topic in the APM:Plane/2.75 section of the forum.
Cheers, Tridge

@Tridge,
Nathaniel Caner on DIY Drones has indicated that members still cannot post in this announcement. I can post in this announcement because I am a moderator, however I cannot see where this announcement is locked.
Regards,
Tom C Developer

Should work now. It was my mistake. When I created the forum, I just copied the permissions from the APM:Plane parent, forgetting that Craig recently set all parents read-only to force users to post to the appropriate subforums.

Hey Tridge,

Almost done with Rally point documentation. You should have it tomorrow.

Michael

Thanks Michael!

Great job and congratulations to all those who contributed! I will be particularly interested to hear more about “Rally Points”, “battery monitoring library”, and the new “Ground Steering Code”! Lot’s to be excited about.
Now if the weather would only cooperate…winter is dawning early here in the northern latitudes! :cry:

Hi All,
The Forum Admins would like to request that member who want to respond to this new release, please start a new Topic in the APM:Plane 2.75 Discussion Forum to address your suggestions, issues, and questions.
Regards,
TCIII Developer

Tridge, Stefan, Gary, Tom and the other moderators:
If we are going to keep this manageable it is important that users post new topics. Please do not approve posts unless they are in a new sub topic.
You can Split a post to create a new sub topic or you can Move a post to move it into an existing sub topic.
You can see I have split and moved a couple of topics.

Thanks!

I talked with Tridge on Skype today.
We agreed to leave the thread open for general replies for a while but he wrote himself above that any kind of technical issue should go into a new thread. After a while, Tridge is going to lock the thread himself.
So, he is himself keeping an eye on what’s going on here.

Thanks Tridge, looking forward to flying this :slight_smile:

I flew 2.75 today. The ability to turn on/off CAM_TRIGG_DIST work flawlessly, thank you for that, it really helps on my long commutes to the target site.
I definately noticed an improvement in the airspeed handling on auto takeoff, thank you Paul.

I had a beautiful auto landing, but I can’t say I noticed any changes in the way it handled speed on final approach, she still maintained cruise speed until touchdown. What is supposed to be different?

Loading the new firmware messed up my voltage and current calibrations, so I had to reset those, no big deal.

It seemed that the Skywalker was a little sloppier on holding altitude after the update, it was still quite accurate, but seemed to be not as locked in. I wonder if I need to tune again a little or perhaps it was just the day.

Tridge, I know you never agreed with me about my Throttle Nudge not working. It really never worked for me in 2.74b, but it works great now! Nice to have that functionality back, but I have to re-train my self to set my throttle to a meaningful place.

This thread is very tough to read on my iPhone where I exist most of the time. The column are too wide so I have to scroll left and right. I wish this thread was compatible with Tapatalk.

Thank you for all the hardwork and fantastic code.

Hi Iskess,
I’m glad it worked well, thanks for letting us know!

The main auto-landing changes are yet to come, but I didn’t want to hold off 2.75 for them. There were a couple of small changes, mostly to make sure it didn’t go into a ‘panic dive’ close to the runway if the airspeed dropped below the minimum speed.
In 2.75 to control airspeed on auto-land you need to use mission items to change the target airspeed as you approach. For 2.76 I plan to make that simpler with a LAND_AIRSPEED option.

I’m glad it’s working for you now! It is possible the bug was fixed as a side effect. Do let me know if the bug comes back and I’ll look into it some more.

That should be the same as before, although if the change is small it could be a side effect of the integrator changes. Hopefully you can tune it out.
Cheers, Tridge

I didn’t know that that the ‘AP_TECS : Reduce tendency to overspeed during climbout’ patch had made it into this release, however if it hasn’t this time it should definitely make it in for the next one. Anyway, good to hear your airspeed on climbout has improved somewhat.

2.76 has now been released with an important bugfix.
See the release announcement for details