BCM: BRICS Component Model

The BCM is meant to serve as the model for communicating software concepts expressed using component based software concepts. The BCM is not directly used to generate code but instead is transformed to a component framework such as RTT, OpenRTM or ROS that can be used for realization and instantiation. The Alpha version BRDE supports the transformation of BCM to RTT. The transformation is bidirectional so software written using the RTT model can be transformed to the BCM model thus legacy software wit ten in RTT can be "easily" expressed in term of the BCM. Given a n RTT model we can produce and RTT Package which contains all the C++ code and other artifact needed by the component framework for execution of the software. Round tripping from C++ code to RTT model although feasible is being currently supported given the time scope of the BRICS project yet effort are being pursued to support round tripping outside of the BRICS project context.

Transformations from one one component framework to another is done only via the BCM. The BCM model is limited to contain only those model elements, such as Ports, that are common to all framework. Direct transformation between frameworks is not done. It is expected that one the transformation between other frameworks are produced then the complexity of the BCM will be enriched by further common elements of the different component frameworks.

One important aspect to be explored is not only the transformation of code from one framework to the other but also the production of code in multiple frameworks that is interoperable between each other within one robotic system.