Logiciel open source de calcul numérique

Passer au contenu principal

CelestLabX: CelestLab’s extension module

Alain Lamy, CNES

CelestLab is a space flight dynamics module developed by CNES that is particularly suited to space mission design. The first version was put on ATOMS website at the end of 2009 (see http://atoms.scilab.org/toolboxes/celestlab). The module seems to be rather popular as the number of downloads now approaches 20000. CelestLab contains functions related to change of coordinate systems, orbit propagation, orbit properties, and more... The last version (V3.0) contains about 250 functions, 70 demos, and help pages giving descriptions and examples. This version marked a clear improvement in comparison to the previous ones as major features were added into the module.

CelestLab is 100% Scilab language, which makes it easy to install or modify as there is no need for compilers for instance. But there are cases where this is a bit limiting. This is the case when open source software exists that we would like to use through Scilab. There are at least 2 main advantages to using existing software: less developing and testing effort is required, and also, the features that are made available are guaranteed consistent with the original versions (considered as standards).

The solution to this issue is called “CelestLabX”. CelestLabX is a Scilab module that contains low level interfaces to functions written in various languages like C or Java. The user is not supposed to call CelestLabX functions directly: high level functions are added into CelestLab to simplify their use even more. The first version of CelestLabX will at least contain interfaces to C code for the propagation of Two-Line Elements (code from: http://celestrak.com/publications/AIAA/2006-6753) and to Java code for STELA propagation model (software used at CNES and elsewhere for long-term orbit propagation, see: http://logiciels.cnes.fr/STELA/fr/logiciel.htm). The development has benefited from the new Scilab-to- Java (JIMS) interfaces that are now included in Scilab and also to related tools (ilib_build_jar...) also shipped with Scilab that can be used to generate jar files directly from Java code.

This presentation will show the main drivers that led to the design of the interfaces and the final architecture (one objective was for instance to simplify the low-level interfaces in CelestLabX as much as possible). It will show what the toolbox looks likes (in terms of complexity...). Various concrete examples will also be given illustrating how simple it can be for the final user to have access to powerful features.