Advanced Launch Configurations

Beyond the Software Installation and Configuring MoveIt Studio guides, there are many advanced ways to install and run MoveIt Studio, discussed here.

Run MoveIt Studio Processes in Separate Terminals

MoveIt Studio consists of multiple applications, all of which run on separate Docker containers.

  • drivers: (Optional) The application for connecting to arm hardware drivers, if managed by MoveIt Studio.

  • agent: Contains core processes for loading and running objectives.

  • bridge: Application layer to connect the agent to the front end.

  • rest_api: Application layer to provide configuration and storage access to the front end.

  • frontend_agent: Application layer to provide packet transport between the backend and the user interface.

  • web_ui: The frontend application run in the browser.

In the provided docker-compose.yaml, each application can be run separately by running the following commands in 5 different terminals:

  • docker compose up rest_api

  • docker compose up agent

  • docker compose up frontend_agent

  • docker compose up bridge

  • docker compose up web_ui

  • docker compose up drivers

Depending on your specific setup, you can launch these applications on different machines. For an example, refer to the Use MoveIt Studio with Hardware section.

Build and Test Your Workspace

If you mounted a user workspace from your host into MoveIt Studio, the packages in that workspace will be mounted to the /opt/moveit_studio/user_ws folder inside the relevant containers. This gives you access to a few more useful Docker services:

  • workspace_builder: Rebuilds your user workspace by calling colcon build. This is useful when you are modifying source code and need to confirm that the changes compile correctly.

  • workspace_test: Runs tests for your user workspace by calling colcon test. This is useful to ensure that source code changes have not caused any existing tests to fail.

These services are runnable using the commands docker compose up workspace_builder and docker compose up workspace_test, respectively.

Note

If you mount a user workspace and start MoveIt Studio, workspace_builder will always execute first to ensure that your latest source code is running.

Introspecting in MoveIt Studio

While the MoveIt Studio web app displays key information (such as Objective successes or failures) and has a Logs section with more information, you may need to analyze results in more detail during your development.

Changing Logging Levels

You can edit your docker-compose.yaml file to change the ROS 2 logging severity. For example, you can change the logging level of the agent service from its default value of warn to info by adding log_level:=info to its launch command as shown below:

agent:
   # Other arguments
   # ...
   command: bash -c "ros2 launch moveit_studio_agent studio_agent.launch.py log_level:=info 2>&1 | tee ~/.ros/log/agent_0_0.log"

After restarting MoveIt Studio, you should see more information being displayed in the Logs section.

Using the ROS 2 Command-Line interface

From the current MoveIt Studio install folder, you can open an interactive Bash session with the MoveIt Studio Agent Docker container:

docker compose exec -it agent bash

Once you are inside the container, ensure to source the MoveIt Studio workspace. Then, you can use the ROS 2 command-line interface (CLI) to introspect nodes, topics, and more.

source /opt/overlay_ws/install/setup.bash
ros2 node list
ros2 topic echo /joint_states

If you mounted a user workspace from your host, you should instead source that workspace using:

source /opt/moveit_studio/user_ws/install/setup.bash

Visual Debugging with RViz

MoveIt Studio provides a default RViz configuration for visual debugging. For example, this easily lets you analyze camera feeds, the TF tree, motion planning results, and more.

docker compose exec -it agent bash
source /opt/overlay_ws/install/setup.bash
ros2 launch moveit_studio_agent developer_rviz.launch.py
../../../_images/developer_rviz.png