This project is currently under development
Ahoy! This project contains software intended to run on the custom-built Douglas AUV to compete at RoboSub2026 on behalf of McGill Robotics.
This project is maintained by the McGill Robotics Club and was developed by its members - students of McGill University.
Before setting up the dev environment, you should have the following software installed:
Docker(either through Docker Desktop or CLI)gitinstalled.Visual Studio CodeVisual Studio Code Remote Containers Plugin
If you have the software installed, follow these instructions:
-
git clonethis repository on your local environment. -
Open the repo in VS Code.
-
In the bottom left, you should see a little blue/green box. This will bring up the VSCode dialogue. (Keyboard Shortcut:
CTRL + SHIFT + PorCMD + SHIFT + P)
-
Select "Dev Containers: Reopen in container"
-
Select the option that matches your hardware
AUV Dev (CPU): CPU or Integrated GraphicsAUV Dev (NVIDIA): NVIDIA Graphics Card
-
VS Code will automatically load necessary files and configure the dev environment. This can take minutes to load.
Once loading is complete, you're ready to develop!
Use this when not using VS Code as your primary text editor
-
Navigate to the dev folder:
cd Docker/dev -
Allow GUI windows (Linux only):
xhost +si:localuser:root
-
Start the environment: Choose the command matching your hardware:
- NVIDIA GPU Users (Requires NVIDIA Container Toolkit):
docker compose up -d --build nvidia
- Standard CPU / Integrated Graphics:
docker compose up -d --build cpu
- NVIDIA GPU Users (Requires NVIDIA Container Toolkit):
-
Enter the container:
# For NVIDIA docker exec -it auv-dev-nvidia bash # For CPU docker exec -it auv-dev-cpu bash
For more details, see Docker/dev/README.md.
Once inside the container, use the build script. It automatically detects if you have the ZED SDK and builds accordingly.
cd /home/douglas/AUV-2026
./build.sh
source ros2_ws/install/setup.bashNote the script can be run from anywhere in the container and will always build inside the AUV-2026/ros2_ws folder.
Multiple build flags are available:
./build.sh: Default Release Build, works for most cases./build.sh -c: Clean Build, removes previous build artifacts (build/,install/,log/folders)./build.sh -d: Debug Build, compiles with debug symbols and no optimizations and serial compilation./build.sh -o: Offline Build, prevents CMake from attempting to download missing dependencies./build.sh -p <package_name>: Build a specific package and its required dependencies (as determined by colcon)
Since the debug -d build is single-threaded for easier debugging, it may take very long to compile. As such, it should only be used in tandem with the -p flag to build a specific package. A typical debug build command would be ./build.sh -cd -p <package_name>. Note that the -c will only clean the build artifacts for the specified package and its dependencies.
