ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support...

24
ESROCOS_D2.3 PU X CO-1 CO-2 Prepared by: ESROCOS team Approved by: GMV Authorized by: Miguel Muñoz Code: ESROCOS_D2.3 Version: 2.0 Date: 23/06/2017 Internal code: GMV 20177/17 V2/17 GMV ESROCOS INTERFACE CONTROL DOCUMENT Due date of deliverable: Start date of project: Duration: Topic: Work package: Lead partner for this deliverable: 19/01/2017 01/11/2016 27 months COMPET-4-2016 Building Block a) Space Robot Control Operating System WP 1200 “This project has received funding from the European Union’s Horizon 2020 Research and Innovation programme under Grant Agreement No 730080.” Dissemination Level Public Confidential, restricted under conditions set out in Model Grant Agreement. Version providing the PSA will all the information required to perform its assessment. Confidential, restricted under conditions set out in Model Grant Agreement. Version providing the PSA and the other operational grant the information required for the integration of all the building blocks and the continuity of the Strategic Research Cluster (c) ESROCOS Consortium 2017, all rights reserved

Transcript of ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support...

Page 1: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

ESROCOS_D2.3

PU X

CO-1

CO-2

Prepared by: ESROCOS team

Approved by: GMV

Authorized by: Miguel Muñoz

Code: ESROCOS_D2.3

Version: 2.0

Date: 23/06/2017

Internal code: GMV 20177/17 V2/17

GMV

ESROCOS

INTERFACE CONTROL DOCUMENT

Due date of deliverable:

Start date of project:

Duration:

Topic:

Work package:

Lead partner for this deliverable:

19/01/2017

01/11/2016

27 months

COMPET-4-2016 Building Block a) Space Robot Control Operating

System

WP 1200

“This project has received funding from the European Union’s Horizon 2020 Research and Innovation

programme under Grant Agreement No 730080.”

Dissemination Level

Public

Confidential, restricted under conditions set out in Model Grant

Agreement. Version providing the PSA will all the information required to

perform its assessment.

Confidential, restricted under conditions set out in Model Grant

Agreement. Version providing the PSA and the other operational grant

the information required for the integration of all the building blocks and

the continuity of the Strategic Research Cluster

(c) ESROCOS Consortium 2017, all rights reserved

Page 2: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 2 of 24

Version Date Pages Changes

1.0 19/01/2017 - First issue of the document, issued for SRR

2.0 24/06/2017 - Update for PDR.

NOTICE

The contents of this document are the copyright of the ESROCOS Consortium and shall not be copied in

whole, in part or otherwise reproduced (whether by photographic, reprographic or any other method) and

the contents thereof shall not be divulged to any other person or organisation without the prior written

consent of the ESROCOS Consortium. Such consent is hereby automatically given to the European

Commission and PERASPERA PSA to use and disseminate

(c) ESROCOS Consortium 2017, all rights reserved

Page 3: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 3 of 24

1. INTRODUCTION

1.1. Purpose

1.2. Scope

The PERASPERA OG1 activity is devoted to the design of a Robot Control Operating Software (RCOS)

that can provide adequate features and performance with space-grade Reliability, Availability,

Maintainability and Safety (RAMS) properties.

The goal of the ESROCOS project is to provide an open source framework which can assist in the

development of flight software for space robots. By providing an open standard which can be used by

research labs and industry, it is expected that the Technology Readiness Level (TRL) can be raised

more efficiently, and vendor lock-in through proprietary environments can be reduced. Current state-

of-the-art robotic frameworks are already addressing some of these key aspects, but mostly fail to

deliver the degree of quality expected in the space environment. In the industrial robotics world,

manufacturers of robots realise their RCOS by complementing commercial real-time operating

systems, with proprietary libraries implementing the extra functions.

This document describes the internal and external interfaces of the ESROCOS software.

This document is an outcome of the WP 2 of the ESROCOS activity "Preliminary design and

modelling". A preliminary version is produced in WP1 "Technology Review and System

Requirements". These WPs define the capabilities of ESROCOS and the software architecture that will

fulfill those capabilities.

(c) ESROCOS Consortium 2017, all rights reserved

Page 4: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 4 of 24

2. REFERENCE AND APPLICABLE DOCUMENTS

2.1. Applicable Documents

Ref. Title Date

[AD.1] Peraspera: D3.1 Compendium of SRC Activities (for call 1)

[AD.2] Guidelines for strategic research cluster on space robotics technologies

horizon 2020 space call 2016

30/01/2015

[AD.3] ESROCOS EUROPEAN SPACE ROBOTICS CONTROL AND OPERATING

SYSTEM HORIZON 2020 Proposal

21/07/2016

[AD.4] ESROCOS D1.1 Technology Review issue 1.0 19/01/2017

[AD.5] ESROCOS D1.2 System Requirements issue 1.1 23/06/2017

[AD.6] ESROCOS D2.2 Preliminary Design Document issue 1.0 23/06/2017

[AD.7] ECSS. Ground systems and operations - TM/TC Packet Utilization Standard

(PUS). ECSS-E-ST-70-41C

30/01/2003

[AD.8] ECSS. Ground systems and operations - Spacecraft On-Board Control

Procedures (OBCP). ECSS-E-ST-70-01C

15/04/2016

2.2. Reference Documents

Ref. Title Date

(c) ESROCOS Consortium 2017, all rights reserved

Page 5: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 5 of 24

3. OVERVIEW OF ESROCOS ARCHITECTURE

The rounded white boxes indicate activities, grey rectangles denote software artefacts (models, source code, applications, etc.), and dashed boxes group

related items. The software artefacts are either product of the activities (identified in italics), or directly provided by the framework as functional blocks

to use in the activities. The figure illustrates how the activities, their products and the functional blocks are combined to form a consistent workflow for

the production of distributed robot application software.

ESROCOS is a framework for developing robot control software applications. It includes a set of tools that support different aspects of the development

process, from architectural design to deployment and validation. In addition, it provides a set of core functions that are often used in robotics or space

applications.

The ESROCOS framework is intended to support the development of software following the ECSS standards. It does not by itself cover all the

development phases and verification steps, but it facilitates certain activities and ensures that the software built can be made compatible with the RAMS

requirements of critical systems. The figure below summarizes the main activities supported by the framework.

(c) ESROCOS Consortium 2017, all rights reserved

Page 6: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 6 of 24

Activity Component

RC

OS

RD

EV

Lab

Sp

ace Description Scope of the work

Model kinematic

chains

Robot modelling tools X X X X Solvers for all possible kinematics and dynamics

transformations of lumped parameter robot chains

are generated from formal and semantically

validatable models.

New development

Framework for model-driven SW development of

real-time systems. The main components are:

- Orchestrator

- ASN.1 compiler

- Ocarina

- Editors

- PolyORB-HI (middleware)

- HW library

- SDL tools

- RTEMS

BIP compiler X X Compiler tool for generating C++ code from BIP

models.

Extension and integration

of existing SW

TASTE2BIP X X Generation of BIP models from TASTE models. New development.

SMC-BIP X X Statistical model-checker for BIP models. Extension and integration

of existing SW

Base robotics data

types

X X X Elementary data types for robotics applications. Extension and integration

of existing SW

OpenCV X X Computer vision library. Integration of existing SW

Eigen X X Linear algebra library. Integration of existing SW

Transformer X X X Library to support component developers with

geometric transformations.

New development

Stream aligner X X X Lirary to support component developers with

temporal alignment of time-stamped data streams.

New development

Implementation of the following PUS services in

TASTE:

TASTE X X X X

The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies

each of these SW Products and summarizes their type, target quality level and scope of the work in ESROCOS. Refer to [AD.6] for futher details.

Common robotics

functions

PUS services X X X

Extension and integration

of existing SW

BIP engine X X Runtime for executing C++ code generated from

BIP models.

Extension and integration

of existing SW

Model and analyse

distributed real-time

systems

New development

(c) ESROCOS Consortium 2017, all rights reserved

Page 7: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 7 of 24

Activity Component

RC

OS

RD

EV

Lab

Sp

ace Description Scope of the work

- TC verification

- Housekeeping TM

- Event management

- Function management

- Time management

- Connection test

- Timeline-based scheduling

- OBCP

- Parameter management

- File management

AIR X X ARINC-653 hypervisor. Extension and integration

of existing SW

HAIR X X AIR emulator and tools Extension and integration

of existing SW

CAN bus driver X X Driver for the GR CAN controller for RTEMS Extension and integration

of existing SW

Ethernet driver X X Driver for the GR Ethernet controller for RTEMS Extension and integration

of existing SW

SpaceWire driver X X Driver for the GR SpaceWire controller for RTEMS Extension and integration

of existing SW

EtherCAT driver X X Support for EtherCAT in RTEMS, TASTE, AIR. New development

Data logger X X Tool for logging data from TASTE components New development

vizkit3d X X 3D data visualization Integration of existing SW

RVIZ X X Data and image visualization. Integration of existing SW

Gazebo X X Robot simulator. Integration of existing SW

PUS console X X GUI application to show PUS communication in the

control PC.

New development

Middleware bridges X X X Tools and libraries to support a runtime bridge

between TASTE and the ROS/ROCK environments.

New development

Framework import tools X X Tools and libraries to support the importing of

components from ROS/ROCK frameworks into

ESROCOS.

Extension and integration

of existing SW, new

development

Framework export tools X X Tools and libraries to support the exporting of

components from the ESROCOS framework to

ROS/ROCK.

Extension and integration

of existing SW, new

development

Common robotics

functions

PUS services X X X New development

Deploy and run

Monitor, debug, test

Integrate legacy SW

(c) ESROCOS Consortium 2017, all rights reserved

Page 8: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 8 of 24

Activity Component

RC

OS

RD

EV

Lab

Sp

ace Description Scope of the work

Autoproj X X Software package management and build tool. Integration of existing SW

ESROCOS development

scripts

X X Collection of development tools for setting

up/editing projects in the ESROCOS environment.

Extension and integration

of existing SW

Manage build and

dependencies

(c) ESROCOS Consortium 2017, all rights reserved

Page 9: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 9 of 24

For each interface, the following information is provided:

- Interface name

- Description and purpose: what the interface is used for

- Type: nature of the interface; interfaces of RDEV components (tools) will be mainly input and output files, while interfaces of RCOS (runtime) components will be, f.i.,

APIs, messages or configuration files

- Format: the structure or language in which the exchanged data is expressed (for messages or files)

- Remarks: additional information about the characteristics of the interface

In the case of existing tools that are integrated as-is or without modification of their interfaces, the document refers the reader to the available documentation.

4. ESROCOS INTERFACES

This section describes the interfaces of the ESROCOS framework. The section is structured according to the activities supported by the framework. For each activity, the

interfaces of the corresponding SW Products as identified in section 3 are described.

The ICD is intended to detail the interfaces of the software to a level that allows external software to interface with the framework. However, due to the characteristics of

the framework and the project it is not possible to provide so detailed information at the current preliminary design stage. Instead, this document focuses on the

identification of the interfaces. Details such as function interfaces or file formats will be provided later.

(c) ESROCOS Consortium 2017, all rights reserved

Page 10: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 10 of 24

SW Product Interface Description and purpose Type Format Remarks

Robot model A set of models of different aspects of the

kinematic chain of a robot. The models are

validated and used to generate an internal graph

representation that is the base for queries and

code generation.

Input file Each model (geometry,

mathematical, numerical,

uncertainties, etc.) is

expressed in a DSL (see

[AD.6]) and provided as

a text file.

Collada model A Collada file that allows initializing solver data

from a Collada model created with an external

tool.

Input file Collada Only a subset of the data in the Collada file

is imported for use by the solver.

Queries Specification of a set of queries that can be

executed at runtime. The queries are

semantically validated and the tool generates the

code that allows for their execution.

Input file DSL, provided as text file.

Kin/Dyn solver A C library generated from the model and that

enables the execution of model queries at

runtime.

Output file C source The library is generated by "built-in"

queries.

ASN.1 data types A set of type definitions used by the runtime

queries.

Output file ASN.1

TASTE interface

view

TASTE function models, expressed in AADL, that

make the kin/dyn solver library accessible at

runtime.

Output file TASTE Interface View in

AADL

TASTE C code

wrappers

Wrapper code to embedd the kin/dyn library in

TASTE models.

Output file C source The code is embedded in the TASTE

Interface View.

Unit tests Automatically generated unit tests for the

kin/dyn solver.

Output file C source

4.1. Model Kinematic Chains

Robot modelling

tools

(c) ESROCOS Consortium 2017, all rights reserved

Page 11: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 11 of 24

SW Product Interface Description and purpose Type Format Remarks

TASTE http://taste.tuxfamily.org/

TASTE model A TASTE model to be transformed to BIP. Input file A set of files defining a

TASTE model:

- Data View (ASN.1)

- Interface View (AADL)

- Deployment View (AADL)

- Concurrency View (AADL)

- Behaviour implementation

(C source and/or SDL state

machines)

The AADL files conform to the respective

metamodels of the TASTE Interface,

Deployment and Concurrency Views.

BIP model A BIP model converted from TASTE. Output file BIP model

BIP model A BIP model to be compiled to code to allow for

execution or simulation.

Input file BIP model

Executable model

in C++

An executable representation of a BIP model

that can be used, f.i., for simulation purposes.

Output file C++ source Other compiler backends may allow

generating other outputs from a BIP

model.

