Auto Takeoff Sequencing Problem

I've been working with the Auto Takeoff macro and have experienced the problem where the throttle goes to "max" as soon as AUTO mode is selected. 

The documentation and other posts tell me that I should close the throttle and put the APM in AUTO mode.  Next I should advance the throttle off the lower stop.  Only then, when the airplane velocity gets to 3 meters per second, the APM should go to max autopilot throttle and pitch up to climb straight ahead to the target altitude.

Here is what does happen-  First, I load a simple APM flight plan. Waypoint one uses the Auto Takeoff macro with the max angle set to 15 degrees and the target altitude to 300 feet.  The second waypoint is a Loiter_Unlimited at 300 feet.  This sequence is really just a test of Auto Takeoff.

Once the flight plan is loaded, I walk the airplane up behind and put it on a bungee launcher.  With the throttle closed, I then use the transmitter to put the APM in AUTO mode.  At this point, the APM will consistently command max autopilot throttle.  And this happens with the transmitter throttle closed and the airplane at rest, "zero" velocity.


Other people have reported this same bad behavior.  You can see it demonstrated live in  MyGeekShow Episode 50 starting at 1:05 into the video.  He has completed a short checkout flight to verify Stabilize mode.  As soon as he switches to Auto mode, the motor spins up to takeoff power while he is holding the airplane overhead.  This is right after he tells the viewers that it will wait for forward motion.


Have a look - http://youtu.be/DR8JU5Qep0E

My setup is --

Airplane - X8 Wing

ArduPilot 2.5 with Arduplane 2.66

APM Planner 1.25 Mav 1.0

DragonLink RC radios

3DR Telemetry radios

JR9303 RC Transmitter

To investigate this in a safer environment, I created a testbed with an APM 1, GPS and DragonLink on a piece of balsa.  The throttle channel is connected to a 9g servo swinging a half-inch arm.  The APM 1 has the same ArduPlane 2.66 code and the same parameter set as the airplane.  I loaded the same flight plan via USB.

Disconnected from Mission Planner, the board gets powered up and I wait until the GPS has lock.  As soon as the JR switch commands Auto mode, the throttle servo goes to (75%) autopilot max.  Every single time and without exception.  It does not wait for movement, it just goes for takeoff immediately.


Here's the (procedural) solution-  You have to power up the APM and be connected to Mission Planner, either by USB or radio link.  You have to use Mission Planner to manually set the current waypoint to "Waypoint 1".  Once that is done, the Auto Takeoff macro will perform as intended.  With the transmitter throttle closed, it will go into Auto mode and wait.  When the throttle is advanced, this arms the code and the APM will advance its throttle channel after seeing about 8 mph.

I tested both the failing sequence and the successful sequence several times by putting the balsa testbed system on my dashboard and driving up and down the street.  Anyone should be able to duplicate this test and I would like to see others check my work.

As it stands, the Auto Takeoff macro is dangerous.  The APM code starts up on waypoint "zero".  The prop will spin as soon as Auto mode is commanded.  If the pilot is unprepared, this can easily cause injury and/or damage.  I don't know why ArduPlane starts on waypoint zero when every flightplan begins with waypoint one.  It's my guess that this is the aspect of the code that should be reviewed.

Please let me know and I will be glad to add this as a bug.

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

Join diydrones

Email me when people reply –

Replies

  • Pieter,

    Thanks for posting, I was beginning to think that no one else in the DIYDrones community either sees this or considers it a safety issue.

    To your question-  AutoTakeoff is supposed to make the plane climb straight out until it reaches the altitude as set in that waypoint.  But, how does it determine "straight out".  A pilot looks ahead and picks out a reference point on the horizon, then steers for that point.  My understanding is that an APM2.x uses the current magnetometer heading, while the APM1.x will use the GPS heading.  GPS heading is unreliable when standing still.  I've seen advise to walk the plane forward to the launch point in the desired direction and this will set the takeoff heading.  Not the best solution, but it's what can be done with GPS.  So, when you observe the elevons, the APM is trying to turn to the takeoff heading. 

    I found another problem that happens for me after AutoTakeoff starts.  My second waypoint is a Loiter_Unlimited.  So, the documentation says the plane will climb straight out to initial altitude, then Loiter_Unlimited will make it circle at that point until I give it another command.  In practice, my airplane makes a climbing right-hand turn and then circles over the HOME position.  It seems to be skipping the Loiter command and going past it to an RTL.  So, you should consider what the next waypoint it asking for.  If your flight plan is like mine, then it may be doing the same right climbing turn to go back to the HOME position.  Have you tried the AutoTakeoff yet, and what does your flight plan look like?

    I've been working on battery and power issues since the initial post and I am somewhat astounded that no one commented, corrected me or acknowledged the "waypoint 0" problem.  After the holidays I am going to try several AutoTakeoff variations to see if I can make a better description of the problem. 

    Andy

This reply was deleted.

Activity

Jose Araujo liked Jose Araujo's profile
Aug 29
spencer harvey liked spencer harvey's profile
Jul 9
More…