Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!






Autopilot engaged

Posted by Aph3x, 27 November 2007 · 181 views

Ooh could get used to the ease of posting on here :)
Anyway, still battling with the Manta autopilot - trying to get a good control basis *without* using PIDs first - see how easy/suitable it is, and then bring in the big guns if required.





Hi Martin, nice to see that you're still having fun doing stuff for Carrier 2! About the autopilot issue, there's a ton of stuff in Thunder&Lightning (inside the data package's Io scripts), and it's not that hard to do when you know how to layer stuff correctly.

At the lowest level there are the controls. I'll take the example of a normal airplane, your mantas will have slightly different mechanics. You have throttle, aileron, elevator and rudder (we'll forget about other aicraft controls such as flaps, all kinds of brakes and other stuff). Most of these controls cause (directly or indirectly, by altering angle of attack) an acceleration of your airplane along some axis: (in the coordinate system I use in TnL)

- rudder along the X axis
- elevator along the Y axis
- throttle along the Z axis

The effects of these are different. Rudder only causes a very small acceleration, elevator a very big one and throttle only causes positive acceleration. Still, with a simple (manually tuned) PID controller you will be able to directly control acceleration in every axis.

To be continued later ...
Now you have controllers for all three local axes, you can command acceleration in any direction in space by converting an acceleration vector in world coordinates into local coordinates and applying the three controllers on the respective dimensions.

As the controls behave rather differently, it is desirable to perform maneuvers with the control that produces the greatest effect, which is the elevator. So when you command an arbitrary acceleration in space, use the aileron to rotate the airplane so that its up vector points towards the acceleration vector.

This would be sufficient if this were a space shooter, but for an airplane you mostly prefer to balance out the acceleration _perceived_ by the pilot (which includes gravity) so that it point towards the bottom of the pilot seat.

This scheme works very well in TnL, where it is implemented in under 200 lines. You don't need to do it like this of course. There are definitely some pitfalls wrt hover jet dynamics. Anyway, it was and a good exercise for me to write it down.
By the way, I thought PIDs _were_ the easy solution, other types of controllers are much more complicated.
Hi indy,
Nice to see you on here - thought you'd have a GameDev account somewhere :)
Nice info! You seem to be using a different set of 'heuristics' to me, with the layering and required accelerations - I've been working on the basis of required headings & altitude. Maybe it's time to re-think...
I found it quite hard to tune the PIDs; by 'easy solution' I mean use pretty much the same error calcs, but chop out the PID and tuning, and see if it works as well.
This is all WAY over my head, but I just thought I'd check in. May your good luck continuate.
Welcome Deanfrz!
See PM :)
Quote:
Original post by Aph3x
Hi indy,
Nice to see you on here - thought you'd have a GameDev account somewhere :)
Well, now I have one! Sorry about the delay, I forgot about my postings.

Quote:

Nice info! You seem to be using a different set of 'heuristics' to me, with the layering and required accelerations - I've been working on the basis of required headings & altitude. Maybe it's time to re-think...
You can nicely layer those on top of absolute velocities which are layered on top of absolute accelerations. You'll need to have different modes of navigation anyway, but the basics remain the same in my system.

Quote:
I found it quite hard to tune the PIDs; by 'easy solution' I mean use pretty much the same error calcs, but chop out the PID and tuning, and see if it works as well.
The simplest PID is one with only a proportional coefficient, that's where I start from. If there is oscillation, I reluctantly add a derivative coefficient. If errors never vanish, I add an integral component. It's tricky and of course not the way it should be, but for a game it's enough.

May 2015 »

S M T W T F S
     12
3456789
10111213141516
17181920212223
242526 27 282930
31      

Recent Entries

Recent Comments

Recent Entries

Recent Comments

Latest Visitors

PARTNERS