This is the monorepo for all Tartan-AUV vehicle code, tools, and infrastructure.
Follow these instructions to set up the development environment and simulator on a fresh machine.
- Download VMware Fusion 13 Go to VMware.com and download Fusion and Workstation in the VMWare products. You will need to create a broadcom account. Download VMware fusion 13
- Create a Virtual Machine: Install the newest version of Ubuntu.
- Disk Space: 30GB minimum (40GB recommended).
- Click the wrench icon in VMware fusion and increase size, then run
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
- Enable OpenSSH: Ensure you can access the VM remotely.
- Install GUI: Install XFCE (a lightweight GUI) to display the simulator later:
sudo apt update sudo apt install xfce4
- Connect via SSH:
- Find the IP address of the VM:
ip a
- Use this IP address to SSH into the machine for the remaining steps.
- Find the IP address of the VM:
Docker Engine
- Install the Docker Engine following the official guide: Install Docker on Ubuntu.
- (Optional) Add your user to the docker group to run docker without
sudo:sudo usermod -aG docker $USER - Authenticate with the GitHub Container Registry:
docker login ghcr.io
- Username is your github username, password is your github key
- Settings -> developer settings -> personal access tokens -> tokens (classic).
- Turn on repo, write:packages, user, delete:packages, admin:ssh_signing_key
Git Configuration
- Configure global Git settings:
git config --global user.name "Your Name" git config --global user.email "your.email@example.com"
- Set up your SSH key with GitHub to allow for authentication during cloning.
-
Clone the repository:
git clone --recurse-submodules https://github.com/Tartan-AUV/tauv-mono.git
-
Build the Docker container:
cd tauv-mono/containers ./build_desktop_docker.sh docker compose up -d tauv-desktop -
Attach to the container: Using the
Dev Containersextension on VSCode, you should be able to attach to the container. Dev Containers: Attach to Running Container- Your VSCode may complain about unsafe repositories. This is simply because our code is segmented into submodules, and you can just mark everything as safe.
- Can also use
docker exec -it [Container Name] bashto attach
-
Build the ROS 2 Workspace: Once inside the container, build the workspace and source the setup script make sure you are in ros_ws folder :
colcon build --symlink-install source install/setup.bash- Recommended 8GB of memory.
- If it freezes while building it might have run out of memory, run this:
The --parallel-workers flag restricts building to one package at a time. The development environment has now been built.
colcon build --symlink-install --parallel-workers 1
ros2 launch tauv_sim desktop_sim.launch.pyStonefish opens a GUI window — X11 access must be granted first. Add this to your ~/.bashrc so it runs on every login:
xhost +local:If your machine has an NVIDIA GPU, the simulator will crash/lag without GPU passthrough. Two changes are needed:
-
In
containers/docker-compose.yaml, undertauv-desktop, add:runtime: nvidia environment: - NVIDIA_VISIBLE_DEVICES=all - NVIDIA_DRIVER_CAPABILITIES=all
These lines are already present on green's machine and marked with
# NOTE (green)comments — do not commit them for general use. -
Install the NVIDIA Container Toolkit on the host if not already present:
sudo apt install nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker
Docker
- To be added
ROS
- To be added
- SSH Via Tailscale or connecting to router direclty(we only have 3 seats total on tailnet unfortunately)
- Ensure you are in tauv-mono/containers and run
./build_osprey_docker.sh- only needs to be done if a modification has been made to the dockerfiles
- Run The container
- If it is not running already `docker compose up -d osprey-orin-user'
- Attach to it by
docker exec -it [Container name] bash
- ROS Stuff
- Will be in the
ros_wsfolder
- Will be in the
Each package will contain a more detailed readme in their folder