BIP Engine Execution report Execution trace displaying the result of the

simulation.

Output file Text report (standard

output of the simulation).

The BIP engine is a library that supports

the execution of the code generated by

the BIP compiler. Therefore its input

interfaces are internal to ESROCOS and

not documented here.

BIP model The stochastic description of the BIP model to be

analysed.

Input file BIP model (stochastic BIP

format)

Property and

confidence

parameters

The PBLTL property to be verified and the

confidence parameters needed for the check.

User input PBLTL formula, numeric

parameters.

These inputs are normally entered using

a GUI.

Analysis report Pass/fail veredict (for qualitative hypotheses), or

computed probability estimation (for quantitative

analyses).

Output file Text report (standard

output of the analysis).

SMC-BIP

4.2. Model and Analyse Real-Time Software

TASTE2BIP

BIP Compiler

The TASTE framework is used to model real-time, distributed software. Extensions to the framework's interfaces

will be integrated and documented together with the rest of the framework.

(c) ESROCOS Consortium 2017, all rights reserved

Page 12: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 12 of 24

SW Product Interface Description and purpose Type Format Remarks

Base robotics

data types

http://taste.tuxfamily.org/

ASN.1 data types The base robotics data types are defined in ASN.1

and used by many tools of the framework, as well

as by user applications.

File ASN.1 The list of types is provided in

section 4.3.1.

C types library The ASN.1 data types, compiled with the TASTE

ASN.1 compiler, are provided in form of a C

library that can be used by applications.

API C source

Encoder/decoder

functions

The ASN.1 data types are compiled with TASTE

ASN.1 compiler to produce C or Ada code that

can be embedded in applications.

File C or Ada source. The compiler can also generate unit

tests for these functions.

Support functions Together with the data types, ESROCOS provides

a library of support functions with utilities and

type converters.

API C/C++ API Utility functions are implemented in

C. C++ is used for conversion to

external C++ classes (e.g. from the

ROCK base-types package).

Build files Build files for including the C types and support

function libraries in applications.

Configuration

file

CMake files, autoproj

manifest.xml

OpenCV http://opencv.org/

Eigen http://eigen.tuxfamily.org/

Transformer API The Transformer is a library that can be included

in an application and used through its API.

API C API

Transformation

graph

Configuration of the graph that defines the

relation between the different frames

Configuration

parameter

TBC The relation between frames is

established at configuration, either

by file or function calls (TBC).

Dynamic

transforms

Geometric transform between two frames in the

transformation graph.

Input

message

ASN.1 encoded value of

rigid body state type

Transform Requested geometric transformation. Depending

on the needs of the application, several

transformations can be provided mapped to

different interfaces.

Output

message

ASN.1 encoded value of

rigid body state type

Transformer

4.3. Common Robotics Functions

Base robotics

data types

The TASTE framework is used to model real-time, distributed software. Extensions to the framework's

interfaces will be integrated and documented together with the rest of the framework.

The OpenCV library provides image processing functions. It provides a C/C++ API, with Python and Java

bindings. The library is provided as-is, with the build files required to integrate it in applications. Refer to the

library documentation for API details.

The Eigen library provides linear algebra functions. The library is provided as-is, with the build files required to

integrate it in applications. Refer to the library documentation for API details.

(c) ESROCOS Consortium 2017, all rights reserved

Page 13: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 13 of 24

SW Product Interface Description and purpose Type Format Remarks

Build files Build files for including the Transformer library in

applications.

Configuration

file

CMake files, autoproj

manifest.xml

Stream Aligner

API

The Stream Aligner is a library that can be

included in an application and used through its

API.

API C API

Input data

streams

Two streams of timestamped data. Input

message

ASN.1 encoded value of a

type containing a

timestamp (different

types may be supported)

Trigger A notification signal to the component that uses

the data, indicating that matching synchronisable

samples have been received.

Build files Build files for including the Stream Aligner library

in applications.

File CMake files, autoproj

manifest.xml

PUS library The PUS Services are provided as a library that

performs specific tasks in the implementation of

the services. Applications use the library API to

invoke the tasks according to the desired

behaviour (task structure, timing, priority, etc.).

API C API

PUS data types A set of ASN.1 data types required to include the

PUS Services in TASTE models.

File ASN.1

PUS interface

models

Reusable TASTE functions that can be included in

a TASTE model to add PUS Services to an

application.

File AADL (TASTE Interface

View subset), C source

(function

implementations)

Telecommand A TC encoded in the PUS data types received by

the application and processed by the PUS services

at runtime.

Input

message

