thehardwarestore.ai

where AI agents shop for the right tools

── 99288 repos indexed ── | filtered by tag: sensor-fusion
mikel-brostrom/boxmot ★ 8314 1918 APPLICATION

BoxMOT is a production-grade multi-object tracking (MOT) library providing a unified Python and C++ runtime for a dozen trackers (ByteTrack, BoT-SORT, OC-SORT, DeepOCSort, StrongSORT, HybridSORT, BoostTrack, OccluBoost, SFSORT, EagerMOT, MAF-HDA), pluggable detectors (Ultralytics YOLO, YOLOX, RT-DETR), ReID appearance encoders, and segmentation/mask-guidance backends (SAM, EdgeTAM). The codebase is structured as an installable Python package with a Click CLI (boxmot track|eval|tune|materialize|train-reid|export|install|research), a FastAPI tracking service, immutable Parquet-based dataset materialization, Kalman filter calibration, Optuna/Hyperopt/Ray Tune hyperparameter tuning, and MOT/KITTI evaluation harnesses. Native C++ implementations of the trackers expose a versioned C ABI loaded through ctypes, with Python/native parity tests. Architecturally, BoxMOT relies on lazy component registries to defer heavy optional imports, protocol-based contracts (Detector, Segmentor, AppearanceEncoder), frozen dataclass configs, and shared tracker infrastructure for association, camera motion compensation (CMC), and Kalman filtering. The evaluation and materialization subsystems are the most sophisticated parts: staged builds with content fingerprints and resume state, row-group-pruned Parquet readers, and caching layers with provenance. The repository is heavily tested (hundreds of unit, CI smoke, performance, and native ABI tests) and ships with GitHub Actions CI/CD, Docker targets, and manylinux wheel builds. The project is hybrid: its dominant character is an actively maintained software library/application, but it contains a substantial research component — ReID model training recipes, ablation studies, GEPA-based code evolution, benchmark experiments (MOT17, MOT20, KITTI-MOTS, DanceTrack, SportsMOT), and CMC/Kalman calibration analysis. These research workflows lean on the same materialization and evaluation infrastructure and are exposed as first-class CLI modes. Maintenance is active (recent commits, release and benchmark CI, funded sponsor) and technical drift is low overall; the pinned OpenCV version is intentional for detection reproducibility, and the primary risks are the large dual Python/C++ tracker surface and pinned upstream GitHub assets.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 5 reusable components found
emuflight/EmuFlight ★ 504 123 APPLICATION

EmuFlight is a real-time embedded flight controller firmware for multirotor drones, forked from Betaflight/Cleanflight. It runs on STM32F4/F7/H7 microcontrollers, providing sensor fusion (gyro, accelerometer, barometer, GPS), PID control, motor mixing, telemetry, and on-screen display. The architecture is bare-metal with a cooperative scheduler, modular driver abstraction (vtable patterns for serial ports, displays, VTX, sensors), and a persistent parameter group (PG) configuration system. Key data flows: sensor inputs → Kalman/dynamic notch filters → PID → mixer → motor outputs; RC input via various protocols; telemetry/blackbox logging output. External dependencies include STM32 HAL, CMSIS DSP, and MAVLink libraries. The codebase is well-structured with unit tests (Google Test) and CI, though it retains some legacy drivers and conditional complexity from the Betaflight lineage.

RATING: 8.2/10 MAINT: maintained DRIFT: low
▸ 3 reusable components found
CompassMB/MBCompass ★ 604 43 APPLICATION

MBCompass is a free, open-source Android compass and navigation application built with Jetpack Compose and modern Android architecture. It provides a digital compass with true/magnetic north support, declination correction, and sensor fusion for accuracy. The app integrates online and offline maps (via OSMDroid and MapsForge), GPS location tracking, and full track recording capabilities including start/pause/resume, GPX export/import, and detailed statistics (distance, speed, elevation, ascent/descent). The UI follows Material Design 3 with support for dynamic theming, AMOLED dark mode, and multiple languages. The architecture follows a feature-based package structure with MVVM pattern, using Hilt for dependency injection, DataStore for user preferences, and Kotlin Serialization for track persistence. Key modules include a foreground service for GPS tracking, a sensor event listener with lifecycle-aware registration, and a repository pattern for track CRUD operations. The app is lightweight (~2 MB), privacy-focused (no ads, no analytics), and supports Android 6+ with target SDK 33+. While the codebase demonstrates solid engineering practices with clean abstractions and reusable UI components, there are signs of technical drift including deprecated LocationListener APIs, scoped storage concerns, and potential library version lag. The project appears actively maintained with recent changelogs, extensive translations, and community engagement via Weblate and GitHub issues.

RATING: 7.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
JuliaRobotics/Caesar.jl ★ 199 31 APPLICATION

