Autonomous Jet-propelled Kayak


Challenge


Autonomous vehicles have been around for a long while now, as have the algorithms used to make their controllers. As part of ‘2.017 - Design of Electromechanical Robotic Systems’ we were tasked with making use of random process modelling to inform such a controller in a novel setting.

Waterjet powered craft presented an interesting case. In a team of 5, we set out an objective to use a spectral description of waves to help our controller drive a jet-propelled craft at a constant heading. We identified this as the first step in making a fully autonomous waterjet-propelled craft, with applications for jetskis and in flood disaster relief.

Solution


This project was split into hardware and software. Lauren St Hilaire and I took on the hardware side, while Ava, Alicia and Lauren F worked on the sensors and controller. Lauren and I conducted a literature review to learn more about the dynamics of waterjets, using SFME calculations to characterise a small, off-the-shelf impeller unit and provide a starting point to spec out the other pieces of hardware - making sure the electric motor had the right kV rating to spin at the required speed, getting a servo that was big enough to turn the nozzle, and getting a shaft coupling that could cope with the high rotation speed. Allowing more time for this design phase of the project avoided unforeseen problems later on, as all the components we bought in worked together first time. We also designed a sheet metal part to mount the motor, impeller, and servomotor, which could then be easily attached to the kayak using two bolts. Our first iteration of the housing was not stiff enough to resists the thrust force from the impeller, but the simple one-piece construction allowed us to update the design quickly.

The controller team used a Nucleo microcontroller to handle the computing, as the regular Arduino had insufficient power and too few inputs for our needs. We also got a giant rubber duck to act as our preliminary test platform for the sensors + controller, which doubled as a handy mascot. We chose a 9 DOF IMU as our sole sensor.

The heading was calculated using a Crank-Nicolson algorithm to integrate acceleration data from the IMU, and was then filtered using a Bilinear Transform. Initially, we also used data from the magnetometer to try and correct for drift, but dropped it after we were unable to get useful readings. Our controller used spectral data for the waves in the river to inform the controller, in order to balance the tracking of the controller with its ability to reject disturbances.

Results


We were able to run our kayak in a straight line for 15 meters (the length of the dock) in small waves. This validated the first steps of creating a full autonomous controller, and served as a proof-of-concept for an autonomous waterjet-propelled vessel. We presented our project at the MIT Mechanical Engineering Department DeFlorez Awards, and received an honourable mention for our work.