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.
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 :-)
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.
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: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" :-)
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?
Max Maxfield 6/18/2012 9:57:27 AM User Rank Blogger
Re: Holy caped crusaders its Max and his squadron of flying cats!
@JezmoSSL: Thus far I've never programmed a dual-core anything, but off-the-top-of-my-head I'm sure that if you are experianced with a stardard 32-bit soft core then you can probably do things really quickly.
The thing for me is that I don't just want to build a basic radio-controlled flying "thing" -- I can pick one of those up at Best Buy -- I do like the "cat look" (especially with the idea of a mouse pilot ridfing on top of it) but truth to tell I woudln't use a real cat -- I'm keeping my eyes peeled for a suitable fluffy-toy version (probably take out the insides -- replace with a light-wait composite frame and that ultra-light air-gel stuff as filler).
As I mentioned in another answer, I woudl llike to take this a bit farther, like adding two cameras (one behind each eye). It would be uber-cool to have a virtual reality-type headset so you see the cat's binocular vision as a true 3D flying experiance. But I'd also liek to work on automatic control systems that allow you to tell it where you want it to go ("forward -- faster -- pull-up --") but the on-board systems are in charge of detecting and recoznizing objects and avoiding obstacles. Do you think your 16-bit soft core is up to this?
Max Maxfield 1/21/2013 10:12:22 AM User Rank Blogger
Re: Holy caped crusaders its Max and his squadron of flying cats!
@Jezmo: Quick update -- I've dropped the idea of building a real flying version of this (I've just got too many projects "on the go" at the moment) ... but I still really like the look of it, so now I'm looking for patterns to sew a lifelike fluffy toy version of a cat and make it look like thsi one -- plus I'm going to make a mouse rider sitting on a saddle on the cat with goggles and a white silk scarf .... I think this will be mega cool hanging in my office :-)
Max, the first one is just like a remote control flying cat with a limited range. But the second one is like a flight with a gyroscope to track the path of movement and feedback loop can help them to reach back the destination. Normally in Rockets, we use to embed gyroscopes for moving in the pre determined paths and a feedback controller for correction in path.
Max Maxfield 6/18/2012 9:48:06 AM User Rank Blogger
Re: Gyroscopes and fed back loop controllers
@My planet: I agree that the first one -- as implemented -- is pretty much just a regular radio-controller "thing" ... but what if you added two cameras (one behind each eye) and then worked on automatic control systems that allow you to tell it where you want it to go but the on-board systems are in charge of detecting and avoiding obstacles...
i keep telling my wife, Max is a very nice, special guy ...
So, I am not going to show her this particular blog, for her bias for fellines is so extreme that she will find Max weird for having similar plans for his cats.
No, I will keep her image of Max in high standards, like mine. Between you and I, I don't even think cats have soul, do you? hehehe
Hey, Max, if I keep this timeline of yours, I came BEFORE the saurus!
However, in my Master's thesis, December 1979, back then, I had already included robust servomechanism principles which since the 70's already generalized the ideas of the Worldwar II put into the PID controllers. Also in that thesis, I used quadratic functional optimization controller (solving the Riccatti equation) technique, under development during the previous 20 years! Not to speak that I wasn't a wiz in stochastic processes, or I would have also included the Kalman filter, to play with parameter estimation.
The only difference today with these cool things, is that they are all included in MathWorks and Mathematica.
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.