Project done for the Autonomous Systems course @ IST, Portugal.
This project consists of both localizing an Astrobee robot (3 of which are, at the time of writing this, aboard the ISS) as well as mapping its environment using a finite number of landmarks, through an Extended Kalman Filter.
Install required dependencies with pip install -r requirements.txt
# NOT YET DONE #
- data
- bags
- processed
- bag.py
- main.py
- ekf_slam.py
- ekf_unknown_correpondences.py
- utils.py
Full breakdown:
- main.py
- Performs EKF-SLAM and outputs plots of real trajectory and landmark location vs. estimation
- ekf_slam.py
- Implements the EKF-SLAM with known data association
- ekf_unknown_correpondences.py
- Implements the EKF-SLAM with data association via a Maximum Likelihood estimator
- data
- bags
- Raw data obtained via rosbag recordings in the Astrobee simulator.
- processed
- Already-processed data into numpy array format.
- bag.py
- reads rosbags collected in the robot
- localization
- localization.py
- Performs localization on a given map using the EKF
- ekf.py
- Implements the Extended Kalman Filter (EKF)
- registration.py
- Matches two point-clouds using ICP
- data
- bags
Raw data obtained through rosbag recordings in the Astrobee simulator.
- processed
Already-processed data into Numpy array format.
- bag.py
- main.py
Performs EKF-SLAM and outputs plots for analysis/comparison.
- ekf_slam.py
- ekf_unknown_correpondences.py
Both implement the SLAM algorithm, with the latter dealing with data association
via a Maximum Likelihood estimator.
- utils.py