G en o M3 Building middleware-independent robotic components A. - - PowerPoint PPT Presentation

g en o m3 building middleware independent robotic
SMART_READER_LITE
LIVE PREVIEW

G en o M3 Building middleware-independent robotic components A. - - PowerPoint PPT Presentation

G en o M3 Building middleware-independent robotic components A. Mallet, C. Pasteur, M. Herrb, S. Lemaignan, F. Ingrand. Paper presentation by Pablo Rauzy. Ecole normale sup erieure Robotics presentation, February 15, 2011 G en oM3 Pablo


slide-1
SLIDE 1

GenoM3 Building middleware-independent robotic components

  • A. Mallet, C. Pasteur, M. Herrb, S. Lemaignan, F. Ingrand.

Paper presentation by Pablo Rauzy.

´ Ecole normale sup´ erieure

Robotics presentation, February 15, 2011

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 1 / 14

slide-2
SLIDE 2

Introduction

The problem

◮ Need for reusable code ◮ ... at every level

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 2 / 14

slide-3
SLIDE 3

Introduction

The solution

◮ Software engineering approach ◮ ... at every level

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 2 / 14

slide-4
SLIDE 4

Introduction

How?

◮ Classical software engineering and architecture for high level code ◮ A component based architecture ◮ An efficient way to abstract middleware (this is what was missing)

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 2 / 14

slide-5
SLIDE 5

Abstracting middleware?

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 3 / 14

slide-6
SLIDE 6

Abstracting middleware?

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 3 / 14

slide-7
SLIDE 7

Abstracting middleware?

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 3 / 14

slide-8
SLIDE 8

Abstracting middleware!

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 4 / 14

slide-9
SLIDE 9

Abstracting middleware!

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 4 / 14

slide-10
SLIDE 10

An overview of the GenoM3 workflow

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 5 / 14

slide-11
SLIDE 11

GenoM3 usage

Glue

◮ Link the library and the middleware together ◮ Middleware independance is deferred to the sole glue software ◮ Separation of concerns between the algorithmic core and the

middleware

◮ Generated automatically!

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 6 / 14

slide-12
SLIDE 12

GenoM3 usage

Component templates

◮ Contains all the code that is not part of the algorithmic core of any

specific component

◮ Only one template is required for a given middleware ◮ Yet, different templates allow to switch easily between alternative

architecture

◮ Developped in any language, using the whole language

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 6 / 14

slide-13
SLIDE 13

GenoM3 usage

Component description file

◮ Contains all the necessary information to describe the component ◮ GenoM3 parser builds an AST and converts it into a suitable

representation for the scripting language of the template interpreter

Data in component description files

◮ Data types used in the interface ◮ Meta-data (language, internal data structure) ◮ Data ports and events ◮ Tasks ◮ Services

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 6 / 14

slide-14
SLIDE 14

GenoM3 usage

Codels

◮ Set of individual functions, performing only elementary actions ◮ No different from any regular library

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 6 / 14

slide-15
SLIDE 15

Comparing frameworks:

YARP, MS Robotics Dev Studio, URBI, OpenRTM-aist, ROS

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 7 / 14

slide-16
SLIDE 16

Comparing frameworks

YARP

◮ Collection of programs which communicates (strong focus on

communication)

◮ C++ ◮ Designed for research ◮ ROS compatible

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 8 / 14

slide-17
SLIDE 17

Comparing frameworks

Microsoft Robotics Dev Studio

◮ Non-free (as in freedom)! ◮ Windows only ◮ C# or VPL (visual programming) / .NET ◮ Fullstack IDE + advanced simulator ◮ Natively work with a lot of commercial robots (incl. NXT)

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 9 / 14

slide-18
SLIDE 18

Comparing frameworks

URBI

◮ Component based ◮ C++ UObject orchestrated by urbiscript DSL

◮ Parallelism for free ◮ Easy event-based programming ◮ Advanced flow control using tags

◮ ROS compatible

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 10 / 14

slide-19
SLIDE 19

Comparing frameworks

OpenRTM-aist

◮ Component oriented ◮ C++ / Java / Python ◮ ROS compatible

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 11 / 14

slide-20
SLIDE 20

Comparing frameworks

ROS

◮ Full OS ◮ Control low level too ◮ Notion of nodes (similar to “components”) ◮ C++, Python and ROS ◮ Seems to be the reference

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 12 / 14

slide-21
SLIDE 21

Comparing frameworks

Conclusion

ROS wins?

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 13 / 14

slide-22
SLIDE 22

The end Questions?

Pablo Rauzy (ENS) GenoM3 Robotics 2010/2011 14 / 14