Testing the robot. Notice how it slows down when it sees the stop sign.
This was a weekend challenge that involved teams attempting to make a robot move by itself and respond to physical obstacles, using a custom Python library.
Goals
On the first day, we were given time to form teams and instructions on how to get the software running. We also had a list of milestones given by the organizers, which were very helpful as targets.
Responsiveness to Input
Through using the Python library, I managed to get the robot to respond to basic keyboard inputs (WASD to move) in a simulator application. We collectively decided to NOT use the simulation and go for the live robot pens, since the simulation wasn't accurate (the robot flipped over too often).
Autonomy + Reactivity
Machine learning in action, with the robot's POV as the camera. Note the green square highlighting the stop sign.
The keyboard input code was soon replaced with code that would allow the robot to move by itself, and we checked this by testing out the robot. While it did move back and forth over and over as a result of the anti-collision code (moving backward if it was determined an object was too close to itself), we weren't the ones moving it so it still counted.
The main challenge was getting it to detect a stop sign, then feeding that info to the robot to make it slow down. Writing the deceleration code was easy, but seeing the sign was hard.
One of our group members tackled this by himself through making an entire machine learning project in a single night, which left everyone else to do calibration/verification work.
Conclusions
On the final day, we tested out the new reactivity code, and it worked out. The only thing left to do was present our progress to the judges as clear as possible, and hope for the best.
Did it work? We got the functionality we wanted and got prizes after we explained our results to the judges, so yes.
What could've made this better? While the prizes were nice, not every milestone was done. The final objective was to make a robot move autonomously, but in an environment with other robots move at the same time without crashing into each other. Allegedly, no one made it this far.
Since we were working on a time crunch, time management could've been executed better, as well as better/more effective brainstorming between everyone to reach the challenging milestones.