Installation guide

Overview

mc_rtc is an interface for simulation and robot control systems. These systems should provide the state of a given robot (joints’ values, sensor readings…) and in return mc_rtc will provide the desired robot’s state (command). This is done through the mc_control::MCGlobalController class. This class does not perform control by itself but rather delegates this task to the mc_control::MCController derived objects that it holds. Writing a controller within the mc_rtc framework is done by writing a class that inherits from the mc_control::MCController base class and implements the required functionnality. We implement such a controller in the following tutorials. The present tutorial simply explains how to build/install the framework on your machine.

architecture_overview

Installation instruction

We provide binaries for the current Ubuntu LTS releases and macOS via Homebrew. We also provide a source release using an easy-to-use script for Ubuntu, macOS and Windows and a vcpkg registry.

Binaries are recommended for Ubuntu users and macOS users. vcpkg is recommended for Windows users.

Ubuntu LTS (18.04, 20.04, 22.04)

# Setup the mirror curl -1sLf 'https://dl.cloudsmith.io/public/mc-rtc/stable/setup.deb.sh' | sudo -E bash # Install packages sudo apt install libmc-rtc-dev mc-rtc-utils # Assuming you have a ROS distribution mirror setup sudo apt install ros-${ROS_DISTRO}-mc-rtc-plugin ros-${ROS_DISTRO}-mc-rtc-tools
# Setup the mirror curl -1sLf 'https://dl.cloudsmith.io/public/mc-rtc/head/setup.deb.sh' | sudo -E bash # Install packages sudo apt install libmc-rtc-dev mc-rtc-utils # Assuming you have a ROS distribution mirror setup sudo apt install ros-${ROS_DISTRO}-mc-rtc-plugin ros-${ROS_DISTRO}-mc-rtc-tools

Note: the distributed version of mc_rtc runs with the QLD QP solver through eigen-qld. If you have access to the LSSOL solver and thus can install eigen-lssol then you can build Tasks with LSSOL support and install it in /usr. The two versions are binary compatible.

Homebrew (macOS)

Follow the official instructions to install Homebrew. Then:

brew tap mc-rtc/mc-rtc brew install mc_rtc

vcpkg

Follow vcpkg instruction to install vcpkg on your system.

You can then setup our registry by creating a vcpkg-configuration.json file either alongside the vcpkg binary or alongside your vcpkg.json manifest:

{ "registries": [ { "kind": "git", "baseline": "{see below}", "repository": "https://github.com/mc-rtc/vcpkg-registry", "packages": [ "libnotify", "hpp-spline", "ndcurves", "tvm", "spacevecalg", "rbdyn", "eigen-qld", "sch-core", "tasks", "mc-rbdyn-urdf", "mc-rtc-data", "eigen-quadprog", "state-observation", "mc-rtc" ] } ] }

Where baseline should be the latest commit sha1 on mc-rtc/vcpkg-registry

You can then either:

  • install mc_rtc via the vcpkg command: vcpkg install mc_rtc
  • use the mc_rtc package in your manifest (vcpkg.json file), such as the following example:
{ "name": "my-package", "version-string": "1.0.0", "homepage": "https://my.home", "description": "My package description", "dependencies": [ "mc-rtc" ] }

Using mc-rtc-superbuild

mc-rtc-superbuild is a CMake-based option to build mc_rtc and its dependencies. It also provides an extension mechanism to that you can build projects that require mc_rtc.

Please refer to the project’s homepage for usage instructions.

Deprecated options

The following options are also available but are deprecated:

Getting started

Once mc_rtc has been installed, you can jump to the next section.