Software
mc_rtc
By Joint Japanese-French Robotics Laboratory, Japan (checked on github.com/jrl-umi3218 (opens in a new tab)), from github.com/jrl-umi3218/mc_rtc (opens in a new tab)
- Humanoids and robot learning
- Framework
- BSD-2-Clause
mc_rtc is a C++ framework for writing robot controllers, acting as a layer between simulators or robot control systems and controller code that computes commands from robot state.
Facts
- GitHub stars
- 201read on 6 Nov 2026
- Last update
- 5 Nov 2026Newest commit on master
- Maintenance
- Activea commit in the last 90 days
- Difficulty
- Advanced
Checked on GitHub on 6 Nov 2026.
Licenses
- Code
- BSD-2-Clause (opens in a new tab)
Read by Robotheca from LICENSE (opens in a new tab) (BSD-2-Clause) at commit b375c7f (opens in a new tab), on 6 Nov 2026.
- Commercial use
- Yes
Overview
What it does: Robotheca's summary
- Provides the MCGlobalController class, which delegates control to MCController objects that users write by subclassing the base class.
- Acts as a higher-level interface over SpaceVecAlg, RBDyn and Tasks, making them easier to use.
- Connects to third-party frameworks such as ROS, OpenRTM, UDP, V-REP, NAOqi, libfranka and MuJoCo through separate interface projects.
Written by Robotheca from the project's README (opens in a new tab) at commit 2f79bbe, not by its creator.
The README
The creator's own README, copied as written: README.md by Joint Japanese-French Robotics Laboratory, at commit b375c7f, under BSD-2-Clause (opens in a new tab). The original on GitHub (opens in a new tab).
Read the README here
mc_rtc
(opens in a new tab) (opens in a new tab) (opens in a new tab) (opens in a new tab)
NOTICE: https://jrl.cnrs.fr/mc_rtc (opens in a new tab) is currently down. Please use https://jrl-umi3218.github.io/mc_rtc (opens in a new tab) while we work on a fix.
Introduction
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. The details of this process can be found in the project documentation.
mc_rtc is a super-set of SpaceVecAlg/RBDyn/Tasks libraries which provides a friendlier/easier interface for the user.
This framework assumes some familiarity with the SpaceVecAlg (opens in a new tab), RBDyn (opens in a new tab) and Tasks (opens in a new tab) although the libraries in the mc_rtc package abstract most of these libraries inner-workings. Unfamiliar users may refer to the SpaceVecAlg and RBDyn tutorials (opens in a new tab) and the SpaceVecAlg and RBDyn presentations (opens in a new tab) authored by Joris Vaillant.
The project website (opens in a new tab) provides a somewhat complete introduction of the framework functionalities.
Feel free to open an issue (opens in a new tab) for questions, feature requests or problems you might encounter.
Available interfaces
The following interface between mc_rtc and 3rd-party framework are available:
- mc_rtc_ros (opens in a new tab) contains a number of tools related to the framework as well as a simple "ticker" that allows to run controllers in an open-loop fashion;
- mc_openrtm (opens in a new tab) embeds
mc_rtcinto a RTC component, this can be used to control a robot that is using the OpenRTM framework, an example with the virtual JVRC1 robot is also provided; - mc_udp (opens in a new tab) provides a thin UDP-based client/server. The client is a regular
mc_rtcinterface that gets data through the UDP socket. The server can easily be implemented to interface with your robot. A server to interface with OpenRTM components is provided. - mc_vrep (opens in a new tab) interface with the VREP simulation software;
- mc_naoqi (opens in a new tab) interface with the NAOqi framework (Softbank Robotics robots);
- mc_franka (opens in a new tab) interface with the libfranka library for Franka Emika robots;
- mc_mujoco (opens in a new tab) interface with the MuJoCo (opens in a new tab) physics simulator;
Installing
Please see mc_rtc installation guide (opens in a new tab) for details.
mc_rtc also uses the following great 3rd party libraries but does not require you to get or install them:
Files and versions
- Repository on GitHubgithub.com/jrl-umi3218/mc_rtc (opens in a new tab)
- The version Robotheca readb375c7f (opens in a new tab)
- Latest releaseRelease 2.16.0 (19 Oct 2026)
Robotheca read the repository at two versions: the summary at 2f79bbe and the facts and the README at b375c7f (read on 6 Nov 2026).
Robotheca never hosts the code: each link goes to the creator's own page.
Use it
How to install it, in the creator's words: The project's website (opens in a new tab)
Robotheca doesn't review code. Read it before running it.
Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.