Encoded ASN.1 (the

specific encoding depends

on the application)

See section 4.3.2.

Telemetry A TM encoded in the PUS data types sent by the

application using the PUS services at runtime.

Output

message

Encoded ASN.1 (the

specific encoding depends

on the application)

See section 4.3.2.

OBCP procedure The source code of an OBCP that can be loaded

and run by the corresponding service.

Input file microPython (TBC)

PUS Services

Transformer

Stream Aligner

(c) ESROCOS Consortium 2017, all rights reserved

Page 14: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 14 of 24

SW Product Interface Description and purpose Type Format Remarks

Build files Build files for including the PUS library library in

applications.

File CMake files, autoproj

manifest.xml

PUS Services

(c) ESROCOS Consortium 2017, all rights reserved

Page 15: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 15 of 24

Data Type Data Description Usage

Time Time stamp codified as single int64_t number representing microseconds from 1970-01-

01T00:00:00

Time stamps information

VectorXd Static size vector of 2/3/4/6 dimensions of double type Dynamics/ Kinematics/ SLAM

MatrixXd Static size squared matrices of 2/3/4/6 dimension of double type Dynamics/ Kinematics/ SLAM

VectorXf Static size vector of 2/3/4/6 dimensions of float type Dynamics/ Kinematics/ SLAM

MatrixXf Static size squared matrices of 2/3/4/6 dimension of float type Dynamics/ Kinematics/ SLAM

Point Vector3d point Arbitrary Way-Points

Angle Rotational angle in radians Single angular sensor or joints

Quaterniond Static size Vector4d of the form w+xi+yj+zk. Rotations in SO(3) group

Transform3D Static size Matrix4d of the form [R|t] Affine 3D Transformations

Pressure Pressure in Pascals Pressure sensors

Temperature Static size temperature stored in Kelvin (IS unit) Sensor temperature

JointState Joint State structure with position [double], speed[position/s], effort [N or Nm], raw (i.e. PWD

signal) and acceleration[rad/s^2 or m/s^2]

Motor control

Twist Vector3d linear velocity [m/s] and Vector3d angular velocity [rad/s] Inverse and direct kinematics

Wrench Vector3d force [Newtons] and Vector3d torque [Newton meter] Dynamic control

Pose Position(Point [meters]) and orientation(Quaterniond) of a robot pose. Localization and Planning

AUVMotion Motion command for Underwater vehicle Dynamic control

BodyState State of a rigid body state [Pose] in SE(3) with uncertainty information State estimation/SLAM

DepthMap DepthMap image from sensory data (e.g. LIDARs) Perception/SLAM

DistanceImage 2D array structure representing a distance image for a pinhole camera model [pixels]. Perception/SLAM

Frame Data structure representing a visible camera image and its metadata [pixels]. Perception/SLAM

IMUSensors Information from an Inertial Measurement Unit(IMU) acceleration in [m/s], gyroscopes [rad/s]

and magnetometers [Tesla]

Control, Localization and Mapping

The collection of ASN.1 data types provided by ESROCOS may be used as interface data types, both internal (between ESROCOS components) and external. The main

source of these data types is the Rock toolkit. The rock2taste tool, developed in the SARGON project, is available to support the users in converting Rock C++ data types

into equivalent ASN.1 definitions for use with the TASTE tools.

The following table provides a preliminary list of types that will be available in ASN.1 format. In addition, C functions to perform operations (Maths, type conversion, etc.) on

these types is provided by ESROCOS. These functions are made available as a C library.

4.3.1. Avaliable types

Time

Geometry and dynamics

Perception, control and planning

(c) ESROCOS Consortium 2017, all rights reserved

Page 16: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 16 of 24

Data Type Data Description Usage

JointLimitRange Specification of Joint limits for a robotic model position [double], speed[position/s], effort [N or

Nm], raw (i.e. PWD signal) and acceleration[rad/s^2 or m/s^2]

Control, simulation

JointLimits Static size vectors of JointLimitRange Control

Joints Static size vector of JointState for multiple optionally named joints. Control and state estimation

JointsTrajectory Structure to hold a time-series in the form of vector of JointState, for multiple optionally named

joints.

Control, planning

JointTransform Defines the frame transformation provided by a Joint. Helper data type between Joint and

Transform3D

Control, state estimation

LaserScan Laser scans measurements from a laser sensor Perception

Motion2D Motion command for ground vehicles moving in a 2.5D space Control and planning

Pointcloud Static size vector of Points Perception and Mapping

RigidBodyAcceleration RigidBodyState with acceleration information State estimation

