Google Summer of Code 2024

LibreCube has been selected 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 other under-represented groups in (but not limited to) space engineering and computer science!

Our focus this year is on automation, as it lays the foundation for implementing artificial intelligence on top of it at a later stage. In particular, we want to apply the open space standard “PLUTO”, which is a domain specific language for testing and operation of spacecraft, to use it for controlling our open source rover platform. You can read more about the PLUTO language in our PLUTO parser repository.

Therefore, as a contributor, you will not only learn how to work on open source projects in an international distributed team, but also gain experience in spacecraft automation and space communication protocols.

Get in Touch

Listed here 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.

Please note: Our human resources for mentoring are rare. We want to ensure good quality mentoring, thus we aim to run only 1 or 2 projects this year in GSoC. We already receive many applications, so please do not be turned down if you may not make it this year. Remember that you are always welcome to contribute to LibreCube even outside of GSoC program. From time to time we find other funding opportunities. Thus, please ensure you send your application via email, so we can keep you in the record and keep you informed.

For the official application later, you may want to structure your project application according to this template.

Project Ideas

For all projects at least a basic knowledge of Python programming and is required. Experience with Git is also needed.

1. PLUTO to PDF Generator

Description: PLUTO scripts are human-readable and can be parsed by machines. Nonetheless, for humans it is preferred to have some additional information and visual presentation added to it. Thus, this project shall take PLUTO scripts as input and output a PDF documents that contains: a cover page, a flowchart of the steps, and then several pages with the actions and checks to be performed. You can find more details on this project here.

Expected outcome: A working prototype.

Skills required/preferred: Python, CCSDS PLUTO standard

Mentor: Jens, Artur

Project size: 175 hours

Difficulty: medium

2. PLUTO Script Executor

Description: In order to run PLUTO scripts on hardware (eg laptop or embedded devices), two things are needed: 1) a parser to convert PLUTO to executable code (done!), and 2) an execution engine that interacts with the system under control (this project!). The objective is to create an API server (eg with fastapi) that acts as sink/source for the PLUTO scripts and that interfaces with the system under control, using user-defined commands. Some initial work can be found here.

Expected outcome: A working prototype running on Raspberry Pi.

Skills required/preferred: Python, CCSDS PLUTO standard

Mentors: Artur, Rajkumar

Project size: 350 hours

Difficulty: medium

3. Blockly for PLUTO Script Generation

Blockly is a library that uses graphical blocks to represent code and thus lets the user visually create a program. The goal of this project is to create an application based on blockly, that outputs PLUTO scripts instead of code. In particular, users can for example put blocks of commands (eg to do movement of our prototype rover) into a control logic, and then a corresponding PLUTO script will be generated.

Expected outcome: A working prototype that generates basic PLUTO scripts from block logic.

Skills required/preferred: Python, Blockly

Mentor: Artur

Project size: 350 hours

Difficulty: hard

4. Unified Space Data Link Protocol

The USLP is a relatively new space protocol standards from CCSDS that, as the name suggests, aims to unify the protocols used for telecommand uplink and telemetry downlink, between ground and space assets. As we have done with other protocols of the CCSDS stack, this project goal is to implement in Python a working prototype of this protocol, demonstrating the exchange of data between two entities.

Expected outcome: A prototype running on two laptops exchanging data via USLP.

Skills preferred: Python, CCSDS USLP standard

Mentor: Jan, Artur

Project size: 350 hours

Difficulty: hard

5. GUI Application for Rover Movement

As a precursor for project 3, or for beginners, this project focuses on the use of GUI executor library as means to control the movement of our rover (or similar systems). The code for individual movements and control logic needs to be written and Python decorators be used to turn it into a GUI application.

Expected outcome: A working prototype that interacts with the rover.

Skills preferred: Python, GUI development

Mentors: Rik, Redouane, Artur

Project size: 90 hours

Difficulty: easy