• Blog Posts
  • Discussions (103)
  • Groups
  • Photos
  • Photo Albums
  • Videos

Jonathan Challinger's Friends

  • Will
  • Chad Frazer
  • Umer

Jonathan Challinger's Discussions

A developer's blog on ArduPlane

Started Jul 16, 2012 0 Replies

http://www.challinger.us/I intend to post new articles frequently. The articles will contain very indepth, developer-oriented information, but most posts will…Continue

Questions about X8 wing

Started this discussion. Last reply by Jeff Taylor Apr 11, 2012. 8 Replies

I'm writing a proposal for a $2000 summer stipend from my university, for development on an APM UAV.For the project, I'm looking at the X8 wing. However, I foresee a couple issues:Most layouts I see…Continue

Anyone use QGroundControl?

Started this discussion. Last reply by Jonathan Challinger Dec 25, 2011. 2 Replies

I can't get qgroundcontrol to connect. I built it from the v1.0 branch and it is getting data but it isn't displaying anything.Does anyone here use it? I'm trying to ditch mission planner because…Continue

PID tuning process/rules?

Started Dec 22, 2011 0 Replies

What PID tuning processes or rules do you guys use?I just tried Ziegler-Nichols for my servo roll and came up…Continue

 

Jonathan Challinger's Page

Latest Activity

Jonathan Challinger replied to Kristopher James Roller's discussion Help!! Need some input for you all. How much would it be to make a drone/UAV With thees capabilities?
"Here you go: http://www.lehmannaviation.com/la/la100.php Costs around $1300"
Feb 5
Jonathan Challinger replied to Leo Hogg's discussion ay - sideslip to rudder link?
"On a twin engine plane in an engine-out state, it will adjust the rudder to coordinate the plane. If you set the integrator limit high enough, it will either max out the rudder or fully coordinate the plane. Just controlling away the y…"
Nov 6, 2012
Jonathan Challinger replied to Leo Hogg's discussion ay - sideslip to rudder link?
"If I'm understanding you correctly, we already have what you want. The yaw controller YW2SRV_ takes the Y accelerometer as error and attempts to drive it to zero using the rudder. The implementation is fairly poor - there isn't enough…"
Nov 5, 2012
Jonathan Challinger replied to Andrew Tridgell's discussion ArduPlane 2.60 released
"Try setting only one at a time, and see what they do. If you have telemetry, graph the Y accelerometer, and graph the turn rate as you start rolling, and graph the actual rudder output, and then use the graphs to tune the gains."
Sep 7, 2012
Jonathan Challinger replied to Andrew Tridgell's discussion ArduPlane 2.60 released
"Hi. APM controls the rudder in two ways: 1. It applies rudder in the direction of aileron deflection to counteract adverse yaw. If you pick up the plane and tilt it to the side while stabilization is on, the rudder should deflect opposite the roll…"
Sep 6, 2012
Jonathan Challinger replied to Jeff Taylor's discussion ArduPlane 2.5 (& maybe 2.6) Steep Dive
"Hmm. Well, a plane with no GPS and no airspeed has no reference velocity for the AHRS, and in a plane this means it is essentially impossible to get a good attitude. Whether that would make your pitch go so wildly off, I don't…"
Aug 26, 2012
Jonathan Challinger replied to Andrew Tridgell's discussion ArduPlane 2.60 released
"It is a cascaded PID. Yes, the RP gain basically the D gain. The controller is based on a cascaded PID, but has an additional feedforward gain and all of the unnecessary gains are left out. The reason this is better is the rate is a faster process.…"
Aug 22, 2012
Jonathan Challinger replied to Andrew Tridgell's discussion ArduPlane 2.60 released
"I would imagine, just set it to a channel number that is a momentary switch, and press the button when you want the mission to reset."
Aug 22, 2012
Jonathan Challinger replied to Andrew Tridgell's discussion ArduPlane 2.60 released
"Oh, it is no longer PTCHCTL_RLL_FF, it is just PTCH_RLL_FF Additionally, there are YWCTL_P and YWCTL_I gains. To tune yaw (somewhat important for dead reckoning during GPS outages, also helps to prevent stalls), graph the rudder output and increase…"
Aug 22, 2012
Jonathan Challinger replied to Andrew Tridgell's discussion ArduPlane 2.60 released
"Gain names: AP Angle P – default 1.0. FF Feed-forward – default 0.4. RP Rate P – default 0.0 RI Rate I – default 0.0 RMAX – Rate limit – default 0.0 (disabled) – separate up and…"
Aug 22, 2012
Stan Underhill replied to Jonathan Challinger's discussion E-flite apprentice
"Jonathan, I realize this post is a bit old but I'm interested to know a) if you ever put Ardupilot Mega on your e-flight Apprentice and b) if so, how well you feel the airframe worked with it? I'm relatively new to this - both RC flying…"
Jul 29, 2012
Jonathan Challinger replied to spagoziak's discussion FBW A Manages Throttle Autonomously, and it shouldn't
"As you said, min throttle is probably the culprit here. It exists for gas planes that need a minimum throttle or the engine will die. FBW-A is not "primarily" a testing mode, and if FBW-B is a testing mode at all then it is a really…"
Jul 26, 2012
Jonathan Challinger posted a discussion

