Mobo Project

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.

Project History

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 1, built in 2001-2004
v1.jpg software_v1.jpg
Note that, image shows map is a simulated, because the robot has never worked.

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.
v2.jpg software_v2.jpg
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 [5].

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.
v3.jpg software_v3.jpg
In user interface, robot's movement is displayed on a blue line and black squares are obstacles.

Localization

Odometry

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.
[1] [2] [3] [4]

future: SLAM [6]

Software

Robot software

http://code.google.com/p/srycode/source/browse/#svn/trunk/robotit/Mobo_v3
(CCS compiler syntax)

User interface

http://code.google.com/p/srycode/source/browse/#svn/trunk/tyokalut/Robomap
(Java)

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

References

[1] http://en.wikipedia.org/wiki/Odometry
[2] http://www-personal.umich.edu/~johannb/position.htm
[3] http://www.geology.smu.edu/~dpa-www/robo/challenge/index.html
[4] http://www.societyofrobots.com/programming_differentialdrive.shtml
[5] http://www.societyofrobots.com/programming_wavefront.shtml
[6] http://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License