Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS...
Transcript of Orocos @ LAAShomepages.laas.fr/mallet/orocos/3rd-meeting.pdf · 2002-11-19 · Orocos@LAAS...
Orocos @ LAASOne year after...
Anthony Mallet, Sara Fleury, Raja Chatila
LAAS - CNRS
[email protected], [email protected], [email protected]
Leuven, November 18th, 2002
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
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
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
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
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
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
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
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
Salient Examples Robots
Outline GenoM Salient Examples Orocos@LAAS Conclusion 9
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
Salient Examples Lama
Outline GenoM Salient Examples Orocos@LAAS Conclusion 11
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
• ATRV Junior, Linux.
[ACFR] (Sydney) — in the process of being defined
• Software architecture
Outline GenoM Salient Examples Orocos@LAAS Conclusion 22
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