I have recently developed a program to land an aircraft on runway on Droo (video link at the end of post). I'm not sure if anyone has ever created such a program. It can land SimpleAirways (LandingGearFix 3 version), navigating it precisely for a runway touchdown, then it brakes, using reverse thrust too. I've seen quite a lot of programs for landing a rocket (like SpaceX), but no program for planes... and actually it wasn't an easy task. Challenges were:

  • it can't land anywhere, my goal was to land on runway
  • before landing it should go straight in the direction of runway (just like real planes do)
  • touchdown must be very smooth - landing gear is not very tough, it won't survive landing with more than about 5 m/s vertical velocity
  • landing with too high angle of attack could also damage landing gear
  • it must not touch ground before runway (landing gear may break) or too much after beginning of runway - the goal is to stop before runway ends
  • PID controllers used in my program needed some tuning for a stable flight
  • do a proper control of pitch, roll and yaw inputs

What is left to do:

  • Improve PID controllers a bit - there are nice Matlab tech talks on YT about PID controller. Ideas presented there could make my program even more reliable.
  • Perhaps change landing trajectory to be linear (it's quadratic currently): the problem is that with quadratic trajectory, the plane descends quickly and needs to maintain quite low altitude before runway, which is problematic when velocity is low (and so the lift force is low) and we want to go as slow as possible in order to successfully stop the aircraft; to overcome this problem my program currently keeps too high velocity and despite braking, it has non-zero velocity at the end of runway
  • maybe add better thrust control
  • program for take-off

My ultimate goal: create a program to safely land a space shuttle from orbit, on runway.

Link to the video: SimpleRockets2 - automated landing of aircraft on runway Vizzy program.

I don't give a link to the craft itself (but you can easily find it) because it seems it stopped working in 0.9.509.0. It used to work in 0.9.404.0 (on Android at least). Now it displays an error about empty list so I suspect there must be a bug in Vizzy about lists - for example I'm passing a list variable to a method (a custom instruction) as argument, and the method computes average of values kept in the argument (list values can be numbers or vectors) and displays an error if list is empty. Perhaps I'll report a bug when I investigate the issue.

Tags
Vizzy

1 Upvote

Log in in to upvote this post.