|
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.
|
|
|