Skip to content

Thinking Evolution

Evolution is a complicated and demanding Mistress. Mostly misunderstood and largely unknown. She spawns misinformation, debates, arguments and even a religion (Pastafarianism). Given the shroud of mystery surrounding evolution, it only makes sense to, well, make sense of evolution prior to any attempt at evolving robotics.

One could spend a lifetime studying all the nuances that go into making up evolution and barely scratch the surface; from biology to genetics to molecular chemistry to astrophysics, and everything in-between. Not wishing to use up the years I have left in this lifetime without ever building another robot, I believe a quick overview and some ground "rules" (understandings) will suffice quite nicely. Of course, like the robot, my understanding of what should come next will also evolve along this process.

Given the subject of evolution as it relates to robotics, a *MUST* read for anyone and everyone is Crabs Take Over the Island by Anatoly Dnieprov published as part of Russian Science Fiction 1969. The premise used in the story is one that would be the best method of evolving a robot, i.e. Natural Selection. For our purposes, natural selection is a process that takes a bit too long to work out. Instead, we will ignore science for this part of the evolutionary process and opt for a more spiritual view by using Intelligent Design. For those less willing to read the above linked wiki articles, I'll be nice enough to provide a brief overview of what I mean.

Natural Selection is the fundamental basis of evolution where members of a species with "good" (desirable) genetic traits are more inclined to survive and produce offspring, versus those that contain "defective" (less desirable) traits. Natural Selection is combined with genetic mutation (the theory that there is no such thing as a perfect copy) to produce evolution. In order for genetic mutation to occur, generations of duplicates must be produced before a visible mutation is generally present (although not always). The Natural Selection part either kills off the duplicates that lack the good mutations or they don't get the chance to breed (Blue-Footed Booby is a good example of how that works).

Intelligent Design is a spiritual idea that, from a scientific perspective, revolves around the belief that there is no way in hell that all this happened by chance. The odds are just too astronomical, and therefore a divine helping hand must have shaped the creatures of this Earth. Of course it is still a spiritual thing and not really science (hence why I am a Pastafarian), but for the purposes of evolving robotics it will work nicely.

