First draft of "OROCOS II" proposal...

[email protected]
Newsgroups gmane.science.robotics.orocos.user
Message-ID <Pine.LNX.4.44.0306211041030.7409-100000@srv04.mech.kuleuven.ac.be>
As promised on several occasions in the past, here is the first draft
of what could possibly become a EU funded free software project in
"control". Comments are very welcome, but please don't send private
emails: use the mailinglists :-)

Herman Bruyninckx

--------------------------------------------------

   ==================================================================

   Orocos-II: Open contROl COmponentS: Infrastructure for Integration

   ==================================================================

Orocos-II is a candidate "FP6 Integrated Project" with the following
mission statement:

    "Design, implementation and integration of free software
     embedded infrastructure and software components to support
     the development and deployment of real-time and large-scale
     distributed feedback control systems."


Explication of the various terms in this mission statement:

- "Design, implementation and integration"
  The project has three levels of deliverables (for its software aspects):
  - Design: conceptual design, software patterns. These are application
    and implementation independent. The emphasis is on reuse of
    patterns at the various control levels.
  - Implementation: of the conceptual designs, with emphasis on
    reusability and quality of code.
  - Integration: (i) to make maximal use of existing FLOSS efforts;
    (ii) to maximally interface with (open) industrial standards.

- "Free software"
  - contractually agreed Free Software results: LGPL license for
    libraries, GPL for applications, and relevant license for parts
    that are done together with existing FLOSS projects.
  - maximal reuse of existing FLOSS software: Linux, Gnome/KDE,
    RTAI/RTLinux/Ecos, Comedi, Coin3D/OpenCascade, ACE/TAO, CORBA Orbs, ...
  - pro-active clustering with other FLOSS projects:
	 - integration: provide professional design support that can help
	   promising existing projects to integrate and grow.
	 - re-factoring of existing software, for improved software
	   engineering quality.
    - application support: approach system integrators and application
      builders as a de facto "consortium" to do business with.

- "Embedded"
  - focus on those parts of the control problem that 
    run in the work floor machine controllers, not
  - focus on those design department's desktop functionality that
    support the above-mentioned embedded software.

- "Infrastructure"
  - not applications in the first place, but everything needed to build
    applications
  - pre-competitive: majority of industrial users can use it as a base
    for their own products. Cf the status of the operating system and
    the internet, but now targeted to control applications.
  - middleware (interfaces and components, CORBA)
  - basic components in various control application domains.
  - platform independence.
  - bridges to existing protocols and standards (CIP, IEC...., field
    busses, ...)

- "Software components"
  - modularize complex software systems according to the principles of
    software components (Szierpinski): lowest level are objects,
    offering method call interfaces in class libraries; around them,
    "service" components are built, that can operate as stand-alone agents
    in a distributed system
  - in practice: use the CORBA and Java approach, because these are
    platform-independent. CORBA has an extra advantage, in that it is
    also language independent, and much more independent from a single
    vendor.
  - .NET is not a priority option because of its "lock in" to one
	 single vendor. Except maybe if there is enough demand to build
    Mono components (Mono is a FLOSS implementation of part of the
    .NET infrastructure).
  
- "Support development and deployment"
  - big emphasis on software patterns:
    - software patterns have proven their value as a way to optimize
      the representation and the discussion about software designs:
      they provide standardized terminology and procedures to describe
      designs that have proven their validity in extended practice.
	 - conceptual level documentation to spread "best practices" in
	   easy to grasp way
    - implementations on which concrete applications can be built by
      "plugging in" functionality with well-defined interfaces.
  - provide efficient, platform and language independent
    implementations, where possible.
  - interact with other projects, in order to maximize portability and
    modularity (= let development take place where best critical mass
    is available)
  - applications built in the project are "tools": programming,
	 visualisation, simulation, distribution, configuration,
    validation, etc.

- "Real-time, large-scale, distributed"
Industrial control applications can roughly be divided in three levels
of "control":

