Mechanical Design

Overall Design

The overall design of our robot is a cube shaped chassis driven by two wheels. The cube was chosen to maximize space in the maximum allowable 12”x12”x12” volume. The ball shooter is a vertically oriented foam wheel driven by a brushless motor. The shooter is adjustable (rotates left/right and up/down) and hangs from the top of the robot. The ball loader/dispenser mechanism is a 13-space revolver that rotates via stepper motor each time a ball is fired. Electronics for the robot are primarily placed on the base of the robot near the drive train.

Before construction began, parts were chosen for the drive train and shooter. Every part was carefully modeled in SolidWorks so that the custom-fabricated parts would fit well with the existing parts. Then, the robot's parts were designed in SolidWorks as well. Several assemblies were created to check for interferences and proper fit of the components. The parts were manufactured from Duron using a laser cutter, though some later parts were made using a 3D printer.

3 view and isometric drawing of the entire robot with sensors, batteries, and some electronics added.

Subsystems

Drive Train

The robot’s drive train consists of two independent motors, each driving a wheel, and two casters. These are arranged in a “plus” configuration, so that the casters are centered at the front and rear of the robot, and the wheels are centered along the sides. The wheels are scooter wheels, and are fixed to a ¼” axle with an adapter. The axle is not directly connected to its respective motor. On either side of the wheel, the axle is supported by a ball bearing in a kind of pillow block setup. Then, the axle on which the wheel is attached is connected to the motor with a spider coupler. Since the wheel axle was designed to be perfectly inline with the motor axle, the spider coupler wasn’t entirely necessary, but it was added as a precaution to protect the motor.

The drive train was designed to be able to be disassembled if needed (it was). This was done by making vertical slots in the motor and axles mounts so the parts could be lifted in and out of position. To fix them in place, the motor would be screwed in and the ball bearings would be pressed into position. Once the drive train was finalized, the bearings were glued into place.

Isometric drawing of the drive train subsystem. Color was removed from the Duron parts for easier viewing.

Shooter

It was determined at the start that the ball shooter should be adjustable to accommodate the team’s strategy. The plan was that the robot would align itself by wedging into the corner created by the wall along the team’s own social media sites and the small protruding divider. If the shooter faced directly out (perpendicularly) from one of the robot’s faces, it would not be able to hit the target. Additionally, having the shooter tilt up and down would help with shot distance calibration. To accomplish this, the shooter was designed like a turret that could pan and tilt. The axle was a small bolt, and a 90 degree arc concentric to the axle was made so that additional bolts could be installed between adjacent pieced and screwed tightly to lock pieces in place. This allowed the shooter to rotate 45 degrees left or right, and up 45 degrees from horizontal. To ensure the shooter had enough power, a brushless quadcopter motor with an electronic speed controller was used to power it. A 3” foam wheel was attached directly to motor and oriented vertically. Looking from the side, the shooter has an elliptical shape in the back so the ball can enter from the top and roll down, gradually approaching the foam wheel along a “track”. This track is a slot whose width is just slightly larger than the diameter of the ball. This is to ensure that the ball does not get stuck or slow down significantly due to friction but still travels along a straight and controlled path. The bottom of the track was made of curved foam board supported by cross supports. At the point directly below the wheel’s axle, the shooter track straightens out tangentially to the ball’s path, ensuring a straight shot. The distance between the foam wheel and the bottom of the track was set to be exactly the diameter the diameter of the ball. We knew that this wouldn’t work, because the ball would need to be compressed as it was shot by the wheel, but we didn’t know exactly how severe the compression should be. Therefore, the plan was to make the opening bigger than needed, and then slowly build up a layer of tape until we were satisfied with the results.

3 view and isometric drawing of the shooter subsystem. Notice the curved slots to allow the shooter to pan left and right and tilt upward.

Loader/Dispenser

Our strategy did not include reloading, which meant that each shot had to count. Therefore, we did not want to go with the “spray and pray”, firing all at once strategy. We decided that the balls should be fired one at a time, so we required a loading/dispensing mechanism capable of this. We used a horizontal revolving design with 13 spaces to accomplish this. Since the robot was allowed to carry 12 balls, we allocated 12 spots for the balls plus one blank space (to prevent firing at the beginning) for the total of 13. The revolver was chosen because it would be easy to rotate using a stepper motor, and it didn’t take up much vertical space. This also meant that the shooter could be mounted higher up on the robot, which freed up space on the base. The balls rest directly on top of the robot and are moved using the revolver. To fire, the revolver rotates 1/13 of a revolution, and a ball moves directly over a hole feeding to the shooter. While the stepper motor would be very accurate when rotating into position, this part absolutely could not fail to dispense a ball. With so few shots available, and the possibility of a leftover ball affecting other subsequent shots, it had to work every time. That is why we designed a 13 position geneva drive to operate the revolver. With this mechanism, the revolver is (essentially) incapable of moving to a position that cannot properly dispense a ball. The stepper motor also did not have to be so accurate, as an approximate revolution would translate to an exact 1/13 revolution of the revolver itself. The circumference of the loader was contoured to the outlines of the nerf balls, giving a “wavy” perimeter. This was done so that each time the revolver advanced, the protruding part of the revolver would hit a limit switch and turn off the stepper motor. Ultimately though, we did not use the switch since the stepper/revolver combination worked well enough without it.

3 view and isometric drawing of the dispenser subsystem. Notice the Geneva drive in the center, the contours around the revolving ball loader, and the tabs around the perimeter of the robot's top.

Construction Overview

Tabs

The robot was designed to be easily and quickly constructed. To aid with this, adjacent, perpendicular components fit together using tabs to ensure proper alignment. The pieces were primarily glued together using super glue. Removable or adjustable pieces were attached with M3 bolts.

Mounting Holes

In the base of the robot, holes were added to mount the Arduino and L298N with bolts. Other useful features were added including an access port for the USB cable, holes for the power switches, and cutouts to accommodate the IR mast (that was ultimately unused).

Modifications/Iterations

Size Reduction

Originally, the robot was designed to be exactly 12” x 12” x 12” (with the nerf balls loaded on top) to maximize internal volume. However, given the possibility that the checkoff box would not be exactly 12” in each dimension and the potential need to add later modifications, the dimensions were cut down to 11.8” x 11.8” just to be safe.

Rollers

A problem we encountered during testing was frequently hitting the corner of the robot against a wall during alignment and getting stuck. The friction was too much for the robot to easily overcome and still maintain fine alignment. To fix this, the bottom corners of the robot’s sides were removed using a dremel. A small lip was left just under the base. Then, skate wheel bearings were added to the corners using a 3D printed adapter that attaches to the underside of the base and aligns with the overhang from the sides. The bearings contacted the wall instead of the sharp corner, and thus the robot was much more easily able to glance off of and drive against the playing field walls.

Spacers

A small problem we found with the drivetrain was the tendency for the spider couplers to come undone after extended use. This was a side effect of the ability for the wheels to be removed. To remedy this, small spacers were added on the wheels’ axles to prevent shifting. These were made using a 3D printer and easily snapped onto the axle.

Isometric drawings of the 3D printed axle spacer and roller mount.