6/12/2021
We managed to clinch the top 4 in the Robocup AsiaPacific league. Pretty impressive… except for the fact that there is only a total of 4 participants. I am still proud of it though(a little bit embarrassed) because I managed to experience something niche and learn new things.
One day, I was bored at work and I decided to look at my robotics-worldwide subscription emails in my Gmail. I saw this call for participants in RoboCup Asia Pacific (RCAP) and thought to myself why not, I can burn a couple of days to participate in one (KEKW). I looked through the list of online leagues and I saw the RoboCup Agent Simulation which piqued my interest so I grabbed another friend(victim) and participate together which will be held in late November(one month from then). We call ourselves Team Doodd(poor pronunciation of dude), yeah… I came up with it on the spot.
In this simulation league, you program Ambulance, Police Force, and Fire Brigade agents to rescue civilians in cities where an earthquake has just happened. For the 2021 ruleset, each of the agents has the following roles:
Seems pretty simple… right???
“Hackathons are events held in a couple of days where participants within a short amount time (usually a 2-3 days) comes up with a project to the challenge issued.” <- This was my Impression of this RCAP agent simulation league, boy was I wrong. This shares more similarities with an academic research project rather than a hackathon. The RCAP website only had a paragraph about the details of the league and me being sloppy didn’t really bother googling up more about the simulation league. When I fully realize the scope of the project after googling around for quite a bit, I knew one month is not enough to understand the software packages used and develop something out of it.
One of the reasons why I knew one month is not enough is due to its non-beginner-friendly nature(as of November 2021).
With only less than a month till the actual competition week and faltering morale, we can either…
Both are pretty bleak. Implementing our own strategies is borderline impossible with non-existent documentation (How do you even code the agent to move !? <- They don’t move in a “traditional sense”, I am still a bit unsure about it now). If we were to base our code on previous submissions, we run the risk of not understanding their code and there is a need to improve on them. With a week left, we decide to base our code on a Chinese team, CSU_YUNLU. They had the easiest code base to navigate and sorta easier to understand compared to the rest of the submissions. However, there is also a catch in using other team’s code…
We managed to clinch all 4 positions during the competition week. - On the first day, we clinched the 3rd position. (A contestant didn’t show up) - On the second day, we clinched 4th position. (The missing contestant showed up) - On the third day, we managed to get a tie - 1st and 2nd position. (It turns out the Simulation needed more memory to run our agents) - On the fourth and final day, we managed to clinch the 4th position. (Disqualified due to code reuse policy)
A pretty wild ride.
Before the league starts, we emailed the organizers and asked them about proper attribution of the original authors and inform them that we are using another team’s code. We knew about the risk of the disqualification but decided to proceed on with basing our code on previous submission. We managed to write a 4-page report about it which is kind of impressive if you ask me, but it is still not enough to fulfill the code reuse criteria where “50% of code logic” must be different from the original one.
We tried, we struggled through the night and felt a little bit soured. But hey, can’t do much about it in one month and it is an Academic Research Project, it’s neither trivial nor a walk in the park.