esrocos€¦ · the esrocos framework is composed by a set of sw products that, together, support...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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