Inspiration
For Hackaburg 2026, we wanted to contribute to the Vector challenge. The challenge goal was to create a duck that can navigate a swimming pool and complete a race course on its own. We liked the contrast between the playful appearance of a rubber duck and the serious engineering needed to make it swim autonomously.
What it does
DuckDuck(hopefully)Swim is an autonomous rubber duck designed to swim through a pool course without human control. It detects its surroundings, estimates its position in the pool, and controls its motors to move toward the finish.
A key part of the project is the localization system. Three speakers placed around the pool continuously send acoustic beacons. The duck has two microphones that detect these signals and use them to help determine where it is. Combined with ultrasonic sensors for obstacle and wall detection, the duck can make navigation decisions and drive itself through the course.
How we built it
The “brain” of the duck is a Raspberry Pi, which runs the autonomous navigation code. Connected to it are three ultrasonic sensors, two microphones, and an ESP microcontroller.
The Raspberry Pi handles sensor data, localization, and decision-making. The ESP controls the two motors that physically drive the duck through the water. The ultrasonic sensors help the duck understand its immediate surroundings, while the microphones listen for the acoustic beacons from the speakers around the pool.
We split the system into two main parts: high-level autonomy on the Raspberry Pi and low-level motor control on the ESP. This allowed us to keep navigation logic flexible while letting the ESP focus on reliable motor actuation.
Challenges we ran into
Unfortunately not all parts are working in tandem, yet. At this moment we have a fully working remote control, an algorithm for autonomous steering and a localization system - which we "hopefully" manage to glue together still!
One of the biggest challenges was localization. Detecting acoustic beacon signals in a noisy environment like a swimming pool is difficult, especially with reflections, water movement, and background noise. Getting useful information from the microphones required careful signal processing and testing.
Another challenge was integrating all hardware and software components. Of course one thinks that would be extremly straightforward, but integrating all software components with the not so deterministic failures of the hardware was extremly challenging.
Motor control was also tricky because movement in water is less predictable than movement on land. Small changes in motor power, weight distribution, or drag can significantly affect the duck’s direction.
Accomplishments that we're proud of
We are proud that we built a complete autonomous swimming system inside a rubber duck. The project combines embedded systems, robotics, sensor fusion, acoustic localization, and motor control in a playful but technically demanding package.
We are especially proud of our beacon-based localization approach. Using speakers and microphones to help the duck locate itself in the pool became one of the core ideas of our project and was essential for autonomous navigation.
We are also happy that we managed to connect many different hardware components into one working prototype and coordinate communication between the Raspberry Pi and ESP.
What we learned
We learned a lot about building autonomous systems in real-world environments. In theory, localization and navigation can seem straightforward, but water, noise, reflections, and hardware limitations make everything much more complex.
We also learned how important system integration is. Each part of the project — sensors, microphones, motors, Raspberry Pi, ESP, and software — had to work together. A small issue in one component could affect the whole duck.
Most importantly, we learned that robotics projects need constant testing, iteration, and debugging, especially when the robot is swimming instead of driving on solid ground.
And we learned that sound triangulation is f...ing hard, but we probably will try it again next year.
What's next for DuckDuck(hopefully)Swim
In the future, DuckDuck(hopefully)Swim could become faster, more reliable, and maybe even confident enough to drop the “hopefully” from its name.

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