- Docker Desktop (Linux users can install
docker+docker-composepackages) - Windows users: Ensure WSL2 backend is enabled in Docker Desktop
- GNU Make (Windows only — Linux/macOS already include it)
- The docker container itself is ~5.5 gigabytes
The dev container is built using a larger ROS framework (ROS Humble Desktop), providing some additional simulation and front-end packages you wouldn't necessarily need on the Thresher AUV.
-
Install Docker
-
Clone this repository:
git clone https://github.com/URI-Hydrobotics-Team/Thresher.git cd Thresher- !!Windows Users!! You may need to install GNU Make to use the Makefile
-
Install GNU Make
winget install GnuWin32.Make
-
Add to your PATH
- Open Start Menu --> Edit system environment variables
- System Properties --> Environment Variables
- Under system (or user) variables select
PATH--> Edit - Paste the path to where the
make.exefile is located (usuallyC:\Program Files (x86)\GnuWin32\bin) - Test by opening a new terminal and running
make --version
-
- !!Windows Users!! You may need to install GNU Make to use the Makefile
-
Build the dev container:
make build-dev
-
Run the container:
make run-dev
-
Build your ROS workspace:
cd ~/auv_ws colcon build source install/setup.bash ros2 launch <package_name> <launch_file>
Regularly run sudo apt update, sudo apt upgrade
On AUV computer
-
Run the installation bash script (it should only work on Ubuntu version 22.04)
./scripts/install_runtime.sh
-
Build the ROS workspace
cd ~/auv_ws colcon build source install/setup.bash ros2 launch <package_name> <launch_file>
- Launch the talker (while within your container)
cd /auv_ws
source install/setup.bash #Remember to always setup the bash file
ros2 run demo_nodes_cpp talker-
In a separate terminal connect to the currently running container
-
Look for the name of the existing container with
docker psIt should look like this:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES <container id> thresher-ros2-dev "/ros_entrypoint.sh …" _ minutes ago Up _ minutes <ports> <names>
-
Access the existing container:
docker exec -it <container name> bash
-
-
Run the listener in your 2nd terminal
cd /auv_ws
source install/setup.bash #Remember to always setup the bash file
ros2 run demo_nodes_cpp listenerThere's a way to run this in 2 separate containers and still have the listener receive the messages from the talker.