wiki:WikiStart/OngoingWork/App

Version 1 (modified by sylvain.joyeux, 8 years ago) (diff)

--

Rock Apps

Purpose While Rock is becoming a rich collection of components, we miss a structure in which a "system view" can be created, i.e. set of files that allow to manage a system.

Proposal Create an app structure. It would be single packages that contain everything needed to manage a system:

  • run scripts
  • log convertion scripts
  • log sanity scripts
  • GUIs
  • when using the supervision, the supervision models

Usage

Proposal 1

a ROCK_APP_PATH environment variable would list the apps that should be used on a system. Whenever a file is searched, the first file found in the path is used.

I.e., a ROCK_APP_PATH could look like

export ROCK_APP_PATH=$HOME/dev/imoby/apps/calibration:$HOME/dev/imoby/apps/main:$HOME/dev/apps/rock

Proposal 2

still use ROCK_APP_PATH, but that would point to _prefixes_. Then, rock applications would list dependencies they have with each other, forming the complete path at runtime.

The example above would look like

export ROCK_APP_PATH=$HOME/dev/imoby/apps:$HOME/dev/apps

with dependencies: calibration => imoby and imoby => rock

Structure

In all the following proposals, specific are optional (i.e. one would probably start with only config/orogen and scripts)

Proposal 1

Keep the structure compatible with Roby supervision structure (preferred for backward compatibility reasons):

scripts/
startup scripts (either pure ruby scripts or tooling scripts)
scripts/orocos/
common scripts for management of a rock system (instanciate, run, ...)
scripts/gui/
GUI scripts
config/orogen/
YAML files containing property values
config/
other config files
tasks/
supervision models (with tasks/orogen/, and tasks/rock/ that replaces data_services and compositions)
planners/
supervision planner models
controllers/
controller scripts

Proposal 2

Be compatible with supervision, but use the occasion to redesign the layout (i.e. change the supervision)

scripts/
startup scripts (either pure ruby scripts or tooling scripts)
scripts/orocos/
common scripts for management of a rock system (instanciate, run, ...)
scripts/gui/
GUI scripts
scripts/controllers/
supervision controller scripts
config/orogen/
YAML files containing property values
config/
other config files
models/tasks/
supervision task models
models/tasks/orogen
extension to supervision task representing orogen components
models/orogen/
extensions to the orogen specifications
models/planners
supervision planner models