If we could do the process over again, there are a few things we would do differently:
On the other hand, many aspects of our approach worked very well:
Advice for future teams:
- Perhaps we would use three omniwheels instead of four; this would make the navigational code a little more difficult to set up initially, but would pose less potential problems to debug later on. It would also lower our costs
- We would be absolutely sure that all our subsystems could fit together within the size requirements before building the robot (this would have saved us several hours when we had to adjust the bot's frame to make it shorter)
- We could have made sure that our code strategy was very streamlined from the outset, rather than writing a first version and having to start from scratch later when there were problems
- Having a more robust and organized circuitry setup would have also helped. Since we had to rebuild our circuit without a designated circuit layer it was a bit less organized than we would have liked.
On the other hand, many aspects of our approach worked very well:
- Utilizing ultrasonic sensors and not worrying about a line-following strategy ended up working well for us. We noticed other teams having substantial trouble with line-following, and our navigational strategy ultimately proved quite robust and reliable
- Using omniwheels ended up working well for us, and allowed us to orient the robot effectively as it made its way through the arena, while also making movement simple since the robot did not actually have to rotate to change direction
- Attaching a motor to agitate the hopper was effective in forcing the nerf balls to fall into the flywheel
Advice for future teams:
- Start early. You will inevitably run into problems along the way - better to do it earlier rather than later so you can sort them out
- Maintain organized coding practices early on (naming clear constants, organizing your code in a way that makes sense, etc.)
- Prioritize simplicity in your approach - there is nothing wrong with aiming for the minimum requirements and working from there. The more straightforward the approach, the easier it will be to debug and test
- In our case, we decided to eliminate the need for line following and IR beacon sensing by solely using ultrasonic sensors to orient our bot. This ended up being much easier than many other teams' line following strategies and streamlined our work tremendously