Note: This robot will not be entered in John Simmons contest. Please feel free to use any ideas from this page for building your own slider -- there's always room to improve things.
Slider relies entirely on manipulating static friction in order to achieve directed motion. It is supported entirely on three "feet", metal pins that project straight down from the final gear on an Omron gearmotor. The following images show the various "levels" in Slider's construction.
Here is the basic body, missing the control circuit and the batteries. Three Omron disc eject motors are bolted to an aluminum disk. The original Omron circuit boards have been replaced with home-made driver boards. The triangular circuit board in the center is simply a connector board, used to bring the various power, control, and sensor connections together.
The stainless wires projecting out from each motor are edge detectors. If one of
them drops over an edge, an Nu is tripped which changes Slider's direction.
This is Slider's brain and power supply. Again, a home-made circuit board. The
power supply is 4 small cells (taken from a dismantled 9 volt alkaline battery)
held in moified fuse clips. The small white rectangle in the upper right corner
is the on/off switch -- a salvaged jumper with a captive jumper block. The
circuit is a standard, PNC-free microcore with a sensor Nu. The top LED lights when
all three motors are reversing. The bottom LED flashes when a sensor is tripped.
It's driven by an oscillator made from the remaining inverter on the 74HC14.
Trying to fit 3 driver chips plus a microcore on one small circuit board was
causing me problems. I decided to move the drivers out close to the motors by
replacing the original Omron boards with my own driver boards. The driver is
a 74AC240. There is a pulldown resistor for the the enable pins and a current
limiting resistor for the LED. The LED lights when the motor receives a "forward"
HistorySlider began as a theoretical design. I was examining how robots might walk with different numbers of legs and I noticed that few designs had an odd number of legs. Slider has three legs -- the minimum number that will support a robot without relying on "feet" for balance. As it's name implies, it slides rather than walks. This isn't very practical, but it was an interesting design exercise.
Slider was just a concept until I needed to test some theories on motor control feedback. My goal then was to keep construction simple. The original control system was supposed to produce a very efficient sliding gait but this turned out not to be the case. The present design uses a much simpler control circuit and a less efficient sliding gait.
Mechanical ConceptSlider uses the principles of sliding friction to move. The force needed to start an object sliding along a horizontal surface is proportional to the weight of the object and the static coefficient of friction. The coefficient depends on the type of materials that slide over one another. Once the object begins to move, a different (usually smaller) force is needed to maintain the motion.
A three legged robot with symmetrically spaced legs has the same amount of weight supported by each leg. This means that when a sufficiently powerful motor attempts to move just one leg, that leg will begin to slide before there is sufficient horizontal force to move the remaining two legs. On most surfaces once the leg starts to move, the force required to move it becomes less and there is little chance of the other two legs moving. The robot can be made to move by sliding one leg forward at a time, and then simultaneously moving all three legs backward. This last motion shifts the body forward.
The diagram shows the complete motion sequence. In each step the legs are shown in their final position. The arrows and colours show the direction each leg moved to get to its position. This 4-step sequence is repeated over and over, each time moving the robot forward one step length.
It's important that the step length not be too large relative to the spacing of the
legs. Otherwise the weight distribution will change significantly on each step, and
may prevent the sliding principle from working properly.
Basic CircuitThe control pattern for the three motors is simple: motor 1 forward, motor 2 forward, motor 3 forward, all three motors reverse. This can be easily achieved with a simple microcore. Each of the first three neurons is connected to one lead of a motor. The fourth neuron is connected to the othrt lead of all three motors.
The two diodes ensure that the circuit always starts up with only one pulse circulating in the loop1. Resistor and capacitor values are selected to suit the motors, giving a relatively short step.
The motors need to have identical speed and torque characteritics. While it is
possible to compensate for minor differences by adjusting resistor values, major
adjustments are not possible. With one neuron running all three motors backwards,
there is no convenient way to compensate for differences in motor speed.
Mechanical DesignThe mechanical arrangement shown in the above diagram has swinging legs mounted on horizontal axles. It needs either very slow gearmotors driving the legs directly or some kind of linkage between the gearmotors and the legs. I chose a simpler method: mount the motors vertically and use a single offset leg attached to each motor. This causes the legs to oscillate in an arc rather than a straight line. As long as the legs all move parallel to each other on the reverse step (all three motors running), the sliding principles will work just as well.
In the diagram to the left the legs are depicted on their reverse step, with all 3 motors running at once. Notice that the legs all move parallel to each other even though they are moving through an arc.
This arrangement has one particular advantage: to make the robot change direction, the motors just have to run a little longer on a reverse cycle. This will shift the motor starting positions to a new angle and the robot will take a new heading. Notice that the orientation of the body will not change. With vertical motors, the robot simply doesn't have a "front".
The arrangement also has a drawback: if the motors don't move exactly the same amount as one another on each cycle, the legs will drift away from being parallel. Since it is virtually impossible to keep the motors in synch without some position feedback, it seems inevitable that the performance will eventually degrade to random movements. In practice, this degradation does occur, but doesn't seem to have much effect on Slider's directed motion. Such was not the case with the original, more complex control circuit. Finally, I mounted a triangular circuit board on the three motor-mounting bolts to hold the various connectors. This board brings together all the signal wires into a 5-pin connector (white) and the power supply lines to a 2-pin connector (red). all the connections between the motors and the body are made with plugs or screws, so the whole robot can be easily dissambled.
The diagram on the left shows the modifications to accomodate the edge detectors (shown in red). Any number of sensor switches are hooked in parallel to fire an Nu neuron. This neuron has a delay slightly greater than the time it takes for one complete stepping cycle (note the capacitor value compared to the capacitors in the microcore).
The blue portion of the circuit shows a simple asymetric oscillator that flashes an LED when the sensor neuron is active.
A second resistor was added in series with the normal grounding resistor on the Nv neuron which operates all three motors on their reverse cycle. Normally, this second resistor is bypassed by the Nu output (which is normally low). When a sensor activates the Nu, the extra resistor increases the delay in the reversing neuron, and all three motors reverse for approximately twice the normal delay. The effect is to turn them to a different starting position, which causes the robot to head off in a new direction.
As long as at least one sensor is over an edge, the Nu will remain active and the motors will turn twice as far on their reverse cycle as they do on their individual forward cycles. The effect will be to change the direction of travel until the robot starts to move away from the edge. With luck, Slider will not have dropped a foot over the edge in the meantime.
Finally, it is perfectly acceptable to add other sensor switches in parallel to the
edge detector. For example, a bumper switch could be tripped when Slider runs into an
object, and it will have exactly the same effect as encountering an edge: the robot
Further ReadingIf you're interested in the design process I went through to come up with this design, you might want to visit Slider's design page.
As always, robot design is evolutionary. If you want to see the latest thoughts on slider control mechanisms (including other people's circuit ideas), look at some of Slider's variations.