Sunday, May 18, 2008

Grid Mapping


In this task we build an occupancy map using the Tribot model of Mindstorms. The grid map infrastructure is constructed using a two dimensional array. Each cell indicates whether the corresponding to one block of 1cm2 in the real work occupied or empty. The map will be updated based on the robot’s path and detected objects; hence, no prior knowledge about the environment is assumed. Besides, it is manipulated using Bresenham’s line algorithm.

The algorithm will read the data positions of the robot and objects estimated using odometry approach and will update the map accordingly. It updates all cells located between two robot’s positions and it indicates that it is empty. If an object is detected the algorithm will update all cells, located in a straight line, between the robot position and the object position such that they marked as empty cells. The object position will marked as occupied cell.

The cells values are given a certainty (probabilistic) value is to indicate whether the robot or the object is likely to exist there or not. The initial cells value well 0.5 which indicate that area hasn’t been explored yet. The updating algorithm will gradually change the value between zero to one. Thus, if an object is detected in a specific location, the cell corresponding to that position will be increased from 0.5 to 0.7, for example, which indicates that the object is likely to be there.

The map will be drawn while the robot navigating the environment. Hence, the users could see the map in a real time.


The following is a map constructed collaboratively between two robots:

+Map of Robot 1


+Map of Robot 2



+Shared Map of robot1 and robot2



Collaborative Mapping is the aggregation of two robots’ occupancy maps. Each robot will explore a region and will keep a record of its position and the environment objects.
At the beginning, each robot will rotate 360 degree while scanning the surrounding after each 30 degree in order to check if any object is located nearly (about 30cm). Once the rotation is completed, the robot will randomly choose one of four directions and it must be free: 0, 90, 180, or 270 to pursue to a new grid point.

The records of the two robots will be merged to create the global map of the environment. Likewise, the map will be shown on the real time.

Saturday, May 17, 2008

Occupancy Grid

Some useful links about occupancy grid mapping are listed below:

Occupancy Grids
Robot Localization and Map Construction Using Sonar Data

Friday, May 16, 2008

Avoid Behavior

Go away: The robot goal is to avoid hitting obstacle. It moves toward and stops while sensing an object within the specified range. It avoids the object after finding the best direction that separates the robot from the object.


Approach Behavior

Go toward: The goal is to get closer to an object. The robot moves toward and stops while sensing an object within specific range. It moves toward after doing some calculation to find the appropriate angle that makes the robot approaches in the right direction with the desired distance.

A Glance About The Project

Mindstorms among Us is a project using LEGO Mindstorms NXT kits to build simple robots that are able to distinguish between walls, balls, and other robots, perform a set of basic behaviors, and keep track of where they are (odometry). These basic sensory behaviors are based on different algorithms to enable the robots to recognize previous mentioned objects. Also, the robot can build a map to describe their environment. Furthermore, the robots are able to build a single map collaboratively. Thus, two robots will describe the same environment. A graphical representation of the map will be displayed for the user so that he can imagine robot’s path and any obstacles. These basic behaviors and simple mapping have been programmed with different programming language such as RobotC and JAVA. The choice of suitable language is based on complexity, functional and non functional requirements of each task. Besides, the physical models of the robot are various to satisfy each task without affecting the accuracy of each task. Many experiments and tests are conducted to ensure the reliability of each function.

This project provides highly valuable real-world hands-on experience on the basics of robotics, including body designs, sensing, actuating and programming. It is a great chance to investigate more in the field of robotics, read more about its main concepts such as odometry and grid occupancy, and a good start up for novice interested students in the robotic field.


Mindstorm Books List







Some books have been published for lego mindstorms NXT, check the following to know more:

  • Building Robots with LEGO Mindstorms NXT
  • LEGO Mindstorms NXT-G Programming Guide
  • LEGO Mindstorms NXT Power Programming: Robotics in C
  • The Unofficial LEGO MINDSTORMS NXT Inventor's Guide
  • LEGO Mindstorms NXT: The Mayan Adventure

Find more and read more here

What do you know about NXT

Well, a brief intro about lego mindstorms NXT, it is a kit that helps you in building your own robot, no matter is your age, it suite all of you..

It contains of:
1- Brick: the brain that control the robot
2- 3 motors
3- 4 types of sensors: touch, light, sound, and ultrasonic
4- Different pieces to build the robot body

Read more ..


First Shoooooooot

Hi all,

we established this blog to post all materials that we have in our senior project.
first, let me introduce ourself, we are ...

Mariam, Sara, Asma, and Alia
UAEU students
IT college / CS

Our project is: " Mindstorms Among Us"
Keep browsing this blog and you will know more ..

See you around ^-^
-Mariam