Another flight test of new ArduPilot 2.5 code

Here's a quick report on today's test flight of the latest ArduPilot 2.5 code, including a failed T3 contest run:

(I was using an EasyStar with XY & Z sensors)

The Good

--This version does away with the bind plug process for people who are using ArduPilot to control the throttle (which I am). Worked fine!

--Stabilization gains are dialed in fine. Earlier problems with people using the Z sensor are gone.

--Funky motor pulsing issues at startup and problems with ESC arming are gone.

--New GPS parser for uBlox works fine.

The Bad

--Altitude hold doesn't seem to be working in AUTO mode (although it does seem to work in RTL mode). The plane is supposed to stay at 50m, as you can see in the mission file above, but just seemed to go higher and higher. I had to bring it back manually from about 200m. We've had this problem before, and I think it has to do with the uBlox GPS parser. If it thinks the GPS is reporting that the plane is at an altitude of 0, it will just keep trying to fly higher. We'll need to fly with someone watching the telemetry to figure out what's going on.

--I accidentally set my waypoint radius limit too high (59m) so the plane was just approximately following the course. That should have been closer to 10m.

--The RTL loiter circles were more like figure eights. I think the loiter radius (45m) is too tight, and should be closer to 100m:
#define LOITER_RADIUS 45 // radius in meters of a Loiter

The Stupid

Somehow I was under the impression that I could adjust the throttle while the plane was in AUTO mode (you can nudge the aileron/rudder and elevator in that mode). That doesn't appear to be the case. The reason this matters is that if you're trying to set a good time on a T3 run, you don't want the plane to leisurely go around at half throttle!

In the meantime, I need to change something in the settings below. I'm thinking I should crank the Absolute figure up, but how high? (Is it 0-10?). Jason, do you have some advice? Any chance we can allow the user to nudge the throttle when it's in AUTO mode?

#define THROTTLE_ABSOLUTE 3 //Absolute
#define THROTTLE_P .32 //Proportional
#define THROTTLE_I .04 //Integrator
#define THROTTLE_I_MAX 50 // (0-125) 50 = 40% Integrator limit.
#define THROTTLE_CRUISE 30 // (0-125) 30 = 24% throttle, or (int)target airspeed for cruising
#define THROTTLE_MAX 60 // (0-125) 60 = 48% maximum throttle

Views: 652

Comment by John C. on March 7, 2010 at 9:22pm
Very interesting....I noticed the same altitude hold issue, but don't have the data to prove it as I needed to fix the serial logging issue in AUTO mode. I'm using the same airframe as you.

I'd also like to be able to nudge the throttle!

Thanks for the report!

Comment by Jason Short on March 7, 2010 at 9:43pm
2.6 has a new altitude hold control law that I hope should do a better job. The current one is approximately the 2.4 version. I didn't write a new one.
We can definitely nudge the throttle! I was thinking the same thing.
Comment by Rana on March 7, 2010 at 10:09pm
Chris, nice flight test and highly valuable inputs !

Comment by Ryan Beall on March 7, 2010 at 10:26pm
The current airspeed/altitude setup isn't verry flexible for increaseing the trim airspeed. All of the gains change and there realy isn't any dynamic pitch trim for airspeed currently isn't implemented. Watch Doug's Total energy implementation. Should help the auto trim for dynamic airspeed trim.

Comment by Graham Dyer on March 8, 2010 at 12:29am
I noted the altitude hold issue as well, RTL seemed to hold fine but in AUTO it just climbs and climbs
Comment by Scott on March 8, 2010 at 12:54am
Possible cause as to climb
An increase in airspeed eg throttle will cause a climb if the aircraft dose not pitch nose down to reduce the extra lift cause by the increase in airspeed.
I think this was happening when I was using 2.4.3
As I tried to increase throttle the plane just slowly climbed. What I think was happening was it was coming up against the #define ALTITUDE_ERROR_PITCH_MIN and would not pitch further forward so the result was a climb.
When I changed the #define ALTITUDE_ERROR_PITCH_MIN it seemed to hold altitude much better. And I could get a higher airspeed.
I’m not sure If 2.5 has the same line in the code or how increases in air speed are handled.
Unfortunately were I fly there is always thermals going off so lots of lift this make it hard to figger out watts really going on.
Comment by cholo on March 8, 2010 at 1:02am
is there a simple way to use that pressure sensore:
for the altitude hold function ?

Comment by Jani Hirvinen on March 8, 2010 at 7:36am
just talked today with one guy who owns a company that builds car and other asset tracking GPS devices. he said that "you should never trust on altitude from GPS". GPS system it self changes now and then altitude offset, especially when USA is having bigger military events going. Affected area can be even 1/4 of whole globe.
So pressure and others are a lot better choice for altitude checking and GPS can be used just as reference if those alues look "normal".

3D Robotics
Comment by Chris Anderson on March 8, 2010 at 8:39am

That's not the problem. We're getting rock solid altitude (+-10m) from the uBlox, and all of our autopilots here, including the UAVDevBoard fly fine with GPS altitude. The problem is that the autopilot is not responding appropriately to it.

Comment by Jason Short on March 8, 2010 at 9:22am
Yeah, I'm really psyched about the new control law for airspeed/altitude control. I think it will solve these issues.
I don't know why the current version climbs in AUTO but not RTL. It's really executing the exact same code for both. The only thing I can think of is the RTL gets it's altitude from the current location of the plane and not from a waypoint unless you specify that in the config tool.

Perhaps waypoint altitudes are being read-in incorrectly. Can someone double check those? Does the ground station report altitude and altitude error?



You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service