Docker and MoveIt Pro
Configure Docker
Manually Installing Docker on Ubuntu
The installation script linked in the Quick Start procedure will automatically install or update Docker. However, for manual setups,
Follow this guide for installing Docker on Ubuntu.
Then, follow this guide to complete the post-installation step to allow running Docker as a non-root user.
MoveIt Pro Images
Use the following command to pull down specific versions of MoveIt Pro.
docker pull picknikciuser/moveit-studio:<TAG>
Where <TAG>
can be replaced by any version of feature name available in our public Docker Image repo.
Using Docker Images
MoveIt Pro uses standard docker-compose.yaml and .env files with Docker Compose.
The .env
is used to run different versions of MoveIt Pro and is automatically generated at runtime based on the contents of ~/.config/moveit_pro/moveit_pro_config.yaml
.
The persistent information can be found at , however we recommend configuring using moveit_pro configure
.
When given a prompt in bash, convention is to capitalize the default response.
Given the following prompt, pressing enter is equivalent to typing 'Y':
Do you understand [Y/n]?
When configuring MoveIt Pro you will be asked for the following information:
Please enter ROS domain ID:
- Make sure to pick a unique number if working on a shared network.Please enter MoveIt Pro configuration package:
- If you don't have a configuration package or enter the wrong information, you will be provided with a list of ROS packages (including all MoveIt Pro configurations) in your user workspace next time youmoveit_pro run
.Please enter MoveIt Pro Docker tag/version:
- Choose your MoveIt Pro version.Please enter User workspace path:
- This is the workspace that will be shared and built by MoveIt Pro, as well the location of the Dockerfile to build the MoveIt Pro user overlay.Please enter MoveIt Pro license key:
- Contact PickNik if you have not received one by e-mail.Do you want to replicate the localhost DDS configuration?
- Use this only if you need a DDS configuration other than the MoveIt Pro defaults. To establish communication with the host system, chooseN
and match the hosts DDS to the container (see Configuring DDS for MoveIt Pro).
When testing a certain feature on robot hardware, it is useful to use pre-built Docker images based on the feature tag or branch.
It is possible to use the Docker tag to switch between versions of MoveIt Pro.
When prompted you can enter a newer version but we strongly recommend going through the official process of upgrading-moveit-pro since the standard docker-compose.yaml
and .env
files may change across versions.
Running MoveIt Pro
After setting the appropriate environment variables, you can run MoveIt Pro using Docker Compose.
The provided docker-compose.yaml
file specifies a number of services that can be executed across any machines in your DDS peer network.
However, in the simplest case the entire application can be run with:
docker compose up
This is equivalent to using the moveit_pro
executable installed with MoveIt Pro:
moveit_pro run
Setups that may have drivers or different services running on separate machines require specifying which services to launch.
For example, suppose you are running non-realtime applications on an "agent PC" and drivers on a realtime PC.
In this setup, both the docker-compose.yaml
and the .env
files should be copied to both machines, and the docker compose up
command above should specify starting specific services on each machine:
-
On the realtime PC running the drivers:
docker compose up drivers
-
On the non-realtime PC running the remainder of the applications:
docker compose up agent_bridge rest_api frontend_agent web_ui
Once the application has started, open a web browser on the machine running the web_ui
service and navigate to http://localhost
.
Running Graphical Programs in Docker Containers
The standard docker-compose.yaml
sets the necessary bind mounts and environment variables to allow the user to run graphical programs from within the docker container.
Building Docker Containers on ZFS
If you are using a non standard filesystem such as ZFS, you may run into errors when building containers locally.
For instance, when executing docker compose build dev
.
To remedy this, follow the steps in the MoveIt Pro Troubleshooting Docker ZFS guide to update your Docker daemon to use the ZFS storage driver.