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.

Tip

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 you moveit_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, choose N 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.