The Story of Our robot, "Sir Gonzalez"
Sir Gonzalez was born with a single goal: to be the meanest robot out there. The plan was for him to knock off the opponent's head before the opponent knocked his head off. Weighing in at less than ten pounds, he featured a pair of drive motors, a ball shooter and a lance mounted on a turret. He was powered by a 18.5V, 1500mAh LiPo battery and his brains consisted of a single HCS12e128 microcontroller. Here we tell the story of the birth, growth and ultimate triumph of Sir Gonzalez.
Conception
In order to arrive at the Sir Gonzalez concept, The Royal Order of King Arthur's Homies for the Abolition of the Global Variable - our team - spent the first week of the project playing out scenarios for our robot. We considered a robot that would shoot balls and avoid contact ('the Archer") and a robot that would track the other robot and repeatedly hit it ("Sir Lance-a-lot"). We physically stood up and acted the part of robots - and every time that we put a robot like Sir Gonzalez on the field, it would win. After much agonizing, we decided that the only robot we could build was one that went directly for the other robot's head.
Initial Design
With this strategy set, we knew that we had to knock off the other robot's head. The initial design took two forms: the mechanical and the systems. The mechanical design focused on aggressively shrinking the robot into a package that would give us the longest reach in the class. After dozens of hours of Solidworks time, we crammed an entire robot into an 8" diameter - leaving a lance that extended about two inches longer than that of any other robot. Meanwhile, the systems design focused on developing a robust architecture that would handle corner cases and the dual requirement of responding to gameplay and constantly tracking the other robot.
Development
Two weeks after our first meeting, we assembled our first robot. As-built, it worked beautifully - with one critical exception. The drivetrain functioned well. Noise was kept to a minimum. The turret panned perfectly. IR circuits and filters worked without a hitch. Ultrasound sensors were found to be problematic, but a work-around was found. One hiccough, however, brought our work to a halt.
The single key component of the design, was the mechanism to knock off the other robot's head. Without it, we could not win. We had believed that we could built a pivoting turret that would hold the lance and aim it at the other robot. To do so, we selected four IR sensors and placed two on either side of the lance. We then planned to write a control loop around the difference between the IR sensor readings. Thus, once the robot found the other robot, it would adjust the servo to keep the two IR readings equal - and the other robot locked between its sights.
After three days of testing, and with one day to go before the competition, we could not get the turret to reliably track. It sporadically missed finding the other robot. And when it did find the robot, we observed overshoot-like behavior. We were entirely reliant on knocking off the head of the other robot. And our mechanism to do so was unstable.
We had one bright moment - right before checkoff, we accidentally uploaded competition code. The entire time, we had two sets of code: one that was designed to perform the actions to be graded ("check-off"), and a second that was designed for the competition. The competition code ran the motors at 100% PWM - compared to 40% for check-off - and tracked the other robot - compared with simply shooting balls and swinging a lance for competition. With a few dozen people watching teams try to get graded, our robot suddenly took off. WHAM - it took the head off the other robot. We replaced the head. WHAM. It took the head off again. Suddenly, we realized everyone thought our system worked. Only we knew that we were unable to replicate that result. Three days out, and we had one good run - that everyone else had seen. The rest of the runs were inconsistent.
Enter the Hockman Rule. Over beers at the CoHo, with 48 hours left before the competition, we began joking. Ben suggested that we pre-set the angle of the turret at the start of each round. We decided that it was worth testing the idea. That night, we erased several thousand lines of code and disconnected all four of our painstakingly built analog circuits and attendant filters. In their place we wrote a few dozen lines of code that would pre-set the angle of the turret and flip it between rounds. And we soldered together an eight-option switch that controlled a voltage divider. The only thing left to do was to test. And the wait-time for testing on the field was stretching to an hour-and-a-half. We decided this was unworkable. We left early.
The next day, with the competition that night, we arrived in lab at 5:30AM. For an hour and a half, we attempted to get our initial design - the tracking turret- to work. When it failed, we converted entirely to the Hockman Rule. After frenetic bug-checking, we decided we were good to go at 5PM. We were reliant on Ben Hockman's steady hands and software that we had tested for no more than 12 hours.
Result
Sir Gonzalez performed admirably. He advanced through two opponents to the final, where he triumphed on the second Pas D'Armes. Here's to you, Sir Gonzalez!
Conception
In order to arrive at the Sir Gonzalez concept, The Royal Order of King Arthur's Homies for the Abolition of the Global Variable - our team - spent the first week of the project playing out scenarios for our robot. We considered a robot that would shoot balls and avoid contact ('the Archer") and a robot that would track the other robot and repeatedly hit it ("Sir Lance-a-lot"). We physically stood up and acted the part of robots - and every time that we put a robot like Sir Gonzalez on the field, it would win. After much agonizing, we decided that the only robot we could build was one that went directly for the other robot's head.
Initial Design
With this strategy set, we knew that we had to knock off the other robot's head. The initial design took two forms: the mechanical and the systems. The mechanical design focused on aggressively shrinking the robot into a package that would give us the longest reach in the class. After dozens of hours of Solidworks time, we crammed an entire robot into an 8" diameter - leaving a lance that extended about two inches longer than that of any other robot. Meanwhile, the systems design focused on developing a robust architecture that would handle corner cases and the dual requirement of responding to gameplay and constantly tracking the other robot.
Development
Two weeks after our first meeting, we assembled our first robot. As-built, it worked beautifully - with one critical exception. The drivetrain functioned well. Noise was kept to a minimum. The turret panned perfectly. IR circuits and filters worked without a hitch. Ultrasound sensors were found to be problematic, but a work-around was found. One hiccough, however, brought our work to a halt.
The single key component of the design, was the mechanism to knock off the other robot's head. Without it, we could not win. We had believed that we could built a pivoting turret that would hold the lance and aim it at the other robot. To do so, we selected four IR sensors and placed two on either side of the lance. We then planned to write a control loop around the difference between the IR sensor readings. Thus, once the robot found the other robot, it would adjust the servo to keep the two IR readings equal - and the other robot locked between its sights.
After three days of testing, and with one day to go before the competition, we could not get the turret to reliably track. It sporadically missed finding the other robot. And when it did find the robot, we observed overshoot-like behavior. We were entirely reliant on knocking off the head of the other robot. And our mechanism to do so was unstable.
We had one bright moment - right before checkoff, we accidentally uploaded competition code. The entire time, we had two sets of code: one that was designed to perform the actions to be graded ("check-off"), and a second that was designed for the competition. The competition code ran the motors at 100% PWM - compared to 40% for check-off - and tracked the other robot - compared with simply shooting balls and swinging a lance for competition. With a few dozen people watching teams try to get graded, our robot suddenly took off. WHAM - it took the head off the other robot. We replaced the head. WHAM. It took the head off again. Suddenly, we realized everyone thought our system worked. Only we knew that we were unable to replicate that result. Three days out, and we had one good run - that everyone else had seen. The rest of the runs were inconsistent.
Enter the Hockman Rule. Over beers at the CoHo, with 48 hours left before the competition, we began joking. Ben suggested that we pre-set the angle of the turret at the start of each round. We decided that it was worth testing the idea. That night, we erased several thousand lines of code and disconnected all four of our painstakingly built analog circuits and attendant filters. In their place we wrote a few dozen lines of code that would pre-set the angle of the turret and flip it between rounds. And we soldered together an eight-option switch that controlled a voltage divider. The only thing left to do was to test. And the wait-time for testing on the field was stretching to an hour-and-a-half. We decided this was unworkable. We left early.
The next day, with the competition that night, we arrived in lab at 5:30AM. For an hour and a half, we attempted to get our initial design - the tracking turret- to work. When it failed, we converted entirely to the Hockman Rule. After frenetic bug-checking, we decided we were good to go at 5PM. We were reliant on Ben Hockman's steady hands and software that we had tested for no more than 12 hours.
Result
Sir Gonzalez performed admirably. He advanced through two opponents to the final, where he triumphed on the second Pas D'Armes. Here's to you, Sir Gonzalez!
Final Match Video:
https://www.youtube.com/watch?v=x6vuykVPhm8
https://www.youtube.com/watch?v=x6vuykVPhm8
Team
Ben Hockman
Benjamin, whose ancestors helped found his hometown of Hockessin, Delaware, takes great pleasure in the thunk-thunk-thunk of the Royal Order shooter. When not building laser-cut robots that beat up other laser-cut robots, Ben spends a significant amount of time figure out how to make things move on asteroids.
|
Manuel Ahumada
Manuel was born and raised in San Jose, CA and received his BS in mechanical engineering at San Jose State University. On his free time, Manuel likes Pina Coladas and long walks in the rain. He is also an aspiring dancer and has pioneered the "Shampoo" dance crave.
|
Darrel Deo
Born and raised near Oakland, CA Darrel is actually a full time rapper who dabbles in Robotics Engineering. If the rap gig doesn't work out, he plans on a backup career as a professor in robotics, where he can do research that positively impacts the world while teaching the bright minds of tomorrow.
|
Ben Sumers
Ben discovered a love of hats this quarter. His experience coding gave him great empathy for roboticists with whom he's worked in the past, and he sincerely hopes that he gave them enough time to test their robots before he understood how weird software can be.
**A special shout-out to William Greenbaum, who sat at the station next to ours and provided repeated useful tips and hints. Thanks Will!
|