Simple BeagleBoard-xM Based Robot
In my quest to start building smarter robots, I wanted to explore some concepts using parts I had lying around. I bought a BeagleBoard-xM over a year ago for this very purpose but never got to it. When I got my CNC router though, I figured this would be the perfect first project.
At minimum I wanted this robot to have a camera (for OpenCV experiments), a “2-wheel plus caster” configuration similar to my cartographer robot, and a computer capable of running OpenCV (plus any necessary connections for controlling the motors). With the BeagleBoard-xM, I get 4 USB ports, a RS-232 port, a GPIO header, and a whole bunch of other stuff.
I went hunting through my collection of robotics parts for things I could use and ended up finding some good stuff I bought throughout the years but never used:
- pan-tilt assembly
- gripper (could be fun I guess?)
- some continuous rotation servos
- tail wheel
- 6 channel USB servo controller
- tiny USB wifi adapter
Because these things all had nice mounting holes, I didn’t have to make any weird brackets. I bought some sheets of HDPE from Amazon and designed a simple 2-layer chassis to cut on the router.
A few pictures to show the process:
I had to make a wire harness with a built in regulator to bring the 7.2v from the NiCd battery tamiya connector down to 5v at a barrel jack for the BeagleBoard-xM. The harness also provides 7.2v through the proper power connector for the servos.
For now, I just have a simple python socket server running on the BeagleBoard-xM which sends any data it receives directly to the servo controller. This allows a Processing program running on a PC to issue commands to the servo controller directly so that the robot can be driven around. The video from the camera is streamed over WiFi using Motion, which gives the user the ability to see. In the future this robot will be my testbed for object tracking experiments.