As with any good robot base, we have the all important motor power switch and a handle!
Step 1: Materials
We also used the Caster Wheel Kit from Parallax (item #28971). We strongly prefer robots with two drive wheels and a caster over skid steering robots! In our experience, skid steering (4 powered wheel) robots have trouble turning on some rugs and patios.
For the motor controls, we used two of the Parallax HB-25 Motor Controllers. (item #29144)
For the Servo controller, we used the Parallax Servo Controller (USB). (item #28823)
For the rest, we used a 12"x10" piece of 1/2" plywood, 8" of 1x3 pine, and some screws and bolts. The main ones were 2.5" Flat Head 1/4"x20 bolts. The flat head bolts were used throughout to keep the surface of the robot flat.
Step 2: Building the Base
The flat part of the base was made from 1/2" plywood - we used 12" wide and 10" long to fit our mini-notebooks, but the size can really be anything here. We drilled the 1/4" holes to match the standoff and Wheel Kits - 1/2" from the side and 2" apart as before. The leading edge matched the standoff, so the tires stick out just a bit. We did that to have them hit the wall before the base, but that's not too big a deal. On the top of the board, we used a counter-sink bit to make room for the flat head of the 1/4"x20 bolts (2.5" long).
The bolts need to be actually a bit shorter than 2.5" to fit just right, so we just cut about 1/4" off the ends with a Dremel tool. If you use 3/4" plywood, they might fit without being cut off.
Once that was complete, we bolted the Wheel and Motor Kits to the base.
Step 3: Adding the Caster Wheel
The only change to the kit was that we extended the shaft to make the base level. For our setup, we made a new shaft from 1/4" aluminum rod that was 1 3/4" longer than the one with the kit. We used a Dremel tool to make a notch in our newer longer shaft to match the one in the kit.
Step 4: Motor Controllers, Batteries and Switches
To mount the motors to the HB-25s, we cut the motor wires to length and used crimped connectors. We left some slack in the motor wires, but not so much that we needed zip ties to hold them. Once we crimped the connectors on, we soldered them too - hate to have a loose connection there! :-)
For the batteries, we were in a hurry, and used NiMH C cells. Realy anything to get you to 12v is fine. We've used Lead Acid Gel cells, but those seem to fail after a few years since we don't manage them as well as we could, and having standard cells allows us to use alkalines as a backup before events and demos!
Yes, there are better C cell holders - what can we say? We were busy, and Radio Shack was close. :-)
We added a lighted power switch. Again, mounted below the base to keep the top clear, and we extended it just past the back to make is easier to get to. We'll be adding a handle, so backing up and hitting the switch is less likely.
We added second switch and battery pack for the servo control board, but the USB power may be enough for the HB-25s since they don't draw much power on the signal side.
The switch brackets were just made from some angle aluminum we had around.
Step 5: Servo Control and Handle
Note that for now, we are not using the motor controllers on the Wheel and Motor Kits. The controllers are very nice, but for RoboRealm, we are using vision to drive the robot right now and don't need them. We may add that capability in the future, and for any other kind of control, using the controllers would make it easy to have the robot drive in a straight line etc.
Every robot needs a handle!
For ours, we bent some scrap aluminum and screwed it to the back. We drilled pilot holes since screwing into the side of 1/2 plywood is usually a mess. We're sure this can be done better! :-)
Step 6: Computing
The notebook PC used is an MSI-Winbook that fits very nicely on top of the robotic base. We chose this laptop due to its small size and low cost (~$350) The laptop running RoboRealm is connected to the Parallax Servo Controller via USB to control the motor movements. Luckily the MSI has 3 USB ports so a USB hub is not needed in this platform. Note that the MSI current runs on its own battery. It would be possible to merge the two power systems together but for convenience and portability they were left separated.
Step 7: Software
The images below show the two camera images as they look out towards a coke can and a DrPepper can. You can see the focal difference between the two images and also the vertical disparity between the two cameras despite being mounted very close to each other. This disparity can be reduced by using a prism to split a single view into two views for two cameras but we found the quick method of using two webcams close to each other to be sufficient.
Note on the left side of the image the close Coke can is out of focus and the far DrPepper can is in focus. In the right side image the situation is reverse. If you look at the edges of this image you can see the edge strengths reflect the focus of the object. The white lines signal a higher edge transition which means the object is more in focus. The bluer lines signal a weaker response.
Each image is broken into 3 vertical sections. Left, middle and right. We use these areas to determine if an obstacle exists in those areas and if so steer the robot away. These bands are highlighted back into one side of the original image so that we can verify their correctness. The lighter areas in these images signal that the object is close. This tells the robot to move away from that direction.
The downside to this technique is that objects need texture. From the next image we can see two red blocks which are placed in the same position as the cans but they do not respond to this technique. The issue is that the red blocks do not have any internal texture. This feature requirement is similar to that needed for stereo and optical flow techniques.
Step 8: Thanks!
You can download RoboRealm and try experimenting with Machine Vision by going to RoboRealm <http://www.roborealm.com/>.
Have a nice day!
The RoboRealm Team.
Vision for Machines
and TeleToyland - control real robots from the web.