Close

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...)

2 22 20
Enjoy this project?
Share on twitter   Share on Facebook

This project was created on 06/28/2014 and last updated 13 days ago.

Description
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.
Details

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
  • Surrender? Never!

    22 days 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!

  • Another Sunday, Another Update

    a month ago • 0 comments

    It's Sunday, which means it's time for another Emergence Project update. It should be noted that we will still be bringing you updates even if the Hackaday Prize judges deem us unworthy. We're in this for the long haul!

    Frankie's brain transplant is done. We haven't had the opportunity to really put it through it's paces yet, but it has had some immediate impact regardless...

    You can see how much less room the soldered perf board takes up as opposed to the plug-in breadboard. So much less, in fact, that we were able to move the battery pack we've been using for testing to the top of the 'bot, instead of having it slung underneath. While ground clearance wasn't a huge concern, it does give us some comfort knowing that anything that manages to sneak under the obstacle sensors is also low enough for the 'bots to drive over. It also illustrates that the robots' hardware will all fit within the current size and shape footprint, so we won't have to change either of those, either.

    So, things are looking good. Good enough that Greg decided to take a leap of faith and has begun to order parts for the full swarm. This will be done gradually over the next few weeks (and paychecks). The final number settled on is 15. This gives us the dozen we envisioned when starting the project, as well as parts to make another 3, or to be used as spare parts if (or when) we fry something.

  • System Diagram

    a month ago • 0 comments

    As per requirement, here is the system diagram for the Emergence 'bots. This does actually help explain how we expect our swarm to work. Each 'bot is an individual in and of itself, but letting them communicate with each other via infrared signals increases their adaptation and cooperation abilities exponentially. Will it lead to social behavior? We shall see...

View all 15 project logs

Discussions

Adam Fabio wrote 3 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 3 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]