<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Addressing Multi-Domain Integration Challenge in Robotics using Model-Based Approach</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Arunkumar Ramaswamy</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bruno Monsuez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adriana Tapus</string-name>
          <email>adriana.tapusg@ensta-paristech.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer and System Engineering, ENSTA-ParisTech</institution>
          ,
          <addr-line>828 Blvd Marechaux, Palaiseau</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>VeDeCom Institute</institution>
          ,
          <addr-line>77 rue des Chantiers, Versailles</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Software development for robotic systems require knowledge from several domains. This paper highlights the application of domain modeling in SafeRobots Framework for designing robotic systems. We discuss how heterogeneous domain models can be modeled and integrated for systematic software development, and how it can be employed in intelligent model evolution.</p>
      </abstract>
      <kwd-group>
        <kwd>robotics</kwd>
        <kwd>model-driven software engineering</kwd>
        <kwd>knowledge-based systems</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        System engineering robots poses an interesting challenge of integrating
heterogeneous problem domains while designing the system. This heterogeneity can be
seen in terms of conceptual domains (e.g., perception, control systems, mapping),
models of computation (e.g., synchronous, asynchronous, discrete, continuous
time), application domains (e.g., service robots, industrial robots, driver-less
cars), etc. In the last decade, developing software for such complex systems was
addressed by `divide and rule' strategy by adopting component-based software
engineering techniques [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This has resulted in a large number of middlewares
(e.g., ROS [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]), code libraries (e.g., PCL [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]), and component frameworks
developed by di erent research laboratories and universities. To a large extent, these
frameworks have helped in rapid prototyping of individual functionalities, but
system integration and analysis still remains an issue. The main reason is that
these frameworks handle the system development at the level of software code.
The system integration problem can be managed e ciently by increasing the
level of abstraction.
      </p>
      <p>
        In this paper, we highlight the application of domain modeling for robotic
system design in our `SafeRobots' framework [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Speci cally, we discuss the
following two questions with respect to SafeRobots Framework:
1. How domain knowledge is modeled in SafeRobots Framework?
2. How the domain models helps in model evolution during software
development?
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related</title>
    </sec>
    <sec id="sec-3">
      <title>Works</title>
      <p>
        By learning from the shortcomings of code-based approaches, the software
engineering community in robotics is gradually moving towards Model-Driven
Software Development (MDSD) approach. The Smartsoft framework is based on
a model driven toolchain that support formal modeling of component
skeleton that act as a wrapper around the user code [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The European project on
Best Practices in Robotics (BRICS) provides guidelines and a framework to
develop robotic components [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. They are based on the separation of concerns
between di erent aspects of Computation, Communication, Coordination,
Conguration, and Composition. Currently it is in the developmental stage and only
limited concepts have been integrated in the toolchain. RobotML, developed in
the framework of the French research project `PROTEUS' is a DSL for
designing, simulating, and deploying robotic applications [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. V3CMM component
meta-model consists of three complementary views: structural, coordination, and
algorithmic views. However, it has not addressed any robotic domain speci c
aspects [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
3
      </p>
      <p>SafeRobots: A model-driven toolchain for software
development in Robotics</p>
      <p>
        Self Adaptive Framework for Robotic Systems (SafeRobots) is a model-driven
toolchain that is currently under development in our lab at ENSTA-ParisTech.
SafeRobots is based on three software engineering paradigms: Knowledge-based
engineering, Model-driven engineering, and Component-based software
engineering. A comprehensive discussion on SafeRobots can be found in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>In SafeRobots framework, the entire software development process is
conceptually divided into three spaces: problem space, solution space, and operational
space. Each space is supported by a knowledge space which acts as a bridge
between the three spaces. The complete ecosystem is illustrated in Figure 1. In
problem space, the problem, the requirements, and the contexts are modeled
using appropriate Modeling Languages (ML). The solution space model captures
the knowledge relating to domain concepts, computational algorithms, execution
sequence, and their non-functional properties in a formal way. The Architecture
Modeling and Analysis Language (AMAL) and its open semantic framework
enables concrete architecture modeling in the operational space.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Domain Knowledge Modeling</title>
      <p>In SafeRobots, the domain knowledge is modeled in two di erent phases:
Problem Independent Knowledge Modeling and Problem Speci c Knowledge
Modeling. These two phases correspond to the knowledge space and solution space in
Figure 1.
4.1</p>
      <sec id="sec-4-1">
        <title>Problem Independent Knowledge Modeling</title>
        <p>The domain knowledge modeling in this phase is independent of the problem
speci cation or application constraints. The domain concepts are formally
modeled using ontologies, Domain-Speci c Languages (DSLs), Knowledge graphs,
etc. The models at this level captures the robotic domain speci c concepts,
meta-data about the computational algorithms and standard interfaces, their
structural dependencies, etc. The domain knowledge complements the various
application speci c development process by providing a knowledge base for
abstract concepts such as image, point clouds, links, joints, platform, etc.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Problem Speci c Knowledge Modeling</title>
        <p>
          Problem-speci c knowledge modeling or solution space modeling is performed
with the help of functional requirements from the problem model as constraints
applied to the domain model. In other words, a solution space model captures
multiple solutions for the given problem by considering only the functional
requirements and given domain knowledge base modeled in problem independent
knowledge modeling phase. The strategy is to postpone the decisions on
nonfunctional requirements at a later stage, since such properties can be estimated
only when platform-speci c decisions are made. In our approach, the solution
space is formally modeled using our modeling language, `Solution Space
Modeling language (SSML)'. Figure 2 shows a solution space model in SSML for lidar
based vehicle tracking application. The connectors represents computational
algorithms and their non-functional property model and the gates represents basic
operations for composing di erent functional computational processes. The given
model shown in Figure 2b capture three di erent solutions for the pointcloud
segmentation problem. The three solutions that are modeled satis es the
functional goal of the problem model, but has di erent non-functional properties. A
detailed discussion on SSML and the vehicle tracking application scenario can
be found in [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
(a) Experimental setup of lidar (b) Solution space model of pointcloud
segmenmounted vehicle tation operation
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Knowledge Supported Model Evolution</title>
      <p>
        The conceptual spaces from the SafeRobots framework shown in Figure 1 are
hierarchically arranged in such a way that the lower layer uses the knowledge
gained in the upper layer. The knowledge space consists of domain concepts
represented using ontologies. The problem is modeling in the form of goals (i.e.,
hard goals and soft goals) and requirements modeled using Goal and
Requirement Language (GRL). By applying the functional constraints provided by the
problem space on the domain conceptual knowledge, the solution space for the
given problem is modeled. The non-functional properties (NFP) modeled using
our NFP modeling language [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] are speci ed along with their functionalities
in the solution model. The operational model is ltered from solution model by
applying non-functional constraints provided by the problem model. The
operational model contains concrete architectural model with variabilities that are
resolved dynamically during run-time. Hence, the knowledge provided by the
domain models are used by the tool to guide various phases of software
development.
      </p>
      <p>The SafeRobots toolchain is being implemented using Eclipse Modeling
Framework. The model evolves during the software development by incorporating the
knowledge created in the form of models and helps to shift the critical decision
when more information is available.</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>In this paper, we discussed how modeling techniques are employed in
SafeRobots framework to model domain knowledge and how they can be applied in
intelligent software tools and process, to develop complex robotic systems. The
main challenge is to adopt the domain model at the appropriate granularity to
assist the system designer in systematic software development process to develop
e cient and reusable software for robotic systems.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D.</given-names>
            <surname>Brugali</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Scandurra</surname>
          </string-name>
          , \
          <article-title>Component-based robotic engineering (part i)[tutorial]," Robotics &amp; Automation Magazine</article-title>
          , IEEE, vol.
          <volume>16</volume>
          , no.
          <issue>4</issue>
          , pp.
          <volume>84</volume>
          {
          <issue>96</issue>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Quigley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Conley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Gerkey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Faust</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Foote</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Leibs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Wheeler</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. Y.</given-names>
            <surname>Ng</surname>
          </string-name>
          , \
          <article-title>ROS: an open-source Robot Operating System,"</article-title>
          <source>in ICRA workshop on open source software</source>
          , vol.
          <volume>3</volume>
          , no.
          <issue>3</issue>
          .
          <issue>2</issue>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>R. B.</given-names>
            <surname>Rusu</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Cousins</surname>
          </string-name>
          , \
          <article-title>3d is here: Point cloud library (pcl)," in Robotics and Automation (ICRA</article-title>
          ),
          <source>2011 IEEE International Conference on. IEEE</source>
          ,
          <year>2011</year>
          , pp.
          <volume>1</volume>
          {
          <fpage>4</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>A.</given-names>
            <surname>Ramaswamy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Monsuez</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Tapus</surname>
          </string-name>
          , \
          <article-title>Saferobots: A model-driven approach for designing robotic software architectures,"</article-title>
          <source>in International Conference on Collaboration Technologies and Systems (CTS)</source>
          , Minneapolis, USA. IEEE, May
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>C.</given-names>
            <surname>Schlegel</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Worz</surname>
          </string-name>
          , \
          <article-title>The software framework smartsoft for implementing sensorimotor systems,"</article-title>
          <source>in Intelligent Robots and Systems</source>
          ,
          <year>1999</year>
          . IROS'
          <fpage>99</fpage>
          .
          <string-name>
            <surname>Proceedings</surname>
          </string-name>
          . 1999 IEEE/RSJ International Conference on, vol.
          <volume>3</volume>
          . IEEE,
          <year>1999</year>
          , pp.
          <volume>1610</volume>
          {
          <fpage>1616</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>R.</given-names>
            <surname>Bischo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Guhl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Prassler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Nowak</surname>
          </string-name>
          , G. Kraetzschmar,
          <string-name>
            <given-names>H.</given-names>
            <surname>Bruyninckx</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Soetens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Haegele</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pott</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Breedveld</surname>
          </string-name>
          et al., \
          <article-title>Brics-best practice in robotics," in Robotics (ISR</article-title>
          ),
          <source>2010 41st International Symposium on and 2010 6th German Conference on Robotics (ROBOTIK)</source>
          .
          <source>VDE</source>
          ,
          <year>2010</year>
          , pp.
          <volume>1</volume>
          {
          <fpage>8</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>S.</given-names>
            <surname>Dhouib</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kchir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Stinckwich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Ziadi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Ziane</surname>
          </string-name>
          , \
          <article-title>Robotml, a domainspeci c language to design, simulate and deploy robotic applications," in Simulation, Modeling, and Programming for Autonomous Robots</article-title>
          . Springer,
          <year>2012</year>
          , pp.
          <volume>149</volume>
          {
          <fpage>160</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>D.</given-names>
            <surname>Alonso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Vicente-Chicote</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ortiz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pastor</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Alvarez</surname>
          </string-name>
          , \
          <article-title>V3cmm: A 3-view component meta-model for model-driven robotic software development,"</article-title>
          <source>Journal of Software Engineering for Robotics</source>
          , vol.
          <volume>1</volume>
          , no.
          <issue>1</issue>
          , pp.
          <volume>3</volume>
          {
          <issue>17</issue>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>A.</given-names>
            <surname>Ramaswamy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Monsuez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tapus</surname>
          </string-name>
          et al., \
          <article-title>Solution space modeling for robotic systems,"</article-title>
          <source>Journal for Software Engineering Robotics (JOSER)</source>
          , vol.
          <volume>5</volume>
          , no.
          <issue>1</issue>
          , pp.
          <volume>89</volume>
          {
          <issue>96</issue>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>A.</given-names>
            <surname>Ramaswamy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Monsuez</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Tapus</surname>
          </string-name>
          , \
          <article-title>Modeling non-functional properties for human-machine systems," in 2014 AAAI Spring Symposium Series, Formal Veri cation and Modeling in Human-Machine Systems</article-title>
          , Palo Alto, USA, March
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>