Gemma A Generic Extensible and Modular Multi-Senso
Gemma A Generic Extensible and Modular Multi-Senso
net/publication/307530246
Article in ISPRS Annals of the Photogrammetry Remote Sensing and Spatial Information Sciences · June 2016
DOI: 10.5194/isprsannals-III-3-433-2016
CITATION READS
1 147
3 authors:
Ismael Colomina
SEE PROFILE
All content following this page was uploaded by Ismael Colomina on 21 September 2018.
ICWG III/I
KEY WORDS: Trajectory determination systems, Research toolset, Navigation, Sensor orientation
ABSTRACT:
This paper presents the concept of an architecture for a system that helps researchers in the field of Geomatics to speed up their
daily research on kinematic geodesy, navigation and positioning fields. The presented ideas correspond to an extensible and modular
software system aimed at the development of new navigation and positioning algorithms as well as at the evaluation of the performance
of sensors. The concept, already implemented in the CTTC’s system GEMMA is generic and extensible. This means that it is possible
to incorporate new navigation algorithms or sensors at no maintenance cost. Only the effort related to the development tasks required
to either create such algorithms or model sensors needs to be taken into account. As a consequence, change poses a much smaller
problem for CTTC’s research activities is this specific area. This system includes several standalone tools that may be combined in
different ways to accomplish various goals; that is, it may be used to perform a variety of tasks, as, for instance, (1) define positioning
and navigation scenarios, (2) simulate different kinds of sensors, (3) validate new navigation algorithms or (4) evaluate the quality of
an estimated navigation solution.
This contribution has been peer-reviewed. The double-blind peer-review was conducted on the basis of the full paper.
doi:10.5194/isprsannals-III-3-433-2016 433
ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume III-3, 2016
XXIII ISPRS Congress, 12–19 July 2016, Prague, Czech Republic
tion decided to incorporate some characteristics present in prod- scenario being tackled (see section 3. for some examples), only
ucts that are, indeed, commercial ones. For instance, GEMMA a subset of these tools and data flows will be used. For instance,
intends to be a complete toolset or suite, providing an integrated when not working in a real-time environment, the trajectory es-
environment where research tasks and work flows are facilitated; timation tool will not be connected to an acquisition system but
a data abstraction and their corresponding interface has been de- will use logged (pre-recorded) data (measurements), information
vised as well, to avoid impedances between the tools integrating coming from one or more of the available signal generators, or
this suite, since the need of file converters is noticeably reduced; both.
a batch interface exists, making possible the automation of repet-
itive tasks, while a—still very immature— graphic interface has
been included to ease the interaction with end-users (researchers).
In short, the essential traits (as scientific rigour) that are a must in
a software toolset targeted at research have been complemented
with other characteristics usually present in commercial systems.
Each of the features (and related tools) in the list above is impor-
tant by itself. For instance, the ability to generate and densify tra-
jectories avoids having to obtain such trajectories by other meth-
ods; when signal (measurement) generators are available, there
is no need to organize data collection campaigns. In short, these
tools help to save time and reduce costs, thus facilitating the work
of researchers. However, it is the combination of different sub-
sets of these features (tools) what reveals the versatility of the
concept, and how it responds to different research use cases (see
section 3.).
GEMMA implements these features, providing a tool for each of Figure 2: Example of a densified trajectory
them. In particular, it includes four signal generators, for IMUs,
magnetometers, odometers and GNSS receivers.
In order these trajectories to be as realistic as possible they should
Figure 1 depicts all the features just discussed (implemented as a be continuous and infinitely derivable. Moreover, since not all
set of tools in the GEMMA system). Additionally, all the possi- the vehicles (platforms) follow the same dynamic equations, the
ble data flows between these are shown. Depending on the actual tool should be designed in such a way that the densification of
This contribution has been peer-reviewed. The double-blind peer-review was conducted on the basis of the full paper.
doi:10.5194/isprsannals-III-3-433-2016 434
ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume III-3, 2016
XXIII ISPRS Congress, 12–19 July 2016, Prague, Czech Republic
the way points and the related orientation definition adhere to the
specific dynamics of the selected platform. This translates into an
extensible software component where the densification process is
independent of the selected vehicle dynamics.
GEMMA includes a trajectory generation tool complying with Figure 3: Example of output of an IMU signal generation tool
the functional requirements discussed above. Specifically, it is
able to achieve the infinitely derivable position and orientation
At the moment of writing this paper, GEMMA includes four
by convolving with a C ∞ function and later on interpolating the
types of signal generators fully compliant with the functional de-
resulting trajectory at the rate selected by the user; the realistic
scription above, namely odometers, magnetometers, GNSS re-
orientation for different platforms is obtained from the dynamics
ceivers and IMUs (Parés et al., 2015). Others may be included in
formulas of those vehicles (Rajamani, 2011, Roskam, 1995).
the future when needed. A hardware GNSS simulator, the IFEN
2.2 Signal Generators NavX-NCS PROFESSIONAL GNSS simulator (IFEN, 2015), is
also part of the system.
A (software) signal1 generator simulates the observations that
It is important to highlight that there exist nowadays many signal
would have been delivered by a sensor if it would have actually
generators in the market for a variety of sensors—see (Ebinuma,
been used in a real campaign.
2015) and (Nievinski and Larson, 2014) for two examples of
Signal generators take as input a reference trajectory—however available GNSS simulators or (Yang et al., 2007) and (Yan et
obtained—and use the models defining the behaviour of the sen- al., 2015) for IMU ones. In spite of this availability, the team
sor these mimic to deliver the simulated observations. Note that in charge of the development of GEMMA decided to implement
these models must include the errors affecting the sensors, so its own signal generators.
output data mirrors this defective behaviour.
The extra cost of developing tools that already exist in the market
Errors may correspond to various stochastic processes (as random is justified by several reasons that were deemed strategic. First,
walks, white noise or Gauss-Markov ones). Additionally, errors an in-house development allows for a higher degree of freedom
may be originated by different sources, as the instrument itself, when implementing a sensor simulator; additionally, it is possi-
the environment (temperature, magnetic fields, humidity among ble to incorporate any kind of error models that other tools might
many others) or the platform the instrument is mounted on (ve- have not considered; moreover, the data formats used by in-house
hicles, human or animal carriers). These kinds and sources of developments may be GEMMA’s own, reducing the data con-
errors must be taken into account by a signal generator so reality version steps needed to make data suitable for other tools in the
is properly mirrored. toolset; last, but not least, it is possible to design these generators
in such a way that these may be integrated in batch production en-
Signal generators may be either software or hardware compo- vironments (to avoid the unnecessary repetition of routine tasks)
nents and the presented architecture makes no distinctions be- and, at the same time, include a user-friendly graphic interface fa-
tween these. Software components, apparently, are less prone to cilitating the interaction between the researcher and the tool when
obsolescence since it is possible to include new features just by required.
maintaining the code.
2.3 Sequencer
There are different situations where the use of such generators
prove to be useful. These are some, among others: The goal of the sequencer is to sort a series of heterogeneous ob-
servations in ascending time order. In this context, heterogeneous
stands for originating in different kinds of sensors. The need to
• To check how the quality of an estimated trajectory is im- sort input data is motivated by the fact that the estimation of the
proved by incorporating a sensor that is not available—but successive values of the states integrating a trajectory is based on
correctly modelled. the use of observations that are close in time.
• To select the appropriate quality of a sensor according to the
requisites that the estimated navigation solution must meet. A sequencer takes as input a series of files or TCP/IP (Trans-
For instance, a tactical grade GNSS receiver may not be nec- mission Control Protocol / Internet Protocol) socket connections
essary in all situations. containing or transmitting time-tagged observations measured by
different sensors and outputs a single stream of data including
these same observations conveniently sorted. This output stream
For instance, Figure 3 shows the behaviour of two different IMUs
may be either written to a file (for local, batch processing) or sent
travelling along the same reference trajectory. Purple data cor-
through a TCP/IP socket connection (remote, batch processing).
responds to a low-cost IMU unit while the green bar represents
how a navigation-grade IMU behaves. The different responses of When processing data received through TCP/IP socket connec-
these two sensors are easily identifiable. tions, the signal generator must be able to discard data whose
1 The words signal, measurement and observation are incorrectly used time tag is prior to the current time being processed. A time tol-
as synonyms here for the sake of simplicity. For instance, in some situa- erance parameter to decide if such data is accepted in spite of
tions, additional processing may be needed to obtain a measurement out being too old is a very convenient feature to have; normally, read-
of a signal, but such distinction is not made in this paper. ing data through network connections imply real-time processing
This contribution has been peer-reviewed. The double-blind peer-review was conducted on the basis of the full paper.
doi:10.5194/isprsannals-III-3-433-2016 435
ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume III-3, 2016
XXIII ISPRS Congress, 12–19 July 2016, Prague, Czech Republic
and, in this situation, some delays or shifts related to time stamps of vehicle used (airplane, helicopter, terrestrial vehicle, to
are to be expected. Therefore, such a tolerance parameter may mention some) imposes a very different set of constraints
be used to alleviate these discordances. Obviously, the trajectory on what kind of trajectories are possible. For instance, sud-
estimation tool (see section 2.4) must be able to cope with such den changes in the direction of movement are possible when
non-perfectly time-sorted stream of data for this feature to be of equipment is carried by people, while airplanes are not able
any use at all. to do so. A trajectory determination system should be aware
of these limitations that depend on the context, either be-
GEMMA includes a sequencer tool implementing almost all the cause it has been informed by the user or being able to deter-
features described above. The only limitation is that it is only able mine these by itself when no information is available. This
to accept input data stored in files (network input is not yet ac- is the task of the computational strategy object. This compo-
cepted), so the discussion related to time tolerances do not apply nent must be able to determine—depending on the context it
here. The ability of the sequencer to send its output through a net- is working in—whether there is enough information to com-
work connection opens the way to distributed research, which has pute a solution and what to do when the answer is negative—
been put into practice in several projects, as ATENEA (Fernández as for instance, deliver a partial solution or just warning
et al., 2011): observation data is obtained in one place, sequenced about its inability to proceed. The computational strategy
there, and sent via sockets to a second place, where it is pro- object must be independent from the estimation (“number
cessed. crunching”) engine; this approach allows for the combina-
2.4 Trajectory Estimation tion of different sensor models and environments (contexts)
at no (source code) maintenance cost.
The goal of this tool is to estimate trajectories (navigation solu-
tion) out of a series of time-sorted, heterogeneous sensor obser- The channels used for input (observations) and output (trajecto-
vations. ries) data must be selectable freely; that is, any combination of
New sensors—the source of observations—appear constantly in file or TCP/IP sockets data channels for input or output must be
the market and old ones are improved or modified. To cope with possible. In this way, it is possible to use the trajectory estimation
constant change and innovation, a trajectory estimator should be tool in a wide variety of scenarios. For instance, it may work as a
designed to be a generic and extensible tool, so the heavy toll real time (navigation) data logger using sockets on input and files
that should be paid in terms of software maintenance due to such on output; if both input and output channels are TCP/IP sockets,
evolution may be avoided. To do so, the following principles then the tool works as a real-time navigation system. Using files
should be the cornerstones on which a tool like this should rely: in both channels transforms the trajectory estimator into a batch
tool.
• Separation of estimation and modelling. The tool must sepa- NAVEGA (Parés and Colomina, 2015) is the trajectory estima-
rate the estimation—“number crunching”—engine from the tion component included in GEMMA. It has been designed ac-
data being used and its relations. This allows a quick ex- cording to the principles described above. In short, the most im-
tension of the software when new sensors appear. When portant features of NAVEGA are:
the tool starts, it must load the components related to the
intervening sensors as well as some mission-related states.
These components, whatever they are, must not affect how • Robust trajectory estimation,
the computational kernel (the estimation engine) behaves. • using a geodetic approach, that is able to
In this way, the inclusion of new sensors imply the devel- • perform multi-sensor navigation,
opment of only relatively small fragments of code that are • detecting and isolating faults,
materialized as the aforementioned loadable components. • running either in real-time or batch environments, and that
• Rigorous data modelling. Data must be modelled to repre- • is available for the most common operating systems.
sent the essential traits defining the four entities identified as
key players in the positioning and navigation realm: (input) Currently, the number crunching engine of NAVEGA includes a
measurements, (input) auxiliary instrument constant values, family of Kalman filter algorithms and provides with Gaussian
(output) states and (equation) models relating all those ele- states, this is, the output are expected values and covariance ma-
ments. The abstraction must therefore be generic and able trices. Furthermore, it also provides the user with expected resid-
to manage, at the same time, the variety of available sen- uals and standard deviation values, suitable for a posteriori tra-
sors. Relying in a rigorous data model implies that the im- jectory analysis (see section 2.5).
plementation or maintenance of sensor models may bene-
fit of code reuse and object-orientation techniques—and its The extensibility of NAVEGA has been proven processing data
encapsulation, inheritance and polymorphism mechanisms. provided by several types of sensor like IMUs (Molina et al.,
This leads to a substantial simplification of the system and 2012b), GNSS (Silva et al., 2011), redundant IMUs (Molina et
much shorter times to implement new sensors, measurement al., 2012b), LIDAR (Montaño et al., 2015), camera images (An-
and state models in the software. gelats et al., 2014) and odometers (Angelats et al., 2011). NA-
• Generic and adaptable interface. The input / output inter- VEGA is validated using indirect methods—because not all the
face of the trajectory estimator must mirror the data abstrac- sensor models implemented are available in commercial systems.
tion process just stated, so the inclusion of new sensors im- When NAVEGA is used as a position provider (remote sensing
plies no changes in the way data are handled. To enable platforms, as photogrammetric systems for instance), its output
either batch or real-time processing, at least two data in- is compared with topographic measurements, which, up to now,
terfaces should be defined: file and network—this last one have served to show the success of this software component; that
based on TCP/IP sockets. is, the actual and predicted state errors match, or, in short, the ex-
• Computational strategy object. Sensors (equipment) are not pected quality is achieved. NAVEGA has also been successfully
the only factor affecting the quality of a navigation solu- used for processing data collected in a wide range of environ-
tion. Environmental conditions must also be taken into ac- ments: airplanes, helicopters (Molina et al., 2012b) and terrestrial
count (Groves et al., 2014a, Groves et al., 2014b); the kind vehicles, either outdoors and indoors (Angelats et al., 2011).
This contribution has been peer-reviewed. The double-blind peer-review was conducted on the basis of the full paper.
doi:10.5194/isprsannals-III-3-433-2016 436
ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume III-3, 2016
XXIII ISPRS Congress, 12–19 July 2016, Prague, Czech Republic
Finally, but no less important, the dual interface of the system Figure 4: Quality plot from the analyser tool
(file and GUI) makes NAVEGA suitable for both Kalman filter
experts and inexperienced users as well.
• Technology selection or validation.
2.5 Analyser • Algorithm verification and validation.
• Navigation and positioning in real-life environments.
The last tool in the system is the trajectory analyser. As its name
indicates, the aim of this tool is to perform several quality analysis The following sections describe these use cases and the role that
over an estimated trajectory. The main features it should include play the different components of the toolset in each of these sit-
are: uations. All the presented use cases have been successfully ad-
dressed with GEMMA.
• Given a reference trajectory, which is considered as the ab- 3.1 Use Case: Technology Selection or Validation
solute truth, the system should be able to “translate” one
trajectory to the other one and to compare them. By “trans- This use case takes into account two possible situations:
lation” we mean to apply the user’s requested offset and
boresight matrix. The analyser should be able to compute
statistics (like, mean, standard deviation and RMSE) fully • It is necessary to select a sensor among a family of these
describing the difference between these, which is the cor- whose quality is good enough—but not necessarily better—
nerstone to assess the quality of the estimated trajectory. to estimate output trajectories that must match some preci-
sion and accuracy requirements. For instance, not all appli-
• Given a reference trajectory, the system should be able not cations need a navigation-grade IMU, but it may be costly
only to compare estimated and reference trajectory as pre- enough to determine what is the actual quality level that will
viously stated but also to check its coherence with the pre- guarantee the required output.
dicted error, and to determine if those last values are under- • Assessment of the quality of a single sensor, that is, deter-
or overestimated. mining whether it is appropriate for the requisites affecting
the estimated trajectory.
Given the residuals or the innovations of an estimated trajectory
the system should be able to determine the stochastic process be- The advantage of using GEMMA in this case is that it is possi-
neath them, and to check if it is coherent with the expected one ble to simulate the signals produced by these sensors and then
(typically white noise). estimate and evaluate, for each candidate, the respective output
trajectories. Needless to say, proper modelling of the behaviour
GEMMA’s trajectory analyser implements all the aforementioned of the intervening sensors is required.
features. Additionally, it is able to produce a series of plots de-
picting some of the statistics discussed above to help to better The components of GEMMA involved in this use case are shown
understand them. in Figure 5. There, those GEMMA components that do not inter-
vene in the use case are shown in pale grey.
Figure 4 is an example of one of these plots: there, the actual
error of an estimated trajectory (comparison between estimated The following would be the typical work flow to follow:
and reference trajectories—in red) and the standard deviation of
the estimator predicted error (in green) are shown. It may be
observed how the estimated and actual errors do not match; thus, • First of all, a reference trajectory is needed to compare it
the trajectory determination system is being optimistic. with the output estimated ones. It may be either syntheti-
cally generated by means of the trajectory generator compo-
nent or taken from any field campaign.
3. USE CASES • The signal generator(s) corresponding to the sensor(s) to
evaluate would then be used to simulate the signals (mea-
A toolset such the one presented in this paper may be used in a surements, observations) that would have been produced if
variety of research use cases, just combining, in different ways, the sensor would have actually travelled along the reference
the components that integrate it. The most usual use cases are: trajectory.
This contribution has been peer-reviewed. The double-blind peer-review was conducted on the basis of the full paper.
doi:10.5194/isprsannals-III-3-433-2016 437
ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume III-3, 2016
XXIII ISPRS Congress, 12–19 July 2016, Prague, Czech Republic
Figure 5: The technology selection use case. Figure 6: Algorithm verification and validation use case.
• Then the sequencer would time-sort all the observations pro- data collection campaign involving not only a set of trusted sen-
duced by the signal generators. sors—that is, already correctly modelled—but also the new one
• The trajectory estimator component (NAVEGA) would be must take place.
used to estimate the output trajectory, and, finally,
• the quality of the aforementioned trajectory would be as- The reference trajectory must be estimated using only trusted sen-
sessed by the analyser component. sors, so it is a reliable one to compare with (note that Figure 7
describes this procedure). Data coming from the new sensor is
just logged, and will be later used to verify and validate the new
When comparing several sensor candidates to select the most ap- model being developed.
propriate one, the process above should be repeated for every sen-
sor being evaluated. If the goal is just to determine whether a Once the reference trajectory and the new sensor data are avail-
sensor is good enough to fulfil the stated goal (trajectory quality) able, the procedure to follow is:
then a single run should suffice.
A real project where this use case was put to the test was GINSEC 1. Using the sequencer tool, data coming from all the sen-
(Navarro et al., 2015). sors involved in the data collection campaign must be time-
sorted.
3.2 Use Case: Algorithm Verification and Validation 2. The mathematical equations modelling the new sensor must
be written. This, essentially, means filling the gaps in a tem-
It has been stated several times in this paper that GEMMA is plate provided in GEMMA’s developer kit; such template
generic and extensible. This means that new sensors may be in- adheres to the API (Application Programming Interface) de-
cluded into the system—or, those that have been modified, easily fined by the system. In this way, developers need to have
adapted—at almost no cost. no prior knowledge about the internals of GEMMA; their
knowledge may be just limited to sensor modelling
Including a new sensor means writing the mathematical equations 3. A dynamically loadable library is then created and included
modelling its behaviour and generating a loadable library includ- in the GEMMA system.
ing the new model. There is no need to change already existing 4. NAVEGA is used to estimate a new trajectory.
software to make the new model available to GEMMA; that is, 5. The trajectory analyser is then used to compare the reference
when adding new sensors there is no need to maintain, change or trajectory with the newly estimated one, thus assessing its
adapt the existing code base. The new model will be loaded dy- quality.
namically upon request—that is, when data related to such model
is processed.
Steps 2 to 5 may have to be repeated several times until the quality
As it happens to any kind of algorithm, it is necessary to verify of the mathematical model is satisfactory.
and validate new models in order to guarantee their correctness
(that is, the new code contains no bugs) and performance (the new Several projects that took place in the past were clear examples of
sensor is correctly modelled). This is the algorithm verification this use case: GAL (Skaloud et al., 2015), ENCORE (Colomina
and validation use case. et al., 2012) and ATENEA (Fernández et al., 2011).
Figure 6 shows the components in the GEMMA system playing 3.3 Use Case: Navigation and Positioning in Real-life Envi-
a role in this situation (note that, in this figure, those components ronments
not intervening in the process are shown in pale grey).
This is the use case where less components of GEMMA are in-
The sequence of steps to take when verifying and validating a new volved: NAVEGA is used as a standalone tool (see Figure 7). In
algorithm is defined below. A reliable reference trajectory, how- this situation, NAVEGA is used as a real-time trajectory estima-
ever, must be generated beforehand. To create such trajectory, a tor.
This contribution has been peer-reviewed. The double-blind peer-review was conducted on the basis of the full paper.
doi:10.5194/isprsannals-III-3-433-2016 438
ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume III-3, 2016
XXIII ISPRS Congress, 12–19 July 2016, Prague, Czech Republic
ACKNOWLEDGEMENTS
REFERENCES
This contribution has been peer-reviewed. The double-blind peer-review was conducted on the basis of the full paper.
doi:10.5194/isprsannals-III-3-433-2016 439
ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume III-3, 2016
XXIII ISPRS Congress, 12–19 July 2016, Prague, Czech Republic
Molina, P., Parés, M. E., Colomina, I., Victoria, T., Silva, P., Yan, G., Wang, J. and Zhou, X., 2015. High-precision simula-
Skaloud, J., Kornus, W., Prades, R. and Aguilera, C., 2012b. tor for strapdown inertial navigation systems based on real di-
Drones to the rescue! Inside GNSS July/August, pp. 36–47. namics from GNSS and IMU integration. In: Proceedings of
the China satellite navigation conference (CSNC), Vol. 3, Xi’an,
Montaño, J., Wis, M., Pulido, J. A., Latorre, A., Molina, P., China, pp. 789–799.
Fernández, E., Angelats, E. and Colomina, I., 2015. Validation
of inertial and imaging navigation techniques for space applica- Yang, Y., El-Sheimi, N., Goodall, C. and Xiaoji, N., 2007. IMU
tions with UAVs. In: Proceedings of Data Systems in Aerospace, signal software simulator. In: Proceedings of the 2007 National
Barcelona, Spain. Technical Meeting of The Institute of Navigation, San Diego,
USA, pp. 532–538.
Navarro, J. A., 1999. Object-oriented technologies and beyond
for software generation and integration in Geomatics. PhD thesis,
Universitat de les Illes Balears.
Silva, P., Silva, J., Caramagno, A., Wis, M., Parés, M. E., Colom-
ina, I., Fernández, J., Diez, J. and Gabaglio, V., 2006. IADIRA:
Inertial aided deeply integrated receiver architecture. In: Pro-
ceedings of the 19th International Technical Meeting of the Satel-
lite Division of The Institute of Navigation (ION GNSS 2006,
Fort Worth, USA, pp. 2686–2694.
Silva, P., Silva, J., Peres, T., Colomina, I., Miranda, C., Parés,
M. E., Andreotti, M., Hill, C., Galera, J., Camargo, P., Diez,
J., Palomo, J. M., Barbin, S., Moreira, J., Streiff, G., Grane-
mann, E. and Aguilera, C., 2011. ENCORE: Enhanced Galileo
code receiver for surveying applications. In: Proceedings of the
24th International Technical Meeting of The Satellite Division of
the Institute of Navigation (ION GNSS 2011), Portland, USA,
pp. 3679–3689.
This contribution has been peer-reviewed. The double-blind peer-review was conducted on the basis of the full paper.
doi:10.5194/isprsannals-III-3-433-2016 440