How Nemo thinks
Nemo's software is a stack of layers, from the app in your hands down to the fast loop that keeps it steady. Each one hands the next a simpler job. Here's what we're building, and how we're building it.
Four principles
- Keep it simple. Fewer parts, fewer layers, fewer surprises. Where something proven already exists, we build on it rather than reinventing it.
- Attention to detail. A smooth video feed, a clear warning, a sensible default. The small things are what make a robot feel trustworthy.
- User experience first. Calm, clear and obvious for whoever's at the controls, whether it's their first dive or their fiftieth.
- Robust and reliable. Underwater there's no reset button. Every layer fails safe, and Nemo always finds its way back to the surface.
How it fits together
Your window down there.
On the surface is the Nemo app: the place you watch, steer, plan and explore. It's built from the same design system as this site, with a calm, clear heads-up display that tells you what matters and stays out of the way.
- Live video with a heads-up display: depth, heading, battery, and what Nemo has spotted.
- Set a goal on a map instead of flying every metre yourself.
- Watch the 3D map build as Nemo swims, then explore it properly afterwards.
- Share dives and maps with anyone.
ArduSub, BlueOS and MAVLink are all open source and built by their communities. Standing on them means Nemo starts with years of other people's hard work, and can spend its own effort on curiosity. See how the hardware works.
Talking to the surface.
Today, everything travels up a thin tether: live video one way, commands the other, all spoken in MAVLink, the common language of drones and robots. As Nemo learns to think for itself, the tether becomes optional. It only needs to check in, not be steered.
- Stream live video and telemetry while tethered.
- Carry plans, not joystick moves, so a short or patchy link is enough.
- Sync dives and maps when it surfaces or docks.
The explorer's mind.
Inside the tube, a Raspberry Pi runs BlueOS, an open-source operating system for marine robots. It already handles the video and talks to the flight controller. Its real strength is extensions: self-contained apps that add new abilities without touching anything else. That's where Nemo's curiosity will live.
- See: recognise fish, wrecks and objects in the live video, and keep the interesting ones in frame.
- Map: stitch every frame and depth reading into a 3D model as it swims.
- Decide: turn a goal like “survey the north bay” into a route, and rework it when something's in the way.
- Remember: log every dive, so the next one picks up where the last left off.
Reflexes.
At the bottom of the stack is a Pixhawk running ArduSub, the open-source autopilot for underwater vehicles. It runs the fast loops: reading its motion sensors hundreds of times a second and balancing eight thrusters so Nemo stays exactly where it's told to be.
- Hold depth, heading and level without a hand on the controls.
- Keep station against a current, so the camera stays steady on whatever it's watching.
- Look after itself: head for the surface if the battery runs low or the link drops.