AF Vehicle blog — August 22, 2009
Home | << Historical | << First | < Prev | Next > | Last >> |
Introduction
This page contains some preliminary thinking of mine on the subject of trying to build an autonomous flight vehicle. I am at the very early initial stages of the design right now, having only done some preliminary testing.
As of September, 2010, this project is more-or-less "on hold" while I concentrate on development of the Cat's Eye 2, my "next generation" aerial photography platform.
This has been one of my dreams for a while now: to be able to direct an aircraft to fly to a specific location, at a specific altitude, to take a photograph. I have in mind dozens of spots out in the middle of the wilderness where it would be difficult to get close enough to direct the plane by line-of-sight. There are (at least) two approaches to this end. First, one could mount a video camera on the plane that transmits "what the plane sees" back to the pilot, allowing him/her to pilot the plane. This is referred to as FPV (First Person View) and is being done by many R/C pilots. The other approach is autonomous flight, in which the airplane pilots itself without any input from the pilot. As I envision it, the pilot will still do the takeoffs and landings the "normal" way, i.e. by radio control, but plane then will fly itself inbetween.
The following noodlings and meanderings are just a "brain dump" of my current thinking on the subject. I'm presenting it blog-style, with dated entries, for now so you can see how things are developing and evolving. Obviously much still has to be worked out and many of these ideas will probably not survive the first design revision. (No plan survives first contact with the enemy and all that.) However, you gotta start somewhere...
Modular approach
Obviously, for an autonomous flight vehicle, there will need to be a good bit of software written. Software is, of necessity, written in a modular fashion. But I thought it might be useful to extend this concept to the hardware level as well.
For instance, a particular controller could be dedicated to altitude. It's job would be to place the model at a specific altitude and keep it there. There would be one input that would sense the model's altitude (probably from a GPS receiver), and one output (probably the motor throttle control).
It is interesting to note that in the natural world, animals have evoloved this approach as well. The central nervous system coordinates the organism's actions, but much of the mundane processes of balance and "putting one foot in front of the other" are handled by peripheral nerves.
The "brain" would, clearly, have to be a fairly powerful (in relative terms) controller which would be responsible for navigation and overall control. It would determine if the model was on course and issue instructions to the other modules if it was off course. But the instructions could be fairly simple, i.e. "go to 1500 ft" or "turn to a heading of 30 degrees", rather than micro-managing the throttle and rudder at every step of the way.
The advantage I see to this is that each of the module could be developed and tested separately and any bugs worked out. Once any particular module was working properly, it could then be included in the overall system without any further worry about how it would perform. (Theoretically)
How to LAN a plane
There is also the problem of how to tie all these modules together. What I envisage is a sort of "local area network" (LAN) on the plane, similar to a home network but at a much lower bandwidth and much simpler protocol. It would probably consiste of three wires, ground, power and signal.
The LAN would allow each of the modules to communicate with each other. At its most basic (and for the first test of the system), it might consist of nothing more than what is usually on an R/C plane, a receiver, ESC (motor speed controller) and several servos for the control surfaces. But these would be tied together using the LAN, rather than all those wires running from the receiver to wherever. Obviously, each of these modules would have to be a bit more complex as it would need to write data to, and read data from, the LAN as well as performing its own functions.
Other modules would then be added, one at a time, and tested thoroughly before moving on to the next. One of the first would probably be a "telemetry module." Like the "black box" on full-size aircraft, its job would be to record flight parameters throughout the flight, which could then be used analyzed what went on during the flight, and, if something went wrong, could (hopefully) be used to figure out what. The recorded data would simply be all the information going over the LAN. This would included, at a minimum, the data that would be necessary to fly the plane, but the modules could be designed to output other data over the LAN (i.e. data not necessary for flight) that might be deemed to be useful to figure out what was happening internally within the module.
Currently, I see the following modules in a basic autonomous flight system:
- R/C receiver module,
- ESC module,
- rudder servo module,
- elevator servo module,
- GPS receiver module,
- navigation module,
- altitude module,
- heading module,
- flight data ("black box") module
AF Vehicle blog — August 22, 2009
Home | << Historical | << First | < Prev | Next > | Last >> |