LibreCube is applying for the Google Summer of Code (GSoC) program this year!
GSoC is a vital opportunity for attracting new members to the LibreCube community and the open source world in general. We heavily rely on contributors to extend our open source ecosystem for semi-autonomous exploration systems and technology. As always, we aim for a diverse participation and encourage applications from women and under-represented groups in (but not limited to) space engineering and computer science!
Listed below are the project ideas for this year. Please send us an email (info@librecube.org) with a short text about yourself (your skills and interests) and what of the project(s) you find interesting to work on. You may want to structure your project application according to this template.
Most projects (unless mentioned otherwise) require at least a basic knowledge of Python language. Some basic experience with Git is also needed.
1. Rust Implementation of SpaceCAN Protocol
Description: SpaceCAN is the robust onboard communication bus for CubeSats and other autonomous vehicles, developed by the LibreCube community. Currently we have implementations in Python and MicroPython. The task here is to create an implementation of SpaceCAN in the Rust language, targeted for embedded devices. This requires to implement all features to the protocol and realize an API that resembles as close as possible the Python reference implementation. The outcome shall be demonstrated by using a Python SpaceCAN controller node on a PC communicating with a Rust SpaceCAN responder node on an embedded device.
Skills: Rust, Python, Embedded
Proposed Mentors: Jens, Artur
Project Size: 350 hours
Difficulty: medium
2. Connector for Open Roberta Lab
Description: Open Roberta Lab is an open-source, web-based programming environment developed by Fraunhofer IAIS to simplify coding for educational robotics. It provides a graphical programming interface, including a block-based visual programming language based on Google Blockly. The task here is to develop a connector that interfaces to LibreCube’s System Model Interface. Typically, those connectors are written in Python and adhere to a defined API. Several connectors already exist, for example for Lego Mindstorm and BBC microbit. With the connector to be developed, it will be possible to use the Open Roberta Lab to control the LibreCube rover and other LibreCube platforms for the purpose of education and teaching. The outcome shall demonstrate with a basic example the correct implementation of such connector.
Skills: Python, Web, Docker
Proposed Mentors: Sainath, Artur
Project Size: 350 hours
Difficulty: hard
3. Python Implementation of CCSDS Space Data Link Security (SDLS) Protocol
Description: The CCSDS Space Data Link Security (SDLS) protocol was created for space missions that need to apply authentication and/or confidentiality to the contents of CCSDS transfer frames over a space link. Using our reference implementation of the CCSDS frame protocol, the task here is to add the security layer and demonstrate it with an end-to-end testing. Up to now, no other open source Python implementation of SDLS exists. The outcome of this project will be a crucial building block to add security to the Python-based protocol stack of LibreCube radio communications.
Skills: Python, REST API
Proposed Mentors: Shayan, Komal
Project Size: 175 hours
Difficulty: medium
4. PLUTO to PDF Converter
Description: PLUTO is a domain specific language for writing procedures to be used for test and operation of space system. PLUTO procedures are both human-readable and can be parsed by machines (for example, we have developed a PLUTO to Python parser to demonstrate it). Although the text is clear to read, satellite operators typically prefer to have some additional information and visual presentation added to it to provide better overview of the procedure objectives. Therefore, the task at hand is to develop a Python program that takes a PLUTO script as input and outputs a PDF document that contains: a cover page, a flowchart of the steps, and then several pages with the actions and checks to be performed. By using several real-life example of mission operations PLUTO scripts, it shall be demonstrated that well formatted PDF procedures can be generated with it.
Skills: Python, PLUTO
Proposed Mentors: Husseinat, Jan
Project Size: 90 hours
Difficulty: medium