Challenges in GNC software
GNC software is usually designed to provide high accuracy and reliability in a wide range of applications, such as spacecraft, aircraft, and autonomous vehicles. However, there are several challenges associated with this software type , including:
- Complexity: GNC software is often highly complex, with multiple subsystems and algorithms that must work together seamlessly.
- Real-Time Performance: GNC software often requires real-time or near real-time performance to ensure accurate and timely control of the vehicle or system. Achieving real-time performance can be challenging, particularly in systems with high computational demands or limited processing resources.
- Robustness: GNC software must be robust and reliable, even in the face of unexpected events or failures. This requires careful design and testing of the software, as well as the use of fault-tolerant and redundancy mechanisms to ensure safe and reliable operation.
- Integration: GNC software must be integrated with other systems and components, such as sensors, actuators, and communication systems. This requires careful coordination and testing to ensure that all components work together seamlessly and effectively.
Klepsydra SDK applied to GNC
Using Klepsydra SDK For GNC can offer several benefits, including:
- Increased Performance: Klepsydra SDK allows for the software to run multiple threads simultaneously, thus increasing the overall performance of the system and providing faster response times and improved throughput.
- Improved Resource Utilisation: Klepsydra SDK enables the software to efficiently utilise the available system resources, such as CPU cores and memory, resulting in improved system efficiency.
- Better Responsiveness: Klepsydra SDK can improve the responsiveness of GNC software by allowing it to perform multiple tasks simultaneously. This can be particularly important in applications where quick responses are required.
- Simplified Software Design: Klepsydra SDK can simplify the design of GNC software by allowing for the separation of tasks into independent threads, abstraction of the middleware and seamless connectivity to sensors, actuators and payload subsystem. This can make the software easier to develop, test, and maintain, and can reduce the risk of errors and bugs in the code.
Klepsydra SDK for GNC is a set of libraries and applications built around the SDK API in order to provide a ready-to-use, extensible and flexible GNC subsystem for Space and Aerospace applications.
Klepsydra SDK for GNC includes the following components:
- GNC algorithms for trajectory planning, attitude control, sensor processing, thruster and reaction wheels control and fault detection.
- Middleware for Space. A simple abstraction layer to transparently integrate with SpaceWire, CANOpen and Cubesat Space Protocol (CSP). Support to other middleware, can be provided upon request
- Connectivity to other components. Payload AI algorithms, and other subsystem can be connected to Klepsydra for GNC using the standard API of Klepsydra.
Klepsydra has three main core features:
- 2x to 10x increase in data processing speed with respect to standard techniques (e.g, CANOpen).
- x5 increase running processor intensive algorithms with respect to standard techniques (e.g.,OpenMP)
- 25%-50% less power consumption. Processor and OS independent and easy installation and integration.
Klepsydra SDK is platform independent that requires:
- Operating system with C++11 support
- Target computer with atomic operation set
- Operating system: Yocto Linux, PetaLinux, Ubuntu, FreeRTOS 10.x, RTEMS 5.x
- Processors: ARM (V8, Cortex A7, Cortex A9),x86 64 and 32 bits, Gaisler Leon3, Leon4 and Leon 5, RISC-V.
- Supported languages: C++, C, Java, Python and NodeJS
- Middleware: SpiceWire, CANOpen, CSP, ZMQ, ROS and ROS2
- Frameworks: MATLAB, NASA’s cFs.