or .


Check our facebook page for updates and special offers

MIRCRobotics Research

This page shows information regarding various robotics projects from around the world. The image on the left shows the MIRC which is shown at the bottom of this page.

 

 

A Simple Robot to Demonstrate Automatic Learning Processes.

By Menno Rubingh - rubinghscience.org

My robot has two motors, each connected to one of its two wheels. It is very small (about 6 cm wide/high and 8 cm long), so that a table suffices as its "world" to move around on. Around the edge of the table there's a wire carrying an AC current. At the front of the robot there's a contact sensor to sense when the robot bumps into the wall wire, plus there's a coil that senses the AC wall wire from a distance of about 5 cm. On the table there's a "food pellet" (made of metal) with an IR sensor on top of it. The robot has another contact sensor at its front, which senses if the robot bumps into the food pellet. The robot has two "eyes" made of IR leds: The left eye (IR led) looks forward left, the right eye looks forward right. Both "eyes" have "vision angle" of about 20 degrees.

The five sensor signals from robot to brain are thus:
- Bump into wall
- Sense wall ahead at 6 cm distance
- Bump into food pellet
- See food ahead left
- See food ahead right

Each sensor is either on or off.

The five motor actions are:
- fwd = Move a step forward with both wheels
- fwdL = Step forward, then one turn left
- fwdR = Step forward, then one turn right
- seek = Sharp turn left or right 
- evade = A step back, then sharp turn left or right

All the motor actions are implemented as the robot performing a discrete "step", i.e. in one motor action the wheel(s) turn(s) a certain portion/distance of their circumference. The robot should learn to avoid the walls (i.e. it should turn already when it senses the wall at 6 cm ahead and should not bump into the wall), and should learn to seek and move "into" the food pellet. 

The goal is that the brain of the robot should learn to line up the incoming sensor inputs to the "right" motor action to execute next. The bump-into-wall and bump-into-food sensors are "hard-wired" into the brain as feedback signals. (More on that below.)

The brain itself is simply an array (table) of all possible sensor value combinations for the remaining sensors, and for each of these sensor combinations all possible motor actions:

wallSense
foodLeft
foodRight
Motor Status
Priority
0
0
0
Fwd
1
0
0
0
FwdL
1
0
0
0
FwdR
1
0
0
0
seek
1
0
0
0
evade
1
1
0
0
Fwd
1
1
0
0
FwdL
1
1
0
0
FwdR
1
1
0
0
seek
1
1
0
0
evade
1
0
1
0
Fwd
1
0
1
0
FwdL
1
0
1
0
FwdR
1
0
1
0
seek
1
0
1
0
evade
1
0
0
1
Fwd
1
0
0
1
FwdL
1
0
0
1
FwdR
1
0
0
1
seek
1
0
0
1
evade
1
0
1
1
Fwd
1
0
1
1
FwdL
1
0
1
1
FwdR
1
0
1
1
seek
1
0
1
1
evade
1

I call each line in the table a "neuron". (Expressed in neural-net lingo, each neuron "detects" one sensor input pattern, has one of the possible motor actions as its "output wire", and "fires" with a certain likelihood "priority" if its sensor inputs are triggered.)

The robot and the brain operate in discrete steps. First, the current sensor values are sent from robot to brain. Then the brain consults its table, and extracts from the table all the entries (and only those) that fit with the current comination of sensor input values. From this sub-table, the brain chooses one of the entries, by chance, weighted by the (floating-point) priority of each entry (so that higher priority has a higher chance of being selected). Then the brain sends the motor command from the selected table entry to the robot, and the robot executes that command. Then the cycle repeats with a new reading of the sensors.

The "bump-into-wall" and "bump-into-food" sensors are hard-wired into the brain, and provide feedback that makes that the brain learns. When the robot bumps into the wall, the last (few) neuron(s) (= table entry) that was/were selected (=executed) get(s) its/their priority scaled down by (= divided by) a factor of about 2 to 5. When the robot bumps into the food pellet, the last (few) neuron(s) (= table entry) that was/were selected (=executed) get(s) its/their priority scaled down by (= multiplied by) a factor of about 2 to 5. All the priority values are initialized to 1. After about 750 motor-action-and-brain-consult cycles, the priorities in the "neurons" have adapted to typically something like the following:

wallSense
foodLeft
foodRight
Motor Status
Priority
wall0
foodl0
foodr0
Fwd
272.767
wall0
foodl0
foodr0
FwdL
56.2088
wall0
foodl0
foodr0
FwdR
59.663
wall0
foodl0
foodr0
seek
532.763
wall0
foodl0
foodr0
evade
27.0606
wall1
foodl0
foodr0
Fwd
0.322468
wall1
foodl0
foodr0
FwdL
1.82265
wall1
foodl0
foodr0
FwdR
0.146926
wall1
foodl0
foodr0
seek
5.55416
wall1
foodl0
foodr0
evade
5.56077
wall0
foodl1
foodr0
Fwd
300.611
wall0
foodl1
foodr0
FwdL
1.28166
wall0
foodl1
foodr0
FwdR
1.22764
wall0
foodl1
foodr0
seek
2.6522 
wall0
foodl1
foodr0
evade
1.22422
wall0
foodl0
foodr1
Fwd
1.33706
wall0
foodl0
foodr1
FwdL
2.38871
wall0
foodl0
foodr1
FwdR
172.319
wall0
foodl0
foodr1
seek
11.9087
wall0
foodl0
foodr1
evade
10.3902
wall0
foodl1
foodr1
Fwd
745.131
wall0
foodl1
foodr1
FwdL
5.90719
wall0
foodl1
foodr1
FwdR
2.07576 
wall0
foodl1
foodr1
seek
1.64707
wall0
foodl1
foodr1
evade
4.07005 

From this, one sees that the robot has learned that when the "wallSense" sensor input is high, it had better not move forward (second set of 5 table entries). And the robot has learned to execute an appropriate move forward when the food is in sight (last 15 table entries). So this is one way to do it for a *very* simple robot.

Even with the simple robot, it took me some time to get it working though. The thing that cost me the extra time is that apparently, at least with this simple brain, in order for learning to occur, the robot can not be "any arbitrary" thing, but its sensors and motors must (apparently) be organized in a certain way. It seems to me now that the sensors must offer sufficient "foot-hold" for the brain to learn from. E.g. I had started out with only one single eye looking straight ahead, but apparently that yields too little data for the brain to learn from when to turn left or right in order to reach the food. And also, I get the feeling that the sensors and the motor actions of the robot must somehow "fit together". E.g., it seems that the angle of vision of the eyes must "fit" with the angle of one single turn action of the robot. (E.g., one turn action must not completely "overshoot" the food with the vision "cone" of both eyes.) So that seems maybe to open the "research field" of composing robots in such a way that they are "learnable" with a brain of a given complexity. It seems obvious to suppose that more "intelligent" brains would be capable of operating with robots that have less "nice" sensor-and-motor compositions. But it seems to me (now) that it may be that even an "infitely intelligent" brain is not capable of "learning" when coupled with a robot with hugely awkward sensor-motor organization, because in such a case the brain simply doesn't get enough information.

I was a little surprised by this apparent (?) fact, that learning in robots depends (apparently?) so much on the robot itself (i.e.
on how its sensors and motors are organized/composed). My earlier "belief", that things "should" work when one simply plugs in one's brain program into any arbitrary robot, seems to be very questionable. The robot itself (in how its sensors and motors are organized) seemingly also needs to be "reasonable", for any brain to be able to work with it.

MIRCProject MIRC
A Mechanized Interface for Robots & Computers

This project aimed to develop a modular system (MIRC) for interfacing already commonly available hardware for conducting household or industrial tasks, with standard computers. Ultimately, it was designed to link to an already established infrastructure to develop new and more effective ways of utilizing it.
The MIRC could ultimately enable the technology of the PC to become mobile, thus minimising the need to carry out mundane or repetitive activities and to enable long distance completion of tasks. In the proposed approach, the MIRC was operated by command from a laptop which had been programmed using fuzzy algorithms to carry out basic object avoidance and wheel tracking. By using fuzzy algorithms rather than the more standard IF/THEN statements currently used in programming the MIRC has increased flexibility and potential for adaptation for a range of uses. more

 

Transparent, gel-based robots can catch and release live fish

Made from hydrogel, robots may one day assist in surgical operations, evade underwater detection. More..

Fadel Adib joins Media Lab faculty

Adib is directing a new research group at the Media Lab, aiming to uncover, analyze, and engineer natural and human-made networks. More..

Next Page: Cybernetics Menu
Previous Page: Current Robots

Comments and questions for Robotics Research

The information provided here can not be guaranteed as accurate or correct. Always check with an alternate source before following any suggestions made here.