RigidBodyState State of a rigid body state [Pose] in Affine3d with uncertainty information per each element of

the Pose (position and orientation)

State estimation

Sonar Representation of data acquired by a Sonar sensor Perception

TimeMark Time stamp helper structure to compute, the time that has passed since the recorded time and

now.

Time stamps information

Trajectory Trajectory defined in a Spline form. Planning and control

TransformWithCovariance Transform3D with uncertainty Affine 3D Transformations

TwistWithCovariance Twist with uncertainty information Inverse and direct kinematics, State

estimation

Waypoint Points representation for a Pose in a path Planning

Component status Generic states and application-specific status codes for robotic application components. Component lifecycle and monitoring

State change request Request to change the state of a component (start, stop, etc.). Component lifecycle and monitoring

State report Report of the current state and internal status of a component, generated on event or on

request.

Component lifecycle and monitoring

Log message Log message with timestamp, level and content. Logging

PUS messages Requests and reports for the remote operation of the robot from ground. TM/TC

Ground monitoring and control

On-board monitoring and control

(c) ESROCOS Consortium 2017, all rights reserved

Page 17: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 17 of 24

Sub-

serviceService requests

Sub-

serviceService reports

To be

provide

d

Y

1 successful acceptance verification report

2 failed acceptance verification report

N

Y

2 create a diagnostic parameter report structure

4 delete diagnostic parameter report structures

7 enable the periodic generation of diagnostic parameter reports

8 disable the periodic generation of diagnostic parameter reports

25 housekeeping parameter report

26 diagnostic parameter report

N

Y

1 informative event report

2 low severity anomaly report

3 medium severity anomaly report

4 high severity anomaly report

N

Y

1 perform a function

Y

1 set the time report generation rate

2 CUC time report

Y

1 enable the time-based schedule execution function

2 disable the time-based schedule execution function

3 reset the time-based schedule

4 insert activities into the time-based schedule

Y

Housekeeping service -3

Parameter Statistics Reporting service -4

Event Reporting service -5 

Memory Management service -6

4.3.2. PUS Services

Request Verification service -1

The following table presents the preliminary subset of the PUS services and TM/TC interfaces that will be provided by the ESROCOS framework. Refer to [AD.8] for a detailed

definition of the services.

Function Management service -8

Time Management service -9  

Time-Based Scheduling service -11  

On-Board Monitoring service -12  

Device Access service -2

(c) ESROCOS Consortium 2017, all rights reserved

Page 18: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 18 of 24

Sub-

serviceService requests

Sub-

serviceService reports

To be

provide

d

1 enable parameter monitoring definitions

2 disable parameter monitoring definitions

12 check transition report

N

N

N

Y

1 perform an are-you-alive connection test 2 are-you-alive connection test report

Y

1 direct-load an OBCP

2 unload an OBCP

3 activate an OBCP

4 stop an OBCP

5 suspend an OBCP

6 resume an OBCP

12 abort an OBCP

Y

1 add event-action definitions

4 enable event-action definitions

5 disable event-action definitions

Y

1 report parameter values 2 parameter value report

3 set parameter values

N

N

Y

2 delete a file

14 copy a file

23 file copy status report

Parameter management (additional service 20)  

Request Sequencing service -21

Position-Based Scheduling service -22

File Handling service -23

Real-Time Forwarding Control service -14

On-Board Storage and Retrieval service -15

Test service -17  

On-Board Control Procedure (OBCP) service -18

Event-Action service -19  

Large Packet Transfer service -13

(c) ESROCOS Consortium 2017, all rights reserved

Page 19: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 19 of 24

SW Product Interface Description and purpose Type Format Remarks

Application

sources

User code that will be compiled and linked in the

application partitions.

Input file C source The partition sources are actually an input

to the compiler toolchain that builds the

executable image.

Partition

Management

Kernel (PMK)

Simple kernel on top of which the POS are

virtualized and executed. It is part of AIR.

Applications must link with it to embed the

hypervisor.

API C headers and library The PMK is actually an input to the compiler

toolchain that builds the executable image.

User code does not directly interface with

the PMK.

Partition

Operating System

(POS)

A paravirtualized RTOS that runs on top of the

hypervisor. Applications must link with it to

embed the hypervisor. ESROCOS includes a

RTEMS as POS, although other RTOS could be

used.

API C headers and library The PMK is actually an input to the compiler

toolchain that builds the executable image.

In the case of RTEMS, the RTOS is linked

with the application as a regular library. At

runtime, the partitioned application uses the

POS services.

Application

Executive (APEX)

An ARINC 653 executive that provides a set of

