This instructable shows how to use the iRobot Create to make Bacterio-Bot, a robot that demonstrates the simple navigation behavior of taxis, i.e., following a sensory signal gradient to the signal source. This basic behavior is common even in simple organisms such as bacteria as well as other motile cells. Bacterio-Bot may not seem too sophisticated, but its behavior is the first step in evolving autonomous, complex navigation capabilities. Future work with Bacterio-Bot will include evolving programs using the Avida digital evolution software and translating them onto the robot. The evolution of these programs is ongoing, but the programs are not yet stable enough to use on the robot. The program given here is a hand-coded version of the behavior that I am trying to evolve, using instructions that are analogous to a subset of Avida instructions.

Bacterio-Bot uses a light sensor and implements the "tumble and run" biased random walk algorithm that is used by organisms such as E. coli. Although those types of organisms are most often following chemical gradients, Bacterio-Bot follows a light gradient instead. The robot samples the current light level; if the situation is improving -- if the light is stronger -- the robot will continue moving in the same direction; otherwise, the robot will turn to a new, random orientation and move in that direction. Only very modest "memory" is needed for the algorithm, since only one prior sensory reading needs to be stored for comparison with the current one.

Special thanks to Wesley R. Elsberry for help, especially with hardware and photography.

Step 1: Hardware

4th wheel for the back of the Create robot
Materials for light sensor:
(1) DB-9 subminiature male solder-cup connector (~$2.00 per unit in single quantity)
(1) Cadmium sulfide (CdS) photo-cell (~ $2.50 / pack of 5 sensors at Radio Shack)
(1) 5K ohm potentiometer (~$2.00 for assorted potentiometers at Radio Shack)
(1) small piece of perfboard sufficient to hold photo-cell and potentiometer (~$5.00 for larger piece)
(3) 12" pieces of hook-up wire (~$6.00 for 60' of 22 gauge hook-up wire at Radio Shack)

(1) soldering iron
Impressive, young Skywalker. I will be working on a mapping project as well and am looking for inspiration.
Euhm , What does it do ? Im sorry but i really don't understand it . <br/><pre>the simple navigation behavior of taxis, i.e., following a sensory signal gradient to the signal source</pre>Im sure if english was my native language , i would understand it,but in short , please tell me what it is ... Short.. Eaaassy<br/>
There isn't really anything more to it than the intro says. The current sense reading (in this case, light) is compared to the last one, If the current reading is "better (there's more light)," the robot keeps moving in the same direction it was already moving. If the reading is "worse (less light)," the robot turns to a new orientation and tries moving in that direction. Thanks also to Patrik for the link to the Wikipedia page. Hope this helps some!
Cool idea! But yeah, you probably should add a little more explanation of how &quot;tumble and run&quot; chemotaxis works.<br/><br/>Here's the wikipedia page, for those who want to read up on their own:<br/><br/><a rel="nofollow" href="http://en.wikipedia.org/wiki/Chemotaxis#Bacterial_chemotaxis">http://en.wikipedia.org/wiki/Chemotaxis#Bacterial_chemotaxis</a><br/><br/>If possible, a sped-up video showing the 'bot moving around would be awesome...<br/>

About This Instructable




More by Laura Grabowski:Contest entry: Bacterio-Bot 
Add instructable to: