Vision
provided by

Hardware and Software Used on Pi Robot and Peppy

In earlier videos, 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 (formerly Peppy but now the new Pi as of April 17, 2010) also uses a Serializer microcontroller for sensors and drive motors.  At the moment, there is no onboard CPU.  Instead, I use either the Bluetooth or USB adapter for the Serializer and the control program is run 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, the new Pi uses Dynamixel AX-12+ servos from Robotis (purchased from Trossen Robotics) that are controlled through the USB2Dynamixel controller (purchased from CrustCrawler Robotics). The new Pi 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 robots use aluminum framing 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. Both robots 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 Microsoft's 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.