My degree is in control engineering -- a core of mathematics with "surrounding" subjects of electronics, mechanics, and hydraulics and fluidics -- all of which might go some way to explain the drooling and my highly strung nerves.
In those days of yore -- shortly after the reign of the dinosaurs, as I recall -- the most sophisticated form of control algorithm was the proportional-integral-differential (PID) technique. Just to remind ourselves, this algorithm calculates an "error" value as the difference between a measured process output variable and a desired set-point. The controller then attempts to minimize this error by adjusting the process control inputs.
Heuristically, the P-I-D terms can be interpreted in terms of time: "P" depends on the present error, "I" depends on the accumulation of past errors, and "D" may be thought of as a prediction of future errors, all based on current rates of change. The weighted sum of these three actions is used to adjust the process.
Since those far-off days, a lot of interesting ideas have appeared on the scene. For example, there's fuzzy logic, which is similar -- in a way -- to human reasoning in that it allows for approximate values and inferences as well as incomplete or ambiguous data (fuzzy data) as opposed to only relying on crisp data (binary yes/no choices). Fuzzy logic is able to process this incomplete data and provide approximate solutions to problems other methods find difficult to solve.
Another area of interest to me is that of genetic algorithms, which mimic evolutionary processes in the natural world, specifically, those of natural selection based on the "fitness" of individuals in a population that evolves by exchanging genetic material and also by random mutations. Although the whole concept of genetic algorithms might seem a bit nebulous, their use of pseudo-natural selection and mutation allows them to explore a greater range of potential solutions than do more conventional search techniques, and to converge on optimal results in complex solution spaces faster and more efficiently than other approaches.
Some people think that fuzzy logic is wonderful -- others are not impressed. I plan on discussing all of these techniques (PID, fuzzy logic, genetic algorithms, and more) in the context of FPGAs in future columns. As part of this, one thing I've wanted to do for quite some time is to create some sort of a test platform to evaluate, say, a PID control algorithm versus a fuzzy logic control algorithm. I think I may have found the ideal solution. Consider the following image:
It seems that, following the tragic passing of his cat due to a fatal encounter with a car, Dutch Artist Bart Jansen turned the remains of his feline friend into a remote-controlled quadrotor helicopter. (I now predict a very interesting future for our two cats... a future that might come "sooner rather than later" if you catch my meaning... but that's a story for another day.)
Some of the comments I've seen relating to this are rather funny. One person asked, "Has the US military expressed any interest yet?" Another said, "Can you imagine waking up at 3:00 a.m. and seeing that hovering outside your window?" And another commented, "Excellent! Now all it needs is a mouse pilot wearing tiny goggles sitting on the cat's back."
But we digress... In order to achieve the rock-steady level of control we require -- especially with regard to the formation flying discussed below -- I think we need the massive processing power of a Zynq-7000 with its dual ARM Cortex-A9 processors coupled with its programmable FPGA fabric. (See: What's New: Power to the Zynq-7000 EPP ZedBoard.)
What I'm thinking is that this would make a great test platform to play with both fuzzy logic and genetic algorithms. The idea is that we would use a genetic algorithm to establish the optimal set of fuzzy membership functions (including their envelopes and parameters) to control "The Beast."
But wait, there's more... Suppose we all made one. Then, when we one day have our All Programmable Planet "meet-and-greet" in some exotic location, we could all being our flying cats and perform demonstrations of formation flying that will delight and entertain the gathered throng. Perhaps this would look something like the following TED video (this is well worth watching in its entirety, but start at the 10:00 minute mark to see the formation flying):
Now, imagine something like this but with flying cats, each carrying a mouse pilot on its back, and with suitable "Dam Busters" type music playing in the background. (Yes, of course the mice will be wearing goggles and white silk scarves. And yes, of course we -- the operators -- will also be sporting matching goggles and scarves, otherwise the whole exercise would be pointless, wouldn't it?)
So, what say you chaps (and chappesses)? Are you with me?
@Rich: This will give me an excuse to wear my own goggles and white silk scarf and cape in public without being laughed at (everyone will be too busy looking at the cat) ... speaking of which, now I want to race home and check our cats -- I wonder what their "wingspans" are ... I hope they are in good health and that nothing untoward happens to them...
@imac: I have actually seen some interesting things done with Fuzzy Logic, but I've never done anything with it myself. Neural networks also interest me. Today's APDs (FPGAs) are fast enough that I think we could use them to implement simple Neural networks ... But first we need to build the test platform.
One of our cats -- Rocket -- says he's willing to sacrifice himself for science, and the other -- Skitty -- says that anything Rocket can do he can do better, so he is volunteering also (at least, that's what I choose to think they are saying :-)
@Brian: "I will find my goggles and white scarf..."
If you also wear a Beanie hat with a propeller then I will have no problem spotting you.
Let's meet in the center of town at noon tomorrow. Don't worry if I am a few minutes late ... I will be there (have I ever lied to you before?) And you may rest assured that any looks you get from passers bye fall into the category of "admiring glances" :-)
My wife volunteers at a cat rescue best not let her read this column. I have worked with neural networks before they are very interesting and not to difficult to implement being ideally suited for FPGA implementation.
Re: Holy caped crusaders its Max and his squadron of flying cats!
Tell you what, as its starting to look like this blog is marketing puff by xilinx for their zinq FPGA I,ll set you a challenge. You develop your controller using the xilinx daul core wonderousness and Ill do one using my 16 bit soft core risc processor and we will see which is cheaper and faster to develop. O.K?
The appellation "primary colors" refers to a small collection of colors that can be combined to form a range of additional colors, but which "small collection of colors" should we use as our primaries?