orocos @ laashomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · orocos@laas...

30
Orocos @ LAAS One year after... Anthony Mallet, Sara Fleury, Raja Chatila LAAS - CNRS [email protected], [email protected], [email protected] Leuven, November 18th, 2002

Upload: others

Post on 10-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos @ LAASOne year after...

Anthony Mallet, Sara Fleury, Raja Chatila

LAAS - CNRS

[email protected], [email protected], [email protected]

Leuven, November 18th, 2002

Page 2: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Outline

• Software Architecture

. Approach overview and existing tools.

• Salient Examples

. Robots, operating systems

• Orocos@LAAS

. Last year work

Outline GenoM Salient Examples Orocos@LAAS Conclusion 1

Page 3: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

GenoM Introduction

Context: Autonomous Robots

Systems and software are becoming more

and more complex.

• many functionalities

• decisional aspects • A real-time distributed system· Heteregenous functionalities· Inter-task communication

• A supervised system· Dynamic control· Dynamic parametrization· Observability

• An open system· Incremental design

Strong need for software architectures

Outline GenoM Salient Examples Orocos@LAAS Conclusion 2

Page 4: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

GenoM Robot Architecture

N

S

EW

perception

mission

10 s

1 s

0.1 s

Modules

communication

OPERATOR

reports

state

requests reports

control

proprioceptivesensors

proximetricsensors

effectorsexteroceptivesensors

ENVIRONMENT

Dec

isio

nal

Lev

elE

xecu

tio

nC

on

tro

l Lev

elF

on

ctio

nal

Lev

elL

og

ical

Sys

tem

Ph

ysic

alS

yste

m

Executive

servo−controlcontrol

reflex actions

Plan Supervisor

Task Supervisor� Task

Refinment

MissionPlanner

Sensor and Effector Interface

monitoring

modelling

requests

Outline GenoM Salient Examples Orocos@LAAS Conclusion 3

Page 5: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

GenoM Functional Level: Generic Components

Component: entity offering ser-

vices that endow the functional layer

with a particular capability.

Services are parametrized and

started by asynchronous requests,

which in turn spawns activities

whithin the execution engines.

functionalpposters

controlposter

(to sensor or effector or other module)

activities

controller

requests replies

clients

controldatabase

functionaldatabase

requests / replies library interface

dataflow

execution engines

post

er a

cces

s lib

rary

inte

rface

Outline GenoM Salient Examples Orocos@LAAS Conclusion 4

Page 6: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

GenoM Dynamic Network of Modules

1. visual tracking

uses 3 basic services

platform control

videoacquisition

camera

platform

positioncontrol

odometer driving−wheels�

imag

e

visualtracking

reference position

2. visual tracking + obstacle avoidance

7 modules are now involved

tracking +avoidance

platform control

videoacquisition

visualtracking

camera

platform

positioncontrol

localavoidance

odometersonars driving−wheels�

sonarcontrol

imag

e

us d

ata

reference position

Outline GenoM Salient Examples Orocos@LAAS Conclusion 5

Page 7: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

GenoM Data Flow

Poster

• Structured shared memory

• Writable only by the owner (compo-

nent that export the data).

• Readable by any other component

• Allow data flow redirection

Example: Three possible sources for

position control

positioncontrol

visualtracking

pathtracking

wallfollowing

odometer driving−wheels

1Pposter_2Pposter_ 3Pposter_

poster_Pntracking_request ( )possible

inputreference

Outline GenoM Salient Examples Orocos@LAAS Conclusion 6

Page 8: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

GenoM Activity management

Activity state diagram

EXEC−/exec

−/end

abort/−−/ended

exec/−

−/fail

−/fail

−/fail

−/failed

−/execfail

start

exec

end

INTER *

ETHER

INIT

ZOMBIE�

EXEC *

inter

control graph

execution graph

Outline GenoM Salient Examples Orocos@LAAS Conclusion 7

Page 9: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

GenoM The tool

InterfaceLibraries

TestProgram

Module�������������

����

� �����������

GenoM

FormalDescription

GenericModuleSkeleton

Parser

12

3

4

Codels

Algorithmsincluding

������������������

� �"! �#���������

• Formal description: input for GenoM

• Generation of the component: code generation and compilation

• Test and validation programs.

Outline GenoM Salient Examples Orocos@LAAS Conclusion 8

Page 10: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Salient Examples Robots

