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?
Max Maxfield 6/15/2012 5:12:51 PM User Rank Blogger
Re: Needs a cape
@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...
I was never convinced by anything I read about fuzzy logic back in its heyday. Either it's a load of #^%@#(*, or its proponents are just REALLY bad at explaining it.
Neural networks – I'd be far more interested in connecting those to FPGAs!
p.s., I'm not saying you can't get useful results with fuzzy, just that it seems no better than any other well-considered algorithm or formula.
I think the quadrotor helicopter will make the perfect test platform! Four control loops, immediate visual feedback on performance and fun to boot! I think it will be the cat's meow (pun intended).
Re: "Are you with me?" I will find my goggles and white silk scarf and have them ready and waiting.
By the way, are you building two quadrotor helicopters; one for each [of your] cats? You better 'off them' one at a time or else family members might suspect foul play :-)
Max Maxfield 6/16/2012 10:32:37 AM User Rank Blogger
Re: Fuzzy schmuzzy
@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 :-)
Max Maxfield 6/16/2012 10:38:48 AM User Rank Blogger
Re: Excellent test platform
@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" :-)
Adam Taylor 6/17/2012 5:46:18 AM User Rank Blogger
Re: Fuzzy schmuzzy
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?
We consider complementary versus analogous colors and the meaning of terms like shade, tint, and hue. We also introduce the concept of psychological primary colors.
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?
To save this item to your list of favorite All Programmable Planet content so you can find it later in your Profile page, click the "Save It" button next to the item.
If you found this interesting or useful, please use the links to the services below to share it with other readers. You will need a free account with each service to share an item via that service.