A developer's blog on ArduPlane

http://www.challinger.us/I intend to post new articles frequently. The articles will contain very indepth, developer-oriented information, but most posts will be relevant to users as well.See More
Jul 16, 2012
Jonathan Challinger replied to criro1999's discussion How is reacting APM2 on a twin engine airplane when one motor is down?
"APM's roll, pitch and yaw controllers will integrate out any steady disturbance like that, if there is an I term set and imax is high enough. However, flight characteristics with enough integrator to do anything useful are poor, something that…"
Jul 15, 2012
Jonathan Challinger commented on Chris Anderson's blog post ArduPlane home page
"Comments on comments on comments: 1. This is why we need better roll and pitch controllers, but additionally you probably need to build in a feedforward from landing gear extension to pitch. 6. There currently is no settings that will make this…"
Jul 11, 2012
Jonathan Challinger commented on Chris Anderson's blog post ArduPlane home page
"I deleted my previous posts, but just note that Chris' post was in response to one of mine."
Jul 10, 2012

Profile Information

About Me:
Hobbyist from California
Tell us a bit about your UAV interest
Did robotics for a while, now into RC airplanes and wanted to fuse the 2.

Comment Wall (6 comments)

At 12:02am on July 23, 2011, George Tarrant said…

John

Thanks for the feedback but can I ask a couple of supplementary questions to do with crosstrack error?

You use a quantity called "target_bearing" - is that relative to the plane "now" and based on GPS co-ordinates? If not, then what?

Your quantity "crosstrack_bearing" How is that calculated? Does it use GPS x,y velocities "now" which are inertial quantities and then perform some sort of transformation to make the bearing relative?

Things will go quiet this weekend because I'm taking a trip.

I'm asking these questions because the sketch I drew out based on my "guess" at what the two variables are suggested that a position bias could be built-in.

At 12:58pm on July 25, 2011, George Tarrant said…

Hi Jonathan

Since my last post to you, I've done a bit more research and I found a very brief write-up on "Cross-track error correction" in the APM manual. I think I've reconciled it with the code you sent me but, in doing so, I've come up with more queries.

The key query has to do with your phrase "nav_bearing += constrain (crosstrack_error*g.crosstrack gain..etc....)". According to my book on 'C', "+=" means add to the last value and this seems to be saying that successive values of "nav_bearing" are added together ie. integration. How do you read that? If I'm correct then we do have an integrator in the Xtrack PID. Trouble is, there is also an implicit integrator between nav_bearing and crosstrack_error so that we have a Type 2 loop which will execute undamped simple harmonic motion unless a 'D' term is added. This appears to contradict your observation of the plane flying at a fixed offset from the runway.

