Skip to content

ControlX is a C-based framework for sensor data processing and control in spacecraft systems.

License

Notifications You must be signed in to change notification settings

artic92/controlx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ControlX

ControlX is a C-based framework for sensor data processing and control in spacecraft systems. It simulates interactions between sensors and actuators, including fault tolerance mechanisms such as Triple Modular Redundancy (TMR).

Overview

ControlX processes data from three sensors (IMU, GNSS, Star Trackers) and controls six thrusters based on this data. It demonstrates real-time sensor data processing, fault detection, and system extensibility through modular architecture.

Features

  • Sensor Data Handling: Process data from multiple sensor sources, including IMU, GNSS, and Star Trackers.
  • Thruster Control: Output commands to actuators (thrusters) based on sensor inputs.
  • Fault Tolerance: Support for TMR, with two-out-of-three voting logic to ensure data reliability.
  • Error Injection: Simulate faulty sensors to test system robustness with stuck-at-N sensor errors.

Dependencies

The project requires the following dependencies to be compiled and executed:

  • gcc
  • doxygen
  • make
  • graphviz

You can install the above dependencies by issuing the command (for Ubuntu platforms):

sudo apt-get install -y make gcc doxygen doxygen-gui graphviz

Documentation

To generate the documentation:

doxygen doc/generate_doc

Open the HTML version with any type of browser. In case of firefox:

firefox doc/output/index.html

CLI Options

The project includes several command-line options:

  • -h: Display the help menu.
  • -t: Enable TMR mode, introducing sensor redundancy and voting logic.
  • -i: Inject stuck-at-N sensor errors for fault tolerance testing.
  • -f : Set the path to a log file to store output.

Example usage:

./driver -t -i -f /path/to/log.txt

Running the tests

In order to run the tests:

make -C src/ && ./src/driver

About

ControlX is a C-based framework for sensor data processing and control in spacecraft systems.

Topics

Resources

License

Stars

Watchers

Forks