Skip to content

Latest commit

 

History

History
136 lines (95 loc) · 4.38 KB

README.md

File metadata and controls

136 lines (95 loc) · 4.38 KB

Advanced Navigation Projects

This repository contains a series of projects focusing on various aspects of advanced navigation techniques.

Project 1: Bayes Filter

Description

Implemented a Bayes Filter for a robot monitoring a door's state (open/closed) using imperfect sensors and actuators.

Implementation Details

  • Developed sensor and propagation models for the door state problem
  • Implemented the Bayes Filter algorithm in Python
  • Analyzed filter performance under different scenarios

Key Results

Scenario Iterations to 99.99% Belief
"Do nothing" action, "Door open" measurement 9
"Push" action, "Door open" measurement 4
"Push" action, "Door closed" measurement (steady state) 10

Outputs

Bayes Filter Results
Bayes Filter Results

Project 2: Kalman Filter

Description

Implemented a Kalman Filter to track the motion of a drone using motion capture data.

Implementation Details

  • Developed system models for drone motion
  • Implemented the Kalman Filter algorithm
  • Visualized drone trajectories

Project 3: Nonlinear Kalman Filter

Description

Implemented a nonlinear Kalman Filter (Unscented Kalman Filter - UKF) for quadcopter pose estimation using AprilTags and IMU data.

Drone Sensor Configuration

Implementation Details

  • Implemented pose estimation using PnP (Perspective-n-Point) algorithm
  • Developed an Unscented Kalman Filter for state estimation
  • Estimated covariance for the observation model

Key Results

Metric UKF Camera
Translational RMSE 0.083m 0.696m
Rotational RMSE 0.060 rad 0.231 rad

Outputs

UKF Trajectory Comparison UKF Orientation Comparison UKF Position Comparison
UKF Trajectory Comparison UKF RMSE Comparison UKF Position Comparison

Project 4: Particle Filter

Description

Implemented a Particle Filter for quadcopter pose estimation and compared its performance with the UKF from Project 3.

Implementation Details

  • Developed a Particle Filter with vectorized operations
  • Implemented different weight sampling methods
  • Analyzed performance with varying particle counts

Key Results

Metric Particle Filter Camera
Translational RMSE 0.09989m 0.696m
Rotational RMSE 0.2222 rad 0.231 rad

Outputs

Particle Filter Trajectory Particle Count vs RMSE PF vs UKF RMSE Comparison
Particle Filter Trajectory Particle Count vs RMSE PF vs UKF Comparison

Project 5: INS/GNSS Integration

Description

Implemented INS/GNSS integration using nonlinear Kalman Filters (feedback and feedforward architectures) for global scale navigation.

Implementation Details

  • Developed observation models for error correction and bias modeling
  • Implemented feedback and feedforward nonlinear Kalman Filters
  • Analyzed the performance of both architectures

Key Results

Model Average RMSE
Feedback 2.221 × 10^-3
Feedforward 3.3 × 10^-3 (with stability issues)

Outputs

| Haversine distance between the estimated position and the true (GNSS measured) position for Feedforward Mode |RMSE values of Estimated and Measured Positions for Feedback Model | RMSE values of Estimated and Measured Postions for Feedforward Model | |---------------------|------------------------------| ------------------------------| | Haversine Distances | Feedback RMSE | Feedforward RMSE |

Requirements

  • Python 3.x
  • NumPy
  • Matplotlib
  • OpenCV (for Project 3)
  • SciPy

Usage

Each project is contained in its directory. To run a project, navigate to its directory and execute the main Python script.

Example:

cd project1_bayes_filter
python bayes_filter.py

Author

Harshal Bhat ([email protected])

License

MIT License