Something is not joined up somewhere. Have you had any more thoughts?

 

At 1:20am on July 26, 2011, George Tarrant said…

Jonathan

Would seem strange to use "+=" and reset when a simple "=" would do.

Anyway, getting back to your original query, now I know the basic error correction algorithm, I'll do some experiments with my simulation and get back to you.

At 12:43pm on July 26, 2011, George Tarrant said…

Jonathan

I've updated my mini-UAV simulation to look at your problem.

My simulation incorporates the following PIDs:-

  • rudder from y-accelerometer
  • aileron from roll
  • roll from heading

and I added a proportional heading from Xtrack loop.

This full complement of PIDs drives Xtrack error to zero in the presence of a crosswind.. I then disconnected the rudder from y-accelerometer PID and, low and behold, got a steady Xtrack error although the magnitude of the error was much smaller than you have observed. I think I am confirming that what you have observed is what to expect.

Based on this, I think there are 3 possible ways forward:-

  1. it might be possible to adjust the PID gains in the set-up you have to "tighten" the loops. In this connection, I think using throttle as a measure of speed (can't remember where I read that)  is not really on. My plane climbs at 25 deg at 15 m/sec under 12N thrust and dives at 5 deg at 20 m/sec under 0N thrust. There is just no reliable relationship between thrust and speed. You need a speed sensor (why not GPS?) and to use it to schedule PID gains
  2. You could implement a rudder from y-accelerometer loop. However, this is quite tricky and requires the accelerometer to be in just the right place (ideally at the airframe centre of percussion which is usually a little forward of the CG)
  3. You could add an integral term to the heading from Xtrack loop (making P+I). Since this is "just software" it might be the easiest option.

Hope you find this helpful, but get back if you have further queries.

At 2:21pm on July 27, 2011, George Tarrant said…

Jonathan

With respect, I think you are opening up a can of worms by trying to estimate wind speed. (1) there will be wind gusts on top of the steady wind that will add noise in the 0-1 Hz freq band. (2) where the plane is instantaneously pointing depends on airframe dynamics and loops engaged. In my opinion - better to reject the wind as it arrives rather than measure it when it arrives and then try to reject it.

Don't underestimate the "trickiness" of setting up a rudder from y-acceleraometer loop.If the accelerometer is too far back, when you deflect the rudder, initially the accelerometer will read rudder sideforce which will be in one direction and then, as sideslip develops, the accelerometer will read body sideforce in the opposite direction. In control parlance this behaviour is called "non-minimum phase" and it complicates the process of producing a stable loop. Placing the y-accelerometer at the centre of percussion means that it doesn't see the rudder sideforce and only sees the body sideforce which is what you want because it makes things simpler.

 

At 1:37pm on August 1, 2011, George Tarrant said…

Jonathan

Many thanks for your insightful comments - they are very useful.

I'm best-equipped to generate numbers for reasonably conventional aircraft - high-ish aspect ratio wings, reasonably slim fuselage. That said, I can deal with more "novel" airframes but the process will take a bit longer.

The info I would need about the airframe configuration is size/location of all control surfaces, wing size and planform (ideally also airfoil section but not essential) fuselage length and rough cross-section. I figured that most of this info could come from photos supported by info on fuselage length and wing span for scaling purposes. To round off the datapack I would need mass and cg position plus, ideally, inertias but unfortunately getting these may involve application of high school maths in garage experiments. I've often wondered whether aircraft manufacturers could supply a lot of this info but have never asked.

Finally, I'll need to know which loops you want set up and the likely range of flight speeds. Hope this package doesn't intimidate you too much. Let me know if you want to give the process a try.

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

Join DIY Drones

 
 
 

Social Networking

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.

A list of all T3 contests is here

Groups

Advertisement

© 2013   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service