Vision
provided by

Hardware and Software Used on Pi Robot and Pepé Le Bôt

Pi Robot uses an onboard mini-ITX motherboard running Windows XP. The sensor inputs and drive motors are controlled by the Serializer microcontroller made by the Robotics Connection. The Serializer connects to the mini-ITX over USB. This is a really nice controller if you work in .Net languages (C#, VB.NET, etc) or Visual C++.  The drive motors (7.2V Gearhead) are also from Robotics Connection and have a superb integrated wheel encoder that comes with custom connectors for the Serializer.  The servos on the pan-and-tilt head and the arms are HiTec 475-HB and I control them using the SSC-32 controller from Lynxmotion.  The SSC-32 is one of the few servo controllers that has speed control and it has the ability to move groups of servos as a unit so they start and finish the movement at the same time. The video camera on Pi Robot is the Philips SPC-1300NC which can process up to 90 frames per second which is very useful for fast object tracking.

The smaller robot (Peppy) also uses a Serializer microcontroller for sensors and drive motors.  But there is no onboard CPU.  Instead, I use the Bluetooth adapter for the Serializer and run the control program on my desktop PC or a laptop.  This allows for faster development since I don't have to continually download code changes to the robot to test them out.  It also means the robot is smaller and can use a lighter battery. Instead of the SSC-32 and HiTec servos, Peppy uses Dynamixel AX-12+ servos from Robotis and are controlled through the Robotis CM-5 microcontroller. The CM-5 communicates back to the desktop PC using an RS-232 to Bluetooth adapter. Peppy uses a wireless video camera, the D-Link 920. This camera is capable of 30 frames per second and seems to work well with a Linksys 802.11g router.

Both Pi and Peppy use a few other common components such as sonar and 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 7.2V NiMH batteries from All-Battery.com.


Software

The code for both Pi and Peppy is written in C# using Visual Studio 2005.  I have no particular attachment to C# or VS but find them easy to use. For vision processing I am using the amazing RoboRealm package which comes with a 30-day free trial and is only $89 to buy. For the neural network routines, I am 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. The Dynamixel servos are controlled using the open source Dynamixel libraries from Forest Moon Productions.