Does this project spark your interest?

Become a member to follow this project and don't miss any updates

The Emergence Project

An experiment in group machine intellegence (Or lack thereof...)

Similar projects worth following

This project was created on 06/28/2014 and last updated 3 months ago.

The original impulse for this project was to make solar powered BEAM-style robots that would dart from light spot to light spot continually recharging themselves before moving on. As we were contemplating how to do this, we decided the use of a microcontroller was all but inevitable, and we wondered how we could utilize it's capabilities. At this point we began to run into the concept of emergence.

Emergence: In philosophy, systems theory, science, and art, emergence is conceived as a process whereby larger entities, patterns, and regularities arise through interactions among smaller or simpler entities that themselves do not exhibit such properties.

In other words, emergence happens when a group stops being just a collection of individuals, and starts to become a flock, or a hive, or a nest.

Our intention is to build a small swarm of robots and see if emergent behavior arises through their repeated cooperation and interaction with each other.

The idea is to build a number of small (palm sized), simple (using the BEAM 'less is more' philosophy), and relatively inexpensive ($50 is the target) robots, and give them the basic abilities to communicate with each other and adapt to their environment. The idea is to see what kind of complex social behavior we can coax out of a multiple of relatively simple machines, and hopefully be surprised by something we didn't explicitly program them to do.

The 'bots are eventually going to be solar powered. They will sit collecting energy until they have enough to run through a movement or communications cycle. When they decide to move (the target is to have them move for 15-20 seconds every 15-20 minutes) they will wander randomly for the first half the cycle to ensure that they spread and explore. During the second half, they will realize that they're 'hungry' and will use light detection to head for the brightest area they can see, bettering their chances of recharging quickly.

A few of the settings (ones for, say, motor speed or level of contrast it looks for when seeking light) will be left for them to decide for themselves. When they sit out a cycle and go into a communications phase, they'll use IR LEDs to broadcast their efficiency level, and what their settings currently are. All the other 'bots in the immediate area will compare their own efficiency to the one broadcast, and nudge their own settings closer to the broadcasting 'bot's, or ignore them if they're doing better. Eventually, this yes/no better/worse behavior should help each other find the best settings for whatever environment that they're placed in.

To ensure that the 'bots go through the full range of their settings, random mutations will be introduced into their settings. Mutations that prove beneficial will spread through the swarm. The ones that don't will disappear within a few hours or days depending on how often they interact with their hivemates. This presented us with the first behavioral question we ran into before we'd even begun: Can the 'bots even exist individually? We didn't explicitly set out to design this behavioral aspect in, but a single 'bot might not be able to. It will still generate random mutations in it's code, but without at least one companion to compare it's efficiency with, it might get itself so far out of whack that the amount of power from sunlight it gathers during the day won't be sufficient  for it to survive the night.

As for how the rest of the 'bots will spend the night, some members of the swarm may find themselves in a slightly better position than the rest. It may find it's way to a light that's been left on, or a bright spot beneath a window from a streetlight outside. If it manages to find one of these 'it's better than nothing' sources, it will remain in place and turn it's IR LED fully 'on'. This acts as a beacon for the rest of the members, who use the exact same light seeking script that they use to find sunlight during the day, except the brightest light it sees and steers towards is it's hivemate, and not the sun.

Once we get the 'bots built and programmed, we will wait and see how they act. Will they run about randomly during the day, or will they migrate from one side of the room to another following the sun's arc? Will they tend to roam alone, or will they travel in a pack? What happens when they reach a homeostasis with the environment we put them in? Will 'bots who have the same settings act exactly alike, or will individual traits arise? Will 'bots that live upstairs in the electronics area settle on the same settings as 'bots that live in the workshop, that gets no natural light at all? What happens if we introduce code that causes not just mutations in their settings, but also the code that they use to communicate with each other? We might wind up with two seperate subspecies that can't even communicate with each other. What happens if you mix them? Will one act as an invasive...

Read more »

