Project

General

Profile

Software deployment » History » Version 3

Simon Lacroix, 2018-08-15 19:32

1 1 Simon Lacroix
h1. Software deployment
2
3
This pages presents the requirements of the set of tools that helps to easily configure, launch and run the robots on-board softwares.
4
5
h2. General requirements
6
7
* The tools must be very easy to use
8
* The tools must be very easy to maintain and update
9
* The tools must allow to specify and configure the softwares that will be run
10
* In a second step, the tools will endow means to supervise the execution of scenarios
11
12
h2. General principles
13
14
The following principles take very much after the "dala scripts" (see the git repo: git+ssh://softs.laas.fr/git/robots/dala-scripts.git ), the main file names in this suite are referred to hereafter.
15
16
#  A shell script: (see shell-script/start.sh)
17 2 Simon Lacroix
* sets a series of environment variables required to launch the softwares (in particular, a LOGDIR)
18 3 Simon Lacroix
* Interprets the "main configuration file" that specifies which softwares must be launched (a software can be a ROS node, a Genom3 module, some utilities -- e.g. display server, redirection of the GPS correction data to the proper device, ... what else ?)
19 2 Simon Lacroix
* Properly launches each software -- and warn the user in case launch failed
20 3 Simon Lacroix
* Redirects standard and error outputs of each software into dedicated files in LOGDIR
21 1 Simon Lacroix
22
A companion shell-scripts terminates "in a clean manner" all the launched softwares
23 3 Simon Lacroix
24
# A python interpreter is launched, loading:
25
* For each launched module/node, a .py file that contains:
26
 * The set of parameters associated to the software (mainly initialisation parameters, but also functioning mode, ...)
27
 * A series of "generic" functions: init/start, run, log, stop-log (some doing nothing if they are not implemented in the software)
28
29
30
31
h2. Some details 
32
33
* It would be nice to execute the launch shell script with the main configuration file as an argument (so that one can manage a series of configuration files)