Making Dumb Robots Evolve

Evolution is a fact of life, except in Kansas. It is the defining characteristic of life itself, but that doesn’t mean a stupid robot can’t evolve. For his entry into the Hackaday Pi Zero contest, [diemastermonkey] is doing just that: evolution for robots built around microcontrollers and a Raspberry Pi.

[diemastermonkey]’s project is a physical extension to genetic algorithms. Just like DNA and proteins have no idea what they’re actually doing, microcontrollers don’t either. Instead of randomly switching up base pairs and amino acids, [diemastermonkey]’s project makes random connections pins depending on the values of those pins.

The potential of these crappy, randomly programmed robots is only as good as the fitness function, and so far [diemastermonkey] has seen some surprising success. When putting these algorithms into a microcontroller connected to a tilting table mechanism and a PIR sensor, the robot eventually settled on a bit of code that would keep a ball in motion. You can check out the video of that below.


The Raspberry Pi Zero contest is presented by Hackaday and Adafruit. Prizes include Raspberry Pi Zeros from Adafruit and gift cards to The Hackaday Store!
See All the Entries

32 thoughts on “Making Dumb Robots Evolve

          1. Ahhhh… That makes sense now. Since I don’t live in America or keep up to date with exactly which states are doing what, it initially came across as some sort of weird “people in Kansas aren’t evolving” type dig to me too.

      1. Which is what it was intended to be. The world has no laws that state your right not to be offended and the sooner people stop trying to make it so the better the world will be.

        Personally a lot of people assume I wear a flat cap and clogs, breed moths in my wallet and have arms that are too short to reach the cash in my pocket. All this because of where I was born and currently live, I have no problem at all with people thinking or stating that.

    1. Agreed, lazy and unnecessary. There’s a reason ‘jokes’ featuring characteristics of stereotypes aren’t popular since the 1970’s. Try replacing Kansas with blacks, Irish, gays or jews. Still think it’s funny? Really grates on this site.

  1. Hmmh, indeed ideally we focus on topic although seems a bit crass to try to grab attention by referencing a specific place it might just be hubris slip of satirical style re free speech and shouldn’t take away from the project and accomplishment.
    If it was just (definitely) un-identified people’s who arbitrarily believe anything un-testable without evidence or worst are only emotionally attached to an indoctrinated belief when there is evidence to the contrary then can they ever be insulted in any case as they likely wouldn’t understand, shouldn’t we feel sorry instead and exercise care and seek to educate but, then we have the psychological difficulty of overcoming preset patterns exemplified by “Its easier to fool people than have them understand how easily they were fooled”, or words to that effect – no pointing out any belief or peoples or systems, Trump not involved ;-)

    Interesting thing about genetic algorithms and illustrated well years ago re a filter which exceeded specs (as if designed) produced by such process goes to prove overwhelmingly that complexity can and does arise “naturally” ie Its intrinsically part of the process related to permutation space provided you have energy (code) & plenty time to spare. Maybe to consider the issue of what set up that environment in the first place is best left for another forum but, in that context one might ask whatever it is – it is fully betrayed by its communication methodology re; interest, depth, details, care and also should be free of mere claim however sophisticated re awe it might appear.

    Note: This being a technical site, evidence is king, no arbitrary claims, no allusions to appeal to authority and in my comment (to be safe) no reference to any particular beliefs, peoples or places. Important are the demonstrable facts, repeat-ability a helpful ideal…

  2. I find the whole concept of genetic design fascinating. As a noob with a sciency background, does anyone know what path to take to become an expert on the subject? This kind of thing seems to be the type of thing I’d lose myself into, and I was wondering if there is a better or worse way of attacking the subject. Does anyone here with experience have recommendations?

    1. The usual procedure is to take on a project that interests you in the subject area. Along the way, read every bit of research even obliquely related to the topic. Do this to the exclusion of [almost] all else and you will be a world expert in about 4-5 years. This is basically the process of a PhD program, so it might be easier to arrange if you can get funded as a graduate student for the interim.

      1. Gladly I have a huge amount of time on my hands, and am considering just that. Seeing the knowledge from the outside, it appears as one daunting amorphous mass. I was wondering if there were any exceptionally good inroads or primers into the topic that others could recommend? This is a road rarely travelled by the masses, and I’m hoping someone here has travelled it and has any suggestions.

  3. Wise Z00111111 correctly put theories in quotes and as we are talking technical topics in Hackaday ie soundly based upon increasingly solid Physics foundation as part of the Scientific discipline.

    Although I hope, many might not know the word Theory in Science especially means a demonstrable connection between an (initial) hypothesis and large body of (combinatorial) evidence & which connects (elegantly) the math which is consistent re units and which asymptotically approaches some undefined factual nature of phenomena some might like to view as determinism, although as the nature of QM substantively shows is ultimately probabilistic.

    Eg. Newton’s gravity re math is accurate re most planetary orbits but, for Mercury slight variance. Einstein built upon Newton (& Gauss) offering formula based on alternate paradigm which gives comparable (coarse) results as Newton’s but adds a refinement. In both cases they aren’t (absolute) facts as Science is not so crass/egotistical. It is implicitly accepted there’s potential for further refinement at any number of levels so Scientists (with integrity with careful use of language) continue to describe the “Theory of Gravity”, only in the case of observation ‘..the apple fell’ it was a fact in respect of a report

    Same cannot be said for any so called intelligent design hypothesis as evidence shows provenance is sporadic & not at all “intelligent” by any means & in any case is predicated upon a completely un-testable & unknowable external agent which is the subject of mere claim that fails to communicate at all effectively in any culture ;-)

  4. It’s interesting how one line in a heading or first paragraph renders the rest of the article largely “irrelevant”

    I don’t live in Kansas or the US at all for that matter so so what perplexed about the statement.

    But thanks to the commentators I am now enlightened.

    But I would like to point out that the record of ancient history is somewhat hazy and is based on a LOT of assumptions, so with out a valid way to test the hypothesis of the origin of man to declare one bumpkin over the other with out a repeatable test it is not good scientific method to disregard the possibilities.

    1. Saabman said “..history is somewhat hazy and is based on a LOT of assumptions..” problem 1
      & added “..not good scientific method to disregard the possibilities.” problem/assumption 2

      1. We can only go on old stories never verified & consider several basic contradictions, most glaring of all often sadly missed is the extremely sloppy incompetent communications of the deity claimed in earlier times that can’t cross oceans.
      2. Incorrect. Science at its core has the underlying facet of “balance of probabilities”, evidence favours evolution by far and likely far more complex than currently considered & not at all any sort of egotistical uncommunicative ‘designer’ just because we are currently feeble in appreciation vast permutations re natural common amino acids, granted its not an easy equation and a huge dynamic but, with regions filling and for many combinatorial reasons beyond the scope of this thread.

      If you are addressing ancient times when books were new and many uneducated, amenable to superstition, you have to ask which is most likely; A. Deity that cannot communicate vs humans crafting a means to gain; Status, Authority & Power over the emotionally feeble & intellectual meek at a time when; drugs are ‘legal’, nil education of psychology or cause & effect ie Any physics. As time & Physics progress *All* claimed deities further perish into obscurity, if any exist have a Lot to answer for :-(

      I like the idea of genetic algorithms in general and have had a long interest and some minimal exposure, it does take a certain mindset and there are not many cheap tools to explore, an understanding of data structures re probabilistic patterns eg such as prolog’s brute force technique is illustrative and nowadays we are far being that re computing resources. To put some GA’s into a micro is an interesting approach and I commend the author for working on it and bringing it to our attention :-)

  5. Knowing almost nothing about genetic algorithm implementation, it looks like this is tossing machine-level instructions at an ATTiny, rinse and repeat until something specific happens. Fascinating. Unfortunately the “how to” is missing…

    “But what the heck is in that “random” data? And how does it become instructions for a robot? All that and more in the next post.”

    Party pooper.

    Could we get people to stop bickering about dimwitted politicians/school boards/internet trolls and have a little insight here?

  6. It took me a bit to understand what he was doing as he tends to ramble on. But from what I see he is, at best doing a little GA, with a large amount of random search. He uses a seed number and RNG to produce the ‘program’ of how his organism behaves, but he changes the seed each generation, in effect he is completely wiping out any behavioral features that he is trying to cultivate. The GA that he is doing, tunes the interpretation of the random string ‘program’ to the last iterations best run. But since the ‘program’ is a new unrelated random string in the next generation, the tuning is meaningless.

    In the end he gets some set of interpretations of the ‘program’ that is somewhat going to work, but for any random set of behaviors thrown at it. It look more like auto-tuning a PID loop than generating behaviors genetically.

    Maybe I misunderstand of GA programs work, anyone care to correct me?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.