I actually started wondering about LEGO robotic boats a while back, when some threads on the NXTasy forums brought them up (as well as submarines). There were two main problems I could see for a "pure LEGO" water-craft: (1) Flotation (which could perhaps be solved by LEGO boat hulls, which re-entered the LEGO scene in a number of recent City sets, such as the Fireboat (#7906), City Harbor (#7994), and the Speedboat (#7244)), and (2) Propulsion. I did not want to deal with the risk of rotating seals for propeller shafts etc., so I figured on having all the electronics (including motors) above the waterline, with the propeller drive shafts either entering the water at an angle, or being driven by pure mechanical linkages to a completely submerged prop. But upon getting two of the Fireboat sets for the hulls, I decided to try using the stock LEGO underwater motors that come with these sets.
The result was Serenity (posted on NXTlog), a pure-LEGO robotic (not remote controlled!) boat.
Two hulls are tied together with bow and stern beams, made from studded beams locked together with studless elements, resulting in beams that can not pull apart under tension or flexing (the connection to the boat hulls is unfortunately studs-only). The NXT and two NXT motors sit along the midline, not powering the vehicle but in this case only steering the stock underwater motors attached below. To make the vehicle float level in the water, the NXT is on two long axles and can be slide fore and aft to trim the vessel (no port-starboard trim was needed in this case). Mounting the underwater motors firmly to a mounting frame was one problem, but was solved with some half-stud offsets.
The program uses a Hitechnic compass, trimming the rear motor like a rudder to keep the nose pointed along the initial heading. After a specified time (configured at the start of the program), Serenity makes a 180° turn "in place" by steering both the bow and stern motors, and then again tries to maintain a new heading opposite the initial heading, returning to the shore.
The scary part was testing this. I tested first in a small tub of water on my back deck, but then it was time for a more realistic "sea trial", and lacking a swimming pool my only option was a small local pond, with weeds, swampy shores, and an active fountain in the center. I didn't want to use a tether, as that would really be unfair (not to mention the drag of the tether would likely cause problems with the autonomous navigation routine), so the first "live" test (yes, as seen in the video) was more than a bit nerve wracking - if it didn't turn around, I'd just have to hope it would hold it's heading long enough to get to the far side before wandering under the fountain. And if there was any more serious programming or mechanical issue, there was a good chance I'd get to watch a LEGO-version of the Titanic disaster. Hitting the button and letting go was... tense. But careful pre-testing held - it worked almost flawlessly, through four trials until the underwater motors completely fouled on weeds near the end of the last trial (thankfully, close enough to drift in towards the shore). Even when bumped off course, the NXT faithfully corrected the heading, and it always executed a beautiful 180° turnaround at the midpoint.
Not too bad for a proof on concept (I'd not known of JP's amazing craft at the time, nor thought to use the dirigibles like that... not that I had any handy). It clearly needs a more reliable (non-fouling) propulsion (sidewheels splash a lot, I've tried, but I've got other ideas), and for larger lakes and rivers it probably needs to be bigger (if you are smaller than the local waves, there's going to be problems). But I'm curious how far I can take this... that is, how far I can take this project before turning it into an unplanned submarine.