Outline GenoM Salient Examples Orocos@LAAS Conclusion 9

Page 11: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Salient Examples Lama

Sensing

Localisation

Motion generation

Environment maps

Navigation

W E

S

N

LocoPanoLoc

Tcl Scripts

Steo

Pan−Tilt

P3D

DEM

Stereo

ND

decisional level

Arc

ClassifTracker

Camera Pan−Tilt GPS

functional level

hardware level

PoM

Outline GenoM Salient Examples Orocos@LAAS Conclusion 10

Page 12: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Salient Examples Lama

Outline GenoM Salient Examples Orocos@LAAS Conclusion 11

Page 13: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Salient Examples Karma

W E

S

N

PSfrag replacements

Tcl Scripts

NAVTrajectoryPlanner

POMPositionManager

DEMTerrainMapping

PILOTTrajectoryControl

STEOVisualOdometry

STEREOStereoCorrelation

FLIGHTFlightControl

SMUAttitude

IMUIntertial GPS

CAMERAImageAcquisition

Traj. Pos.

Pos.Pos.

Pos.

Map

Spd

Spd

Pos.

3D

Vid.

Sensors / Effectors

Functional Components

Supervision Layer

Outline GenoM Salient Examples Orocos@LAAS Conclusion 12

Page 14: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Salient Examples Diligent

Localisation

Sensing

Environment maps

Motion generation

XR4000

M2D

LocExt

Band

Grid

ND

Propice Supervision (Robels)

Zone

AR

Sick

Segloc

decisional level

Camera Pan−Tilt

functional level

hardware level

LocPost

Outline GenoM Salient Examples Orocos@LAAS Conclusion 13

Page 15: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Introduction

Development of a software framework that will:

• Maximize reusability of software

• Allow software and application sharing between labs and researchers

• Achieve a great modularity; allow dynamic connection of different componentstogether

• Eventually define a standard model for robotic software components.

Software architecture != Decisional architecture

but software architecture must take into account the constraints raised by the differentdecisional architectures that have been proposed.

Outline GenoM Salient Examples Orocos@LAAS Conclusion 14

Page 16: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Functional layer

Ro

bo

t

Orb

Ph

ysic

alL

ayer

Fu

nct

ion

al

W E

S

N

ENVIRONMENT

Hardware Abstraction Layer

Reports, Events

Control

Requests

Consitency checks

Localization Modelling Motion Trajectory

Communication

Outline GenoM Salient Examples Orocos@LAAS Conclusion 15

Page 17: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Modular Network of Components

• The control flow has to be defined outside components.

PSfrag replacements

ComponentComponent

Codel CodelCodelCodelCodel Codel

Task

Cntrl

Comm

Execution Control

Control Flow

Reflex ActionsSuper vised Actions

Outline GenoM Salient Examples Orocos@LAAS Conclusion 16

Page 18: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Modular Network of Components

• The control flow has to be defined outside components.

PSfrag replacements

ComponentComponent

Codel CodelCodelCodelCodel Codel

Task

Cntrl

Comm

Execution Control

Control Flow

Reflex ActionsSuper vised Actions

PSfrag replacements

Component

Codel

Task

Cntrl

Comm

Execution Control

Control Flow

Reflex ActionsSuper vised Actions

Outline GenoM Salient Examples Orocos@LAAS Conclusion 16

Page 19: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Modular Network of Components

• The control flow has to be defined outside components.

PSfrag replacements

ComponentComponent

Codel CodelCodelCodelCodel Codel

Task

Cntrl

Comm

Execution Control

Control Flow

Reflex ActionsSuper vised Actions

PSfrag replacements

Component

Codel

Task

Cntrl

Comm

Execution Control

Control Flow

Reflex Actions

Super vised Actions

Outline GenoM Salient Examples Orocos@LAAS Conclusion 16

Page 20: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Modular Network of Components

• The control flow has to be defined outside components.

PSfrag replacements

ComponentComponent

Codel CodelCodelCodelCodel Codel

Task

Cntrl

Comm

Execution Control

Control Flow

Reflex ActionsSuper vised Actions

PSfrag replacements

Component

Codel

Task

Cntrl

Comm

Execution Control

Control Flow

Reflex Actions

Super vised Actions

Outline GenoM Salient Examples Orocos@LAAS Conclusion 16

Page 21: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Data Flow

PSfrag replacements

ComponentComponent

CodelCodel CodelCodelCodel Codel