Ideally, a combination of the two theories (I use the word as both a scientific term and a more literal term) would work best, whereby several "models" for each stage of the robotics evolution could be created with testing to see which worked best. Lacking that level of time and funding, I will work under the assumption that the model I create is the best of that generation possible (it really won't be, but this is my blog and I can assume anything I want, so there). That will be our first rule: I am the robotic creator and I know best.

Our second rule involves the learning process, or rather the doing process. Why creatures do the things they do. My thought on this, and yours may differ but it is likely wrong, is there are three things that make a creature (humans included) do anything. The first of these is genetic hard coding. The simplest of organisms up to the most complex (i.e. US) have genetic hard coding built in. Breathing is a good example for the human side and the way a spider makes its web is one for the animal side. This principle is the most basic and easiest to duplicate in robotics, it just involves hardwiring in responses.

The second level that makes a creature do something is to teach it. Not all creatures are capable of this feat, but most are, even a goldfish (as proved by Mythbusters). This is everything from Pavlov's Dog to momma bird showing baby bird how to fly. For robotics, this equates to response algorithms programmed into the robot all the way up to the latest in robotic learning of teaching a robot human movement (among other things) by duplication. The algorithms range from the simple to the complex; and it is where robotics is currently stalled out at the moment.

The third, and final, level for creatures doing something is self teaching. The "because I can" principle. This is learning responses where an animal figures out not only the best way of doing something, but the why it should do something in the first place. It is this last part that is the distinction from the second level, the creature learning that it first needs to do something in response to its own conditions or the environment, and then learning what that thing is it needs to do. Surprisingly, many animals are capable of this, but not all. Watch dragonflies around a mirrored building and you will see that they don't quite learn not to fly into the windows, no matter how many times they do it.

The final rule for my grand adventure is progression, and to recognize its necessity. Just because something can be done at a higher level, does not mean it should. As an example, going back to breathing, just because we can control our breathing does not mean we should strip away the hardwired coding. Sleep would be rather disastrous. Likewise, everything that can begin as a hardcoded function should begin at that level. Start simple, and keep simple available.

These are my rules, or understandings, that will be used for guiding me towards evolving a robot through the generations. Every step I take will be broken down to the simplest forms possible, and every solution I come up with will be the best I can present. They might not be the best possible, but sometimes it is not the best that survive evolution. In the end I hope to stir up my own mind into new ways of thinking about robotics, and hopefully not go broke in the process.

Advancing Robotics - Evolution

At some point and time, everyone is guilty of trying to start off a little further along than they should. It might be in learning a new skill, undertaking a new task or even developing a relationship, but we all have the propensity to skip ahead to "the good stuff." Sometimes it works out, as a matter of fact, sometimes is works only because we skipped ahead; but often it will bite us in the ass instead.

The real world is full of examples that show how skipping ahead has proven not only beneficial, but brought about results no one thought possible. Mostly, this has to do with people not knowing something could not be done. Science was always good for this, with theory stating something could not be accomplished, only to have someone who never learned that theory prove it wrong. Far more often, though, skipping ahead has the tendency to produce failure.

Cognitive roboticists and AI developers have been guilty of jumping ahead more than most other "rational" scientific groups. And we do it at the professional, academic, and hobby levels; only, unlike many other disciplines, failure is not recognized. Instead it is seen as a step forward. Well, yes, Yoda and Sesame Street have taught us all that failure does not really exist as long as we learn from it. Unfortunately, when you set out to accomplish a task, and you do not meet the results desired at the end of the task, it is a failure. It is not necessarily a bad thing, some failures produce something totally unexpected and, yet, miraculous. But it is still failure.

In the world of Artificially Intelligent Robots, we have been failing miserably since before the first transistor was invented. And this failure is entirely because we all have decided to skip ahead. Jumping straight into writing creative algorithms in an attempt to unlock the secrets of artificial life. Ok, not all of us, but in the research I have read coming from those who started at the beginning, they have decided to stay at the beginning. Or at least have failed to progress.

The problem is that this is still a very new science; and as with all sciences we build on the foundations laid before us. It is only that cognitive robotics and artificial intelligence have no real foundations. Just teetering stilts that a few people have thrown out to the masses such as Turing Tests or Neural Networks or whatever the latest AI buzzwords are. I've read the algorithms. I've studied the theories. I've followed the research. I'm calling it all a failure. Sounds a little harsh, but it is an honest assessment. There are no artificially intelligent machines out there. There are some that mimic intelligence. There are some that even learn to a degree, or appear to learn at least. But as for a cognitive machine... None.

And now comes the part where I tell you why. Cognitive robotics and artificial intelligence has a foundation, and it starts at the beginning. Evolutionary science. We have skipped ahead past single cell organisms and plant life to walking, talking, seeing machines; but we haven't grasped the basics yet. We need to start over, only this time, we need to start at the "real" beginning and evolve from there. Of course we don't have 14 billion years to evolve the field of robotics, so there are some steps that will be skipped, such as the slow hereditary mutation process, and instead we steal from religion and go with Intelligent Creation.

I have been extremely guilty of skipping ahead in my work within the field. As an example, I wrote my first AI program in 1992. It was a learning algorithm, and it did learn. A little too well in some areas, but not well enough in others. It overwrote the computer operating system eventually and died. It was a failure, and I have been failing right alongside everyone else working in the field, professional or hobbyist ever since; because I have been jumping right into the cognitive part.

Now I am going to take a step back. Well, 14 billion years worth of steps back. Or 6000 years if you are a "devout believer". This will be the path from the very beginnings, up to the point I meet the robotics goal set out as part of the You Design It project, a hovering robot that learns to fly all on its own. This is my task now, and I am starting at the beginning this time around.

Why I Hate The R/C Industry

Working in hobby level robotics you have limited choices when it comes to parts and supplies specific to the field. Of those parts and supplies available, many are over priced just for being carried by a robotics retailer. As a result, a lot of parts used in robotics come from the Radio Controlled industry. Point-of-fact, many of the manufacturers for robotic parts are long-time companies in the R/C industry; such as Hitec and Futaba.

The R/C industry has been around a heck of a lot longer than the robotics hobby industry, thus offering a much wider range of products and more mature technologies. This is a very good thing for robotic hobbyists, as it not only provides a larger source of miscellaneous parts, but prices tend to be lower as a result of the maturity of the technology and higher level of competition within the field.

The problem I have with the R/C industry is that despite its maturity, standardization is critically lacking. To get an idea of what I mean, we'll use a servo (motor) as an example. Servos come in all sorts of shapes and sizes, ranging from micro-servos to extra large servos; from nylon to metal to karbonite gears; and come in a variety of torque and speed ratings. These are all necessary differences that make one servo better for a given application than another. After all, you wouldn't want to put a lawn mower engine in a Ferrari; different motors for different things. Where things become a problem is that there are at least three (3) different connectors used for standard servos.

Three. And those are the styles I have used, I am sure there are more. No big deal, except when you consider what is needed in the connector to make the servo operate. Every standard servo uses three lines: power, signal and ground. Every connector out there for servos has these three, and only these three lines; but use different connector heads and sometimes different pin orders based purely on the manufacturer. One manufacturer might use the "Hitec" connector with pin order of power, signal, ground; the next a "Futaba" connector with pin order of power, ground, signal. Take a guess what happens if you connect up the servo to your robot wrong... To top it off, documentation really is lacking on the electronic aspects of these pin outs, so often you just have to hope their wire color coding makes sense (did I mention that they all use different wire coloring schemes?).

Far worse than the servo arena, is the power connector arena. In connecting a battery to an electronic speed controller there are a plethora of connector styles in use; again, based purely on the manufacturers whim. Deans connectors (or T-Plugs), bullet connectors (ranging across a dozen different sizes and styles), mini-deans connectors (also called Deans Micro), Traxxas connectors, Airtonics/Hitec/Futaba/JR plugs, and Kyosho connectors (also called Tamiya, Standard and Molex) to name a few. Yes, there are more. It is actually so bad in the R/C aircraft segment that about 50% of ESCs purchased will not have a single connector attached, just bare wire.

Now (because I work in the Information Technology arena), imagine how far behind computers would be if manufacturers were not able to agree (thanks to RFCs and organizations like IEEE) on standard connection types. Think it is difficult to get everything connected on your computer now? What if that mouse you purchased only plugged into one out of every ten computers correctly, and there was no way of knowing if yours was one of them until after you purchased it.

Early on, some computer manufacturers actually tried to buck the system and have their own proprietary connections and parts. They are now out of business, or call themselves "Apple" (before I tick off Mac zealots: yes, Apple has adopted many standards). Yet, the R/C industry happily chugs along without a care in the world, or a standard in sight. It is actually the #2 reason I originally left the R/C hobby, the #1 being price (which is a direct result of lack of standards).

What does all this have to do with the price of tea in China? As a follower of chaos theory I can probably answer that question directly, but instead I will say just this: I am thankful the R/C industry exists for the reasons mentioned in the first two paragraphs above. I also hate the R/C industry with a passion because I consistently have projects on hold while I wait for replacement connectors to arrive. Currently, that number, like the number of wires in a servo connector, is three. Three robotic projects that are on hold, waiting for different connectors. And that, my friends, is what is known as "a pain in the ass".

Fight for Flight

Voting is up for the method of flight our robot will be using and will remain open until Friday evening. For the record, Animalistic should technically be termed Ornithopter. Compared to the other methods listed, ornithopter is a word far less common in a person's vocabulary and I did not want to accidentally skew the voting because people did not know what a choice was off the top of their head. Thus, I went with Animalistic, it seems suiting enough.

In other related news, my brain is abuzz with ideas for each of the methods of flight. Despite my desire to work on other things over the weekend (studying for my college exams), some part of my brain keeps interjecting ideas into the forefront. Not one to let my conscious brain be overruled by another section, I pushed the thoughts to the back of my mind and returned to studying. For all of thirty seconds. And then I began searching the Internet for information, parts and supplies that I would need to accomplish whichever method of flight wins the voting.

Despite my need to finish my Operations Management course, it seems I will be studying aerodynamics this week. Damn brain. Anyway, happy voting.

You Design It - Flight

It would seem that we will be building us a flying robot. Of course there are several forms that flight could take in this context, so we will have to jump right back into another poll to figure out where we will go from here. Seeing as I have not managed to complete an antigravity device as of the time of this entry, I can think of five possible flight systems that our robot could use. One of these systems I will not be including in the upcoming poll, however, but I will explain more on that below.

Fixed Wing - your a-typical airplane style of flight. Forward propulsion is provided through propeller or jet engine structure, with lift coming from wing design (airflow over/under the wings pulls the object into the air; the forward momentum provides this airflow). This is the method of flight that I will not undertake, as high speeds are generally required to provide the robot a means of getting off the ground, which would require sensory devices that are out of the price range for any hobbyist (remember, the finished design should be relatively easy for a hobbyist to duplicate). This style of flight also has limited applications that fall into surveillance and weapon delivery, neither of which really pertain to a hobby level robot (there are better ways to annoy cats).

Rotor - think "helicopter" and you have the basic concept of rotor produced flight. Fast spinning blades provide downward airflow and thus lift for the vehicle. Steering can be accomplished a variety of differing ways from tilting the primary rotor, to using additional rotors, to modified flaps. A robot utilizing rotor-produced flight has the potential for a good development platform.

Hover - floating on a cushion of air would be the best description for this method of flight. While in the strictest sense, hovering might not qualify as a method of flight, for our purposes it will do as the physical robot is not in contact with the ground below. A hovering robot could make an excellent development platform.

Hot Air - No, not your boss. Using lighter than air gases or heated air (heat rises) in a "balloon" provide the lift, while directionality is produced through propeller and flap combinations. Great for taking sensor readings as a result of the general slow movement, but limited task capabilities.

Animalistic - a.k.a. Icarus flapping his wings. Wing design combined with the upward and downward folding (most creatures' wings fold on the down stroke) motion provides both lift and directionality for this style of robot. Weight becomes very critical in this undertaking, thus limiting the robot to specific tasks as opposed to a development platform, but it would be interesting.

Those are the choices that come to mind for methods of robotic flight. If there is a method not listed that you think should be there, please post a comment. Otherwise, voting will open up Monday, March 10, 2008. Have an uplifting weekend.

You Design It - Locomotion

When it comes to designing a robot you can just jump right in and start building or you can figure out what it is you want to accomplish with said robot and design from there. The second method is generally preferable, although building for the sake of building sometimes can lead to new discoveries. For the You Design It project we pretty much have to go the route of figuring out what it is we want to accomplish first.

Rather than presenting a million different possibilities on what our completed robot will do, we will start with the method of locomotion, which should help us narrow down our possible purposes. For the sake of simplicity, I am presenting only the basic forms of locomotion that I can think of; some of these will require further decision making to determine the actual method used, sort of subclasses.

Stationary - a robot that does not change location on its own. A few examples would be robotic arms, tracking turrets and outdoor plant watering robots.
Wheeled/Roller - motor/servo driven wheels provide movement for this style of robot. This is the second most common method of robotic locomotion (stationary being the first).
Walker - the third most common form of robot movement involves a given number of legs rising and falling, or gyrating to push forward on wheels like a roller skater would. This would include bipeds as well.
Flyer - a robot capable of some form of flight or another, including hover-style motion. Limited hobby applications and more complex 3-Dimensional environment, but pretty cool stuff.
Swimmer - above and/or below water surface robotic motion that would present a variety of differing options on method of swimming. Like flying, this form of locomotion has limited hobby applications and a more complex 3-Dimensional environment.
Slitherer - snake like ground movement, which also presents the possibility of enhanced climbing capabilities within a larger 3-Dimensional environment.

Voting for the above topics will be enabled sometime on Monday, March 3, 2008. If you can think of a method of locomotion not listed above, please post a comment to let me know what I missed so I can include it. Keep in mind that teleportation is not a theoretical possibility at this moment. Bending space and time for warp propulsion is out of the realm of any hobbyist, instead think of something you would like to learn more on. Remember, the end result is to be a tutorial that other hobbyists can learn from and duplicate, not an experiment in complexity (although I do like making complex things simple). Happy voting.

You Design It

I have two little interrelated quirks when it comes to projects, the first being that I need to be challenged, the second that I work best when taking on multiple projects simultaneously. The less challenged I am, the more projects I attempt to undertake (it keeps the voices in my head busy). This is no different when it comes to robotics, which has had the side effect of keeping me from building new robots. I have even managed to come up with several very challenging robotic ideas, but lack a real incentive to undertake the task.

This is one of the reasons that for the last few years I have been inventing and theorizing rather than building. It has definite bonuses in keeping my mind busy and presenting ongoing projects, but until each new invention comes to fruition or each theory produces something I am in need of, I will be slow in designing and building new robots. And I miss that.

To fix this I came up with a novel idea and presented it to the forum members over at the Society of Robots, you can view the post here. Basically the idea is to use this blog to continue to motivate me to build a specific robot; self motivation is after all one of the founding reasons for this blog. The idea is for you, my four readers, to create the overall design of the robot I am to build. It works like this:

Step 1. I present a design topic on said robot, listing the available options as I see them. An example being method of vision choices: (a) Black and White (b) Color
Step 2. For three days I will accept additional suggestions (via comments) related to the specific design topic, for instance if the topic is method of vision as listed above, you might suggest I include Infrared or Ultraviolet as choices.
Step 3. The design topic is presented as a poll or survey with the options I have come up with or you have suggested (within reason, asking for x-ray vision would be out of my price range EVER and thus not included as an option choice). The poll will stay open for a week or so to allow everyone to vote on the chosen design principle.
Step 4. Where applicable I will post an entry on the design choice decided upon including my theories on the topic, maybe some history, possible implementation methods, etc.
Step 5. If further options are available on a given design technology we will return back to Step 1, otherwise I will get to work building the given robot part and document it along the way. Once I have completed the piece, I will create an entry detailing what I did and how I did it, so you can follow along.
Step 6. We move on to the next part by going back to Step 1.

When all is said and done, we should have a working robot that you helped design, and more importantly, helped motivate me to build. The completed project will then get wrapped up and edited into a nice tutorial that I will post someplace here, as well as submitting it back over to the Society of Robots website. Obviously, there will be some design decisions along the way that I will just make, but for the most part it will all be up to my loyal readers, you, to design it.

Advancing Robotics - Connecting the Dots

I am going to skip ahead of myself, past the few basic robotics entries I have wanted to make and jump to a topic that has been stirring in my mind for quite some time now. Not so ironically that topic is the mind, or at least the mind of a robot. Mostly what I wish to cover is theory; none of it is fact, very little is actually opinion, just theory. While I will be covering robotic AI of sorts, the reason the topic is theory is because the current human understanding of the brain, any level of brain, is still just theory.

I remember reading someplace that the most advanced microprocessors of the modern world are not even equivalent to the brain of a spider. I have watched television documentaries on robotics and seen how the collective "we" envision the future, but fall flat on our faces with its creation in the here and now. And then I have read articles by neurologists and on neurologists, and watched the documentaries on television, and have seen the news; and I understand why we believe the future of robotics is still the future, and why our processors are so weak compared to that of a spider. We do not understand.

Or rather, we understand large amounts of focused information, but can not see past that focus. There was a television show (I believe it was Beyond Tomorrow, but they are all a blur at this point) that covered studying the human brain and charting how the brain controls motor function. Scientists were using this with neuro-implants to allow patients (and a chimp) to control electronic devices. One of the studies showed the "brain waves" for a person rotating their arm (like a bird flapping motion), the odd thing was that the brain wave was only present during the initial upward part of each rotation, it went flat until the next time around. To the scientists studying this, that was the full signal for total muscle control over that movement. Pretty neat stuff.

Except a week prior I had watched a documentary on a scientist studying lampreys, or rather their spinal cord. Seems that a lamprey that is cut into two will have each section continue the swimming motion separately, as if the brain was telling the "tail half" to continue to swim and how to do that. What the scientist had figured out was that the spinal cord acts much like a "mini brain", controlling muscle movements independent of, and yet dependent on, the lamprey's brain. The spinal cord for a lamprey is "muscle memory". Same as in a human, and every other creature out there with a central nervous system.

Connecting the dots, which is something I always have been good at (even if I never could color in the lines); the brain waves the neurologists saw with rotating the arm really were not controlling the muscles. Instead it was a signal, a code of sorts that traveled to other parts of the brain and the spinal cord saying "rotate the right arm clockwise". The spinal cord then took over and told each muscle what to do with separate signals, sending a return signal back to the conscious brain saying "ok, done". While that was going on, and mind you it really is only a fraction of a second to rotate your arm, your conscious brain was free to do other things.

Did the light bulb go on there? Take that out to the next level. How does a creature see? What is vision? The eye is a sensor; it turns light into some sort of signal. Your brain does not process it all; or rather the conscious part of your brain can not be bothered with it. It only sees a tiny fraction of all the data. There is a part of your brain that takes optic information from your eye and does all sorts of data manipulation with it, pulling and pushing data all over the brain between memories, to subconscious eye movements, to focusing the lenses; all before any data is sent to the conscious mind to be processed. It even goes so far as to determine what, if anything, is important in the images it is collecting that the conscious brain should be aware of. It might even cause an override of muscle control without giving the conscious brain the chance to say "wait". This is why we duck when something is thrown at our head.

Audio, tactile, scent; the list goes on for sensor inputs with each having its own independent processing unit inside each brain. Muscle control, involuntary responses, muscle memory, autonomic functions (heart beating, breathing), gland control, temperature regulation, and on, and on, and on. The brain is not just medulla, cerebellum and cerebrum anymore, it never was just that. There are more individual parts to a spider's brain than sentences in this entry, and each one is autonomous, each acts on its own, but all act in concert with one another.

There might not be a single processor as powerful as the brain of a spider, but there is not a single portion of a spider's brain that is as powerful as a processor from ten years past. That is my theory. If we all start connecting the dots a little more, instead of just making larger dots, that theory will soon become robotic AI fact.