services for partitioned applications (e.g.,

partition scheduling, time services or

communication).

API C headers and library The PMK is actually an input to the compiler

toolchain that builds the executable image.

In the case of RTEMS, the RTOS is linked

with the application as a regular library. At

runtime, the partitioned application uses the

APEX services.

A653

configuration

Configuration of the partitioned system

(partitions, resources, etc.). The configuration is

processed by the configima tool to generate

source files that are built into the application and

define the configuration of the system.

Configuration

file

XML The ARINC 653 configuration files may be

generated by the TASTE toolchain from the

corresponding AADL models.

Partition sources Partition initialization and build files generated

by the configima tool, to be built into the

application.

Output file C source and build files Together with the application sources, PMK,

POS and APEX, these files are an input to

the build process.

Application image Application binary containing the partitioned

system, i.e., the PMK, POS, API, initialisation

code and user code.

Output file Binary image (SPARC) The application image is the output of the

compiler toolchain.

HAIR

4.4. Deploy and Run

AIR

The interfaces of the HAIR emulator are identical to those of the hypervisor, but the resulting binary runs in an

(c) ESROCOS Consortium 2017, all rights reserved

Page 20: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 20 of 24

SW Product Interface Description and purpose Type Format Remarks

CAN bus driver RTEMS driver API An RTOS driver API that enables the

configuration, input and output operations

supported by the hardware controller.

API C API https://www.rtems.org/

TASTE device

configuration

A set of ASN.1 definitions that declare the

configuration of the device for its usage from

TASTE. The driver provides an ASN.1 type that

specify the configuration parameters that can be

set.

Configuration

file

ASN.1 The device is configured in the TASTE

Deployment View. The parameters are

specified in ASN.1 notation and included in

the AADL file of the Deployment View. This

file is ingested by the TASTE toolchain to

generate the glue code for the application.

RTEMS driver API An RTOS driver API that enables the

configuration, input and output operations

supported by the hardware controller.

API C API https://www.rtems.org/

TASTE device

configuration

A set of ASN.1 definitions that declare the

configuration of the device for its usage from

TASTE. The driver provides an ASN.1 type that

specify the configuration parameters that can be

set.

Configuration

file

ASN.1 The device is configured in the TASTE

Deployment View. The parameters are

specified in ASN.1 notation and included in

the AADL file of the Deployment View. This

file is ingested by the TASTE toolchain to

generate the glue code for the application.

RTEMS driver API An RTOS driver API that enables the

configuration, input and output operations

supported by the hardware controller.

API C API https://www.rtems.org/

TASTE device

configuration

A set of ASN.1 definitions that declare the

configuration of the device for its usage from

TASTE. The driver provides an ASN.1 type that

specify the configuration parameters that can be

set.

Configuration

file

ASN.1 The device is configured in the TASTE

Deployment View. The parameters are

specified in ASN.1 notation and included in

the AADL file of the Deployment View. This

file is ingested by the TASTE toolchain to

generate the glue code for the application.

RTEMS driver API An RTOS driver API that enables the

configuration, input and output operations

supported by the hardware controller.

API C API https://www.rtems.org/

TASTE device

configuration

A set of ASN.1 definitions that declare the

configuration of the device for its usage from

TASTE. The driver provides an ASN.1 type that

specify the configuration parameters that can be

set.

Configuration

file

ASN.1 The device is configured in the TASTE

Deployment View. The parameters are

specified in ASN.1 notation and included in

the AADL file of the Deployment View. This

file is ingested by the TASTE toolchain to

generate the glue code for the application.

EtherCAT driver

Ethernet driver

SpaceWire driver

(c) ESROCOS Consortium 2017, all rights reserved

Page 21: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 21 of 24

SW Product Interface Description and purpose Type Format Remarks

Data logger Log file The data exchanged by the interfaces of the

application can be logged and replayed. The

logged data contains metadata to allow for its

interpretation and replay.

Input/output

file

TBD

vizkit3d API The vizkit3d library is available for use to

visualize application data. Refer to its

documentation for the API details.

API C++ API with Ruby

bindings

https://github.com/rock-core/gui-vizkit3d

vizkit3d TASTE

functions

A set of TASTE functions is provided to integrate

vizkit3d in TASTE models. The function interfaces

use the ASN.1 data types.

File AADL (TASTE Interface

View) and C (library

wrapper code)

RViz API The RViz application is available for use to

visualize application data, including images.

Refer to its documentation for the API details.

API C++ API with Python

bindings

http://wiki.ros.org/rviz

RViz TASTE

functions

A set of TASTE functions is provided to integrate

