Crate multisensor_lmb_filters_rs

Crate multisensor_lmb_filters_rs 

Source
Expand description

§Prak - Multi-object tracking library

Rust implementation of multi-object tracking algorithms based on Labelled Multi-Bernoulli (LMB) filters and their variants.

§Features

  • Single-sensor LMB and LMBM filters
  • Multi-sensor fusion algorithms (PU-LMB, IC-LMB, GA-LMB, AA-LMB)
  • Multiple data association methods (LBP, Gibbs, Murty’s algorithm)

§Modules

  • lmb - LMB tracking algorithms and types
  • components - Shared algorithms: prediction, update
  • association - Data association: likelihood computation, matrix building
  • common - Low-level utilities

§Example

use multisensor_lmb_filters_rs::lmb::{Filter, LmbFilter, MotionModel, SensorModel, BirthModel, BirthLocation, AssociationConfig};
use nalgebra::{DVector, DMatrix};

// Create filter configuration
let motion = MotionModel::constant_velocity_2d(1.0, 0.1, 0.99);
let sensor = SensorModel::position_sensor_2d(1.0, 0.9, 10.0, 100.0);

// Define a birth location
let birth_loc = BirthLocation::new(
    0,
    DVector::from_vec(vec![0.0, 0.0, 0.0, 0.0]),
    DMatrix::identity(4, 4) * 100.0,
);
let birth = BirthModel::new(vec![birth_loc], 0.1, 0.01);
let association = AssociationConfig::default();

// Create filter
let mut filter = LmbFilter::new(motion, sensor, birth, association);

// Process measurements
let mut rng = rand::thread_rng();
let measurements = vec![DVector::from_vec(vec![1.0, 2.0])];
let estimate = filter.step(&mut rng, &measurements, 0).unwrap();

Re-exports§

pub use lmb::AssociationConfig;
pub use lmb::BirthLocation;
pub use lmb::BirthModel;
pub use lmb::EstimatedTrack;
pub use lmb::FilterOutput;
pub use lmb::FilterParams;
pub use lmb::FilterThresholds;
pub use lmb::GaussianComponent;
pub use lmb::LmbmConfig;
pub use lmb::LmbmHypothesis;
pub use lmb::MotionModel;
pub use lmb::MultisensorConfig;
pub use lmb::SensorModel;
pub use lmb::SensorVariant;
pub use lmb::StateEstimate;
pub use lmb::Track;
pub use lmb::TrackLabel;
pub use lmb::Trajectory;
pub use lmb::AssociationError;
pub use lmb::FilterError;
pub use lmb::Associator;
pub use lmb::Filter;
pub use lmb::Merger;
pub use lmb::Updater;
pub use lmb::GibbsAssociator;
pub use lmb::LbpAssociator;
pub use lmb::MurtyAssociator;
pub use lmb::HardAssignmentUpdater;
pub use lmb::MarginalUpdater;
pub use lmb::LmbFilter;
pub use lmb::LmbmFilter;
pub use lmb::AaLmbFilter;
pub use lmb::ArithmeticAverageMerger;
pub use lmb::GaLmbFilter;
pub use lmb::GeometricAverageMerger;
pub use lmb::IcLmbFilter;
pub use lmb::IteratedCorrectorMerger;
pub use lmb::MultisensorLmbFilter;
pub use lmb::MultisensorLmbmFilter;
pub use lmb::MultisensorMeasurements;
pub use lmb::ParallelUpdateMerger;
pub use lmb::PuLmbFilter;
pub use lmb::MultisensorAssociationResult;
pub use lmb::MultisensorAssociator;
pub use lmb::MultisensorGibbsAssociator;

Modules§

association
Data association algorithms and utilities Data association algorithms and likelihood computation
bench_utils
Benchmark utilities (scenario loading, filter factory) Benchmark utilities shared between Criterion benchmarks and the benchmark_single binary.
common
Low-level utilities (linear algebra, RNG, constants) Common utilities and shared components for tracking algorithms.
components
Shared tracking components (prediction, update) Core algorithmic components
lmb
LMB (Labeled Multi-Bernoulli) tracking algorithms

Constants§

VERSION
Library version