Advanced Launch Configurations
Beyond the Quick Start 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 theagent
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 Getting Started 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 callingcolcon 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 callingcolcon 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 -a ~/.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