About the Bot
Theodore Roosebot, or more affectionately, Teddy, is an autonomous robot built by a team of four Mechanical Engineering students in Stanford's Mechatronics (218B) course. Teddy is comprised of 3 major systems: electrical, software, and mechanical. Teddy integrates all of these components in order to drive and align himself in different orientations (dual-motor drive using brushed DC motors), locate himself (by following a current-carrying wire and sensing magnetic frequencies), and shoot balls (using a flywheel and crank-slider mechanism).
Game Play Teddy was built to navigate a "construction zone" (the 8'x8' playing field shown below) in order to "deliver construction supplies" (nerf balls) to "active construction areas (5-gallon buckets) from staging areas". Construction activities were managed by a Logistics Operations Coordinator (LOC), a remote microcontroller, that communicated with Teddy via XBee radio. In order to deliver the materials, Teddy had to navigate to the correct "active" staging area and correctly identify and transmit 2 different magnetic frequencies measured from coils of wire below each area. He then had to align to the correct bucket and deliver the materials (nerf ball) into the bucket. Upon making a shot, Teddy was given a new active location for checking in and shooting. Teddy started each construction cycle (lasting 2 minutes and 18 seconds) with 5 balls. However, if he ran out, he could navigate to the reloading area to request more materials by flashing his IR beacon. |
Electrical
The electrical system was centered around the TI (Texas Instruments) TIVA Launchpad microcontroller, which communicated with the LOC via SPI (Serial Peripheral Interface) communication protocol to XBee, processed analog and digital inputs, provided PWM and digital DC outputs, and provided computational power for processing data from its input pins. Check out the Electrical page for circuit, TIVA pinout, and signal conditioning information.
Software
The software was built upon an event-driven framework to mitigate the use of blocking code. To design the software, we developed an extensive hierarchical state machine (HSM), which distilled all of the required sensing, movement, and responses into a set of actionable events and the related services. A full listing of source code and the HSM chart can be found on the Software page.
Mechanical
Teddy's body was built from laser-cut Duron paneling, drive components, fasteners, and adhesives. The main mechanical subsystems included a brushed DC motor-based drivetrain, a chassis, a ball shooter, and a ball loader. The Mechanical page include drawings, images, and more information on the mechanical details.
The electrical system was centered around the TI (Texas Instruments) TIVA Launchpad microcontroller, which communicated with the LOC via SPI (Serial Peripheral Interface) communication protocol to XBee, processed analog and digital inputs, provided PWM and digital DC outputs, and provided computational power for processing data from its input pins. Check out the Electrical page for circuit, TIVA pinout, and signal conditioning information.
Software
The software was built upon an event-driven framework to mitigate the use of blocking code. To design the software, we developed an extensive hierarchical state machine (HSM), which distilled all of the required sensing, movement, and responses into a set of actionable events and the related services. A full listing of source code and the HSM chart can be found on the Software page.
Mechanical
Teddy's body was built from laser-cut Duron paneling, drive components, fasteners, and adhesives. The main mechanical subsystems included a brushed DC motor-based drivetrain, a chassis, a ball shooter, and a ball loader. The Mechanical page include drawings, images, and more information on the mechanical details.