Developer

APM:Plane 3.5.0 released

3689651507?profile=original

The ArduPilot development team is proud to announce the release of the 3.5.0 version of APM:Plane. There have only been a few small changes since the 3.5.0beta1 release 3 weeks ago.

The key changes since 3.5.0beta1 are:

  • addition of better camera trigger logging
  • fixes to override handling (for users of the OVERRIDE_CHAN) parameter
  • fixed a pulse glitch on startup on PX4

See the full notes below for details on the camera trigger changes.

For completeness, here are the full release notes. Note that this is mostly the same as the 3.5.0beta1 release notes, with a few small changes noted above.

The biggest changes in this release are:

  • switch to new EKF2 kalman filter for attitude and position estimation
  • added support for parachutes
  • added support for QuadPlanes
  • support for 4 new flight boards, the QualComm Flight, the BHAT, the PXFmini and the Pixracer
  • support for arming on moving platforms
  • support for better camera trigger logging

New Kalman Filter


The 3.4 release series was the first where APM:Plane used a Kalman Filter by default for attitude and position estimation. It works very well, but Paul Riseborough has been working hard recently on a new EKF variant which fixes many issues seen with the old estimator. The key improvements are:

  • support for separate filters on each IMU for multi-IMU boards (such as the Pixhawk), giving a high degree of redundancy
  • much better handling of gyro drift estimation, especially on startup
  • much faster recovery from attitude estimation errors

After extensive testing of the new EKF code we decided to make it the default for this release. You can still use the old EKF if you want to by setting AHRS_EKF_TYPE to 1, although it is recommended that the new EKF be used for all aircraft.

Parachute Support

This is the first release with support for parachute landings on plane. The configuration and use of a parachute is the same as the existing copter parachute support. See http://copter.ardupilot.com/wiki/parachute/

Note that parachute support is considered experimental in planes.

QuadPlane Support

This release includes support for hybrid plane/multi-rotors called QuadPlanes. More details are available in this blog post: http://diydrones.com/profiles/blogs/quadplane-support-in-apm-plane-...

Support for 4 new Flight Boards

The porting of ArduPilot to more flight boards continues, with support for 4 new flight boards in this release. They are:


More information about the list of supported boards is available here: http://dev.ardupilot.com/wiki/supported-autopilot-controller-boards/

I think the Pixracer is a particularly interesting board as it is so small, and will allow for some very small planes to fitted with an ArduPilot based Autopilot. It is really aimed at racing quads, but works well on small planes as well as long as you don't need more than 6 servos. Many thanks to AUAV for providing development Pixracer boards for testing.

Startup on a moving platform

One of the benefits of the new EKF2 estimator is that it allows for rapid estimation of gyro offset without doing a gyro calibration on startup. This makes it possible to startup and arm on a moving platform by setting the INS_GYR_CAL parameter to zero (to disable gyro calibration on boot). This should be a big help when flying off boats.

Improved Camera Trigger Logging

This release adds new CAM_FEEDBACK_PIN and CAM_FEEDBACK_POL parameters. These add support for separate CAM and TRIG log messages, where TRIG is logged when the camera is triggered and the CAM message is logged when an external pin indicates the camera has actually fired. This pin is typically based on the flash hotshoe of a camera and provides a way to log the exact time of camera triggering more accurately. Many thanks to Dario Andres and Jaime Machuca for their work on this feature.

Lots more!

That is just a taste of all of the improvements in this release. In total the release includes over 1500 patches. Some of the other more significant changes include:

  • RPM logging
  • new waf build system
  • new async accel calibrator
  • SITL support for quadplanes
  • improved land approach logic
  • better rangefinder power control
  • ADSB adapter support
  • dataflash over mavlink support
  • settable main loop rate
  • hideable parameters
  • improved crash detection logic
  • added optional smooth speed weighting for landing
  • improved logging for dual-GPS setups
  • improvements to multiple RTK GPS drivers
  • numerous HAL_Linux improvements
  • improved logging of CAM messages
  • added support for IMU heaters in HAL_Linux
  • support for RCInput over UDP in HAL_Linux
  • improved EKF startup checks for GPS accuracy
  • added raw IMU logging for all platforms
  • added BRD_CAN_ENABLE parameter
  • support FlightGear visualisation in SITL
  • configurable RGB LED brightness
  • improvements to the OVERRIDE_CHAN handling, fixing a race condition
  • added OVERRIDE_SAFETY parameter


Many thanks to everyone who contributed to this release! The development team is growing at a fast pace, with 57 people contributing changes over this release cycle.

