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.
The following interface between mc_rtc
and 3rd-party framework are available:
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_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.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: