L E G O ®   M I N D S T O R M S :   V A C B O T   1

  1999 - 2000


  Click here to go back to lego page

  Click here for lowpoly.com
  
  LEGO® is a trademark of the LEGO Group of companies which does not sponsor, authorize or endorse this site.
  
   

 

VacBot 1 (finished, sort of)

A vacuum cleaning omnidirectional drive bot. Only standard LEGO® parts were used except for
a piece of nylon stocking as a filter to keep the dust in the retainer. The vacuum
system worked!
It could vacuum small pieces of news paper pages (about 1/2x1/2" or 1x1cm) up
into the dust box (formed by two duplo tube bases). Robot movement sort of worked. After a few
straights/turns it would loose synchronisation of the axles. I did not solve that. At that
time I did mostly programming at work and working on the robot software felt exactly
the same. The concept of recreational programming did not grasp for me.

- Three two-wheel platforms
- two motor/rotation sensor pairs per platform placed at 90 degree
- in total 6motors, 6 rotation sensors, 2 RCX

One RCX can drive 3 motor/rotation sensor pairs. That means one and a half wheel platform. The
third wheel platform had to be controlled by both RCXs.

The problem got worse because a single platform should be able to rotate on the spot. Platform rotation
was done with large turntables. However, when the turntable rotates, wheels rotate in opposite
directions (that's why differentials are needed). This opposite rotation results in a rotation of the
drivetrain (that goes through the middle of the turntable). No problem if the drivetrain motor can rotate.
But it had a worm gear for compactness and power.

So... When a platform rotates the drivetrain motor has to be run at the same time to compensate for the
drivetrain rotation. Of course at another speed because of different gear ratios... If this isn't done
precisely the worm gears will jump (resulting in malfunction of the whole unit).

Wait, One platform was controlled by two RCXs! How can the turntable/drivetrain rotation be synchronized?
All RCX connectors are already in use. Solution: The RCXs use infrared to coordinate the turning
of the third platform.

Robot on its base. Wheels and platforms can rotate freely here. Essential for testing. When
transferring the software to the RCX by IR it was mandatory that only one RCX was active at
the time.

In front of the propeller is the piece of nylon stocking that acts as a filter. Propeller
axle was driven with belts (adding a certain ratio for more speed) for low noise. And yes,
these are ZNAP beams keeping the duplo tube holders in place:

While the dust tube seems to be in the way for IR communication it works anyway. One RCX was
the master, the other the slave. Because every motor had a rotation sensor connected one problem
could be solved most elegantly: collision detection. As soon as the sensor doesn't turn
as fast as the motor is triggered, it's clear that the wheels don't turn because of an obstacle.

The duplo tube did not reach the ground evenly. A tire was added to make up for that:

Back view shows the two technic motors that drive the propeller. Also, the
wheel platform closest to the viewer shows how motor and rotation sensor were supposed
to work together. Belt wheel on foremost rotation sensor for zeroing of turntable.

In theory axles could be turned so that the whole assembly could
rotate around its center. I did not try to program that however:

Nozzle must almost touch the ground. If distance is too big
wind speed decreases and vacuuming will stop working:

Good view of the vacuum system:

It did not work as expected. It would go through 4 or 5 go/stop/turn/go
combinations, then errors would accumulate and axles would start driving
in different directions. Which is not good and accompanied by the sound
of jumping worm gears.

I still don't know what the reason is. Two possible explanations:

1. motor steps have to be computed precisely. If a motor is stopped when a certain
count is reached it still needs time to stop. I took care of that but not good enough.

2. Rotation sensor is directly connected to motor and can't count as fast as the motor
turns. I think I had the motors running slowly but don't remember anymore, it was two years
ago. I think the firmware is too slow for that but I could have changed to legOS... That
was the point when I lost interest.

Here's the code: vacbot.zip

Don't expect too much, after all I wrote it for myself.

Summary: To make this a reliable omnidirectional drive two things are needed:

1. Switch to BrickOS for increased rotation sensor precision.

2. Add a third RCX for reliable zeroing of the platforms.

 

 

[ END OF PAGE ]