auv_controllers icon indicating copy to clipboard operation
auv_controllers copied to clipboard

Control algorithms for autonomous underwater vehicles (AUVs) and underwater vehicle manipulator systems (UVMS) implemented using ros2_control.

auv_controllers

auv_controllers is a collection of controllers for autonomous underwater vehicles (AUVs) and underwater vehicle manipulator systems (UVMS) implemented using ros2_control. The controllers have been designed to support the complete system control hierarchy and to enable benchmarking against other commonly-used control algorithms.

UVMS whole-body control AUV control

Installation

auv_controllers is currently supported on Linux and is available for the ROS 2 Rolling and Jazzy distributions. To install auv_controllers, first clone this project to the src directory of your ROS workspace:

git clone [email protected]:Robotic-Decision-Making-Lab/auv_controllers.git

After cloning the project, install all external dependencies using vcs:

vcs import src < src/auv_controllers/ros2.repos

Finally, install the ROS dependencies using rosdep:

rosdep update && \
rosdep install -y --from-paths src --ignore-src

Getting started

To learn more about how to use the controllers provided in this project, please refer to the examples package. You can also find integration tutorials in the Blue documentation.

Citation

If you find this code to be useful in your research, please consider citing our relevant paper:

@inproceedings{palmer2024angler,
  author={Palmer, Evan and Holm, Christopher and Hollinger, Geoffrey},
  title={{Angler: An Autonomy Framework for Intervention Tasks with Lightweight Underwater Vehicle Manipulator Systems}},
  booktitle={IEEE International Conference on Robotics and Automation},
  year={2024}
}

Getting help

If you have questions regarding usage of auv_controllers or regarding contributing to this project, please ask a question on our Discussions board!

License

auv_controllers is released under the MIT license.