Alpha AUV

This repository contains source codes for ALPHA AUV.

ALPHA AUV - CAD Model

Directory Structure

alpha_auv Meta Package for ALPHA AUV.

alpha_bringup Launch files for firing up the vehicle and simulator.

alpha_config Configuration files for devices, vehicle controller, mission controller, and etc.

alpha_description URDF descriptions, 3D Mesh, and launch files for the ALPHA AUV.

alpha_driver This directory contains code for embedded devices on the ALPHA AUV. The code for embedded device, namely RP2040, and the code for its client program resides in its sub-directories.

alpha_localization Contains robot_localization configuration for local and global navigation. It filters the depth information with Linear Quadratic Estimator.

alpha_stonefish Stonefish descriptions for ALPHA AUV.

alpha_teleop Simple teleoperation package. Contains configurations for joy_teleop node.

alpha_viz Contains configuration for RViZ.

external Contains drivers for devices and utilities.

legacy Outdated but still somewhat maintained code. Not deprecated but should not be used.

Installation

MVP Installation

Currently MVP packages should be build from the source. Target platform must be Ubuntu 20.04 because of the dependencies.

Pull repository and other dependencies

git clone --single-branch --branch noetic-devel https://github.com/uri-ocean-robotics/mvp_msgs
git clone --single-branch --branch noetic-devel https://github.com/uri-ocean-robotics/mvp_control
git clone --single-branch --branch noetic-devel https://github.com/uri-ocean-robotics/mvp_mission
git clone --single-branch --branch noetic-devel https://github.com/uri-ocean-robotics/stonefish_mvp

ALPHA AUV Simulation and Hardware Installation

Pull repository and other dependencies

git clone https://github.com/uri-ocean-robotics/alpha_auv
cd alpha_auv
git submodule update --init --recursive

Install pip and setup python3 as default

sudo apt install python3-pip

Install Stonefish Simulator

Pull the stonefish simulator library repository in somewhere other than ROS workspace. Follow the installation instuctions at the Stonefish Readme.

git clone https://github.com/uri-ocean-robotics/stonefish

Install the dependencies

sudo apt install libglm-dev libsdl2-dev

Build the stonefish library and install it.

cd stonefish
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
sudo make install

Install Dependencies

Install dependencies

rosdep install --from-paths src --ignore-src --rosdistro ${ROS_DISTRO} -y

Test the installation

To run the simulation

roslaunch alpha_bringup bringup_simulation.launch

Quick Start

Run the simulation and MVP Helm

roslaunch alpha_bringup bringup_simulation.launch
roslaunch alpha_bringup bringup_helm.launch

Start the local path tracking mission

rosservice call /helm/change_state "state: 'survey_local'"

Citation

If you find this software useful in your research, please cite:

@INPROCEEDINGS{9977113,
  author={Zhou, Mingxi and Gezer, Emir Cem and McConnell, William and Yuan, Chengzhi},
  booktitle={OCEANS 2022, Hampton Roads},
  title={Acrobatic Low-cost Portable Hybrid AUV (ALPHA): System Design and Preliminary Results},
  year={2022},
  volume={},
  number={},
  pages={1-5},
  doi={10.1109/OCEANS47191.2022.9977113}
}

Funding

This work is supported by the National Science Foundation award #2154901