Manta-ray biomimetic ROS2 robot (pressure-compensated, should go pretty deep?)

Hello there,
I’ve been working on a pressure-compensated, ROS2-based biomimetic robot a manta-ray ROV/AUV thing. The whole idea is to build something cheap enough, quiet enough, and open enough that people who normally can’t afford to do underwater work (science, conservation, small NGOs, small science teams in budget constrained countries, whoever) can actually use it.

Right now it’s running full pressure compensation, ROS2, and I’m working on a monitoring-grade CTD based on the OpenCTD design. The camera is pressure-compensated too. I’m aiming for around 1 m/s cruise speed.

Runtime has been surprisingly decent: about 6 hours on a single 5300 mAh pack just for actuation (compute has its own identical battery). Scaling up the battery is easy, so mission time should grow pretty cheaply.

The robot in the video is actually the previous hull version. I already have a new design coming together with what i learned from the first version. And because literally everything is oil-filled and air-free, I think it can go VERY deep. How deep? No clue yet, but structurally it should handle way more than the usual hobby-AUV range. I also modified the electronic components (to make it more pressure tolerant).

Next steps:
– Replace the cheap knockoff IMU that just died on me
– Move from I²C to SPI or UART for reliability
– Build out dead-reckoning
– Add waypoint navigation to the GUI
– Make it work both tethered and fully AUV (tethered already works decently)
– And if I save some cash, I want to start playing with a DVL to get more interesting autonomous missions going

The GUI in the video is just NiceGUI interfaced with ROS2 for now, but it should work fine over Tailscale/Husarnet for remote control when tethered.

Few questions, did i really just get a bad cheap IMU (that purple bno08x chinese board), which had horrible clock stretching issues on raspberry pi 4. I tried to switch to spi but couldnt get the board to boot on spi. Or would an adafruit bno085 on i2c also have horrible issues? I did modify the firmware on the pi to make the clock slower, that helped, and used extended bus for bit banged i2c. that helped even more. But yesterday the sensor stopped initializing at all.

Note: Im not a roboticist. Im just a maker that will figure things out and loves the ocean.
Video on Youtube

2 Likes

Oh wow! This is super cool.

Are you aware of our marine robotics community group? I think they may be able to offer some advice.

1 Like

Hey There! thank you! I’m gonna check the community out. I have so many questions.