Project logs
  • Getting Our Groove Back

    3 months ago • 0 comments

    We would like to apologize to all the True Believers for our near month long absence. Work and a number of personal issues had to take priority. If things weren't bad enough, Greg is also picking himself up after the untimely passing of his beloved Welsh Corgi, Aeron.

    However, time heals all, and enough has passed for us to think about diving back into the Emergence Project again. Even with everything else going on, we still managed to get some work done.

    The motors and wheels arrived a couple weeks ago. It almost felt like Christmas. For some reason gathering electronic parts didn't really feel like we were making progress. Getting the motors really brought things into focus. 'Man, that's a lot of motors... Holy Cow, this IS going to be a swarm! Cooool...' The motors and wheels were the last of the major components needed to really start on the final design, aside from the batteries.

    We have done a touch of testing in this area too. We got a couple of our candidate batteries wired to a breadboard, along with one of the solar cells, and a blocking diode for the absolutely simplest solar circuit ever made. We let them go for a time, and it does seem the solar cell puts out enough power to get past the internal resistance of the batteries and charge them. We don't know yet if they will fully charge them, because staring at a solar cell while it silently charges batteries is very, very, very boring. Hopefully in the next few days we can test the batteries a bit more and see if it's enough power to move our future robot army.

  • Driving Forward (Now With Motors!)

    4 months ago • 0 comments

    Just a quick note to all the True Believers out there! Our job(s) have taken priority over the past few weeks, but we haven't been idle. We have the Arduino controllers in hand now, and American Science and Surplus had a special on used microswitches. They were pulled from equipment, but we built a quick breadboard circuit to test them. We were very pleased that we only found two dead ones in the bunch. It was also rather amusing to watch the reactions of the AS&S employees when we presented our request.

    "Now, you DO realize that you have to purchase 5 in order to get the special price, right?"

    "I don't think that will be a problem."

    "OK, so how many do you want?"

    "A hundred. Got any more in the back?"


    The special saved us another couple bucks per 'bot as well, so we're still on budget. It doesn't really matter in the grand scheme of things, but we've always envisioned the Emergence Bots' design morphing into a low cost educational kit that any school can afford, so the price will definitely matter then.

    The last of the solar cells have arrived, and we have a good candidate for our backup batteries. The focus for this weekend will be testing the battery candidate, while simultaniously trying out the power control code. The plan is to take the batteries, solar cell, Arduino, and a motor and wire them together in a simplified version of the bot's power system. The Arduino will monitor it's own power level, turn the motor on when the power is at it's peak, then shut itself down again when the voltage drops. Then the solar cell can set about recharging it. If we can get this simplified version to work, we see no great technical hurdles in this area.

    Finally, the motors and wheels have finally been ordered from Solarbotics! It took longer than we wanted, but we're not working with grant money here. Sometimes us members of the working class have to wait for a decent paycheck to afford this kind of thing. Hopefully when we get all of the parts in we can start playing a little Tetris and figure out what's going where, and start on the actual construction of the swarm. We're comin' along!

  • Surrender? Never!

    5 months ago • 0 comments

    It's been a couple of weeks since our last update. Some may have thought the Emergence Project would fade away into the night after we didn't make the cut for the Hackaday Prize. HA! This was in the planning stages in one way or another for years, and we're gonna see it through. Let me assure all True Believers that our coverage gap was caused by the Labor Day holiday, and an unexpected burst of activity at the annoying (but still essential) day job.

    We're still working with Johnny on the light seeking behavior, but it's a slow slog. We've basically been working with him using the Scientific Method. We change X in his programming, then go into the back stairwell that has no windows, turn the lights out, and wave a flashlight in front of his nose to see how he reacts. Then we go back into the code, restore X, and change Y. We're slowly learning what parts of the code are responsible for which behavioral aspects.

    Frankie, on the other hand, is as disobedient as ever. We put together a semi-permanent circuit board for him, which worked fine the night we installed it. When we turned him on the next day, however, he refused to move, and when we picked him up to see what was wrong his voltage regulator was almost hot enough to light a cigarette off of. We instantly disconnected the power, but it's painfully obvious that we have a short somewhere in the maze of solder joints.

    However, we still have faith in the design and don't plan to change it. Johnny and Frankie have had enough successful run time to demonstrate that they do work as envisioned, with the inconsistancies explained by use of plug in breadboards and a string of software bugs.

    So, while we fuss with our original two, the Great Parts Gathering for the final swarm has begun. The processors are on the way, and we have our casters and motor driver boards, as well as 13 of the 15 solar cells. We found the cells at a Tiger Direct brick and mortar location, and cleaned them out. The last two are on the way.

    We have made some subtle changes, though. We went with a different motor driver, which is identical in all but name, but from a different manufacturer at a few dollars less a copy. We've also changed our main processor from the Ardweeny to the Arduino Mini Pro. It's a shade cheaper, and has the benefit of a couple extra I/O locations. With the extra versatility, we can include a small LCD display to read the bots' settings at a glance, instead of having to plug in and suck it out of their brains. The extra cost is being mitigated by the dollars we're shaving off here and there with the other components. Our original budget for each 'bot was $50, and our present projection is putting the actual cost at around $56. Not too bad, considering that every other robot we've ever built has usually come out double what was projected!

View all 17 project logs


Adam Fabio wrote 7 months ago null point
Great project Greg! I miss those old BEAM bots. Thanks for entering your robot in The Hackaday Prize. Keep the updates coming! can't wait to see when you have the solar system working!

Are you sure? [yes] / [no]

Greg Daneau wrote 7 months ago null point
Thanks for your vote of confidence Adam! I believe I may have bitten off a bit more than I can chew, but I've already taken the leap. I'll be sure to keep the updates coming, I'm sure there will be plenty of entertaining misadventures to come!

Are you sure? [yes] / [no]

Similar projects