isi-rcg / vce

Virtual Constellation Engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VCE: Virtual Constellation Engine

vce is a cloud framework to prototype and emulate satellite applications.

It provides support for orbits calculation, network latency/bandwidth emulation, instrument control by the application, and constellation monitoring (positions, CPU/memory/disk/network usage, configuration changes made to the emulated onboard instruments).

The state of everything in the constellation is saved in a time series database (InfluxDB). This database can be inspected after running the emulation scenario.

  • Each satellite runs in an AWS instance which is part of an AWS CloudFormation stack.
  • Networking parameters are set (through tcconfig and the netem component of the Linux kernel) by vce agent, which runs on each node and polls the current value of the parameters from the time series database.
  • Networking parameters are saved in the database by vce links in real-time.
  • Satellite positions are stored in advance by vce orbits, which is run at the beginning of the emulation.
  • Resource usage measurements are collection on each AWS instance by running collectd and sending the data to InfluxDB.
  • Timeseries of usage measurements, satellite positions (on a map), and instruments state can be visualized and analyzed using grafana.

Development

To install all development dependencies, just clone this project and then run:

make init

This will create a Python 3.7 virtual environment using pipenv.

About

Virtual Constellation Engine

License:GNU Affero General Public License v3.0


Languages

Language:Python 94.8%Language:Makefile 5.2%