Take a look around and learn about the autonomous robot we created as a part of the ME 218 Mechatronics sequence at Stanford University.
Overview
The Game
The objective of the game was to move about an area and knock the “hats” off of the goal columns in the order specified by the Target Commander device. One head-to-head round would last two minutes as the robots would race to see who could knock off their 8 hats the fastest and then return back to the starting base. The layout of the field and the columns is in the figure below. The official project description in PDF form can be found HERE.
Robot Design
Drive Train
Two Maxon Motors were used to drive the robot. To fit inside the size specifications, belts were used to offset the motors allowing for a narrower wheel base. The timing pulleys used resulted in a 2.4:1 gear ratio allowing for larger output speeds than simply using the motors alone.
Shooting Mechanism
We decided to go with a pitching machine design to shoot the Nerf balls at the hats. We reasoned that the bot could shoot a Nerf ball across the entire field and therefore would not have to move much. In order to adjust to the various distances and heights of targets, we decided to control the speed of the pitching wheel rather than adjusting the angle of departure. In the end, control for the pitching wheel was implemented with an encoder wheel in conjunction with a coin sensor. Direct drive from a high speed motor was used to drive the pitching wheel. The ball feeder mechanism employs two linear actuators spaced and sequenced appropriately for letting only one ball through at a time. The balls are held in a PVC pipe which is capable of holding approximately 16 balls, allowing for 2 balls per target.
Position Sensing
The robot has two main position sensing mechanisms. 1) Using tape sensors to find the tape line on the field. This method is used to find the tape and drive along the tape to the end of the T. Four tape sensors were actually used - three on the front end of the robot to straddle the tape, and one in the center of the robot. 2) Dead reckoning is used after the robot aligns itself with the far T. The dead reckoning functions are used in conjunction with movement functions to produce precise turning angles for aiming the bot.
Two Maxon Motors were used to drive the robot. To fit inside the size specifications, belts were used to offset the motors allowing for a narrower wheel base. The timing pulleys used resulted in a 2.4:1 gear ratio allowing for larger output speeds than simply using the motors alone.
Shooting Mechanism
We decided to go with a pitching machine design to shoot the Nerf balls at the hats. We reasoned that the bot could shoot a Nerf ball across the entire field and therefore would not have to move much. In order to adjust to the various distances and heights of targets, we decided to control the speed of the pitching wheel rather than adjusting the angle of departure. In the end, control for the pitching wheel was implemented with an encoder wheel in conjunction with a coin sensor. Direct drive from a high speed motor was used to drive the pitching wheel. The ball feeder mechanism employs two linear actuators spaced and sequenced appropriately for letting only one ball through at a time. The balls are held in a PVC pipe which is capable of holding approximately 16 balls, allowing for 2 balls per target.
Position Sensing
The robot has two main position sensing mechanisms. 1) Using tape sensors to find the tape line on the field. This method is used to find the tape and drive along the tape to the end of the T. Four tape sensors were actually used - three on the front end of the robot to straddle the tape, and one in the center of the robot. 2) Dead reckoning is used after the robot aligns itself with the far T. The dead reckoning functions are used in conjunction with movement functions to produce precise turning angles for aiming the bot.
Strategy
Since we had the capability to accurately shoot targets at long distances we could minimize our time by simply moving out to the tape line, finding the T, and rotating to the different targets. If the target was missed the first time we would shoot one last time and then wait for the next target to be assigned. We only shot two times for a couple reasons: 1) Our ball carrier held 16 balls - 2 per target and 2) we were accurate enough to where we should not have needed more than two shots. After hitting all 8 targets, the robot rotates to align itself with the home base and moves forward until it slides along the wall and reaches the home base in the corner.