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.
Barbora 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 as–is, with the motors, the batteries and the computer. It is a differential driven vehicle with tracks and a single 600W brushless DC motor from Mega Motor for each track (controllers supplied by MGM-ComPro). The main controll unit of the robot is a single board computer Advantech PCM-5864, 20x12 cm (8x5 in), equipped with an AMD K6®-2, 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 recharge.
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 Cleaning 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 feedback form