2015 Team Description Paper
Eric Anschuetz, Kate Donahue, David Gaddy, Evelyn Park, Erik Schluntz, Sandra Schumann
RFC Cambridge
Abstract This paper illustrates advances the RFC Cambridge team made in the 2014-2015 year and describes the changes all robots will undergo for the 2015 competition. Improvements were seen in both mechanical and electrical engineering portions. Mechanical engineering subteam made two major changes. Electrical engineering subteam redesigned big parts of the circuit and focused on goals such as reliability, robustness and transparency.
Mechanical Engineering
This year the mechanical team made two important advancements. First, in order to make the robots movements more exact we decided to improve upon the encoders that are mounted on the robots motors. These encoders rotate as the motor rotates and are read by the robot and relayed back to the computer program to telling how far the robot has traveled and how fast it is moving. The problem with this system is that the encoders are not mounted on the motor exactly in the center or straight which causes inaccurate readings to be relayed to the computer.
In order to fix this we drilled a small hole into the motor shaft in which we inserted a dowel pin. We used epoxy to fix its position exactly in the center of the shaft and straight as possible. We then mounted on top if the pin an aluminum shaft that we manufactured and again secured it with epoxy. To finish it off we just press the encoder onto the shaft. One difficulty lies in the fact that the motor shaft is hardened steel, which makes it hard to machine (we use tools made from carbide).
The second advancement was the revision of the mechanism for retracting the kicker. Previously, the mechanism utilized a compression spring sandwiched between the solenoid body and a hard stop on the rear of the moving inner rod. However, the kicking force produced by our solenoids was strong enough to deform the springs, causing them to gradually lose their ability to retract the kicker fully. Incompletely retracted kickers would in turn lead to reduced kicking force, or even prevented the robots from dribbling and/or detecting the ball.
To address this issue, we switched the retraction from compression to extension, using elastic bands instead of compression springs. The bands are connected to the rear of the inner solenoid rod, via a laser-cut and thermoformed plastic mounting piece. The bands are then braced against a rigid post fixed to the base plate of the robot in the back. When the solenoid kicks, the bands stretch, but then pull the inner rod back. Because the kicker's travel length is limited, the bands are never overextended and therefore maintain their performance over time.
Electrical Engineering
This year the electronics team has done a full redesign of our electronics system. Our design goals for the new system are:
- Reliability and Robustness
- Transparency and Communication
- Improved Control
We are addressing point 1 by adding overvoltage and overcurrent protection to many parts of the circuit, in particular the motor system. In addition to hardware limits, we added sensing capabilities so that we can measure our current draw for each motor and use software to identify problems. We measure current by passing it through a very small sense resistor and amplifying the voltage drop.
Point 2 is addressed by using a Xbee wireless transmitter that is capable of two way communication. Now that we will be able to send messages back from the robots to our central computer, we will be able to quickly identify and respond to hardware malfunctions or firmware errors.
To take advantage of this capability, we aim to make the electronics able to identify and diagnose problems themselves. For instance, we can identify a burned motor or driver by comparing our commanded rotation speed with the actual speed as measured by our sensors. We can also measure our battery voltage. Burned motor or low battery notifications can be sent to the computer to allow us to call a timeout and fix the problem.
A primary goal of Point 3 is better controlling our motion. We will use specialized ICs to drive our wheel motors, and use a single microcontroller to set the speed for all 4 wheels. This will allow us to balance and compensate between different wheels. Another part of control is in our ball handling. We are designing new circuitry to let us carefully select our kicking force at the moment we kick, in order to have both fast shots, and slow passes.
Computer Science
This past year our computer science team has focused on improving the reliability, readability, and scalability of our code. The first task we accomplished to this end was recoding parts of our simulator so we could play different parts of our code against other parts of our code. Previously our simulations would only allow the same code to play itself, but with our new code we can practice against a dynamically changing opponent to more easily catch bugs and discover new strategies for use in our code. By providing this instant and direct feedback between different strategies, our team is able to quickly test multiple iterations of the code in order to find the most successful strategy to implement in our final version.
Using this technique to hone our strategy our team decided that a more aggressive offense would be more effective in competition play. Previously on offense our code would attempt to send robots to the outside lanes to attempt bounce shots. In practice, however, we found that this would often fail due to the speed of our opponents robots and inaccuracies in aiming. In order to rectify this problem, our code now evaluates positions for where to send our robots gives higher scores to the inside lanes than to the outside lanes, encouraging pick-like situations and enabling our ball carrier to gain more open shots on goal. This also has the added effect of increasing the chance that a robot on our team will get a rebound off of a block by the opposing teams goalie, and in the future may allow for more advanced and aggressive plays using our dribbler to move behind defenders and get inside shots on goal.
Finally, repeated playtesting led our team to adjust we adjusted our strategy as a whole to be more assertive with plays; we often found in testing that our code would often switch strategies at the slightest change in ball or robot position. We now use hysteresis in order to encourage our code to continue with current plays; unless ball and robot positions are quickly changing, our robots are unlikely to switch from a defensive position to an aggressive position and vice versa. By raising this hysteresis factor our robots have more time to execute plays and get in position, allowing our robots to both defend against and score more goals.