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

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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: