autonomous vacuum cleaner built on the Barbora bogie
Cecilka is the first reincarnation of our platform developed
for the Barbora robot. The ball collecting mechanism was
replaced with a custom made vacuum cleaner. This robot constituted the second
Czech team at the Cleaning contest 2002 in
Lausanne making Czech Republic second in the number of participating teams
right after Germany with six teams. Despite the fact that Cecilka was not as
successful as Berta we obtained many unique experiences that
we can now share with you.
boggie (two brushless
DC motors 600W each, motherboard with AMD K6 500MHz, 128MB RAM, 128MB flash memory,
video in, 100Mb Ethernet, running Linux), odometry based local navigation,
camera & laser triangulation combo (sometimes called active vision)
for rage finding, bumpers to detect what the rage finder has missed
The boggie used is recycled from Barbora
with the motors, the batteries and the computer. It is a differential driven vehicle
with tracks and a single 600W brushless DC motor from
for each track (controllers
supplied by MGM-ComPro
The main controll unit of the robot is a single board computer
20x12 cm (8x5 in), equipped with an AMD
processor running at 500 MHz, 128 MB of RAM, audio and video inputs,
100MBit ethernet connection, and an USB bus.
The cleaning unit attached to the bogie is a simple vacuum cleaner. The main
body of the vacuum cleaner is created from plastic plumbing. Common DC motor
Speed 500 often used for RC car models drives the turbina creating the suction.
The vacuum cleaner has its own power supply — 12V/12Ah batery drawing
about 5A of current. Overall performace of the cleaning unit was very good,
since it was able to do what we needed using only minimum power.
Total operating time for the vacuum cleaner was 2 hours for a single
For range sensing we used structured light vision technique
using color CMOS camera and angular red laser. This technique is based on
projection of known light pattern (in our case a line) onto the unknown scene.
Then we observe the scene with a camera from a different viewpoint. Using
simple image subtraction we can easily find the light pattern in the scene.
This procedure is illustrated on the image bellow.
On the image bellow there is a simplified version of the calculation of the
unknown distance to an obstacle.
However, we have not used such an equation, because we would need to
calibrate our camera (focal distance, distortion). Instead we have calibrated
the range system as a whole from 0.5m in front of the robot to 1.5m, sampled
by 20cm and linearly interpolated the values inbetween. Also the angle of the
laser was divided, this time into about 20 equal subangles, each giving its
own distance reading to the closest obstacle. In the final stage of preparation
for the contest this information was further reduced by tresholding against
0.7m giving yes/no answer for each angle.
Obstacle Avoidance and Navigation
The obstacle avoidance was based on temporary local map
of the environment created from the range data. But the
process of creating and updating the map has shown
to contain bugs that we were not able to resolve before the
competion start. For this reason was the map based obstacle
avoidance dropped from the final software in favor of
a simple rule to turn right until there is enough of a free space
for the robot to continue.
There was no particular strategy to reach complete coverage.
Instead the robot was just moving in the given environment
for a given time with the vacuum cleaner on.
The performace of vacuum cleaner was very good. It was
able to clean scattered sugar even when moving fast (more
than 30cm/s) using only 60W of power. This was needed
because the bogie was built with speed in mind and could
not really go slower. The performace of the range finder was
acceptable. To increase the reliability of the range finder
under more difficult lighting condition more powerfull laser
should be used (our was < 5mW). As a whole the system
did what it was designed for.
Further improvements would include modification of the
boggie to reach lower speeds, increasing the reliability of the
range finder, finishing the map-based obstacle avoidance to
avoid being stuck in difficult environments and finally the
design of better coverage algorithm.
|Petr Štěpán||image processing|
|Jaroslav Sládek||control algorithm|
|Zbyněk Winkler||control algorithm|
If you have found this project interesting or you have some comments
about it, please feel free to use our