I'd like to make special mention of Tom Pittenger and Michael du Breuil who have been doing extensive testing of the plane development code, and also contributing a great deal of their own improvements. Thanks!

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • thanks Luke...

    I am not flying a plane with rudder... my plane is a skywalker X8...

    what is the I and D stand for? I have been looking all my params files and all of them have 0 on both I and D...

    I have been flying almost 3 years , about 500 flights on all of my planes as I do this as a job.. and never had this problem until 10 mont ago with one firmware update the problem started to show.. I am not saying the problem is the firmware.. I understand perfectly what Andrew told me about having 0 gain on those params...

    I did a reserch on diferent params settings for the skywalker X8 and a lot of them have also 0 gain on both of them... only one has 0.1 on I and has no gain on D..

    I will definitly do the autotune and will take a look at the gains and let you guys know

    best

    Jose

  • thanks a lot to both!

    I guess that for some reason after the firmwares updates something has happened with my params...

    I have been flying with those parameters for at least 2 years.. it was flying perfectly... about 10 monts ago I updated the firmware and this problem started... not as bad as right now.. at that time the only issue was that one turn was harder than the other turn.. one was wide and the next turn tight.. also 2 lines where closer to each other than the other 2...

    but after this firmware update this happened... I always do the firmware update and upload my params... maybe they are very old and need some furder tunning...

    I dont remember messing with the I and D params.... what I did is to let it turn tighter..

    will definitly do what you are telling me!

  • Developer

    @Jose, I'm also curious to know why you set the I and D values to zero. I'm asking because one of the most common issues we have among users of ArduPilot is that they change a parameter away from the default and then wonder why it flies badly. There is no aircraft where the correct values of both I and D are zero, but clearly you changed them for some reason. Can you remember why?

    One issue we've had is that someone posts a set of bad parameters from a different aircraft then a whole lot of users blindly import the parameter file without looking at it. Is that what happened here? Or is our documentation not clear enough?

    Cheers, Tridge

  • Developer

    Hi Jose,

    I've had a look at your log and the problem isn't your accel cal, it is your roll/pitch tuning.The aircraft wants to roll in the right direction but the parameters for roll and pitch control are preventing it achieving the desired attitude.

    3702182815?profile=originalin the above graph you can see the desired roll and actual roll don't line up. If we look at the RLL2SRV_* parameters we can see why:

    RLL2SRV_D        0
    RLL2SRV_I        0
    RLL2SRV_IMAX     1500
    RLL2SRV_P        0.8

    What that says is "to achieve N degrees/second of roll rate use 0.8 * N aileron deflection". The autopilot did exactly what you told it to do, and it tried that amount of aileron deflection. It did not achieve the desired roll rate.

    As the I and D terms were zero it didn't try anything else. The I and D terms are essential to allow the autopilot to achieve the desired roll rate.

    So my advice is:

    1) read this: http://plane.ardupilot.com/wiki/automatic-tuning-with-autotune/

    it is the easiest way to get the plane tuned.

    2) if for some reason you can't use autotune then at least set some I and D gain. Start with 0.3 for I and 0.15 for D if you want an initial guess

    3) please set LOG_BITMASK to the default of 65535. There is lots of important data missing in your log. For example, I strongly suspect the trim values you have for RC1_TRIM and RC2_TRIM are a fair way off, but I can't be sure without the RC data in the log

    Cheers, Tridge

  • will definitly do it again.. but if some one finds another problem inside the log please let me know...

  • Developer
    Do it again
  • here is the link for the log....

    https://dl.dropboxusercontent.com/u/80582640/265.BIN

    I allready did the accel calibration and I still have the same problem

  • Developer
    I've had that problem too and an accel calibration fixes it. Please try that. Make sure it's the 3axis.
  • Developer

    Jose can you post a log? It appears as if you have a consistent crosstrack error that the aircraft is never solving (it's flying exactly between the two lines both directions).

  • 3702182679?profile=original3702182426?profile=originalcongratulations for the hard work! I fly flying wings and multirotors for diferent kind of Jobs.. Ag mapping, filming.. etc...

    I just upladed your last plane firmware.. and I have been noticing a problem that keeps growing every firmware update... the plane is behaving difetntly when mapping.. insted of flying on the grid it flyis back ad foward on the same line and skips one line to do the same... this problem started 2 firmware updates ago.. but the problem wasnt that big... I am attaching screens of the mission... you can see that the plane is not flying correctly.. and also a screen of my photo aligning program..

This reply was deleted.