Goals and Constraints
This year, Station 97 has been tasked with developing a robot that is capable of firefighting and rescue operations. The robot must maneuver around a 24’ x 24’ field, while saving Manny the Mannequin, removing chemical drums from danger zones, and putting out the fire in the building. All of these tasks must be completed within a 3-minute match. Before the design process began, our team leaders went through and explained the rules of the game to the entire team. After reviewing the field, the group moved on to deciding upon the specific goals we would prioritize.
Our first step in the design process was to select the goals that we wanted to accomplish in this year’s challenge, Crossfire. The identification of the goals at hand came directly from the provided game material. So, the first step in finding out what we needed to accomplish lay in the rules for the year’s game. As such we covered the rules as a team discussing the various objectives of the game such as saving Manny, removing chemical drums, and putting out the fires.
After establishing the goals of the game itself it was necessary to establish the constraints which we needed to work within as per the new year’s rules. Some examples of which include: the dimensions which the robot must fit in(24”x24”x24”) and the re-inclusion of materials from years past such as the bicycle inner tube this year.
We analyzed the difficulty and value of each individual mission on the field and assembled the results side by side in a spreadsheet creating the raw desirability of the mission based on those two factors. With cost/benefit analysis we determined which missions were most efficient in terms of difficulty and possible points to be earned. We ultimately decided that it was most effective to attempt to rescue Manny the mannequin and retrieve the barrels. Putting out the fire (shooting), takes too long to do and did not score enough points to be an effective use of time relegating it to a lower priority.
After evaluating what the most desirable missions were, we decided on a path of travel for the robot that would maximize our efficiency in time and points per second.
Our team’s method of brainstorming was to gather in a room following the game reveal at kickoff. We discussed several different ideas such as the different types of manipulators to get the game objects such as Manny and the Chemical Drums. After deciding that Manny and the drums were the most effective means of achieving the maximum number of points during the game, we brainstormed on the most efficient mechanisms of scoring said objects in an open discussion.
After narrowing down the number of possible designs on the first day of brainstorming, we discussed the designs of the scoring mechanisms further. We knew that because of the similarity of the Manny Challenge and the Chemical Drum Challenge that we could design one mechanism to accomplish both tasks. After deciding on a type of mechanism to pick up Manny and the drums (a forklift) we had to brainstorm what kind of mechanism we would use to move the forklift, this among others had to be finalized.
During the design finalization many alternatives had to be considered before settling on any final choice. To decide between these many options a pro-con list was assembled for all of the various ideas of the individual components such as using a forklift or a claw or a plow for Manny, seen to the left. This system allowed the choices to be objectively weighed against their peers before choosing an optimal feature.
Luigi was carefully designed and manufactured to fit the BEST game, Crossfire. Our BEST robot contains a servo motor for the forklift design, serving as a lifting mechanism for the plastic plate to lift up Manny the Manikin along with the chemical drums. A single small motor was also used for the pulling the floor mechanism up and down. Two large motors were used for the drivetrain allowing the robot to quickly move around the field. This design was built to pick up Manny the Manikin and the three chemical drums using a single effective mechanism with a fast and robust drivetrain. After testing, renovations were added to the robot including a claw grabbing system on the forklift to secure the lifting of Manny and the chemical cans.
The drivetrain of Luigi is built from a rectangle shape. In the original base holes were added to the sides for the two wooden wheels and an opening in the front was also cut to
make way for the forklift mechanism. However in the new base (above) there is no cutout for the forklift as it has a shorter design while also widening the base to provide new space for other implements. The base is made to hold the amount of varying weight within the chemical drums and Manny the Mannequin while going at a quick pace.
The wheels were designed to be large in order to cover a ground quickly and compensate for the low speed of the BEST large motors. The wheels were initially cut out of wood, but also have a plastic covering. These coverings were designed to clamp the bicycle tubing we wrapped around the outside face for better traction on the field. The wheels also had to have motor mounts, which were bent to be attached to the base of the robot. The wheels attach to the motors through specially designed wheel mounts, in which two metal pieces clamp on a center hole that fits the shaft of the large motors. Following the first competition the wheels were recreated with a larger diameter following the same design to increase speed.
The mechanism used on Luigi is a forklift design, composed of a metal rod used to push the Chemical Drums and the Manikin off. Our initial prototype was made out of wood as you can see in the picture above. This uses a servo motor in order to move Manny the Manikin and the Chemical Drums off the plate. Another component of the robot is the Igus Linear Sliders that also help move the forklift body up and down in order to be lifted from the ground all the way to the top of the Containment Area. This is moved up and down using a small motor that pulls a string from the forklift base up and down around a plastic plate that holds the string in a higher position to maximize the height the Manikin and Chemical Drums can reach.
Following the first competition, a shooter was deemed necessary for the team’s ability to be successful in the South’s BEST competition. While the design is still variable and being modified, the style will be an inaccurate launcher to spray the golf balls towards the fire. The shooter itself is a rectangular container held by a handle to hold the water necessary to extinguish the fire. The shooter is held by the tension of a bungee cord in order to exert the power necessary for the shooter to be launched. The shooter is finally released by a rod holding back the shooter when a servo is activated to move the rod out of the way so the shooter can actuate. A guard is necessary to stop the shooter so the water can fly toward the building.
Software Design is a fundamental aspect of this year’s robot. It encompasses the communications between the VEX Joystick, VEX Cortex Microcontroller, motors, and servos. As a result, the programming team adopted an iterative process that incorporated 4 steps. First, the programming team worked with the build team in order to determine functions the robot needed to complete. Afterwards, the programmers mapped out the general flow of the program and conversed with the drive team to find the best system for control mapping. Then, the programming team implemented the agreed upon functionality by breaking up the code into modules denoted by the header comments. Finally, the team tested the code both with the finished bot as well as the built-in Simulink simulation suite. If there were errors, programmers went back to step 3 and continued iterating until the issues were fixed for competition. The team employed GitHub in order to track changes in the code base and gain in-depth version control. Any previous versions could easily be referenced and even placed in a separate branch in order to allow for the development of different ideas. This meant that the code had an up-to-date release schedule.
The drivetrain is the most fundamental features of the robot. It operates utilizing a tank drive configuration where the left joystick on the controller controls the left wheels while the right joystick on the controller controls the right wheels. This gives us a straightforward program as well as an intuitive system for our drivers to precisely maneuver the robot. For example, this intuitive systems allows our drivers to quickly and accurately move through to Manny and the cans which would then be picked up by the claw.
The Servo code operates such that if the button designed to activate this feature is pressed once, the servo will move to one position. If that same button is pressed again, the servo will move to an alternate position. This functionality was mainly executed with the latch block. The switch block allows the driver to control the position of the servos by locking the digital output for every rising edge transition. In other words, when the button is pressed, the block locks the digital output at one. When the button is released, the digital output is restored to 0. This switch block is important, because it allows the driver to complete the tasks of the game more efficiently. For example, when the robot is rescuing Manny, the driver can focus mainly on using his or her fingers to control the drivetrain of the robot, and the claw can move as needed and secure the cans and Manny on the forklift. There are two motors for the two claws that come down on the forklift to secure Manny and the cans.
This is finalized version of the Fork Lift pulley system which adds two different buttons in order to produce the final motor output. Because the buttons are boolean digital inputs, there are only three possible motor speeds of 127, 0, and -127 (0 is the output if both or neither of the buttons are pushed down). The positive 127 value, generated from the upper right bumper button, spins the motor so that the fork lift is raised upward. The down bumper does the opposite, spinning the motor in reverse and lowering the fork lift. If neither buttons are being pushed and the value is zero, the motor is static and holds its position.