Multiple Containers¶
Startup¶
Open the folder:
cd ~/catkin_ws/src/HARMONI
(Optional) In order to run with window forwarding on linux use:
xhost +local:
Use docker compose to launch the complete system (will build if necessary, use –build to force):
docker-compose -f docker-compose.yml up
If the terminal prints: “Hello, rosmaster”, you successfully setup the HARMONI full container.
Note: We provide a bash script for launching multiple containers called run_compose.sh which does the same thing
To connect your terminal to a running container execute:
docker exec -it $CONTAINER_NAME bash
To connect to each of the containers you should connect with four seperate terminals:
harmoni_full (the ROS master)
ros_hardware (hardware services)
ros_w2l (Words-to-Letter for the speech-to-text detector)
harmoni_face_detector (face detector)
Executing Across Containers¶
To begin working with ROS, we must start with roscore. The docker containers have been networked so we only need to invoke one core in one of the containers. In the terminal you have connected to harmoni_full run:
roscore
You can now launch any service in any container and they will communicate with each other. See ‘Launching Services’ for an example.