Task

Cntrl

Comm

Data Flow Management

Data Flow

• The data flow has to be defined outside components too.

Outline GenoM Salient Examples Orocos@LAAS Conclusion 17

Page 22: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Data Flow

PSfrag replacements

ComponentComponent

CodelCodel CodelCodelCodel Codel

Task

Cntrl

Comm

Data Flow Management

Data Flow

PSfrag replacements

Component

Codel

Task

Cntrl

Comm

Data Flow Management

Data Flow

• The data flow has to be defined outside components too.

Outline GenoM Salient Examples Orocos@LAAS Conclusion 17

Page 23: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Data Flow

PSfrag replacements

ComponentComponent

CodelCodel CodelCodelCodel Codel

Task

Cntrl

Comm

Data Flow Management

Data Flow

PSfrag replacements

Component

Codel

Task

Cntrl

Comm

Data Flow Management

Data Flow

• The data flow has to be defined outside components too.

Outline GenoM Salient Examples Orocos@LAAS Conclusion 17

Page 24: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Data Flow

PSfrag replacements

ComponentComponent

CodelCodel CodelCodelCodel Codel

Task

Cntrl

Comm

Data Flow Management

Data Flow

PSfrag replacements

Component

Codel

Task

Cntrl

Comm

Data Flow Management

Data Flow

• The data flow has to be defined outside components too.

Outline GenoM Salient Examples Orocos@LAAS Conclusion 17

Page 25: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Component Architecture

Components are made of three parts

• Codels: Actual code of the component,

split into elementary states,

• Execution engine: FSM that executes

the codels,

• Communication: import and export data

and parameters.

PSfrag replacements

Codels

Execution Engine

CommunicationInt. Desc.

Gen

eric

Spe

cific

Reports, Events Requests

ORB

HAL

Codels do not contain code related to communication or sequencing

Outline GenoM Salient Examples Orocos@LAAS Conclusion 18

Page 26: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Component Description Language

• The formal description of a component contains:

→ the list of services,

→ the set of codels for each services,

→ the services and codels interfaces (imported / exported data, parameters, ...),

→ the data structures that define parameters and exported data,

→ other information not detailed here.

• The formal description is a text file.

→ Data structures might be described in IDL (idependant of the programming lan-

guage used for the codels definition)

→ IDL is not sufficient.

Outline GenoM Salient Examples Orocos@LAAS Conclusion 19

Page 27: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Component Description Language

Overview of a service description (inputs, outputs, exports, imports, codels, ...):

service <name> {doc: "short description of the service";

thread: <name>;

/* input/output parameters */input|output: <type>, [<type>, ...];

/* imported/exported data */import|export: <type>, [<type>, ...];

codel <name> {exec: <function>( [const] <variable>, ...);max-time: <seconds>;next: <codel> [, <codel>, ...];

}

...}

Outline GenoM Salient Examples Orocos@LAAS Conclusion 20

Page 28: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Orocos@LAAS Data Structures Repository

• Orocos must define standard objects.

→ IDL is a good choice for this task.

• Empty slide :-)

Outline GenoM Salient Examples Orocos@LAAS Conclusion 21

Page 29: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Conclusion Dissemination

[OROCOS] European project (-) — EURON SIG

Open robot control software

[COMETS] European project (-)

Real time coordination and control of multiple heterogeneous unmanned aerial vehicles

AICIA (Portugal), LIU (Sweeden), LAAS (France), TUB (Germany)

• Disaster monitoring, environmental surveillance.

[Nasa-Ames] — Transfert

Autonomous Navigation in Outdoor Environments

[email protected]

• ATRV Junior, Linux.

[ACFR] (Sydney) — in the process of being defined

• Software architecture

Outline GenoM Salient Examples Orocos@LAAS Conclusion 22

Page 30: Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS Introduction Development of a software framework that will: Maximize reusability of software

Conclusion Ongoing and Future Work, Deadlines

• New GenoM tool — version 2

. More decoupling, more programming languages, more ‘standards’, BSD license.

. Version 2.0 in the beginning of 2003?

• Integration of Orocos@KULeuven

. Generic motion control component and dedicated execution engine.

. Version 0 in summer 2003?

• Integration of Orocos@KTH

. CORBA-based communication. Links with Orocos@KULeuven.

. 2003?

• Data structures repository→ 2003!

Outline GenoM Salient Examples Orocos@LAAS Conclusion 23