Inspiration
We wanted to test the very limits of how broad a hardware project we could build. We've explored every possible avenue to add as much as possible, with each of us choosing to work on parts we'd typically let someone else do, to ensure we're learning and exploring!
What it does
We've made a completely autonomous racing broadcast, complete with commentator, lights, and switching cameras! The stream also has a track map, and an informative overlay
How we built it
We challenged ourselves to use as many technologies as possible:
- Bluetooth Low Energy interface with the Anki Overdrive cars to drive them, and also to get their positions on track
- Autonomous Python agents to control the robots, allowing them to race against eachother!
- Python OpenCV broadcast handling 3 cameras, and a custom overlay to display track position and laps.
- Locally running LLama-3.2 model with a custom-prompt to simulate a motorsports commentator! The LLM is fed information about what's going on in the race. A TTS model then speaks the generated comments
- Arduino controlling start lights, tunnel lights, and a waving checkered flag, communicating with the rest of the system over serial
Challenges we ran into
We didn't check how to get the cars moving, and we spent 3 hours to find the MAC addresses of each car, and had to swap libraries 3 times D: Turns out text-to-speech models ALL suck, and either take too long to infer, or hold up the rest of the system. For this reason we finally settled on the basic python TTS. We really wanted to get an AI voice clone of Crofty, but this was unviable.
Accomplishments that we're proud of
Absolutely fantastic structural supports made by our resident engineer A fully working, close loop project?? Somehow coordinating an extremely broad stack whilst still maintaining real-time speed on the stream The lights and flag are pretty damn cool too
What we learned
Thomas got his first taste of Electrical Engineering, as we made him do all the hardware wiring and arduino programming. Multi-camera control can be tricky, and openCV isn't a fan of Daudi's Arch install. We tried so many different voice models! And we learnt how to use ollama to locally run LLM models.
What's next for A1 Grand Prix
who knows :O



Log in or sign up for Devpost to join the conversation.