Author Options:

Idea for robot project Answered

I'd like to put in for a scholarship robot. I'm on a postdoc currently, working with the Avida artificial life software. I am working on experiments that will utilize moving Avidians.

My idea for an iRobot Create contest entry is to use the robot to instantiate the program used by an Avidian evolved to perform a task based on finding "food" and avoiding "poison". The Avidian genome is a sequence of instructions in a virtual machine language, so on the software side the project involves translating between the Avidian code instructions and the instructions needed to have to the Create robot do the analogous action or computation. On the hardware side, I will need to find an analogous set of sensors to permit the Create robot to perform the same sort of evaluation of its laboratory environment as the Avidian makes of its virtual environment. As an example, an Avidian may detect the presence of an adjacent resource, and utilize input to get information about it. An infrared or visible light sensor might be deployed in an analogous way, where a resource object may give a different reading from empty floor, and some attribute of that reading may distinguish what will be treated as "food" from what will be treated as "poison".

One thing to note is that I don't have any immediate plan to implement anything like a neural net system for the Create robot; this would be a straightforward translation of Avidian code to make a program to run the Create robot. Part of what this can demonstrate is the emergence of aspects of behavior that can be considered intelligent, and the ability to instantiate such evolved programs in a physical system like the Create robot.

Avidian runs take part of a day to a few days to complete. The Avida instruction set is fairly compact, and is made to be able to permit universal computation. I don't think anything too complex is needed in the way of sensory systems to provide enough data for telling apart two classes of objects. I believe that my idea is feasible to complete by the contest deadline.



11 years ago

This is an interesting Idea. Because the Microcontroller aboard the Command module is not powerful enough to manage running Avida (I assume), I wonder if you've considered something more powerful. Obviously you're going for a scholarship robot, but A company called Gumstix produces a very small linux computer which fits comfortably in the Create. I wonder if you could interface with Avida running locally and express the interface through the Create... I admit that I didn't quite follow everything that you wrote up there, but it sounds impressive. I would be interested to see if a translation could be made into a real life simulation utilizing robots. I picture a hundred Creates in a room all searching for a food source. Those that receive the food continue to have power. Those that don't, run out.

I'm not suggesting running Avida on the robot. The lab has a Beowulf cluster for making Avida fly. What I'm proposing is taking an evolved program that results from an Avida run and re-coding the program to operate the Create robot. What I'll need to figure out is whether such re-coding translation has to be done by hand, or whether I can come up with a translator program. Hopefully I will find that the latter will work. The better a correspondence I can make between an Avida environment and instruction set to what the Create expects, the easier that task will be. It is possible within Avida to write up new instructions, so I could generate a subset of Create-specific instructions to operate within Avida. However, part of Avida's strength is its generality, so I'm hoping to keep that to a minimum. But other people might want to consider using Avida to evolve programs for the Create system as well, and may not consider a Create-specific version of Avida at all a bad thing. Thanks for the pointer to the Gumstix computers. That does look interesting as a basis for onboard robot computation. Wesley

Thanks, Marc92. I think I'll also be looking at small FreeBSD versions, since I've had more experience running FreeBSD than Linux. Has anyone here had experience with the TERN or Soekris boards?