Some clever engineering has gone into this DIY radio-controlled submarine, built using Lego and an assortment of bits and bobs, the sub is able to maintain a steady depth or a certain distance from the bottom. Equipped with a pressure sensor and a laser distance sensor. Raspberry Pi and PID control are used for automation. Tested in a swimming pool and a small river (at the end of the video).
Video of the full river journey
You can find in-depth details of the building process here.