ArduCopter 3.0.1 has been released and is now available in the Mission Planner,, GitHub and the new Downloads Area.

Warning #1: Compass calibration and reducing interference is far more important than with 2.9.1b

Warning #2: GPS glitches can cause sudden and aggressive position changes while in loiter mode.  You may wish to reduce the Loiter PID P to 0.5 (from 1.0) to reduce aggressiveness (see image below of where this gain can be found in mission planner).

Warning #3: optical flow is not supported but will be back in the next release (AC-3.0.2 or AC-3.1.0).

Warning #4: loiter turns does not maintain altitude.  This bug will be fixed in AC-3.0.2.

Warning #5: This release has only been lightly tested on Traditional Helicopters.

Improvements over 2.9.1b include:

  • Inertial Navigation for Loiter and Auto meaning much more accurate control (Randy,Leonard,JonathanC)
  • 3D navigation controller follows straight lines in all dimensions between waypoints (Leonard,Randy)

         WPNAV_SPEED, WPNAV_SPEED_UP, WPNAV_SPEED_DN, WPNAV_ACCEL allows configuring speeds and acceleration during missions

  • "compassmot" to compensate for interference on compass from the pdb, motors, ESCs and battery.  (Randy,JonathanC) (Set-up video here)
  • Safety improvements:
    • simple Tin Can shaped Geo Fence
    • pre-arm checks to ensure all calibration has been performed before arming (can be disabled by setting ARMING_CHECK to zero).  (video description here)
    • GPS failsafe - switches to LAND if GPS is lost for 5 seconds
    • stability patch improvements to stop rapid climbs in very overpowered or overtuned copters
  • Circle mode improvements including "panorama" when CIRCLE_RADIUS set to zero (Randy,Leonard)
  • SONAR_GAIN parameter added to allow better tuning of sonar surface tracking
  • CH8 auxiliary switch (same features as CH7)
  • works on PX4 (some minor features still not available) (Tridge,PatH)

How to upgrade:

1. Make sure you are using Mission Planner 1.2.59 or newer (get it here)

2. Click on the MissionPlanner's Hardware, Install Firmware screen.  The version numbers should appear as "ArduCopter-3.0.1", then click the appropriate frame icon and it should upgrade as per usual.

3. Reduce the Loiter and Alt Hold PIDs if you have modified them from the defaults.  The modified PID values for the 3DR frame can be seen in the image below.

Note: Nav parameters have been combined with Loiter so do not be concerned if you can't find them.

4. Although not directly related to this release, if you purchased an APM prior to March of 2013, update your PPM encoder to the latest firmware (instructions here).

5. Try out the new version in stabilize mode first, then alt-hold, then loiter and finally RTL and Auto.

Numerous How-To videos are available:

Special Thanks to MarcoDaveC and the large number of testers on the pre-release thread who put their copters at risk during the extended testing period.  Some of their videos can be found hereherehereherehere and here.  Thanks also to MichaelO for the MP changes required for this release.

All feedback welcome.  Please put your questions, comments (good and bad!) below.

Views: 386738

Reply to This

Replies to This Discussion

When using the arduplane I can increase the waypoint radius and the plane turns before it makes the waypoint...

When using arducopter I get the following repeatable scenarios on all my machines.
1) waypiont radius = 30-200m and setting hit rad = 0 the copter always goes all the way to the WP and 50% of the time it does not get satisfied with its position.. hence the chicken dance which is very agressive.
2) waypiont radius = 30-200m and setting hit rad = 30 the copter always goes all the way to the WP and 100% of the time moves on correctly to the next waypoint.

As you can see no matter what value I enter in the waypoint radius the copter always goes to the waypoint as close as possible. Then if I have hit rad = 0 I get a chicken dance, hit rad = 30 the copter will move on and does not get stuck.


Sorry I should have clarified... the "WPNAV_RADIUS" I referred to in my previous reply is a parameter in Arducopter, not that checkbox in the Planner tab. My guess is "hit rad" != 0 overrides "WPNAV_RADIUS", and maybe you have WPNAV_RADIUS = 0, or some very small number?

WPNAV_RADIUS is the same as the wp radius. one is just set in the GUI and the other is in the full parameters list.
setting the one in the full parameter list will change the number in the GUI

if there was a hit rad in the full parameters list I could change that would be helpful

However then that makes the wp radius redundant....


@Kevin B,

It seems to be that you have come up with AutoTune and tested it 2 years back with your setup, much before 3DR developers implemented it :-P 

See the date on that video :)

So the slightly bit of unexpected behaviour you're perhaps noticing is that arducopter ignores the wpnav_radius unless there is a delay on the waypoint (the minimum delay is 1 second, the maximum is 65 seconds).  With a delay on the waypoint the copter checks to be sure it's within the wpnav-radius before moving on.

If there's no delay then it moves onto the next waypoint the moment that the "target point" reaches the waypoint.  The "target point" is the point that the copter is actually chasing and it travels a straight line between the waypoints.  There's a "leash" between the "target point" and the copter which depends upon the wpnav-speed parameters' value.

So what happens when you don't have the delay is the point zips out along the line between the 1st and 2nd waypoints, out in front of the copter but then it stops at something like 17m once it reaches the end of the leash.  as the copter moves forward now the target point can move forward.  Evenentually the target point hits the 2nd waypoint and starts on it's way towards the 3rd.  Initially though that target point is still quite close to the 2nd waypoint so you don't notice and think the copter is still trying to get to the 2nd waypoint.

If you look at google earth though you may find that the copter's path never quite reaches the waypoints.  it always turns slightly early.


    That's a pretty neat video, thanks!

There's a new library called AP_Mission that someone is working on that we will integrate into AC and it will let you modify points while the copter is flying.  I don't know how it will behave exactly.

The AC_WPNav library is responsible for the logic of moving the copter between two waypoints.  the do_nav_wp is the call that takes the next waypoint and pushes it inot the AC_WPNav library.

The way that we handle loading and saving the waypoints is in the GCSMavlink.pde in the main arducopter code. 

best of luck.

What you're seeing there is that we're running out of flash space so people (when compiling with the arduino ide) have to turn off some features to make other's work.  So the person who made you the autotune binary probably turned off the mount.

The centralised builder is more efficient than arduino (it uses a more up-to-date compiler) so we can still (just barely) fit all the current features into a single build.

Thanks for that but honestly most of that does not make much sense to me :) what I see consistently is the copter doing full bank maneuvers at the intended waypoint and not moving onto the next waypoint. This behaviour never occurs if I set the hit radius to something around 30. how that plays into what you just said is likely beyond my scope of comprehension but the behaviour is consistent to all my builds.

Can you explain exactly what the hit radius is meant to do and how that differs from the wp rad?

Thanks again for all your hard work!!

next issue... we are missing the camera trigger over specified in the arduplane..

or am I missing something?

this is a must have feature for any sort of mapping.


What is the centralised builder? Eclipse, Make, or ...?

It's make.  there are instructions for building with make on this page.

Reply to Discussion


© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service