Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spacecraft Guidance and Navigation (GNC) - MATLAB Implementation

This repository contains the Spacecraft Guidance and Navigation course assignments developed during my Master’s degree in Space Engineering.

🚀 Technical Overview

1. Guidance (Trajectory Design)

Located in the /Guidance directory, this section implements:

  • Halo Orbit Computation: Numerical determination of L2 periodic orbits within the Circular Restricted Three-Body Problem (CR3BP) framework using differential correction schemes.
  • Impulsive Guidance: Trajectory design and optimization for a simplified Asteroid Redirection Mission (ARM).
  • Continuous Guidance: Trajectory optimization for a time-optimal Earth-Venus low-thrust transfer.

2. Navigation (State Estimation & Orbit Determination)

Located in the /Navigation directory, this section focuses on:

  • Uncertainty Propagation: Analysis of state covariance evolution using different methods.
  • Batch Filters: Least-Squares differential correction for orbit determination using simulated ground station measurements, obtained with SGP4 propagators and TLE data processing.
  • Sequential Filters: Implementation of Unscented Kalman Filters (UKF) for real-time estimation of absolute spacecraft states and relative navigation between two spacecrafts.

📂 Repository Structure

  • Technical Reports: Each main folder contains a comprehensive PDF report documenting the assignment requests, mathematical derivations, and result analysis.
  • MATLAB Source: Modular codebases organized by sub-problem and functional blocks.
  • Data & Kernels: Supporting files including SGP4 routines, TLE sets, and planetary ephemeris.

🛠 Setup & Requirements

Dependencies

  • MATLAB (Recommended R2021b or later)
  • NASA SPICE Toolkit (MICE): Essential for planetary ephemeris and reference frame transformations.

Execution Instructions

The modules are designed to be standalone. To run the code, ensure the NASA MICE wrappers are in your path and add only the specific module folder (and its sub-folders) you wish to execute.

% 1. Add MICE toolkit to path (Update with your local path)
addpath('pathToMiceFolder/lib');
addpath('pathToMiceFolder/src/mice');

% 2. Add the specific module you wish to run (Guidance OR Navigation)
% To run Guidance scripts:
addpath(genpath('Guidance'));

% OR to run Navigation scripts:
% addpath(genpath('Navigation')); 

📚 Acknowledgments & References

  • SGP4 Propagator: The SGP4 implementation used in the Navigation module is based on the original work by David Vallado (CelesTrak).
  • NASA SPICE: Ephemeris data and coordinate transformations are handled via the NAIF MICE Toolkit.
  • Coursework: This project was developed as part of the Spacecraft Guidance and Navigation at Politecnico di Milano.

About

This repository contains academic projects developed individually during my Master’s degree in Space Engineering. The code is shared for demonstration purposes only.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages