Interactive Notebooks

These Jupyter notebooks provide hands-on tutorials covering key pytcl functionality. Each notebook is self-contained with explanations, code examples, and visualizations.

Note

These notebooks are rendered statically in the documentation. To run them interactively, clone the repository and open them in Jupyter:

git clone https://github.com/nedonatelli/TCL.git
cd TCL
pip install -e ".[dev]"
jupyter notebook docs/notebooks/

Filtering & Estimation

These notebooks cover state estimation fundamentals from linear Kalman filtering to particle filters for nonlinear/non-Gaussian systems.

Multi-Target Tracking

Learn data association algorithms including GNN, JPDA, and track management for tracking multiple targets simultaneously.

Coordinate Systems

Comprehensive coverage of geodetic, ECEF, ENU/NED frames, rotations, quaternions, and map projections.

Advanced Topics

GPU acceleration with CuPy, network flow algorithms for assignment problems, and performance optimization techniques.

Notebook Summary

#

Notebook

Description

1

Kalman Filters: From Fundamentals to Advanced Filtering

Linear KF, Extended KF, Unscented KF, Cubature KF, IMM estimator

2

Particle Filters: Sequential Monte Carlo Methods

Bootstrap PF, resampling strategies, effective sample size, degeneracy

3

Multi-Target Tracking: Data Association and Tracking

Data association, GNN, JPDA, track management, OSPA metrics

4

Coordinate Systems: Transformations and Projections

Geodetic/ECEF/ENU/NED, rotations, quaternions, map projections

5

GPU Acceleration: CuPy Integration for Tracking

CuPy basics, batch processing, particle filter GPU acceleration

6

Network Flow for Assignment Problems

Min-cost flow for assignment, successive shortest paths, Hungarian comparison

7

INS/GNSS Integration: Navigation System Fusion

INS mechanization, GNSS DOP, loosely-coupled integration, outage handling

8

Performance Optimization: Profiling and Benchmarking

Profiling, Numba JIT, vectorization, caching, memory optimization

Prerequisites

Most notebooks require only the core pytcl package:

pip install nrl-tracker matplotlib

Some advanced notebooks have additional requirements:

  • GPU Acceleration: pip install cupy-cuda12x (NVIDIA GPU with CUDA)

  • Network Flow: No additional requirements

  • Performance: pip install numba line_profiler memory_profiler

Getting Started

  1. Start with Kalman Filters (01) if you’re new to state estimation

  2. Move to Particle Filters (02) for nonlinear problems

  3. Explore Multi-Target Tracking (03) for data association

  4. Study Coordinate Systems (04) for navigation applications

  5. Advanced users: GPU acceleration, network flow, and optimization