THE ROBOT
We built botbot as a class project for Stanford's ME 218B course, "Smart Product Design Applications". Four-person teams were assigned with the development of a robotic platform that can retrieve foam balls from a predefined area, take them to a staging area, and launch them into a corresponding bucket. Our system interacts with the ball dispenser by pulsing IR light and it localizes within the 8’x8’ field using IR beacons. botbot queries a logistical coordination system for an active staging area using serial communication, drives to the area, characterizes the magnetic field of the staging area, and then shoots a ball into the active bucket. Each of the subsystems is described in more detail below.
Locomotion
The platform has two DC motors with encoders, as well as two weight-supporting casters. From these encoders, closed loop proportional/integral speed control of the wheels is performed. To drive to prespecified staging areas, three actions must be done sequentially: a rotation to point the robot in the direction of the desired staging area, a linear driving phase, and a final rotation to reach the desired staging area. These are performed for prespecified times, which are calculated using the geometry of the system and the desired rates for rotation and translation.
Serial Communication
botbot must communicate over a 4-wire SPI bus with the Logistic Operations Coordinator in order to determine the status of the game (e.g. which staging area to go to, which goal to shoot at, whether a goal is open or not, and whether a goal was scored) and to report frequencies in order to check in to staging areas. More information on checking into the staging areas is below under the subtitle “Magnetic Field Sensing”.
Magnetic Field Sensing
Each of the three staging areas on each side of the board are marked by magnetic fields modulating at changing frequencies. In order to open a goal to shoot a ball into, botbot must prove it is at the correct staging area. Botbot is able to sense the frequency of the magnetic field using a hall effect sensor and signal conditioning, and then it reports that detected frequency to the Logistic Operations Coordinator. After 1 correct report, the field changes frequency so it must be re-detected and reported again. After 2 correct reports in a row, botbot is successfully checked in to that staging goal area and can shoot at its corresponding goal.
Shooting
Our shooter is based off of past “ruler-flicking” designs, but it uses 3 servo motors for actuation and implements an adjustable fulcrum. A high-torque servo flicks a plastic ruler, which acts as a slapstick that launches balls. A second servo pivots a pseudo-scotch yoke with an embedded quarter inch shaft, serving as an adjustable fulcrum to enable variable launch distance and exact calibration. A third servo controls a feeder mechanism, which keeps a ball in a ready position and releases a ball into the launch area when appropriate. See our mechanical design page for several videos of the launcher.
Localization
The infrared localization module sits on a stepper motor above the rest of the robot. Two photodiodes are positioned 180 degrees apart in an enclosure. The stepper motor sweeps out 180 degrees, and the TIVA records signals captured by the photodiodes along the way. These signals provide headings to each of the beacons around the field. If at least 3 of the 4 beacons are seen by the two photodiodes, the TIVA can provide an estimate of the robot’s position and heading based on the measured signals.
Locomotion
The platform has two DC motors with encoders, as well as two weight-supporting casters. From these encoders, closed loop proportional/integral speed control of the wheels is performed. To drive to prespecified staging areas, three actions must be done sequentially: a rotation to point the robot in the direction of the desired staging area, a linear driving phase, and a final rotation to reach the desired staging area. These are performed for prespecified times, which are calculated using the geometry of the system and the desired rates for rotation and translation.
Serial Communication
botbot must communicate over a 4-wire SPI bus with the Logistic Operations Coordinator in order to determine the status of the game (e.g. which staging area to go to, which goal to shoot at, whether a goal is open or not, and whether a goal was scored) and to report frequencies in order to check in to staging areas. More information on checking into the staging areas is below under the subtitle “Magnetic Field Sensing”.
Magnetic Field Sensing
Each of the three staging areas on each side of the board are marked by magnetic fields modulating at changing frequencies. In order to open a goal to shoot a ball into, botbot must prove it is at the correct staging area. Botbot is able to sense the frequency of the magnetic field using a hall effect sensor and signal conditioning, and then it reports that detected frequency to the Logistic Operations Coordinator. After 1 correct report, the field changes frequency so it must be re-detected and reported again. After 2 correct reports in a row, botbot is successfully checked in to that staging goal area and can shoot at its corresponding goal.
Shooting
Our shooter is based off of past “ruler-flicking” designs, but it uses 3 servo motors for actuation and implements an adjustable fulcrum. A high-torque servo flicks a plastic ruler, which acts as a slapstick that launches balls. A second servo pivots a pseudo-scotch yoke with an embedded quarter inch shaft, serving as an adjustable fulcrum to enable variable launch distance and exact calibration. A third servo controls a feeder mechanism, which keeps a ball in a ready position and releases a ball into the launch area when appropriate. See our mechanical design page for several videos of the launcher.
Localization
The infrared localization module sits on a stepper motor above the rest of the robot. Two photodiodes are positioned 180 degrees apart in an enclosure. The stepper motor sweeps out 180 degrees, and the TIVA records signals captured by the photodiodes along the way. These signals provide headings to each of the beacons around the field. If at least 3 of the 4 beacons are seen by the two photodiodes, the TIVA can provide an estimate of the robot’s position and heading based on the measured signals.