POPBUGS - A Simulation Environment for Track-driven Robots
The POPBUGS package (implemented in Poplog
) lets you experiment with simple, simulated robots in a
2-dimensional world. The robots have `tank-tracks' instead of legs and
are thus controlled simply by specifying speeds for the right and left
tracks. The robot's sensory abilities are fully programmable but
typically provide some variety of proximity sensing. All object
parameters, including colour, shape, pentrability and mass, can be
manipulated independently.
The simulation provided by the package is relatively realistic. Robots
have inertia and proper tank-track dynamics. This means, for example,
that locking one of the tracks causes the robot to pivot about the
central point of that track rather than about the robot's centre.
Sensors and motors can be arbitrarily noisy. At present, however, there
is no way of introducing track-slippage; i.e., the tracks are assumed to
have perfect grip.
The simplest way to familiarize yourself with the package is to watch
some of the canned simulations. These show simulated robots, or `bugs'
as they are called, interacting with a variety of worlds. Try one of the
following (or an item from the list lower down).
- Obstacle-avoidance (short) This is
the standard, entry-level bug-behaviour. A single bug with two proximity
sensors roams a world containing a variety of objects. Each time the
sensors return a high proximity value, the bug turns to the right.
- Pursuit (short) Another popular
behaviour. Here the pursuing bug tries to stay on the tail of the
leading bug.
For further details see
Poplog users who want to install and run this package will need at least
the following: lib/popbugs.p auto/showdisplay.p auto/showpalette.p teach/popbugs help/showdisplay help/showpalette. See also my `public' directory of POP-11 software..
Sussex/POPLOG users can find out more about popbugs via HELP POPBUGS.
See also TEACH VEHICLES, a teaching package for Braitenberg vehicles.
Other videos are as follows.
- Nesting A single bug moves around a
world containing a number of movable, circular objects. If the bug
encounters an object while heading (roughly) towards the centre of the
world, it continues to move forwards pushing the object in front of it.
The net result should be that all the objects are moved to the centre of
the space.
- Centering (short) A bug with a
single proximity sensor moves around a circular space. By changing
direction each time there is a change in the sign of the sensed
proximity changes, the bug effectively manages to keep moving towards
the centre of the space.
- `Interactive' Braitenberg
vehicles Braitenberg has shown how bugs with sensor/wheel pairs
are attracted to sensed objects if their sensor-wheel connections are
crossed and repelled if the connections are straight. Here we have three
Braitenberg bugs arranged in a love/hate triangle. Each bug is attracted
to the bug on the `left' and repelled from the bug on the `right'.
- Braitenberg's vehicle 3 This is
mock-up of Braitenberg's vehicle 3 which is repelled by high temperature
(red object), attracted by light (yellow object), attracted (and
inhibted by) oxygen (blue object) and repelled (and inhibited by)
organic matter (brown object).
- Fish wars This shows a very
primitive sort of territoriality behaviour. The `fish' (circular
objects) move around the world `eating' the brown objects until they get
to feel very `aggressive' (this makes them go dark in colour) upon which
they go off and try to attack one of the other fish.
- Getting through a saloon door
Here the single bug has to get through the swinging saloon doors.
Writing a stateless controller for this behaviour is a challenge. (The
controller in this simulation uses a single state variable.)
- Asteroid avoidance Here the
single bug must avoid the moving objects. It uses the standard
`knee-jerk' avoidance routine and so cannot really cope. As the objects
move faster, collisions become more frequent.
- Escaping from the smoke-filled room
Here the bug must find the gap in the wall and move through it.
- Interactive Braitenberg blobs
Another version of the love/hate triangle. Here the vehicles are large
blobs with identical colour and trail-colour. Can be quite pretty.
- Trap-robbing Here the bug must
move down the throat of the trap (i.e., keep equal distance from its two
jaws) so as to get to the cheese situated at the apex. Gets harder when
the traps begin to revolve...
Page created on: Fri Apr 26 09:34:39 BST 2002
Feedback to Chris Thornton
hits this year