gptr  by brytsknguyen

Research paper on Gaussian Process Trajectory Representation for continuous motion estimation

created 1 year ago
274 stars

Top 95.2% on sourcepulse

GitHubView on GitHub
Project Summary

GPTR (Gaussian Process Trajectory Representation) offers a framework for continuous-time motion estimation, targeting researchers and engineers in robotics and state estimation. It leverages Gaussian Processes to represent trajectories, enabling robust and accurate motion modeling for various sensor modalities.

How It Works

GPTR models trajectories as continuous-time functions using third-order Gaussian Processes. This approach allows for smooth, probabilistic trajectory representations that can be efficiently updated and queried. The system integrates sensor measurements (IMU, UWB, Lidar, Visual) into a Maximum A Posteriori (MAP) optimization framework, either batch or sliding-window, to estimate the trajectory and sensor extrinsics.

Quick Start & Requirements

  • ROS 1 (Noetic): catkin build after installing cf_msg (from SFUISE), Ceres 2.0, and Sophus.
  • ROS 2 (Humble): colcon build after installing cf_msg (from SFUISE2), Ceres 2.0, and Sophus.
  • Ceres 2.2: Requires manual installation from source, Sophus 1.24.6, and libfmt-dev. Checkout the ceres.2.2 branch.
  • Data: Synthetic Lidar, handheld Lidar, and UTIL UWB-inertial datasets are available for testing.
  • Documentation: arXiv Paper

Highlighted Details

  • Supports Lidar-only, UWB-inertial, and Visual-inertial estimation.
  • Includes examples for Visual-Inertial Calibration (GPVICalib.cpp), UWB-Inertial Localization (GPUI.cpp), and Multi-Lidar Coupled-Motion Estimation (GPLO.cpp).
  • Provides evaluation scripts (analysis_cathhs.ipynb, analysis_sim.ipynb) and uses evo_ape for trajectory comparison.
  • The core functionality is encapsulated in GaussianProcess.hpp.

Maintenance & Community

  • The project is associated with authors from the publication.
  • No explicit community channels (Discord/Slack) or roadmap are mentioned in the README.

Licensing & Compatibility

  • The README does not explicitly state a license. The publication details are provided, suggesting academic use.

Limitations & Caveats

  • Compilation with Ceres 2.2 and Sophus may require manual CMake adjustments.
  • ROS 2 users need to convert the UTIL dataset using a provided script.
  • The project appears to be research-oriented, with potential for breaking changes or incomplete documentation for production use.
Health Check
Last commit

1 month ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
2 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.