(1) Machine. 
      Bandwidth:      high.
      Latency:        low. (Hard real-time.)
      Time horizon:   short.
      Centralization: high.

(2) Workcell.
      Bandwidth:      medium.
      Latency:        medium.
      Time horizon:   medium.
      Centralization: medium.

(3) Factory.
      Bandwidth:      low.
      Latency:        high. 
      Time horizon:   long.
      Centralization: low.

These three levels require different implementations and support; but
the feedback control concepts are very similar. So, the project tries
to use the same software patterns (= conceptual models) in order to
reduce the complexity to understand the whole software system.
In addition, all the "overhead" software (configuration, packaging in
components, user interfacing, etc.) is almost completely reusable.

- "Feedback control systems"
These are software-driven systems in which the actions and behaviour
of the system is adapted on-line based on the measurements that are
done on the system. Typically, a feedback control system has two
"inputs": 
- "feedforward", coming from models of the system, and steering the
  system to the desired state under the conditions that the system
  behaves as modelled.
- "feedback", which changes the system's behaviour based on on-line
  measurements that detect how and where the system deviates from its
  model.
So, adaptability through feedback is the technological key of the
functional software components, and the project provides the support
and the tools to program and execute such adapative systems.

====================================================================
Motivation

Research aspects:
- discovery and description of relevant software patterns.
- high-quality implementation design, with an eye on: efficiency,
  portability, application-independence, decoupling.
  
Application aspects:
- to find the most appropriate interfaces:
  - places to "cut" the system in modules.
  - definition of the API with which these modules interact.
- to find the most appropriate FLOSS components to reuse/adapt.
- to find the appropriate boundary between application-independent
  components and application-dependent components.


Economic aspects:
- competitive advantages:
  - high potential for large-scale and long-lasting impact.
  - community building is much easier and cheaper than for closed
    source software.
  - large scope and application-independence: significantly reduces
    the risk to develop poorly reuseable designs and implementations.
  - can profit maximally from cost-reduction and co-development
    leverage of FLOSS community.
- to make complex system infrastructure into "commodity", both with
  respect to the _software_ as with respect to the _documentation_.
- to increase use and service potential of European SME industry:
  making ones own control system is a _very_ large task for small
  companies nowadays, because of the high dependence on single vendors
  in a very "balkanized" market. This project should drastically
  decrese this entry threshold to the control market.


====================================================================

RTD Work plan

WP1 Component support
  CORBA 3.0 interfaces for components developed in other WPs.

  The activities in this WP involve straightforward encoding of
  on the basis of well-defined interfaces and functionalities.
  However, this implementation takes significant time.

The activities in the following WPs involve roughly equal efforts in
design and in implementation. The design effort focuses on patterns
and functionality; the implementation on reuse of, and integration
with, other FLOSS projects.

WP2 Modelling and simulation
  Machine: system dynamics, hybrid real-time control, program
    verification + execution.
  Workcell: synchronization over network, capacity and material
    transport simulation.
  Factory: effects of putting orders into the system, defects,
    cancellation of orders, etc.
  
  The emphasis is on structured descriptions of all "control objects".
  This modelling catalogue is central to all other activities.

WP3 Control
  Machine: Real-time control; "reflex" estimation and decision making.
  Workcell: distributed control; "tactical" estimation and decision making.
  Factory: Agent systems; "strategic" estimation and decision making.

  The focus is on providing "control kernels", i.e.
  application-independent infrastructure that implements the fundamental
  architecture of feedback control:
  - optimal decoupling of functionality in appropriate components.
  - "correctness by construction" 
  - highly structured designs, in order to facilitate analysis,
    verification, monitoring and code generation.
  - automatic reconfigurability, by "migrating components/agents" (=
    make knowledge available where it is needed, without hard
    programming).
  - the "hybrid" aspects of control, at all three levels.
  - distributed systems.

WP4 User interfaces
  The design and implementation of interfaces with the following
  goals:
  - cross-platform, toolkit independent.
  - dynamic, i.e.. adaptable on-line to changes in interface demands
    or changes in "machine" configuration.
  - plotting, graphics, visualisation, signal processing components.
  - support for "on-line" programming by local operator.
  - support for the "control kernel" structures.

WP5 Programming tools
  - support for building CORBA components around available
    functionality.
  - support to fill in application-dependent functionality in the
    application-independent "control kernels".

WP6 Configuration and deployment tools
  - support for the "control kernels".
  - compatibility with relevant network and field bus standards.
  - integration on new relevant hardware and operating systems (RTAI,
    DSP, Ecos, Jaluna, TAO/ACE/CIAO, ...).


Dissemination Work Plan
(where possible in collaboration with cluster projects!)
webbook of control, with fully citable and refereed contributions.
RTOS documentation ...; Project Workshops;
contribute to information about licensing issues for commercial use
(in cooperation with clustered projects); development of
free course material, ...


Training Plan
Project Workshops: include hands-on training.
...


Management Work Plan
...


Consortium Agreement: 
  - simple "intellectual property" protection policy: every knowledge
    + software contributed is available under the project free
    software licenses, and possible patented technology can be used
    unconditionally in the software.

=========================================================================
 
Consortium 

Partner structure:
- Design Core: three academic partners, with critical-mass in control
  and software engineering.
  Responsibility: design and implementation; guarantee focus on
  integration; management.
- Implementation Core: 1-2 SMEs with free software coding experience.
  Responsibility: high-quality FLOSS implementations of Design Core
  results.
  (This implementation Core is maybe too much; I would cut here first...)
- Network of niche expertise partners:
  - short-term subcontracts, with very clear scope and results.
  - academic/industrial partners that use the project results in their
    applications.
  Responsibility: provide expertise in niche areas.
- Three open workshops per year, with travel grants for non-partner
  participants with relevant expertise.

=========================================================================

Budget:
   Design Core = 3 x 2 men x 4 year x 60KEURO                = 1440KEURO
   Implementation Core = 12MY x 60KEURO                      =  720KEURO
   Short term contracts = 10 x 25KEURO                       =  250KEURO
   Meeting + dissemination = 4 x 3 meetings x 20 x 500EUR    =  120KEURO
   Computing = (3 x 2 men) x 4KEURO                          =   24KEURO
   Travel + Subsistence = 6 x 4000 EURO + 4 x 2000 EURO      =   32KEURO
   Consumables = 3 x 20KEURO                                 =   60KEURO
   Management = 1 x 15KEURO x 4 years                        =   60KEURO
   _____________________________________________________________________
   TOTAL                                                       2706KEURO
 
====================================================================
Relevant EU FP6 calls:
- Communication, computing and software technologies
  2.3.2.5 Embedded systems
  Objective
  To develop the next generation of technologies and tools for
  modelling, design, implementation and operation of hardware/software
  systems embedded in intelligent devices. An end-to-end systems vision
  should allow to build cost-efficient systems with optimal performance,
  high confidence, reduced time to market and faster deployment. 
  Call: 15 October 2003
  <http://www.cordis.lu/ist/so/embedded-systems/home.html>

  2.3.2.3 Open development platforms for software and services
  Objective
  To build open development and run-time environments for software and
  services providing the next generation of methodologies, interoperable
  middleware and tools to support developers - through all phases of the
  software life-cycle, from requirements analysis until deployment and
  maintenance - in the production of networked and distributed software
  systems and services, embedded software and value-added user services.
  This will enable the development of future software engineering
  methods and tools.
  The "Focus" details talk explicitly about "Open source middleware
  layers can facilitate rapid and broad adoption."
  Call: 15 October 2003
  <http://www.cordis.lu/ist/so/sw-platforms/home.html>

====================================================================
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.