by Kyla Qi
RoboCup 2021 took place from June 21st to the 27th this year. After several hard fought matches, RoboJackets placed third in the lower tournament, a major highlight of which was a match where our team won 10-0. The competition started with a series of regulation games before moving to an upper and lower bracket that was decided in a double elimination format. Since the event was held remotely, the Small Size League in which our team participates staged matches by having competing teams upload the most recent version of their code to a server that would then play out the match virtually.
The team encountered many challenges with their codebase during the competition. Some were minor and procedural – for example, connecting to the servers or updating the code to match the virtual format – while others were fundamental issues, a result of the software team lacking time to do adequate testing. This had major repercussions during the competition. For example – “[The virtual fleet] had issues with crashing into other robots so we would constantly get yellow/red carded”, said project manager Alyssa Gordon. However, members rallied to rewrite code as the competition progressed, and thus the fleet “went from not being able to score on a no-show opponent in prelims to winning a game 10-0 later in the knockout stages”, according to software subteam lead Kevin Fu.
Rewriting plays on the fly resulted in some interesting problem solving. The fleet was having a lot of issues with double-touching the ball – a move where the same bot touches the ball and then kicks it. Double touching is illegal – since the game is non-contact, being allowed to touch the ball more than once would mean bots could easily dribble across the field unimpeded. Said Fu: “Our fix was to line-kick the ball every time; meaning instead of dribbling and turning before a kick, we’d just drive up to the ball at the right angle and kick it.” While this reduced double touching violations, some scored goals were invalidated for exceeding the maximum allowed kick speed. Another improvised solution was the team’s offensive strategy – to compensate for a failing passing system, the bots would simply kick the ball hard toward the goal with the hope to score.
Regarding takeaways from the competition, Fu said: “[This year’s competition] made us realize that winning Div B is attainable and that we should be using a lot of standardized tools that the league provides.” He also said that, given that this is the first RoboCup competition he’s attended, he now has a better understanding of how the competition works and a lot of ideas for how to improve the fleet for next year. Some of those ideas include moving to the competition provided simulator to increase the accuracy of their testing, refactoring the codebase to be more maintainable, and taking a more agile approach to the team’s development process.
In order to allow teams to showcase their physical robots, the competition also had an optional hardware challenge composed of 4 tasks. These included scoring against static defenders, scoring against a defender that starts in contact with the ball, dribbling through static components, and passing. Unfortunately, due to a slew of issues that arose in the week leading up to the competition, the team had to drop out of the hardware challenge. Prior to the full assembly of the bots, the team was testing individual functionalities, but ran out of time to do more thorough testing with the entire system. When asked about the challenges they ran into, electrical lead Bernardo Perez discussed the impact of COVID on the team’s productivity: “ limited shop capacity made it difficult to get everyone into the shop… As a result, we were a little behind in testing the electrical stack.” The team had to patch their firmware two weeks before the competition; due to the previously mentioned constraints they were unable to thoroughly test it in time. Additional issues that occurred during competition included unstable radio connections and a malfunctioning inertial measurement units. Looking forward, the team plans to redesign the boards prone to malfunctioning, including the breakbeam board, which detects when the bot has possession of the ball. They also plan to do more testing to isolate the root causes of other malfunctions they experienced during the competition.
On the mechatronics side, subteam lead Dan Lam cited pain points in putting together and taking apart the bots as contributors to the team’s hardware issues: “a lot of the troubleshooting … was made much worse and prolonged due to the packaging of our platform… clearances with the boards and the inside of the shell made it extremely difficult to access all boards, battery, radio, etc.” When asked about future plans for hardware, Lam stated that he’s hoping to “have more planning done with electrical, and work alongside them to create a more cohesive bot.” He also said he’d like to improve the bots’ shells and packaging, arranging “components… in a way that’s easy and simple to access, maintain, and troubleshoot.”
Despite all of the challenges they had to overcome, the RoboCup team is in high spirits after their 3rd place win in the lower division. “I’m very proud of our team, and especially thankful for our software members who stayed up very late the entire week to continuously work on our code,” stated Gordon.
Congratulations to the team, and we’re excited for what they’ll accomplish for next year’s competition!
Tournament results and recordings of the matches can be viewed at https://ssl.robocup.org/rc2021/.