Friday 10 April 2015

Memory

Memory is where living beings store and retrieve the information about their surroundings with respect to time and with respect to space. Birds, animals and human being all have memory. With the help of the memory, the living beings get the ability to “collect” and “recollect”. The memory can be classified into different types: Sensory Memory, Short Term Memory and Long Term Memory. The purpose of this article is not to go into details of memory, however the purpose is to reflect upon the questions: Why do robots need memory? What is the format of robot's memory? How much memory is required for a robot?

As we discussed in the first post (Robot – A machine with life), human being applies senses to the robot. These senses produce a lot of information. Consider an example of a Color Sensor. It collects information regarding the color of the object, based on the light intensity reflected from the object. An Ultrasonic Sensor produces the information about the distance at which an object is located. Depending upon the robotic project, we need to store this information. For example: 1. In a project where we have to find a shortest path towards a destination, the robot has to recollect the location of obstacles and find its shortest path through them. For this project, we have to store the tentative location of objects into the memory. 2. To solve a line maze, the robot has to recollect the location of turns (left, right, U), avoid the extra/redundant turns to find an exit thought the maze.

The purpose of memory can be found in the figure given below.


To elaborate upon the above diagram, lets consider an example of Line Maze Solver project where the maze consists of black lines on a white surface. There are light sensors attached to the robot. The light sensors produces the data about black, white and gray conditions while steering along a line. The information about different conditions is fed into a computer program. The program processes it and helps the robot steer along the line by driving the motors. While steering, the robot encounters turns (identified by the motor readings), the information about which is stored into the memory. The robot uses this information to create a map of the maze. Using this map, the robot then finds a shortest path along the maze towards the destination.

Robots memory is semiconductor memory, which stores the information in bits and bytes format. You will wonder how much of memory should a human being apply to robot? When it comes to Lego robots, it contains few Kilo Bytes (KBs) of memory. Industrial robots may require Giga Bytes (GBs) of memory. There are three kinds of semiconductor memory: Read Only Memory (ROM), Ramdom Access Memory (RAM) and Flash memory. RAM refers to the memory to which the processor can read from or write to. It loses data when power is off. ROM refers to a memory where a processor can read from, but it can not write to it or modify it. ROM is permanent. ROM chips contain special instructions for the processor. The information does not get erased when power is off. The processor can access information stored on a ROM chip whenever it needs to. Flash memory is a special type of memory that works like both RAM and ROM. You can write information to flash memory but that information isn’t erased when the power is off, like it is with ROM.

 Hey there, looks like memory is an essential and important part of a robot, isn't it?