The Competition
Our team designed and built a robot in 3.5 weeks to compete in a git-inspired game. The playing field features two end zones (the local and remote repos), three branches connecting these repos, pushable commits in each branch that start equidistant from each repo, and pulsing IR beacons at the 4 corners of the field for localization. Whoever has the most area on their side of the commits after 2 min and 18 sec wins. A team can interact with digital inputs on its robot when it has stopped in its own repo.
|
Our Robot
These are the capabilities of our robot, which are shown in the following live competition round.
|
Live competition round with our Commitment Issues bot on the left.
|
Making it Reliable
To make our robot reliable, we focused on simplifying our design and aggressively reducing noise.
- We chose to use fewer sensors than most teams -- we did not have ultrasonic, LiDAR, or opto-reflective tape sensors. All we used were limit switches for alignment via collision and wheel encoders for achieving desired speeds and distances. By focusing on achieving very low false positive and false negative measurements on fewer sensors, we could accurately measure distance traveled via wheel encoder pulse counts. Achieving good measurements required reducing inductive noise with more current draw in signal wires, reducing timer rollover frequency, avoiding timer rollover update race conditions, mounting hall effect sensors close to the magnets on the motor shaft, and ignoring very short periods.
Reduced error in measuring encoder periods due to noise in the circuit ⚡.
Reduced error in measuring encoder periods due to software ⚒️.
- Our left motor consistently had 2-3x more variation in speed than our right motor with PI control. This led us to introduce separate gains for both motors, and separate gains at high and low speeds. After replacing our left motor, we noticed our shaft coupler had a slight slant to it that applied a small torque to the motor shaft during rotation. Replacing this coupler the day before the competition made the left motor perform equally well to the right motor with a single set of the same gains on both motors for all speeds.
Root caused our inconsistent PI control to this slanted shaft coupler.
- Originally, we geared up our robot to achieve higher speeds on the playing field. We noticed give in our gears and slowness aligning our gears every time we modified our hardware, so earlier on we redesigned our chassis to use no gears. Without gearing, we could achieve a top speed of 220 RPM and never needed to go beyond 175 RPM, making the additional speed that gearing would've given unnecessary for us.