RViz in TASTE models. The function interfaces

use the ASN.1 data types.

File AADL (TASTE Interface

View) and C (library

wrapper code)

Gazebo API The Gazebo simulator is available for use to

simulate robots. Refer to its documentation for

the API details.

API C++ API http://gazebosim.org/

Gazebo TASTE

functions

A set of TASTE functions is provided to integrate

Gazebo in TASTE models. The function interfaces

use the ASN.1 data types.

File AADL (TASTE Interface

View) and C (library

wrapper code)

PUS console PUS Console

TASTE function

A TASTE function is provided to integrate a PUS

console in TASTE models. The function interfaces

use the ASN.1 data types for TM/TC.

File AADL (TASTE Interface

View) and C (library

wrapper code)

vizkit3d

Rviz

Gazebo

4.5. Monitor, Debug and Test

(c) ESROCOS Consortium 2017, all rights reserved

Page 22: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 22 of 24

SW Product Interface Description and purpose Type Format Remarks

TASTE bridge

functions

The middleware bridges are included as functions

in the TASTE model. These functions convert and

transfer the data between the middleware

environments.

File AADL (TASTE Interface

View) and Python

interface code

The middleware bridges rely on the GUI

and trace infrastructure provided by TASTE,

which provides Python APIs.

PolyORB-HI

runtime

messages

At runtime, the middleware bridges send and

receive PolyORB-HI messages as a regular

TASTE function.

Messages ASN.1 encoded values

(encoding depends on

the application)

The middleware bridges will normally use

the ASN.1 data types provided by the

framework, although user-defined types

may be also sent.

ROCK (RTT)

runtime

messages

At runtime, ROCK bridge components send and

receive RTT messages as a regular ROCK task

context.

Messages RTT encoded values The middleware bridges will normally use

the ASN.1 data types provided by the

framework, although user-defined types

may be also sent.

ROS runtime

messages

At runtime, ROS bridge components send and

receive ROS messages as a regular ROS node.

Messages ROS encoded values The middleware bridges will normally use

the ASN.1 data types provided by the

framework, although user-defined types

may be also sent.

ROCK component An existing ROCK or OROCOS component (C++

header files, OroGen files, implementation).

Input file C++ source, OroGen

source

The extent of the automated support for

the import process is yet TBD.

ROS component An existing ROS component (definition and

implementation).

Input file C++ source,

configuration data

The extent of the automated support for

the import process is yet TBD.

TASTE function A TASTE function, wrapping the ROCK or ROS

component, that can be used in TASTE

applciations.

Output file ASN.1 type definitions,

AADL interface definitions

The extent of the automated support for

the import process is yet TBD.

Support libraries The porting of code from external ecosystems is

facilitated by a library that replaces some

functionality of the original ecosystem (e.g., RTT

classes) with equivalents designed for the

integration in TASTE.

API C++ API

TASTE model A TASTE Interface View model with functions and

interfaces.

File ASN.1 type definitions,

AADL interface definitions

4.6. Integrate Legacy Software

Middleware

bridges

Framework

import tools

Framework

export tools

(c) ESROCOS Consortium 2017, all rights reserved

Page 23: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 23 of 24

SW Product Interface Description and purpose Type Format Remarks

ROCK application A set of ROCK/OROCOS components (task

context, bundle, library) mapping the

architecture of the TASTE model.

File C++ source, OroGen

source

ROS application A set of ROS components (nodes) mapping the

architecture of hte TASTE model.

File C++ source, IDL,

configuration data

Framework

export tools

(c) ESROCOS Consortium 2017, all rights reserved

Page 24: ESROCOS€¦ · The ESROCOS framework is composed by a set of SW Products that, together, support the development workflow outlined above. The following table identifies each of these

Code: ESROCOS_D2.3

Date: 23/06/17

Version: 2.0

Page: 24 of 24

SW Product Interface Description and purpose Type Format Remarks

autoproj http://rock-

robotics.org/stable/documentation/a

utoproj/autoproj package

configuration

The files required by autoproj to manage and

build a package.

Output file CMake files, manifest.xml The files are used as input by

autoproj.

TASTE build files A TASTE project skeleton, containing the basic

files that enable TASTE to build an application.

Output file AADL, shell scripts. These files are generated by the

TASTE project creation process. The

TASTE build process can be invoked

manually or from the TASTE editor.

ESROCOS

development

scripts

4.7. Manage Build and Dependencies

The autoproj tool is provided as-is to manage the build of both the ESROCOS framework and the user

applications.

(c) ESROCOS Consortium 2017, all rights reserved