drive straight
This solution was developed in response to the last challenge LEGO® posted on their RCX Mindstorms site. The challenge was to have a robot travel 3-4 metres (9-12 feet), deliver a load within a black edged circle and return to its starting point. The catch is that there must be 3 obstacles along the way. My first response to the challenge was that it seemed very easy. However, as I pondered the problem it became apparent that it was anything but easy. LEGO® later posted ideas and suggestions that showed they expected the problem to be solved using a predefined path on a fixed course with obstacles in known and fixed positions. Too easy! I was expecting to carry out the task on a variable course with obstacles located anywhere.
It quickly became apparent that to successfully carry out this challenge I required a robot that could travel some distance in a reliably straight line. Furthermore, said robot needed to be able to carry out precision 90 degree turns since I had decided this was the easiest way around the obstacles. A precision 180 degree turn was also required at the drop off point. I was looking for a solution that locked the driving wheels together for straight line motion and released them for turning. The switched gear mechanism in Mario Ferrari's Golia II robot was the seed for an idea that evolved into a moveable gearbox.
One motor drives a gear train that has 4 outputs consisting of 8t gears. One pair of gears are mounted on the same axle and always spin in the same direction. The other pair are attached to co-axially mounted axles that always spin in opposite directions. The whole gearbox is mounted so that it can slide a distance of one stud and thus engage either the same spin pair or the opposite spin pair with 40t gears attached to the driving wheels. When the same spin pair of gears are engaged, the robot travels in a straigh line (whether forward or backwards) because the drive wheels are locked together by the common output axle. When the opposite spin pair of gears are engaged, the robot turns clockwise or anti-clockwise.
Before you get too excited about just one motor carrying out both the drive and steering functions, there is the issue of moving the gearbox. The movement mechanism needs to be elastic in nature because when the gears engage, the teeth do not always mesh properly. Rather than force them together, an elastic mechanism allows for proper meshing to occur once the motor starts to drive. The obvious choice for such a mechanism is a small pneumatic piston and this is the approach that I took in my prototype. A second electric motor is needed to switch the pneumatic valve that controls the piston. I used a couple of pre-pumped storage tanks as my air supply.
You will notice that the design includes a rotation sensor. The obvious use for this sensor is to measure the distance travelled. However, it is also used to control the angle of turn when the robot is turning. Its always nice to be able to carry out two functions with one device.
I didn't get past building a prototype robot before needing all of the pieces for another project. The prototype did work very well though. There are a couple of negatives to this solution that I want to address in the future. This first is size. It is rather large and needs to be made smaller. Secondly, the pneumatics are rather bulky. I would like to try an all electric solution using the "pseudo-stepper motor" construct that Mario Ferrari outlines in his book "Building Robots with LEGO Mindstorms".







