Please note this page is about two years out of date and is missing about half the major results from the project which are much more impressive. I will be endeavouring to rectify this situation in the next few months. In the meantime you can read about most of our more recent research in our papers here.
The name RatSLAM is partly an acronym - Rat refers to the furry rodents but SLAM stands for Simultaneous Localisation and Mapping. SLAM is one of the major challenges that must be solved before we have truly autonomous mobile robots. If we place a robot into a completely novel environment, we would like to the robot to be able to explore that environment in an intelligent manner. To find your way around an environment you would usually use some sort of map which tells you where everything is. However, a robot in this situation has no idea of the environment it has just been placed in and as such does not have a map. It must create a map as it moves around.
This is where it gets difficult. In order to create a map of an environment, the robot must know where within the environment it is currently located. Try to imagine creating a map of your local shopping centre as you walk around it, without knowledge of where you are within the shopping centre - you can't do it! You need to know where you are in order to know which part of your map you should be drawing on. Likewise, in our robot case, it needs to know where it is in order to create its map. It needs to be localised within its environment. However, in order to work out where you are in an environment, you need a map of the environment. This is very much the chicken and the egg problem - to localise a robot needs a map, and to map the environment the robot needs to be localised. In a novel environment the robot starts with no map and no idea where it is. As it starts moving it must simultaneously create a map and use that dynamically changing map to try and work out where it is - it must SLAM.
SLAM is similar to the chicken and egg problem - which comes first?1
The real world throws up all sorts of challenges that make performing SLAM very difficult. Environments are highly ambiguous - there can be several locations in an indoor environment which look the same to a robot. For instance, two separate corridors on the floor of an office building may be virtually identical - same corridor width, same colour walls, same doorway locations. One way to get around this is to use very advanced sensors which could discriminate between the two corridors based on exact lighting conditions or scratches on the walls. This approach is not really a viable one in robotics - artificial sensors have yet to approach the abilities of something like the human eye. A second way you might get around this problem is if you were to use some sort of indoor GPS system, which do exist. We are trying to solve the SLAM problem in a biologically plausible way however, and humans and rats do not have any GPS equivalent system in their brains. Also, GPS systems are prone to occasional failures and will not work in all environments reliably.
The RatSLAM system is the brain we have created to help our Pioneer robot navigate around and map an environment. It consists of two primary projects - the vision system and the SLAM system. David Prasser, a fellow PhD student is working on the vision system whilst I myself am focusing on the SLAM component. More details on the vision system can be found here, in this webpage I shall focus on the SLAM component. The system is implemented as a modified type of competitive attractor neural network. These networks contain many cells which can have various levels of activation or energy. Over time, energy in the network will tend to converge to one blob of activity, known as an activity packet. This blob of activity can be moved around by injecting activity into cells near it in the network. If energy is injected into the network far enough away from the current activity packet, a second activity packet can form which will compete with the first packet. Depending on what other input there is, several things can happen - one of these packets can start to dominate and eventually 'kill' the other packet, or even more activity packets can form. The neural network structure we are using is a 3D solid block structure, known as the pose cells. They are so named because activity in these cells represents the current pose of the robot - its location in physical x-y space and its orientation.
Image of activity in the pose cells. Several activity packets exist.
The RatSLAM system is particularly suited to dealing with the high degree of ambiguity in typical environments. When the robot is in an ambiguous location, several activity packets are created in the pose cells to represent all the possible locations within the environment the robot may be. As the robot moves around, it receives further visual information which may support certain hypotheses about where the robot may be but not others. The activity packets corresponding to those supported hypotheses have more energy injected into them making them more dominant. Those activity packets representing unsupported hypotheses don't have any more energy injected into them, and start to decay away. In this way the RatSLAM system continually uses visual input to try and work out where the robot is within the environment.
What about when the robot is first placed into the environment? Everything it sees for a while will be new and unseen. The RatSLAM system relies on path integration to help it map early on in an experiment, and gradually becomes more and more reliant on visual information as time passes and the robot explores more of the environment. Since an activity packet represents the current pose of the robot, when the robot moves around the activity packet should move to represent the robot's changing position and/or orientation. The path integration system achieves this by injecting activity into the cells nearby the current activity packet. Energy injected near an activity packet will tend to make that packet move towards the injected energy.
The Vision System
The Pioneer robot with camera and sonar arrays
This is only a brief description of the vision system. The vision part of the project can be found here. Here is a brief overview. We use a forward facing colour camera mounted on top of the front of the pioneer robot. The original vision system could see coloured cylinders made from sheets of A4 paper. The vision system reported the distance to, bearing to and colour of the cylinders to the SLAM component. The new vision system uses natural vision. It takes a high resolution camera image, reduces the resolution (this decreases the computational resources required) and uses an edge detection algorithm on the resulting image. This algorithm attempts to single out vertical or horizontal lines in the image as features - in indoor environments vertical and horizontal lines are very common and are a good feature to try and detect (door frames, windows, cabinets etc). This edge detected image is then converted into energy in a array of cells known as Local View (LV) cells. The output of these cells is used by the SLAM system.
Camera captured image and plot of corresponding energy in the Local View cells.
The RatSLAM system has already produced some impressive results, which have been published (see publications page). Because the RatSLAM system does not produce maps like a typical house floor-plan, analysing the system's performance is somewhat tricky. The current performance metric we use is consistency of world representation - that is after a couple of laps of an environment, does the learnt map change at all or does it stabilise. To analyse consistency we use two different sets of results - trajectory plots and cylinder map plots. Here we show what type of results one gets if we don't use the RatSLAM system, and rely purely on on board robot path integration. Small errors in the path integration process build up over time until the overall error is very large. A floor plan of the testing arena we were experimenting is shown as well:
Floor plan and robot route (shaded)
Robot's perceived trajectory using only path integration
Resultant map of cylinder locations, notice effect of rotational drift
As can be seen by the preceding figures, when relying on only path integration the system cannot function and the maps produced are inconsistent. When we implement the RatSLAM system we get the following results:
Robot's perceived trajectory using RatSLAM. The trajectory is consistent.
Corresponding cylinder map.
The perceived robot trajectory is much more consistent when the RatSLAM system is used. The long straight lines circled in the picture above show where the robot's perceived position has suddenly jumped from one position to another - this is known as relocalisation. It occurs when the robot sees images that suggest that it is at a different location to where it thinks it is. After enough visual input the system is able to correct the error in its position and orientation and 'snap' back to the correct pose. The cylinder map from the same test shows much more consistent mapping of cylinder location.