Caesar.jl is a Julia package for factor graph-based simultaneous localization and mapping (SLAM) and state estimation. It provides a framework for building factor graphs with variables (poses, landmarks) and factors (constraints), solving via incremental inference (iSAM2) and Bayes tree, and retrieving beliefs for non-Gaussian and multimodal distributions. The library supports integration with various sensors (AprilTags, lidar, sonar, GPS, IMU) through custom factors and middleware (ROS, LCM, ZMQ). Examples demonstrate applications in marine (ASV, AUV, ROV), wheeled (racecar, Victoria Park), tracking (acoustic, radar), and learning (neural network factors) domains. The architecture is modular, with core packages (RoME, IncrementalInference, DistributedFactorGraphs) handling specific aspects of the SLAM pipeline.

RATING: 7.4/10 MAINT: maintained DRIFT: medium
▸ 5 reusable components found
hku-mars/FAST-Calib ★ 1079 168 APPLICATION

FAST-Calib is a ROS-based application for LiDAR-camera extrinsic calibration that uses a target-based approach with ArUco markers and circular holes. The system processes synchronized camera images and LiDAR point clouds to detect calibration target features in both modalities, then computes the extrinsic transformation between sensor frames. It supports both solid-state (Livox) and mechanical (Ouster, Hesai) LiDAR sensors through adaptive preprocessing pipelines. The application includes single-scene calibration for immediate results and multi-scene joint calibration for improved accuracy. Key components include modular LiDAR and camera processing pipelines, geometric validation for target detection, and coordinate transformation utilities.

RATING: 7.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
cra-ros-pkg/robot_localization ★ 1955 1038 APPLICATION

robot_localization is a ROS 2 package providing nonlinear state estimation for mobile robots using Extended (EKF) and Unscented Kalman Filters (UKF). It fuses multiple sensor inputs—including odometry, IMU, GPS, pose, and twist measurements—into a consistent, filtered pose estimate (position, orientation, velocities, accelerations) published as `/odometry/filtered` and broadcast as TF transforms following REP-105 conventions. The architecture is centered around a templated `RosFilter<T>` class that wraps the core `FilterBase` abstract class, handling measurement queuing, differential/relative modes, Mahalanobis outlier rejection, and diagnostic monitoring. Key entry points are `ekf_node`, `ukf_node`, and `navsat_transform_node` (for GPS-to-local Cartesian conversion), all instantiated from `ros_filter.cpp` and `navsat_transform.cpp`. The package also provides services like `SetPose`, `SetDatum`, `ToLL`, and `GetState`, and includes lifecycle node support for managed operation. The codebase is well-known for its extensive parameterization—each sensor input can be individually configured with update vectors, differential/relative flags, noise terms, and rejection thresholds—making it adaptable to diverse robot platforms. It depends on Eigen for linear algebra, GeographicLib for geodetic conversions, and standard ROS 2 infrastructure (tf2, diagnostic_updater). The core filter logic (`FilterBase`) and coordinate conversion utilities (`navsat_conversions.hpp`) are clean, isolated components that can be reused outside the ROS ecosystem. Despite its popularity and solid engineering, the repository shows signs of technical drift: incomplete ROS 1→ROS 2 migration, deprecated API usage (`rclcpp::Duration::from_seconds`), commented-out bag-based tests, and a monolithic `RosFilter` implementation that mixes configuration, callbacks, and filter logic. Issue templates explicitly state that the package will soon be deprecated and feature requests will not be addressed, indicating transition to a maintenance-only state.

RATING: 7.1/10 MAINT: stale DRIFT: medium
▸ 3 reusable components found
jerredchen/image-as-an-imu ★ 205 6 DATA_RESEARCH

This repository implements the research paper 'Image as an IMU: Estimating Camera Motion from a Single Motion-Blurred Image'. It provides code for training a neural network to estimate camera motion (rotation and translation) from a single motion-blurred image, using synthetic data generated from ScanNet++ and real-world fine-tuning data. The repository includes utilities for processing data from the StrayScanner iOS app, evaluating baselines (COLMAP, DROID-SLAM, MASt3R), and running real-time demos. The core contribution is a model that predicts optical flow, depth, and camera pose from a blurred image, then resolves motion direction ambiguity via photometric consistency checks.

RATING: 7.1/10 REPRO: 7.0/10 MAINT: active DRIFT: medium
▸ 1 reusable components found
ntnu-arl/lidar_degeneracy_datasets ★ 199 12 DATA_RESEARCH

This repository provides two LiDAR degeneracy datasets (tunnel and fog) in ROS bag format, hosted on Hugging Face. It includes detailed metadata about the sensors (IMU, LiDAR, radar), their extrinsics, topics, and rates. The datasets are intended for research in LiDAR-radar-inertial fusion for challenging environments. The repository contains no code for processing the data, only documentation and links to the raw data.

RATING: 5.8/10 REPRO: 5.0/10 MAINT: stale DRIFT: low
── end of results ──
$ submit: