Parking an Underwater Robot That Can Barely See | Underwater Docking Explained
Imagine parking your car with your eyes closed, and opening them only now and then for a quick peek. That's how an underwater robot comes home to its dock. There's no GPS underwater, so between peeks it keeps track on its own, and the errors add up.
The markers on the dock let it check where it is. But there's a sneaky mistake: give the software a marker's outer size when it expects the black square's, and on a widely used kind every distance comes out a quarter too long.
Averaging lots of sightings can't catch that, because they're all off the same way. I explain why, and the idea we're proposing instead: picture the robot's path as beads on springs.
In this video
- Why there's no GPS underwater, and how the robot keeps track by itself: it feels its turns, listens to echoes off the seafloor for its speed, and knows how deep it is
- The markers on the dock, called AprilTags, and how the robot tells how far away one is from how big it looks
- Why averaging the sightings is the obvious first thing to try, and its blind spot: a mistake that's off the same way every time, like a bathroom scale that always reads two pounds heavy
- The size mix-up: a marker has two outlines, and the usual software expects the black square's size. Give it the outer size, and on a widely used kind of marker a dock four meters away looks five
- What we're proposing: the robot's path as beads on springs, stiff where it's sure and loose where it isn't, with the markers free to slide too. One sighting of a marker it saw before can snap the whole path back into place
- How the springs could point right at the size mix-up, because they know how far the robot counted itself moving
- How you'd know it's better: grading every guess in a simulation, checking in the ocean that the sightings agree with each other and with the robot's own count, and setting the grading rules before seeing any results
- What this version can't do: it treats each marker as a single point, so it finds where the dock is, not which way it's facing
For engineers
Between sightings the robot navigates by dead reckoning, with an IMU, a Doppler velocity log (DVL) and a pressure sensor fused in an extended Kalman filter (EKF), so its estimate drifts.
The markers are AprilTags (tag36h11). Range comes from the pinhole camera model and the tag's apparent size, bearing from where it appears in the image. Averaging reduces random error, not systematic error (bias).
The library's tag size is the edge of the black square, 8 of the tag's 10 cells across, so entering the outer size scales every range by 10/8 = 1.25. What we're proposing is a pose graph (a factor graph, as in SLAM): poses and landmarks estimated jointly, each edge weighted by its uncertainty (inverse covariance), solved by nonlinear least squares, with a loop closure each time a marker is seen again.
A shared scale factor on the tag ranges can be estimated in the graph, because the DVL odometry is metric and the robot moves toward and away from the markers. Proposed evaluation: ground truth in simulation, consistency checks at sea (sightings against each other and against the DVL odometry), with the grading pre-registered. This version uses position-only landmarks. If you use these markers, check which edge your software expects.
Credits
This comes from docking work Piccard is working on with a research lab.
Further reading:
- E. Olson, "AprilTag: A robust and flexible visual fiducial system", ICRA 2011
- J. Wang & E. Olson, "AprilTag 2: Efficient and robust fiducial detection", IROS 2016
- F. Dellaert & M. Kaess, "Factor Graphs for Robot Perception", 2017
- G. Grisetti et al., "A Tutorial on Graph-Based SLAM", 2010
- AprilTag: https://april.eecs.umich.edu/software/apriltag
- GTSAM: https://gtsam.org
The animations are my own illustrations, not footage from the project. Any mistakes in the explanation are mine.
I'm Bora Celik from Piccard. I explain new research in ocean science and robotics.