Hardware and Software Used on Pi Robot

(Updated Sept 22, 2010)

The sensor inputs and drive motors on Pi Robot are controlled by the Serializer microcontroller made by the Robotics Connection. The Serializer itself is essentially just an input-output device and must be connected to a computer to do useful processing. This can be done using either a USB cable to an onboard computer or wirelessly using either Bluetooth or Xbee radios. The Serializer is a really nice controller if you work in .Net languages (C#, VB.NET, etc) or Visual C++.  And recently I have released a Python library for the Serializer so that you can use the board on Windows, Linux or MacOS X.

Pi's drive motors are 7.2V Gearhead motors from Robotics Connection that come with integrated quadrature wheel encoders and custom connectors for the Serializer.  The servos on the pan-and-tilt head and the arms are Dynamixel AX-12+ servos from Robotis (purchased from Trossen Robotics) and I control them using the ArbotiX controller from Vanadium Labs.  The video camera on Pi Robot is a 802.11g wireless D-Link 920. This camera is capable of 30 frames per second and seems to work well with a Linksys router.

Pi' base frame is built from the light weight aluminum framing kit from Vex Robotics. The green wheels on Pi are also from Vex and the white wheels on the old Pi were taken from an "ab roller" exercise toy. Pi also uses a few other common components such as Ping sonar and Sharp IR range sensors, light sensors and force sensors. They also utilize the 5V regulator from Robotics Connection, current and voltage sensors from Phidgets, a Lithium Ion Portable Power Station from Battery Geeks and 8.4V NiMH batteries from All-Battery.com.

Pi's new omnidirectional vision system uses a custom made hyperbolic mirror mounted over a Philips SPC-1300NC USB webcam that can process up to 90 frames per second. The mirror is mounted on top of a acrylic tube obtained from McMaster-Carr and the rest of the mounting is made from hand cut plastic from Tap Plastics.

Software

The code for both Pi and Peppy was originally written in C# using Microsoft's Visual Studio 2005 running on Windows XP.  Recently I began porting the code to Python so that (a) I could run it on either Windows or Linux and (b) so that I could eventually use the Robot Operating System (ROS) from Willow Garage. For vision processing I am using the amazing RoboRealm package which comes with a 30-day free trial and is only $89 to buy. However, since RoboRealm only runs on Windows, I will have to gradually shift to OpenCV for cross-platform vision processing. In the C#-days, the neural network routines were done using the most excellent open source Aforge.Net package.  The histogram analysis was done using EmguCV which provides a .Net version of the OpenCV vision package. And the Dynamixel servos were controlled using the open source Dynamixel libraries from Forest Moon Productions. However, these will now be replaced with PyBrain for neural networks, OpenCV for vision, and the ArbotiX Python driver for Dynamixel control.