Franz Heubach

The ECA A9 autonomous underwater vehicle within the Gazebo underwater simulation environment.

Long-Range Gravity Aided Autonomous Vehicle Navigation

The Intelligent Systems Laboratory (ISL) is a research lab at Dalhousie University led by Dr. Mae Seto. ISL is multi-disciplinary and works at the intersection of engineering (electrical, mechanical) and computer science to enable autonomous systems to operate at long ranges from an operator for extended duration in harsh and dynamic environments like oceans and space.

During the course of my thesis work I developed a particle-filter based state estimation algorithm for an autonomous underwater vehicle (AUV). The sampling-based probabilistic algorithm estimated the location and heading of the vehicle using the fusion of the accelerometer, gyroscopes, depth sensor, and gravity gradiometer sensors. As additional input the algorithm uses openly available bathymetry, which is transformed to gravity gradient maps using the relationship between mass and gravity. State estimate of underwater vehicle normally has unbounded position error growth due to accumulation of error from the integration of acceleration and angular velocities. The algorithm successfully limited the unbounded growth of position error, limited by the quality of prior maps.

There are other sensors that achieve this, but not without actively releasing energy into the water through the use of sonar. This energy can be detected by an adversary's vehicles. This is undesirable in some situations. A gravity gradiometer is a passive, therefore enabling covert operation.

The algorithm was implemented using C++, and relied heavily on the Robot Operating System (ROS) middleware. ROS provides the data-sharing layer between processes and machines to enable distributed computing. To support the verification of the algorithm, I developed a tool for creating simulation environments with specific navigability properties to characterize the performance of the algorithm under different underwater environmental conditions. I released this tool as open-source in the hopes it may be useful to others in that area of research.

Additionally, I created a command line tool to perform parameter studies on a ROS based distributed system. The command line tool supports running multiple simulation runs in parallel. Each run contains multiple services: algorithm, inertial navigation systems, sensors, vehicle controller, vehicle dynamics, and Gazebo the physics simulator. Each run produces logs for all services, and data for message topics. These are all saved and organized by run and service for later analysis.

To support the analysis of the data produced by the parameter study I wrote a Python library. It supports pre-selecting data topics and sub-sampling the messages at lower frequencies. This was necessary due to the total volume of data being to large to load into memory at once. Additionally, it supports synchronizing messages based on their timestamps and frequencies enabling comparison of data from different message channels. Finally, it supported common data transformation for quaternion angles and projected coordinate systems. Without this library my research would have not been possible to complete in the time expected of a Masters student.

As a result of my thesis defense I was nominated for a yearly university wide best thesis competition representing the engineering department.

Technologies used

  • C++
  • Python
  • ROS
  • Gazebo
  • CMake
Intelligent Systems Laboratory Thesis (PDF)