Bluetooth and PAN
Bluetooth is a simple low-power wireless specification used by the Gumstix computers. Among other things, Bluetooth is capable of creating small TCP/IP networks over a Bluetooth protocol called PAN. Bluetooth is not fast, but it works.
PAN more or less works like 802.11 does: you connect up to 7 Bluetooth devices to a PAN access point. Note we said 7: if you have more robots you'll need more access points. Unfortunately these access points will conflict with one another, creating significantly slower networks. Thankfully, Bluetooth is a spectrum-hopping protocol, meaning that multiple access points will only occasionally conflict with one another, so the conflicts are not as bad as they could be. Bluetooth also has as limited range: the bots work best in a 50 foot radius circle with the access point at the center.
A more recent wireless spec that's emerging is called Zigbee.
More info:
I2C and SMBus
I2C is a 5V, 2-wire, synchronous, multi-master serial bus created by Phillips Electronics. It is used on many types of microprocessors for interfacing with other integrated circuits. Various modes allow 100kbps, 400bps, and 1mbps operation. I2C has four wires: power, ground, SDA (data) and SCL (the "clock"). Two pullup resistors connect SDA and SCL with power. SMBus is a variant of I2C.
You can think of I2C (or IIC) as "USB for robots". It typically connects a master with up to 127 slaves. Masters send data to slaves and initiate data requests from slaves. We are using I2C to drive the Acroname Brainstem from the Gumstix; but other I2C devices could be similarly connected. Devices on the I2C bus are assigned a 7-bit address which uniquely identifies each device. It's possible for different devices to assume "master" status -- indeed, the Gumstix must allow the Brainstem to assume master status temporarily to fetch data from it (don't ask -- an absurd Brainstem design flaw).
More info:
Servos
Servos are motor devices which are designed to turn to a specific angle in response to an incoming signal (in the form of a square wave). Servos can usually turn between -90 and +90 degrees, and the angle depends on the duty cycle of the square wave (how long it is "up"). We use servos to tilt the camera and to move the gripper.
An internal potentiometer attached to the servo's geartrain tells it at what angle it's turning. The speed at which a servo turns is proportional to how far it presently is from its desired angle. This makes possible the use of servos as regular motors: replace the potentiometer with a fixed-value resistor so the servo always thinks it's at a certain location no matter how much it turns. Also, remove limits on the servo so it can spin freely 360 degrees. Now the angle difference you specify translates into how fast the servo turns. We use servos pre-modified in this manner for wheel motors.
More info:
IR Range Sensors
IR range sensors use an infa-red beam to determine distance to an object using an emitter and receiver. The emitter emits a short IR pulse which is either reflected by an object, or continues into space. Any reflected waves are picked up by the receiver, and form a triangle with the sensor and the object. The receiver contains a very precise lens and CCD element which is used to determine the angles of the triangle. Using these angle, the distance to the object is determined. Due to sensor's design, each sensor has a minimum and maximum range at which it can detect objects.
More info: