Prototyping and Testing for Robot Refinement
CONTENTS
CBC-Create robot prototyping and testing
- Botguy Grabbing
- Getting the Cup containing the Orange Poms
CBC robot prototyping and testing
- Getting over the starting box PVC pipe
- Obtaining the other team’s Coupler containing a Wind Turbine
CBC-Create robot
Botguy Grabbing:
Our CBC-create’s primary purpose is to obtain Botguy and get him to our peak in order to obtain the 3X multiplier which he grants when he is in placed in the peak. However, in order to reach this point the robot must climb over the initial hurdle of actually grabbing Botguy in the first place. One of the major issues which we had overlooked in the construction of our Botguy grabbing claw was the height which it needed to be mounted at. When we tested the robot on the board we found the claw’s position would have caused it to collide with Botguy’s left wheel, rendering us incapable of grabbing him. At first we attempted to solve this problem by raising the entire claw up to a higher height, but this created other problems. More specifically, the higher claw could not get a solid grip on Botguy. Consequently, we lowered the claw and debated other solutions to this problem. In the end we decided to modify the claw design so that the section normally colliding with Botguy would be raised, thus preventing it from knocking Botguy over and making it impossible for us to score him.
Getting the Cup containing the Orange Poms:
The issue of getting the cup containing the orange poms was initially a quite tricky one. Early on in while we were testing our robots code in order to see how it would interact with the other objects on the gameboard we discovered that our robot had an unusual tendency to get the cup containing the orange poms in such a way that the poms would literally explode out across the board. Naturally we wished to prevent this waste of easy points and so we attempted to devise methods to move the cup containing the orange poms to a place where we could score them. Several proposals were designed in order to do this, though none were actually used in the end. The first plan was to use a “wall” attached to a servo to move the cup where we desired it. This method was relatively effective, but it also a waste of a servo and not as useful as our eventual solution. Another potential solution proposed was to build a net which could catch the poms as they flew out of the cup. This idea was abandoned as it was too impractical and could not be easily tested. A large consensus of our group decided that we should simply ignore the cup and we continued to test our code while ignoring what occurred. Ironically this led to our solution as while we were moving our robot out of the starting box backwards to escape size restraints we found that we also pushed the cup containing the orange poms into a position where the create could obtain them with no hassle. Thus we unintentionally solved a problem which we had decided had no solution, demonstrating the near limitless power of how accidents can fix seemingly impossible problems.
CBC robot
Getting over the starting box pipe:
One of the unique features of our CBC is that it drives itself over the PVC pipe in order to get to the other team's hill and take their points to our side. In order to do this we decided to utilize a raised platform that could lift the CBC to height where it could drive over the starting box PVC pipe. However, as we began running the CBC on the board we found out that our platform was actually larger than the starting box. We fixed this easily by bending the metal section of the platform into the starting box. This was a relatively minor issue when compared to the more serious problems which ensued as we continued testing how the robot could move itself off the platform. By running basic code telling the robot to move backwards we could see what would happen when it crossed over the PVC pipe. Each time the robot went over the PVC pipe we discovered we could not easily figure out our robots position. This was a major problem as it would be very difficult to program the robot’s behavior without knowing its position on the gameboard. In order to solve this issue we tested using a variety of sensors to determine our position, but we had no success in this aspect. We then tested a more basic solution by having the robot align itself by backing into the PVC pipes on the gameboard. This method worked considerably better and enabled us to ensure that the robot was in a set position after crossing the PVC pipe during every test.
Obtaining the other team’s Coupler containing a Wind Turbine:
The first object we have attempted to obtain with our CBC-Robot is the coupler which contains the other team’s third wind turbine. Using the code written to perform our previous tests on getting the CBC across the starting box pipe, we extended the code to get the CBC to the coupler containing the Wind Turbine. Our next step was to utilize the sweeper style arm on our CBC to hold the coupler in place to keep it from moving. This was where we came across a frustrating problem. We found that the arm would close too fast, knocking the coupler out of our grasp and thus losing it. If we had been using a motor to move the arm the fix would have been simple, but we were using a servo to do so as all of our motors were already in use. Thus we ended up testing moving the servo in increments, making the servo move at a slower pace and thus not send the coupler flying. To test the size of increments needed we wrote a simple function which would move the servo in increments and placed the coupler in sweeper arm of our CBC, allowing us to find the increments needed to obtain the coupler successfully without having to have the robot drive to where the coupler was on the gameboard. Overall the mechanical design of the robot was not changed at all during the course of this, but we did end up making a significant change to our code by making the function for closing our sweeper arm use increments instead of simply moving directly to the position needed.