Ceres Solver is a production-grade C++ library for solving large-scale non-linear least squares problems, widely used in computer vision (bundle adjustment, SLAM) and robotics. It provides a flexible API where users define cost functions (analytical, automatic, or numerical differentiation), residual blocks, and parameter manifolds (Euclidean, quaternion, sphere, etc.), then solve via trust-region or line-search methods backed by a variety of sparse/dense linear solvers (Eigen, SuiteSparse, CUDA, Apple Accelerate). The architecture is modular: a core minimizer orchestrates strategy objects (Levenberg-Marquardt, Dogleg, BFGS), while evaluators and Jacobian writers support block-sparse and dynamic sparsity. The library also includes utilities like thread pools, concurrent queues, and graph algorithms for visibility-based preconditioning. Despite a complex build matrix with optional backends, the code is well-structured, heavily tested, and actively maintained.
This repository is a complete ROS2 software development kit for the Unitree Go2 quadruped robot. It provides a high-level SDK (go2_robot_sdk) with clean architecture (domain, application, infrastructure, presentation) that enables connection to the robot via WebRTC (Wi-Fi) or CycloneDDS (Ethernet), reception and decoding of real-time data (LiDAR, IMU, joint states, camera, odometry), and control commands (movement, stance, joystick). It includes multiple ROS2 packages: go2_interfaces (25+ custom message types), lidar_processor (Python and C++ nodes for LiDAR point cloud decoding and aggregation), speech_processor (ElevenLabs TTS with caching and robot playback), coco_detector (object detection using PyTorch FasterRCNN), and launch files for SLAM (slam_toolbox) and autonomous navigation (Nav2). The repository also contains URDF models, calibration files, RViz configurations, Docker support, and multi-robot namespace remapping. While primarily an application for controlling and monitoring the Go2 robot, it includes data-processing components (LiDAR decoding, IMU filtering, object detection) that give it a hybrid data-research character. The codebase demonstrates professional ROS2 development practices with modular design, abstract interfaces, and multiple language implementations.
Super-LIO is a LiDAR-Inertial Odometry (LIO) system implemented as a ROS2 application. It fuses IMU and LiDAR data using an Error-State Kalman Filter (ESKF) for state estimation and a novel OctVoxMap for efficient point cloud mapping and nearest-neighbor search. The system supports multiple LiDAR types (Livox, Hesai, Velodyne, Ouster, NCLT) and includes a relocation mode using pre-built maps with ICP/NDT initialization. The architecture is a monolithic ROS2 node with a state machine (KF initialization, map initialization, then continuous processing). Key data flows: IMU propagation, LiDAR scan motion undistortion, downsampling, point-to-plane residual optimization, map update, and odometry publication. The codebase demonstrates strong engineering with C++20, TBB parallelism, and well-structured Lie group math (SO3, SE3, S2) in a separate 'basic' library. The OctVoxMap component is a standout contribution with precomputed search orders for fast KNN queries.
This repository is a curated list of academic papers on learning-based odometry, covering visual odometry (VO), visual-inertial odometry (VIO), inertial odometry, LiDAR odometry, semantic SLAM, and NeRF SLAM. It is organized as a README with tables detailing paper titles, venues, years, links to papers and code repositories, and short notes on each method. The list includes papers from 2015 to 2026 and is regularly updated with recent contributions. While no code or datasets are provided, the README serves as a comprehensive bibliography for researchers and practitioners in the field. It links to numerous external GitHub repositories and blogs for further exploration.
PythonRobotics is a large collection of robotics algorithms implemented in Python, designed primarily for educational purposes and as a companion to a textbook. It covers a wide range of robotics domains including localization (EKF, particle filter, histogram filter), mapping (grid maps, NDT, clustering), SLAM (EKF SLAM, FastSLAM, GraphSLAM), path planning (A*, Dijkstra, RRT variants, PRM, DWA, Frenet, etc.), path tracking (Stanley, LQR, MPC, pure pursuit), arm navigation (inverse kinematics, RRT for arms), aerial navigation (drone trajectory, rocket landing), bipedal walking, inverted pendulum control, and mission planning (state machines, behavior trees). Each algorithm is implemented as a standalone script with a main() function that runs a simulation and visualizes results using matplotlib. The code is not packaged as a library and is not intended for production use; it is a learning resource with clear, readable implementations that reference academic papers. The repository includes extensive documentation in Sphinx RST format, CI/CD pipelines, and a test suite that runs each demo without animation.
GS-SDF is a research prototype from HKU-MARS that fuses LiDAR-augmented 3D Gaussian Splatting with a neural Signed Distance Field (SDF) for photorealistic rendering and high-fidelity surface reconstruction. The system ingests data from multiple sensor modalities (LiDAR, RGB-D, stereo) via a modular data parser hierarchy supporting Replica, FAST-LIVO2, KITTI, COLMAP, Oxford Spires, and other formats. It trains a neural SDF field with eikonal and curvature regularization, then initializes and refines 3D Gaussians guided by the SDF to produce view-dependent color and geometry. The pipeline includes real-time ROS visualization (RVIZ), offline mesh extraction via a custom CUDA marching cubes implementation, and evaluation scripts for image metrics (PSNR, SSIM, LPIPS) and structural metrics (Chamfer distance, F-score). The codebase is pre-release, with many TODOs and commented-out code, but exhibits strong modularity in its data loaders, loss functions, optimizer utilities, and coordinate transformations. While primarily a research codebase, it includes application-like features such as a ROS node with interactive keyboard commands and headless rendering modes.
Caesar.jl is a comprehensive Julia library for non-Gaussian, multimodal factor graph inference primarily targeting SLAM (Simultaneous Localization and Mapping) and robot perception. It implements the mm-iSAMv2 algorithm, supporting both parametric and non-parametric belief representations (KDE), incremental smoothing and mapping, multi-hypothesis data association, and on-manifold inference. The library provides a rich set of variable and factor types (e.g., Pose2, Point2, BearingRange, Pose2Pose2) and integrates with various sensor modalities via weak extensions: AprilTags, image features, point clouds (PCL), beamforming (synthetic aperture sonar), and ZMQ-based multi-language services. The architecture is a monolithic Julia package with a clear public API (ExportAPI.jl) and a factor graph construction pattern (initfg, addVariable!, addFactor!, solveTree!). It relies heavily on the external IncrementalInference.jl, RoME.jl, and DistributedFactorGraphs.jl packages. While the core framework is production-caliber, the repository includes a large number of experimental and research examples (marine, wheeled, aerial) that are often unmaintained, resulting in moderate technical drift. The library is actively maintained (CI, CompatHelper, TagBot) but contains deprecated APIs and Julia version sensitivity.
This repository is the public release of the SLAM Handbook, a comprehensive book on Simultaneous Localization and Mapping (SLAM) to be published by Cambridge University Press. It contains the book manuscript (main.pdf), LaTeX style files for acronyms and bibliography strings, and a bug report template. The repository is primarily a document project rather than a software application, but the LaTeX infrastructure (SH_acronyms.sty and SH_string.bib) serves as a reusable library for typesetting SLAM-related documents. The book covers foundations, practical implementations, and spatial AI, with contributions from numerous experts. The repository is actively maintained with incremental releases and community feedback mechanisms via issues and discussions.