| Responsible |
|
| Last Updated | 10/12/2025, 12:48:54 PM |
| Last Author | Kai Berszin |
EOS
EOS is a software to simulate the ADCS systems. A plugin of CubeSpace is used to integrate CubeSpace models. D2S2 is a more modern version of EOS and costs more cash money.
Installation
System Requirements
- Windows Vista, 7, 8, 10 or 11
- 20MB Hard-drive space
- 1GB RAM or more
- Screen resolution: at least 1024 x 768
Instructions
Prior to running the simulator, you will need to install the following dependencies (if they are not already installed on your system):
Main instructions:
- The EOS simulator is contained in a zip file.
- Clone the sage-adcs-hw repository to your device. If an error "repository not found" appears clone with an SSH key instead of the https URL.
- Now unpack the zip file into the top of the repository and rename the folder "EOS-v1.13.3-eoslib-v8.18.13-ARIS".
- Double-click on the EOS.exe application (inside this zip file on the sharepoint ) to start it.
Using Simulation GUI

- Load Scenario
- Click on the "Load scenario" button
- select the file "aris.eos" or equivalent file inside the "eos_files" folder.
- Load Simulation script:
- Click on the "Reference Satellite" tab
- Click on the "Run Test Script" button
- Select "Scheduler Script"
- Click "Load Settings"
- Select your ".xml" script file in the "scripts" folder
- Click "Run Script"
- Analyze simulation output: You can select a specific hardware components, whose state you want like "Reaction Wheel1", by dragging the mouse onto the satellite representation which reveals all the components and then clicking on the desired component. Then, click on the desired property like "Measured Speed" and a graph will show up. A csv file of this can be saved. Hardware can be selected in the selection bar at the top or by clicking on the component in the animation. This looks nice but is slower and the plots are less useful, which is why we prefer simulating in headless mode.
Simulating in headless mode
More precise instructions can be found on the README of the sage-adcs-hw repository.
[!Note]
<EOS>\will refer to the pathEOS-<ver>-eoslib-<ver>-ARIS\
For running headless
(from the <EOS> directory):
.\EOS --projectfile="eos_files/aris-sage-groundpointing.eos" --scriptname=Eos.SimulationFramework.SchedulerScript --scriptparams="scripts/GT_example_001.xml"
The command above can be clunky to work with, so a script to automate running multiple simulations is detailed in the [Multilpe simulations script](### Multilpe simulations script) section.
[!IMPORTANT] Move all files in your
EOS <ver> eoslib <ver> ARISinto theEOS-<ver>-eoslib-<ver>-ARISlocally. (No files that you add at this step should be tracked)
Installing requirements
If you don't have a environment (conda or equivalent) set up and don't know how to install the requirements from the requirements.txt please do it with the following commands on the powershell after installing python on your system (On Windows:):
- First to make sure you can run scripts:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- Then run:
python -m venv venv
(venv folder name is already ignored, but any name can be chosen) 3. And to activate the environment from powershell run:
.\venv\Scripts\activate.ps1
(replace .\venv\ with another folder name if not created as as above)
- To finally install all the requiremnts run:
python -m pip install -r requirements.txt
Multilpe simulations script
In the venv run for example:
python .\pyscripts\run_simulations.py --var_type eos_params --base_script "GT_example_001.xml" --params_file "example_variation.json"
This will run the scheduler script specified (located under the <EOS>/scripts) folder for all simulations. The differences in the simulations are specified in the <EOS>/eos_files/variations/example_variations.json as a list with the key "sims" where each element in the list is a json object/dict spesifying the values to override which follow the same nested structure as in the base_eos_file (defaults to <EOS>/eos_files/aris-sage-groundpointing.eos)
The output will be in <EOS>\tmp\outputs with a number based on the order of the list of variations.
[!WARNING] The files in
<EOS>/tmp/will be deleted/overrriden. The output folder can be copied to another location if the data is to be used later (a flag for output folder location can be impleted)
Analysis script
To see how to use a script, in the venv, run:
python pyscripts/analyse_data.py --help
Hardware in the Loop
🚧
- Side-by-side with reference simulation
- (technical) requires duplicate model objects for all components in scripting file
- Works with UART, CAN, CAN with CSP (selected in CubeComputer HIL model object Interface input property)
- Simulation Mode
- Emulated sensor data (SimSensorRaw telecommand)
- CubeADCS is slave of simulator
- Actuators can be used with Force Simulation mode
- Normal Mode
- Simulator synchronized to DM (control program)
- Same processing & communication to nodes as real operation
- Actuators can be used directly (e.g. RW will spin with commanded speed)
- (technical detail) disable "Run in Real Time" simulation setting Synchronization fail leads to error and stop forced