CoUGARs is a low-cost, configurable AUV platform designed for multi-agent autonomy research by the Field Robotic Systems Lab (FROST Lab) at Brigham Young University.
Prerequisites: 64-bit Linux, free disk space (10+ GB recommended), and a dedicated NVIDIA GPU (for HoloOcean simulation).
-
Install Docker and VSCode Dev Containers.
-
Add a GitHub SSH key and clone the
cougars-devrepository.git clone git@github.com:cougars-auv/cougars-dev.git
-
Choose a development workflow:
Simulation (HoloOcean):
-
Build a runtime image for HoloOcean-ROS. When prompted to run
./build_container.sh, specify the branchnelson/fgo-devusing./build_container.sh -b nelson/fgo-dev. -
Open the
cougars-devrepository in VSCode and use the Command Palette (Ctrl + Shift + P) to select "Dev Containers: Reopen in Container." When prompted to choose adevcontainer.jsonfile, clickCoUGARs Dev (HoloOcean). -
Once the containers load, open a new terminal window using
Ctrl + Alt + Shift + `and launch a HoloOcean scenario in theholoocean-ctcontainer using./holoocean_launch.sh.cd ~/cougars-dev/scripts && ./holoocean_launch.sh
-
Open a new terminal, build the
ros2_wsworkspace, and select the matching launch configuration using./sim_launch.sh.cd ~/cougars-dev/ros2_ws && colcon build cd ~/cougars-dev/scripts && ./sim_launch.sh
Recorded Data (
rosbag2):-
Open the
cougars-devrepository in VSCode and use the Command Palette (Ctrl + Shift + P) to select "Dev Containers: Reopen in Container." When prompted to choose adevcontainer.jsonfile, clickCoUGARs Dev. -
Once the containers load, copy your
rosbag2bag into thebagsfolder at the root of the repository. -
Open a new terminal window using
Ctrl + Alt + Shift + `, build theros2_wsworkspace, and select the bag using./bag_launch.sh.cd ~/cougars-dev/ros2_ws && colcon build cd ~/cougars-dev/scripts && ./bag_launch.sh
-
Check out the GitHub Wiki for up-to-date documentation.
-
Create a Branch: Create a new branch using the format
name/feature(e.g.,nelson/repo-docs). -
Make Changes: Develop and debug your new feature. Add good documentation.
If you need to add dependencies, update the
package.xml,Dockerfile,cougars.repos, ordependencies.reposin your branch and test building the image locally. The CI will automatically build and push the new image to Docker Hub upon merge. -
Sync Frequently: Regularly rebase your branch against
main(or mergemaininto your branch) to prevent conflicts. -
Submit a PR: Open a pull request, ensure required tests pass, and merge once approved.
Please cite our relevant publications if you find this repository useful for your research:
@misc{durrant2025lowcostmultiagentfleetacoustic,
title={Low-cost Multi-agent Fleet for Acoustic Cooperative Localization Research},
author={Nelson Durrant and Braden Meyers and Matthew McMurray and Clayton Smith and Brighton Anderson and Tristan Hodgins and Kalliyan Velasco and Joshua G. Mangelson},
year={2025},
eprint={2511.08822},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2511.08822},
}@misc{meyers2025testingevaluationunderwatervehicle,
title={Testing and Evaluation of Underwater Vehicle Using Hardware-In-The-Loop Simulation with HoloOcean},
author={Braden Meyers and Joshua G. Mangelson},
year={2025},
eprint={2511.07687},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2511.07687},
}@inproceedings{potokar2022holooceanunderwaterroboticssim,
author={Easton Potokar and Spencer Ashford and Michael Kaess and Joshua G. Mangelson},
title={Holo{O}cean: An Underwater Robotics Simulator},
booktitle={Proc. IEEE Intl. Conf. on Robotics and Automation, ICRA},
address={Philadelphia, PA, USA},
month={May},
year={2022}
}@misc{romrell2025previewholoocean20,
title={A Preview of HoloOcean 2.0},
author={Blake Romrell and Abigail Austin and Braden Meyers and Ryan Anderson and Carter Noh and Joshua G. Mangelson},
year={2025},
eprint={2510.06160},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2510.06160},
}