by William P. Moffitt
RolyPoly is an exercise in simplicity and persuasion. I wanted to make a functional robot entry in the Vacuum Cleaner contest and use this as an example of how a beginner might enter into robotics with the absolute minimal knowledge, parts count, and expense as an entry in the Robot Rally. I also hoped to come up with something original and eye-catching. It may well be possible to achieve a better, simpler design than RolyPoly, but not by me. I would love to see someone else's effort. I assure you that this is more of a challenge than you suspect and very rewarding!
I started with the idea of converting a normal floor sweeper, instead of a vacuum, for the obvious simplicity of the sweeper. Having watched the first year's contest, I was convinced that the sweeper would be faster and more efficient. I still think so and predict that we will see more of these next year. But the cost of a commercially made sweeper dissuaded me from buying one. Next, I thought I would put a sweeper/roller on each end of a box and drive both rollers, forward and then reverse. But a method for turning this was complicated. I got rid of one roller and came up with a way to shunt it from one end to the other. Many days of off/on again thinking finally came up with the semicircular track design with an angled, central, steering wheel.
I put off designing the control circuit as I thought it would be a trivial exercise. It was no such thing, at least for me! I came up with several ideas that would work, but the number of relays, capacitors, diodes and connections was way too complicated. The reversal after a bump, your basic random search method, is complicated by the time delay needed for the roller/drive to roll over to the opposite end. During this time, the reversing must be disabled while the new direction is locked in until movement in the new direction has begun.
A simple microprocessor would have been great here, but I kept thinking of the people who come to the contest and look at our robots. We have all had the experience of someone expressing a desire to "roll their own", and then seem daunted by the electronic, microprocessor, and programming skill needed to get started; never mind the mechanical skills to build it! What I was after was a different reaction. Something along the lines of "that's just some wood, a paint roller, a battery, a couple of switches, one motor and a couple of relays........I could do that!" In fact, I did get that reaction from several visitors; very satisfying.
In spite of the low parts count and apparent lack of sophistication, the final control circuit is probably not a beginner's design project. A higher part count would simplify the thought process, but we don't have to tell the beginner that - just get them started.
RolyPoly pulls itself along a carpet with a rotating paint roller. The only other point of contact with the floor is a single centered wheel angled to make the path traveled a curve. This roller also sweeps the rice grains onto and then up a curved scoop till the rice falls into the robot. A lightweight, corrugated plastic shield surrounding the robot, and supported by several small squares of foam rubber, serves as the bump mechanism. When RolyPoly hits something, the shield is shifted and a bolt on the shield touches a spring on the robot completing a circuit. The reversing relay "changes state"(picks or drops) and the motor reverses.
The roller, driven from the center of the robot by a rubber "O" ring belt, now climbs up and over the semicircular sides till it reaches the opposite end. There it activates a microswitch and the axle climbs a slight ramp separating the roller surface from the semicircles of the robot sides. The robot flops over the center wheel, because of the weight of the roller, and drags along on its merry way. Because of the angle of the center wheel, and the reversal of direction, the overall path of RolyPoly is a series of "Y" turns, just like an automobile at a dead end street.
The shield has a small pivoting "foot" at each forward corner. These are designed to float on the surface of the carpet and catch the lamp cord, shifting the shield, and causing a reversal. The four vertical posts at each corner are for detecting the folding chair rungs. The picture also shows the large diameter aluminum drive wheel for the "O" ring going to the fuzzy paint roller. The funky drawings are a last minute attempt to give RolyPoly some personality. Most people think it looks like a doll cradle! Total cost was about $45, and would have been much less if I had had an old 9.6V racing nicad like most kids.
Some of the Problems
There were a lot of these, and some are not fully resolved. The first center wheel I installed was mounted so that it would pivot on its mount and reverse the angle, from left to right, whenever RolyPoly flopped over and reversed. This was a simple and elegant mechanism and I really liked it. Unfortunately, I had not realized this would cause the path to be the same curved segment, over and over. Another major headache was how to support the bump shield. First I tried 6 small springs, 3 per side, hot melted to wood frame and shield. Very fiddley and hard to glue in place.
The original switch contacts were metal washers on the shield and a small bolt on the frame striking through the hole in the washer. The 6 springs were too stiff, and the shield did not move freely enough when bumped. So I replaced the springs with weaker ones at great effort. Now it moved, not too well, but maybe OK. However, the bolt would hit the washer hard enough that it would shift, break loose, or bend the bolt. Centering of the bolt in the washer would be lost and the roller would reverse continuously, back and forth.
Depressing really, as I didn't expect so many problems from what I had thought out so thoroughly! From somewhere came the idea of using small squares of foam rubber instead of springs. By using a stationary bolt on the shield centered in a spring on the wood frame I allowed the shield to move and bend the spring after contact. Things began to come together.
The curved rice ramps made from tin flashing proved devilishly difficult to shape just right. They had a tendency to dig into the pile of the carpet at first and stop the robot, or else ride over the rice and not pick any up. Many, many tweeks later, and a stroke of luck using duct tape to hinge them to the frame, resulted in descent scoops skimming on the surface.
Positioning of metal "end ramps" for roller axle was tedious. Worst of all was a tendency for the roller ends to move at different speeds causing it to get crosswise on the frame and one end would walk off. First I added rubber rings to the roller ends, better, but still problematical. Finally I glued sandpaper strips to the semicircle frame edges to get good traction.
Totally unforeseen was the problem of lateral balance. As RolyPoly flopped over, which it does in a dignified and unhurried manner, it would also tilt to the heavier side in a sort of a rolling gait. If RolyPoly happened to be angled to a wall, it would be trapped. I shifted the battery weight several times, but eventually had to add two short "legs" on the lateral centerline to limit the unsightly staggering.
There were other things as well, but the previous examples should suffice. The solutions seem rather obvious now, but were challenging at the time. I intend to re-enter RolyPoly in next year's contests. In the Vacuum contest RolyPoly came in 4th and only ran about 1 minute of the 6 allowed before it got uncharacteristically stuck on a wall. With a full 6 minutes, who knows what might happen? In the Rally, I hope to do better now that everyone knows the how and why of this design, and especially if the cost factor is returned to the judging.
I could get rid of the whole shield/switch movement and go to a fixed shield (leaving protection for the roller travel) by using a ½ of a 556 timer configured as a missing pulse detector and an IR Tx/Rx beam through the holes in the center wheel. Whatever stops it, when the wheel pulses cease, the motor reverses. The other half of the 556 could enable another IR pair looking down from the center of RolyPoly at the carpet. After 3,4, or 5 minutes, the IR looks for the starting tape and removes power from controls the next time it crosses the Start Box. This depends some on luck, but might make the difference.
But all that would defeat the simplicity objective. I want to keep components limited to relays, capacitors, resistors, switches, and diodes. I guess I will just have to build ANOTHER robot for next year!