Fig.1 - Our autonomous teledyne Q-Boat mapping a section of the Kern River
I worked on a team that collaborated with scientists from Caltech Geological and Planetary Science Department to accurately map rivers with robots. Most rivers have the tendency to change course and self-adjust their topography, and the current method of mapping rivers relies on people to manually collect depth data with Acoustic Doppler Current Profiler (ADCP) sensor on a boat. This project was inspired by the possibility to map river with robots with an ADCP instead of with human. For this project, I developed:
A nested PID controller that steers an under-actuated ASV on a predefined straight-line across a river with rapid current.
A Kalman Filter based strategy for fusing multiple ASV sensor measurements to construct 3D estimate of velocity and depth profile.
Transect Controller
Assuming the robot is facing upstream, I designed a controller that utilizes a double PID error feedback loop that minimizes 1. the distance error between the ASV and the transect line, and 2. the desired transect velocity along the transect line. We were able to implement this controller and tested in a river running at 1.5 meter per second. In the following video, the robot is traversing up the Kern River in Bakersfield. It makes one horizontal transect of the river at a set interval.
River Mapping with ADCP
While the ASV is traversing the river, the ADCP captures a depth measurement and a set of water velocity measurements at a set of discrete depth points. We then discretized the river into a 2D grid and the water body into a 3D lattice structure. A Kalman filter is then used to interpolate and update a window of cells at the location where the measurement is taken.
Fig.2 - Parametric plot of a lawnmower river survey