Skip to content

mc_rtc is an interface for simulated and real robotic systems suitable for real-time control

License

Notifications You must be signed in to change notification settings

jrl-umi3218/mc_rtc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7998b40 · Mar 13, 2025
Feb 20, 2024
Dec 4, 2019
Dec 6, 2022
Jan 18, 2024
Apr 26, 2023
Aug 16, 2023
Feb 20, 2025
Apr 26, 2023
Feb 19, 2025
Feb 20, 2025
Jan 5, 2022
Feb 3, 2025
Apr 26, 2023
Nov 25, 2024
Apr 26, 2023
Mar 13, 2025
Feb 3, 2025
Jan 23, 2025
Apr 26, 2023
Apr 26, 2023
Jul 15, 2020
Dec 6, 2022
Jul 26, 2016
Jul 26, 2016
Mar 10, 2025
Feb 29, 2024
Feb 29, 2024
Jun 26, 2019
Aug 10, 2022

Repository files navigation

mc_rtc

License Hosted By: Cloudsmith CI Website

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, RBDyn and Tasks 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 and the SpaceVecAlg and RBDyn presentations authored by Joris Vaillant.

The project website provides a somewhat complete introduction of the framework functionalities.

Feel free to open an issue 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 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 embeds mc_rtc into 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 provides a thin UDP-based client/server. The client is a regular mc_rtc interface 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 interface with the VREP simulation software;
  • mc_naoqi interface with the NAOqi framework (Softbank Robotics robots);
  • mc_franka interface with the libfranka library for Franka Emika robots;
  • mc_mujoco interface with the MuJoCo physics simulator;

Installing

Please see mc_rtc installation guide for details.

mc_rtc also uses the following great 3rd party libraries but does not require you to get or install them: