Improve your ROS code with ModelDriven-Engineering and save development
time while doing it
ROSCon 2013 – May 11, 2013
Alexander Bubeck© Fraunhofer IPA

Current challenges in the ROS community
Software quality and reuse Reuse …

 Understandable code …
 Standards / Best practices …
 Learning curves …
 Fast releases …

 Distributed development …

ROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA

2

Model driven engineering
In a nutshell Development and use of domain
models to represent abstract
knowledge toM3 Meta-Meta-ModelMOF• Mechanisms to describe component
frameworks

 Encapsulate complexity

M2 Meta-ModelUML

 Differentiate user roles• Model of a component framework

 Enforce architectures
Model ofclass

CodeM1 Model Support reuse• Models of components or systems

 Object management groupdefines multi-layer architecture

M0 Implementation• Implementation of specificcomponents

ROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA

3

BRIDE – An Eclipse based MDE-toolchain for ROS
Overview
The BRICS IDE (BRIDE) is an Eclipse distribution including: Graphical model editors for different developer roles in a ROS development

 Automatic generation of C++ or Python ROS nodes
 Launch files configuring ROS topics, services and parameters Separation of ROS independent user code and ROS skeletons Integration with Eclipse development environments for C++ and python (CDTand pydev)
ROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA

4

BRIDE – An Eclipse based MDE-toolchain for ROS
Different types of ROS users
 Domain expert
 System integrator
 Application engineer
 End user

 Architect

ROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA5

BRIDE – An Eclipse based MDE-toolchain for ROS
Development process
Coordination building

ros_package

ros_system

ros_coordinator

Communication
Coordination
Configuration

ROS package + nodeComposition

Computation

Computation
Communication
Coordination

Composition

System deployment

Composition

Capability building

Computation
Communication

Coordination
Configuration

Configuration

Launchfile + yaml

ROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA

6SMACH + yaml

BRIDE – An Eclipse based MDE-toolchain for ROS
Textual workflow

 Do I really have to use all this IDE stuff?
 Xtext based DSL’s# vi model/mymodel.ros_package Standalone M2T compilers# rosrun bride_compilers m2t
 Integration into the rosbuild system# make regen

ROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA

7

BRIDE – An Eclipse based MDE-toolchain for ROS
Flexibility
 Cross toolchain

 Generate OROCOS components with the same computational code* Configuration management
 Support for rosparam server, dynamic_reconfigure and yaml based
configuration
 Automatic generation of yaml files*
 Legacy code
 Use existing (non-MDE) ROS components in your systems andcoordinators
ROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA

8

Walk-through BRICS Showcase
Creating Capabilities

ROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA

10

Walk-through BRICS Showcase
Creating Systems

ROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA

11

BRIDE – An Eclipse based MDE-toolchain for ROS
Call for participation
 Use it + Refactor !

And give feedback of the toolchain
 Complain about the code !
Help improve the code templates (bride_templates)
 Share your ideas !
What are your use cases?
bride-users@best-of-robotics.org
https://github.com/ipa320/brideROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA

13

Current challenges in the ROS community
Software quality and reuse -- Recap Reuse components by adapting Understandable code is created because crosscutting concerns are
separated and the component models document the structure of a ROS
node Standards / Best practices can be enforced by reuse of models
 Learning curves change because beginners don’t fight with boost
pointers etc.

 Fast releases can be handled by updating the code templates
 Distributed development is endorsed by communicating with models

ROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA

14

Summary
BRIDE for ROS development
 BRIDE, a model driven engineering tool chain,disseminates Software Engineering techniques inthe ROS community Current released version 0.2:
 Capability Development andSystem Deployment

 Coordinator Development

BRIDE for ROS:
http://ros.org/wiki/bridesudo apt-get install ros-fuerte-bride Standalone compiler Please participate in this activities !

Contact:
Alexander Bubeck
alexander.bubeck@ipa.fraunhofer.de
Tel: +49 711 970 1314

Acknowledgement to the project FP7-ICT231940-BRICS (Best Practice in Robotics)
www.best-of-robotics.org
ROSCon 2013 – Stuttgart, Germany© Fraunhofer IPA

15