Project's goal is to make a mobile robot which mapping environment where robot moves, map to be used for localization and navigation. The project's name is an acronym stands for mobile robot. Robot contains a radio which is used for data transfer between computer and robot. Radio used to transmit control commands from computer to robot and for example, transmit robot movement data to computer.
In 2001, I started to make first version of robot, microcontroller is a PIC16F877, optical sensors in wheels (20 pulses / one turn) and ultrasonic distance sensor. Radio is nRF401 single chip FSK transceiver. Below is a picture of the first version.
Version 2, built in 2004-2007
Microcontroller is a MSP430F1611, radio is nRF2401 single chip GFSK transceiver, IR distance sensor (GP2D12), optical sensors in wheels 256 pulses / one turn.
User interface displays a green square of the end point, where the robot must move. End point is given by the user using the mouse i.e user presses the mouse button on desired grid. When program get a end point it send control commands to robot. When robot runs, the program will display a blue square of robot location. Black square are obstacle. Program used in navigation wavefront algorithm. Algorithm driven by 10 cm at a time and a 90-degree turning .
Version 3, built in 2009
Microcontroller is a PIC18F452, radio is bluetooth, IR distance sensor (GP2D12), optical sensors in motors 2000 pulses / one wheel turn.
In user interface, robot's movement is displayed on a blue line and black squares are obstacles.
Robot has a dual-differential drive i.e two drive wheels and one non-driven tail wheel caster. Robot is currently used by odometry-based positioning.
   
future: SLAM 
(CCS compiler syntax)
Sorry, at the moment most of the programs functions/methods/comments are written in Finnish.
Until I get more time, I write them in English