Sei sulla pagina 1di 13

Cleaning Robot

1. Introduction

Mobile robots are getting special attention now-a-days in everyday use.


Especially cleaning robot applications are at hand today and tend to become a
mass market, for example Roomba introduced in 2002 by IRobot has gain
considerable popularity in consumer home market. Here we have tried to develop
our own cleaning robot whose algorithm is based on Roomba’s algorithm.

1.1 Scope of the Development Project

The objective of the project is to build a robot, capable of cleaning a floor of


rectangular shape of given area. The approach used is that instead of mapping
and cleaning that was used in previous year project (using white line sensor), the
robot moves forward starting from one corner of the cleaning area
(simultaneously cleaning also) until an obstacle is encountered and then move
inward by avoiding obstacle in rectangular spiral fashion with tackling of some
special cases.

Project goals

To implement a robot that cleans a room with no or less unclean


place traversed with minimum repetition.

Deliverables

Efficient cleaning with optimum amount of time with less same area
repetition.

Distinct Features:

No white line sensors are used.

No mapping of obstacles is done, so dynamic addition of obstacle


is possible.

Less repetition of previously traversed area.

Assumptions:
The object dimension is assumed to be not more than robot’s dimension.

The shape of the room is rectangular


The distance between any two obstacles is greater than robot size.

Limitations of our application

There may be cases where same previously cleaned area will be


repeated.

Orientation of robot sometimes may disturb as no white line sensors are


used.

1.3 References

1. http://en.wikipedia.org/wiki/Roomba

2.
http://electronics.howstuffworks.com/gadgets/home/robotic-vacu
um2.htm
2. Overall Description

START

Obstacl
Obstacle e

END

Obstacle

Obstacle
Fig . Sample navigation layout of a cleaning area with obstacles
2.1 State chart of the project design

Check front obstacle

Move forward

Check for edge

N
Y

Move forward avoiding obstacle

Update path & Y

goto next start Spiral complete


point

Turn right avoiding obstacle

Room Cleaned

Stop
2.2 Hardware and software requirements

Hardware used

One Fire Bird IV

Three Sharp IR Sensors


One Vacuum Cleaner

Software used

UCOS
ESTEREL

2.3 Design steps

Developed spirally cleaning algorithm

Designed drivers for extra hardware included in firebird

Coding in UCOS & Esterel

Mapping of functionality to HW and SW

Testing, Verification & Validation.

2.4 Design and Implementation Constraints

The algorithm was designed keeping in mind of vacuum cleaner with an attachment
of the size of firebird, so the cleaning is not efficient with the narrower brush. uCos
implementation required that sensors readings be updated in a separate task, this
also posed a problem in the type of obstacles, the robot can handle.

2.5 Performance metrics


The basic metric used for measuring the performance of our project is the
amount of time it takes to clean the given area with less repetition. Cleaning
power, how strong the cleaner vacuum is?

Does it touch objects? Amount of


repetition of area

Number and type of obstacles that it can handle


3. Concepts/modeling tools from CS684 that are used for the design and
implementation of this project

For the design we use Formal software development Methodology for


representing our algorithm.

RTOS concepts used for example

a Reactivity​: our robot reaction is based on the input that it gets from
the three sensors.

a Multitasking​: The robot uses multiple tasks to complete its job


efficiently.

UCOS and Esterel programming concepts learned from CS684 are used.
WinAVR and ICC7 for uCOS, KontrollerLab for Esterel.

4. Implementation Challenges

Foremost of the problems was to select a proper algorithm to implement. For this
we came across numerous algorithms and finally settled upon the cleaning style
used by the commercial Roomba robots.

It is difficult to design a cleaning algorithm that is used for handling an


arbitrary type and shape of obstacle and Precision error in turning at every turn
which leads to disorientation. We tried to implement efficient cleaning around
arbitrary dimension obstacles, but we faced lot of problems, and to handle them all
in given time period is difficult, so we made certain assumptions and in future, one
can build upon this algorithm to tackle these challenges.

5. Difficulties faced

We faced a lot of difficulties relating to the motion of firebird. Even the motor
velocities were not same for the two motors. As we didn’t use any white line
sensors, there was no feedback to correct it. We had to try with different distances
and angles to actually move by the right amount. Every time a different firebird was
programmed, these calibrations had to be changed. Finally we used the velocities
and angles as mentioned in the uCOS file.
6. Code structure

uCOS ​(Files: robot1.c, functions.h):

In the uCOS implementation the main file is robot1.c. It has two


tasks-SensorTask and CleanerTask. As the name suggests, SensorTask reads the
values of all the IR sensors and stores them in appropriate variables. CleanerTask
is the main task which does the cleaning. The spiral room cleaning algorithm is
implemented in it. Also there are some other functions for firebird movement and
obstacle tackling.

Esterel ​(Files: esterel1.strl, esterel2.strl, firebird_winavr.h):

Esterel code uses a module named C_ROBOT, which implements the


algorithm. Supporting functions have been implemented in firebird_winavr.h.

Potrebbero piacerti anche