CotsBots: An Off-the-Shelf Platform for Distributed Robotics Sarah Bergbreiter and Dr. Kris Pister Berkeley Sensor and Actuator Center October 29, 2003
History of CotsBots Solar Cell Array CCRs XL CMOS IC Smart Dust (Warneke, et al. Sensors2002 ) Microrobots (Hollar, Flynn, Pister. MEMS2002 ) Add Legs Add Robot Body 1mm COTS Dust (Hill, et al. ACM OS Review 2000 )
Open-source hardware and software platform for distributed robotics Small, cheap, off-the-shelf, and modular robots Goals for CotsBots Emphasize application design software for large (> 50) robot networks Reduce startup costs to demonstrate distributed multi- robot algorithms
Similar Robot Platforms Size Cost ”Off-the-shelf” -1 Khepera II: expensive Robomote (USC): custom design Millibots (CMU): custom design Soccer Robots: custom design Pioneer: large and expensive TARGET SPACE Robomote Soccer Robots Millibots Khepera Pioneer Microrobots
CotsBots Hardware Atmel ATmega128 –4 Mhz 8-bit CPU –4KB RAM –128KB Program Memory RFM TR1000 radio –50 kb/s – ASK –Focused hardware acceleration Network programming Atmel ATmega8L –1-8MHz CPU –8KB Program Memory –1KB RAM 2 Discrete H-Bridge Circuits –Speed and Direction Control of Motors –up to 4A, 30V load 51-pin bus Mica Mote MotorBoard Kyosho Mini-Z RC Car Platform (or others…) Sensor boards available including ADXL202e, magnetometer, light, temp, sound, etc.
CotsBots Hardware: Stats Part Cost (quantity 50) RC Car/Tank $54.95 Mica Mote $125 MotorBoard $37.12 Parts $14.82 Board $6.30 Assembly $16 Total $ Cost 13cm 6cm Approximately 10 robots assembled per hour from purchased components Size Power: ~1 hour on 4 AAA batteries Speed: Over 120 cm/sec Turning Radius: +/- 30 o 80 robots built thus far ”Off-the-shelf” -1
CotsBots Software Use open-source NesC language and code provided by TinyOS group (available on SourceForge) TinyOS is an event-driven operating system useful for behavioral and FSM-type applications Try to abstract as much as possible from the application writer (developer should focus on algorithms) Remain flexible by keeping component-based design Robot Application TimerRobot Motor Packet Motor Software Motor Packet MiniZ Motor1MZServo ADC MotorBoard Software Mica Software Motor2 Radio
CotsBots Software Use open-source NesC language and code provided by TinyOS group (available on SourceForge) TinyOS is an event-driven operating system useful for behavioral and FSM-type applications Try to abstract as much as possible from the application writer (developer should focus on algorithms) Remain flexible by keeping component-based design Robot Application TimerRobot Motor Packet Motor Software Motor Packet MiniZ Motor1MZServo ADC MotorBoard Software Mica Software Motor2 Radio
CotsBots Software Use open-source NesC language and code provided by TinyOS group (available on SourceForge) TinyOS is an event-driven operating system useful for behavioral and FSM-type applications Try to abstract as much as possible from the application writer (developer should focus on algorithms) Remain flexible by keeping component-based design Robot Application TimerRobot Motor Packet Motor Software Motor Packet Tank Motor1Motor2 MotorBoard Software Mica Software Radio
Building an Application: Beep Diffusion Simple algorithm to spread robots apart Adjusting microphone gain adjusts distance robots move apart Time Slot Manager Send Msg/Beep Listen Drive Obstacle My Slot Heard Msg Heard Beep Hit Obstacle Done Driving
Building an Application: Beep Diffusion Build the component graph Write some components (blue boxes are free!) Add a sensorboard with sensors required (4kHz buzzer, mic, 2- axis accelerometer) Beep Diffusion SlotManager Acoustic Beacon Tone Sampling Robot Obstacle Radio Timer Buzzer Timer Mic Radio Timer MotorPacket UART Accelerometer Timer ADC Radio
Building an Application: Beep Diffusion Implementation 5 robots in 10ft x 10ft area 3.5 second slot time Difficulties with buzzer/tone detector hardware lead to inconsistent beep radius
Conclusions Reduced the startup costs (time and money) for designing distributed robot applications –A small, inexpensive, off-the-shelf, and modular hardware platform has been built for distributed robot applications –TinyOS provides an open-source software platform which promotes abstraction, code re-use, and flexibility –Simplified application development for simple distributed algorithms
Acknowledgements Doug Gage and DARPA/SDR, DARPA/NEST for funding Dr. David Culler and the TinyOS group Mica motes distributed by: TinyOS and CotsBots code available at: