Conference PaperPDF Available

OREKIT: AN OPEN SOURCE LIBRARY FOR OPERATIONAL FLIGHT DYNAMICS APPLICATIONS

Authors:
  • CS SI, France, Toulouse

Abstract

The Orekit library is a space flight dynamics library developed since 2002 by CS. It was operationally used during the Jules Verne ATV mission. Since 2008, the library is freely available as an open-source product under the terms of the business-friendly Apache V2.0 license. Given the small size of the market and the still high need for advanced tailored solutions for space systems, the service based business model for added value is much more suited than the license based business model or its new version, the Software As a Service. There are several business models that can be used for economically sound open-source systems. Some are well suited for the space field and will be explained. Some are not adapted and the reasons for this will also been explained. Open-source is an approach that proved efficient in mainstream software industry. It does not always need a very large community as was once thought, but still needs some involvement. The return on investment increases for all contributors as the project expands and the risks decrease at the same time as more and more people use it. The model is attractive for both public entities, academics, industry and SMEs, bringing something to each one of them. It also increases the yield of public funding. OREKIT is an example of a successful open-source project initiated by private industry and operationally during ATV rendezvous. Since its inception, the OREKIT library was aimed both towards quick development for simple use cases and towards fine tuning for expert users. In order to fulfill the first goal, the programming interface provides high level features like attitude modes, automatic discrete events handling within propagation (ground station visibilities, eclipses, maneuver start/stop, altitude crossing, user defined event …), transparent handling of leap seconds, automatic transforms between all frames, transparent use of Earth Orientation Parameters and much more. In order to fulfill the second goal, several physical models are provided for many concepts (orbits, propagators, frames, events, attitudes, time scales, ephemerides …) and all of them can be extended naturally to add user specific models or change the behavior of the provided ones. Since many models offer similar user interfaces, it is possible to build applications that can be used both in a mission analysis configuration with fast models and in an operational configuration with accurate models with a single switch. The presentation will provide both a business view and a technical view of OREKIT. It will explain the benefits of open-source and business models. It will present an overview of the library features and available physical models. A focus on a few innovative concepts will be made, like for example discrete events, time scale handling, slave and master propagation modes, management of time-dependent frames, models switching or transparent handling of complex models that need lots of configuration data. Some examples of how the tool can be used in different operational contexts will be given. The roadmap for the future of the tool will be presented.
Orekit : an Open-source Library for Operational Flight Dynamics Applications



 !
"##$%&"'"#&$()
*$+,-#".$
/
1 OPEN-SOURCE FOR SPACE FLIGHT
DYNAMICS LIBRARY
1.1 Historical context
0++1##23 4 2 " 5
4#  66# %/1"  1
" 6##31 "    1
#21   3  73 1
21##6"4##6#31" 
84##"6"1 21
###3 # 6  1   1 2
#11 " 1 6#
1 464 2#"
9"#.61""#3
1  " 1   ### 6"1
6 ""  2 1 6"3 ###
66 7##1 28 "2  
"0 2#"#3 21 16" -1 #
64".64"6 

/1#.1""4#6
2"6#31 "  # 21 #
"1#""  #"3#8#31
"    " 2#" ##2   2
7:-9;99:<  %/ 18 1 2

718"43166
11#3 6"61 #
"#16'
7## 1288 6#2 ++ "++(21
6 ""2 63  #
6 2#2  "#"
1 -13 6" 6 ++, 21 #3
16-1#36"2#2#4##
211 43"   "4#6#3
6  " 61 # "# " 131# #"
#31$1 6" 2"7-=0
">43
01" 98?  ##2"  66
"#6"
1.2 Strategic choices and business model
0++)  1" 3" "8  985 
21# 1#"
23"1""""6# 
"#31646## 7-3&
 2 ## 83 #  66 "#
"  "4 63 #"
#23"2"4#6
/  1      """    ++(    13
#3 "" 98  6
6"
-1 "2 66" 861 6"#4
18   #3 @ A " ##2"  
66    44  #4      6
66 6"
1.2.1 License choice
#13  6 #  6 #31
"  6#  6 1  8
3#
4# " 6 #  6 .
211 14" 21 6
"
"3#66"7211
"4#61"""7?".#"
&"#46#66#5
7
7?
&
0 7   6#1"  "  1       BC3
6 #CD #5 7?7;E &  ""
"1#0"4#
6#"
0  7   6#1"  "  1        BCF8
6 #CD#5# 7?"""
1 # 7 &  """
"#
0 7    6#1"  "  1        BC&
"# CD #5 1 7?  & 14  
"""13##7
G.6#  3 6 # #  H "
0.6#286 ##H
G " 0 .6#  "#
#&E0-"761
12"1##23# 5
Bad example of the JAT I4 7" 
-#8 211  6'" ++
"" 2 "4#6" 1# .
#98?-1#12strong
copyleft license2111#"1"
"""4"#"#"113
1  #      ++(    4  1
"28
Orekit context:
  ""    1  8 21  3  "
"#  #  1 143 3
  ### 66
64J
"1#8131#
#"1#"1"J
  "#  1    "    4
"316"
7##    1  #"      1  1  761  +
BC"# CD # 7  1 
64#2"# 82 1## 
1 " 898""211221
.6 31124 1343
16 311"7"66#1
986#1"3 #
-1###2#"#5
;  663    #      1  
"
;
/###12K"5
/"163
/"" 1216328
""6
/""6
/"    64  1  63  "
#164
9811312"5BC
"61CD
/498*2#") 1
I# ++(
1.2.2 Business model
96      661  1  64"    
2" 0"#2 "
4 #3   2  131  ##
"    4#4  -1      4
##16'.6""
1 8" 1    "
66# -1 "#4  1 6#
 " " " G 33
13    1     1  0  #    1
#"6#"3
7  "    1  6    "#  
6# " 4 " 66  
#-1"##"5
3##663
#  9%GL0-   6 #31
" 
36# 21"6
6"4#6
2"#
13
2 FROM BASIC TO EXPERT USE OF OREKIT
F?##2126##"#31" 
66#98
/?66198# 
"#4#0#3."'#
"
0"3"1"8"4#6
6#  "  " 6 "
.6
2.1 High level features for easy, fast
development
9864"#2#4#'"
#310  #### "" 
6 #31 "  #8   #
6663" ##"
"#I 61" /1
.46664""
F?##      1  ##23  131  #4#  
64""613#53 5
""
1"#3
663"
#
G16
Attitude modes
4#  6""  "  "    4##  1
-16#11#5
1BC# CD#2#85
&" =##" 63
-3="=9/63
9/."6#>"
1  BC6#.CD  #2  211    6#>  
# #25 23= 26
3"63
7##1"6## 13# "
111 6#1
 21#21;4
 6# " #  #2"
#6#.21# 131
#2#>"## 131
63"
Frames
/3>"1#16
2#311#8 
17 2    # "3 1
  1  #8        6  J  1
    1      1    "
##23#  1
-1"1."4#
  #      1      
"6"  #2    1    "    
## 6""     
# "6" #2  1   6"" 
14"# #12
"1 7- 3 21   ,+
"
7  #    6""      #  64""  
6###1G1"#
Orbit Propagation
98    "  8"    6""  
663    1      #8  86#
6631#663
96  66"  ## 663
1# 1"#"4"1#
"3  1     1  663  -1  663
   2 " "5 BC#4CD "
BCCD"
0  1     BC#4CD  "  1  1"#3    1
#66 6"6# 10?
21 2"## "#3 25 #6
42166"#1
6
0BCCD "1 1"#3  1  #6 
"#3"  1 663 # " # 1
63"11#612
  13121  ##"BC61"#CD-1
# 1663##21 1"#3
1# #6 1BC1"# 6CD1" 16
1"#2####"##  1663
16-1"6#""
1  "6#3  2  1  #6#    1"#3
" "1 6#.6 21 
6" 16"163-1
6#  31#6 21" 4
""""13##6.6#"#
-16631"#1."6"6"
6;#>"61"###23"
 ."64  4#63
1
4 4 "   ##
6" 1663 ""321 ##"
BC4  "CD  9  3    #3  6#  
6""  4  "    4##   4
3#  4  4  4  "      "
1 2 494 """"1
6632##18161
  "  4  "  33      1  666
  G4         6""    
"4"  1 # "3 1 663 21
"""
G4"works in both slave and master mode
#4"1"31"
 21 1 433"1# 1 1 #
  1  8"  1"In master mode
intermediary state corresponding to event time is
computed at the exact time event happens, no matter
step size
F1    4    33"        "  
##3 1663 #8 .6#133
1 "#21 4  6 4
  4 6## 663 1 663
21    #"  11#"    "  "3  
 # .6# -1  # "
  6#  6#  4  #333 3 " 
4# #6
Earth orientation parameters
7##  G1    4    66"  
6  "    "#  0G%  ++*  2
4  "  0G%  MM,    4  
4##    1  .3  G1      21  
2112133
9        4    .  21
1      1  4   1  
66#16"3"##
#""2131#431
 1 6#  1"# 1 1# "
4"38
-11"#31136#""
4   3"     "
## 9.6 ##3
18 "#2?-131
6121#31" .6"
" 82 21 6  6#1" 
98?"8161
 2135 1 '68 6G1
"
Time scale
4##66":--70H--
"##""#4# -70#7"
"" 1#4##1"
 1  # -1 4  1"#"
## #8#
-:#6"#1"#"6# J
21"821"?"1
1
2.2 Fine tuning for expert use
& " ## 1 3"  1 # 
# 3 98  3 "   
"3# 66#21.6 3
 6
Force models
1  "#  # 6  6 #31
" #"7#36#1# "
"#  64""  98  1  ## 
""?"6# .""
4 6 "#  " 1
 # >"6# 6#.
7    .6#  "3  "  "  6    
161#16#."" 4#
#6#"# 21#3
416"#
…........
Events
G4"#6>#6
:31""461
66#    2  4  1"#      "
"34"
41 # 4 "#.#
31      1  3  664    
.#   @.A " & " .3
@##A 4 #"3 
98? 4 1"#3 1  " 
      "  6  "3  1
663 1#"  6#6#  "31
6"336
Frames
:   2 "6" 1 "
"311#8 @6A
 1 .3 -1 
 # "6"-1 .# 21 2
"7- 3 21  1 ,+ 
4#4""1# 141#"#

9  3       6"        
"6##    
1-1##2 .6#36#
16134  41#83
    1  6##.    1  ##  
211"" 2#31# 
…........
Time scale
G4   31 "" 98 #"
64"2"#6#2###
 " 6# 216 "01
6# 1"21"-70
Data
0 "  6# 3  98"
66#  #3   " #"3  
>"216#311 
.3#"
3 ACKNOWLEDGEMENTS
F 181 /"> 1
66 1 6' "##239811
6##"
F  18  ##  1      98  "4#6
++,2112"1"4#4
16' F # 18 ## 1 211#6
"3"64316"
4 REFERENCES
 -  "  /  #4    
6E #8*""++
  #4 14 Stratégies et potentiels de l'open
source dans les entreprises et les administrations
françaises  ++M+  9609    96
F#"/++M
* E E  1 " H"  IERS
Conventions (2003)  0#  G1  %
"% 4
K Free Software Foundation, GNU General Public
License
165==22233=#=36#*+
"#1# I++)
$ G7  ;%  0;%07  0 Free Software
License Agreement6++,
165==222##=#=
N0N1#
, The BSD License
165==22263=#="#616
) 761+I ++K
165==222613=#=0G;G+
( E4"7##"# 2" %1"O'8
"-L#73++, Revisiting Spacetrack
Report #3, 2006 AIAA/AAS Astrodynamics Specialist
Conference
M G O  4 # ;P H1"
FSolving Ordinary Differential Equations I.
Nonstiff Problems      6#
1#( 63#3 M()"
4""MM*
+     /">    
Building a community, an approach for
Space Flight Dynamics6++M
... The core functionalities are split into three subpackages. The first subpackage uses Keplerian orbit data for an SSSB and a simplified definition of the encounter geometry so the spacecraft can propagate realistic trajectories using the Orekit library [32] and render an image series of the encounter. The second subpackage provides various algorithms for image compression and decompression. ...
... The trajectory simulation within SISPO is handled by the Orekit library [32]. A simple Keplerian orbit propagator is used to propagate both the SSSB and the spacecraft. ...
Article
Full-text available
This paper describes the architecture and demonstrates the capabilities of a newly developed, physically-based imaging simulator environment called SISPO, developed for small solar system body fly-by and terrestrial planet surface mission simulations. The image simulator utilises the open-source 3-D visualisation system Blender and its Cycles rendering engine, which supports physically based rendering capabilities and procedural micropolygon displacement texture generation. The simulator concentrates on realistic surface rendering and has supplementary models to produce realistic dust- and gas-environment optical models for comets and active asteroids. The framework also includes tools to simulate the most common image aberrations, such as tangential and sagittal astigmatism, internal and external comatic aberration, and simple geometric distortions. The model framework’s primary objective is to support small-body space mission design by allowing better simulations for characterisation of imaging instrument performance, assisting mission planning, and developing computer-vision algorithms. SISPO allows the simulation of trajectories, light parameters and camera’s intrinsic parameters.
... The main application areas of GMAT are mission design and navigational applications, such as orbit design, optimization and selection, control design, propulsion system sizing, launch window analysis and maneuver planning.There are no features for the design of communication systems or the development of protocols. However, it can be used for orbit determination as a basis for contact analyses.Orekit[129] is a freely available open source library for flight dynamics developed by CS. It was developed with the aim to enable quick development as well as finetuning for expert users. ...
Thesis
With the miniaturization of satellites a fundamental change took place in the space industry. Instead of single big monolithic satellites nowadays more and more systems are envisaged consisting of a number of small satellites to form cooperating systems in space. The lower costs for development and launch as well as the spatial distribution of these systems enable the implementation of new scientific missions and commercial services. With this paradigm shift new challenges constantly emerge for satellite developers, particularly in the area of wireless communication systems and network protocols. Satellites in low Earth orbits and ground stations form dynamic space-terrestrial networks. The characteristics of these networks differ fundamentally from those of other networks. The resulting challenges with regard to communication system design, system analysis, packet forwarding, routing and medium access control as well as challenges concerning the reliability and efficiency of wireless communication links are addressed in this thesis. The physical modeling of space-terrestrial networks is addressed by analyzing existing satellite systems and communication devices, by evaluating measurements and by implementing a simulator for space-terrestrial networks. The resulting system and channel models were used as a basis for the prediction of the dynamic network topologies, link properties and channel interference. These predictions allowed for the implementation of efficient routing and medium access control schemes for space-terrestrial networks. Further, the implementation and utilization of software-defined ground stations is addressed, and a data upload scheme for the operation of small satellite formations is presented.
... We implemented the sparse DtS-IoT constellation design algorithm in a specific Java-based application 4 that includes an SGP4 propagator released by the United States Department of Defense (DoD), and improved as reported in Vallado's Revisiting Spacetrack Report number 3 [69]. Some tools of the Orekit open-source libraries were also leveraged [74]. Access intervals obtained by the implementation were contrasted against AGI's System Tool Kit (STK) software, rendering negligible differences in the order of few milliseconds in access times. ...
Article
Full-text available
In this paper we introduce and design sparse constellations for Direct-to-Satellite Internet of Things (DtS-IoT). DtS-IoT does not require a ground infrastructure, because the devices are directly connected to Low Earth Orbit satellites acting as orbiting gateways. The key idea of sparse constellations is to significantly reduce the number of in-orbit DtS-IoT satellites by (i) a proper dimensioning of the delivery delay anyway present in resource-constrained IoT services, and (ii) an optimal positioning of the orbiting gateways. First, we analyze LoRa/LoRaWAN and NB-IoT standards and derive realistic constraints on the maximum gap time between two consecutive passing-by satellites. Then, we introduce and optimize an algorithm to design quasi-optimal topologies for sparse IoT constellations. Finally, we apply our design to both global and regional coverage and we analyze the trade-off between latency, number of orbit planes and total number of satellites. Results show that sparse constellations can provide world-wide IoT coverage with only 12.5% and 22.5% of the satellites required by traditional dense constellations considering 3-hour and 2-hour gaps. Also, we show that region-specific coverage of Africa and Europe can be achieved with only 4 and 3 satellites for LoRa/LoRaWAN and NB-IoT, respectively.
... In this chapter the attitude control performance of the proposed theoretical approach will be evaluated in simulations. The networked MPC as well as the Markovian network model are run inside the Matlab c software environment, while the satellite attitude is simulated in Orekit ( [32]), where a high fidelity attitude model including position dependent IAC-18-C1.6 magnetic B-field and gravity gradients was implemented. ...
Conference Paper
In recent years modular satellite architectures have become more and more prevalent, thanks to their advantages in comparison with mission-tailored single use architectures. Fractionated satellite architectures go even further by increasing the subsystem autonomy and interconnectivity even more, e.g. by going from a wired satellite harness to a wireless one. If the OBDH of a fractionated satellite in an earth observing formation fails, the other satellites in the formation could take direct control of the broken satellite's attitude control subsystem and therefore the original mission objective could still be continued. However, this approach imposes different challenges to the satellites. First, the failure in a subsystem has to be detected and an appropriate replacement has to be selected and assigned. Second, if for example closed-loop control is performed via wireless connection links, the communication channel properties have to be taken into account in the controller design. This paper presents solutions for both described problems. The solution of the first problem requires regular intra-satellite communication e.g. via alive messages to recognize failures in subsystems. For the selection of an appropriate replacement subsystem, a bidding method from the multi-robot-systems domain is proposed. For the second problem of control via communication links, we propose a networked control approach based on a Lyapunov Model-Predictive Control (MPC) methodology. As demonstration example, MPC is adapted and applied to a satellite attitude control problem of a typical nano-satellite in LEO. Using a high-fidelity attitude-dynamic simulation, a comparison of stability and control performance of a traditional Lyapunov-based method and a networked MPC is performed. Figures of merit for stability and performance are presented.
... This simulation demonstrates the applicability of the above methods by implementing a set of transmitter receiver pairs observing targets in LEO. The implementation is based on the Orekit space dynamics library [10], which provides a large collection of coordinate transforms and other helpful tools to compute precise orbits. The radar station positions are defined in the ECEF frame with geographical latitude and longitude at sea level as defined by the WGS84 conventions [8] (see Figure 2). ...
Conference Paper
Full-text available
Knowing the parameter space of target dynamics helps designing and controlling a radar. For spaceborne targets, several state representations exist, each useful for different purposes. We present a method for determining the velocity of a resident space object at a given angle and range towards the observing radar receiver from its orbital parameters of eccentricity , longitude of ascending node and argument of periapsis. This enables the definition of a target state at a fixed position while preserving a dependency on the target's orbital eccentricity. From that the maximum duration of the Coherent Processing Interval (CPI) for a bistatic radar is computed for all targets at a fixed angle towards the receiver with eccentricities below a given limit. This allows to analyse if additional signal processing for focussing the target echo on a resolution cell is necessary.
... To verify these orbit calculations, we also used the following publicly available software packages: JPL Horizons 16,17 (ssd.jpl.nasa.gov/horizons.cgi), OREKIT 18 (www.orekit.org) and SkyField 19 (rhodesmill.org/skyfield/). ...
... The orbit lowering scenario is simulated using the Orekit library (Maisonobe et al., 2010) with a classical Runge-Kutta integrator with a step-size of 10 seconds, employing the 100 Chapter 7. Orbit Control following force models: ...
Thesis
Miniaturized satellites on a nanosatellite scale below 10kg of total mass contribute most to the number of launched satellites into Low Earth Orbit today. This results from the potential to design, integrate and launch these space missions within months at very low costs. In the past decade, the reliability in the fields of system design, communication, and attitude control have matured to allow for competitive applications in Earth observation, communication services, and science missions. The capability of orbit control is an important next step in this development, enabling operators to adjust orbits according to current mission needs and small satellite formation flight, which promotes new measurements in various fields of space science. Moreover, this ability makes missions with altitudes above the ISS comply with planned regulations regarding collision avoidance maneuvering. This dissertation presents the successful implementation of orbit control capabilities on the pico-satellite class for the first time. This pioneering achievement is demonstrated on the 1U CubeSat UWE–4. A focus is on the integration and operation of an electric propulsion system on miniaturized satellites. Besides limitations in size, mass, and power of a pico-satellite, the choice of a suitable electric propulsion system was driven by electromagnetic cleanliness and the use as a combined attitude and orbit control system. Moreover, the integration of the propulsion system leaves the valuable space at the outer faces of the CubeSat structure unoccupied for future use by payloads. The used NanoFEEP propulsion system consists of four thruster heads, two neutralizers and two Power Processing Units (PPUs). The thrusters can be used continuously for 50 minutes per orbit after the liquefaction of the propellant by dedicated heaters. The power consumption of a PPU with one activated thruster, its heater and a neutralizer at emitter current levels of 30-60μA or thrust levels of 2.6-5.5μN, respectively, is in the range of 430-1050mW. Two thruster heads were activated within the scope of in-orbit experiments. The thrust direction was determined using a novel algorithm within 15.7° and 13.2° of the mounting direction. Despite limited controllability of the remaining thrusters, thrust vector pointing was achieved using the magnetic actuators of the Attitude and Orbit Control System. In mid 2020, several orbit control maneuvers changed the altitude of UWE–4, a first for pico-satellites. During the orbit lowering scenario with a duration of ten days, a single thruster head was activated in 78 orbits for 5:40 minutes per orbit. This resulted in a reduction of the orbit altitude by about 98.3m and applied a Delta v of 5.4cm/s to UWE–4. The same thruster was activated in another experiment during 44 orbits within five days for an average duration of 7:00 minutes per orbit. The altitude of UWE–4 was increased by about 81.2m and a Delta v of 4.4cm/s was applied. Additionally, a collision avoidance maneuver was executed in July 2020, which increased the distance of closest approach to the object by more than 5000m.
... Orekit is an open-source space flight dynamics library. 17 It is written in Java and provides low level elements for the development of flight dynamics applications. Since 2008, Orekit is distributed under the Apache License version 2.0. ...
Conference Paper
Full-text available
The paper presents an open-source orbit determination application based on the Draper Semi-analytical Satellite Theory (DSST) and a recursive filter, the Extended Semi-analytical Kalman Filter (ESKF). The ESKF reconciles the conflicting goal of the DSST perturbation theory (i.e., large step size) and the Extended Kalman Filter (EKF) theory (i.e., re initialization at each measurement epoch). Validation of the Orekit ESKF is demonstrated using simulated data. Both the satellite’s state vector estimation and the measurement residuals are used as comparison metrics.
Article
Full-text available
We present a working prototype of automatic satellite streak detection, identification and initial orbit determination pipeline from optical telescope images based on python. The pipeline process calibrated and plate-solved astronomical images in fits format. We utilized Hough transform-based feature detection to detect the light streaks and extract the equatorial position based on the image header information. The streaks were then identified by comparing their center position with the calculated SGP4 based satellite position from available TLE data. The corresponding initial orbit is calculated by utilizing the Laplacian method by interpolating the streak position and time. We test the pipeline by using 85 blind-survey 10 cm telescope images around the celestial equator. The pipeline correctly detects 123 lines with 0.85 sensitivity, automatically identify 92 detected satellites unambiguously and determine the initial orbit of 118 streaks.
  • D Dennis
  • Gérard Mc Carthy
  • Petit
Dennis D. Mc Carthy and Gérard Petit, IERS Conventions (2003), International Earth Rotation and Reference Systems Service.
Software License Agreement
  • Cnrs Cea
  • Cecill Inria
  • Free
CEA, CNRS, INRIA, CeCILL Free Software License Agreement, September 2006, http://www.cecill.info/licences/ Licence_CeCILL_V2-en.html.
  • David A Vallado
  • Paul Crawford
  • Richard Hujsak
  • T S Kelso
David A. Vallado, Paul Crawford, Richard Hujsak, and T.S. Kelso, August 2006, Revisiting Spacetrack Report #3, 2006 AIAA/AAS Astrodynamics Specialist Conference.