{"adoption": {"forks": 141, "observed_at": "2026-08-28T04:03:35.534210+00:00", "stars": 1101}, "canonical_url": "https://ross.abutalabs.com/products/superodom", "card": {"archived": false, "artifact_type": "library", "description": "A highly robust and accurate LiDAR-only,  LiDAR-inertial odometry", "domain": ["robotics", "autonomous-vehicles", "computer-vision"], "enriched": true, "function": ["robotics", "computer-vision", "simulation"], "health_score": 88, "homepage": "https://superodometry.com", "language": "C++", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["superxslam/SuperOdom"], "name": "superxslam/SuperOdom", "platform": ["cpp"], "pushed_at": "2026-07-23T17:37:20+00:00", "repo": "superxslam/SuperOdom", "stars": 1101, "tags": ["lidar-odometry", "imu-fusion", "slam", "state-estimation", "mapping", "localization", "ros2", "livox", "velodyne", "ouster", "degeneracy-detection", "icp", "sensor-fusion", "algorithms", "linux", "ros", "docker"], "topics": ["3d-reconstruction", "lidar-localization", "lidar-odometry", "sensor-fusion", "resilient-slam", "uncertianty-estimation"], "urls": [], "use_cases": ["estimate robot pose from lidar and imu data", "lidar-inertial odometry for drones and legged robots", "build 3d maps from lidar scans", "localize a robot on a prior map", "run odometry without an imu using lidar only", "detect degeneracy in icp alignment", "support livox velodyne and ouster lidars"], "what_it_is": "SuperOdometry is a lightweight C++/ROS library for LiDAR-only and LiDAR-inertial odometry and mapping, developed by CMU's AirLab. It fuses LiDAR and IMU pose estimates bidirectionally, supports Livox, Velodyne, and Ouster sensors, and offers degeneracy awareness, alignment risk prediction, and localization/mapping dual modes.", "when_to_avoid": ["you need visual or visual-inertial SLAM with camera support", "you need a plug-and-play solution without ROS or C++ build tooling", "your project requires a permissive license (GPL-3.0)", "you only need simple GPS-based localization without LiDAR"], "when_to_choose": ["you need robust, accurate real-time odometry from LiDAR with optional IMU fusion", "you work with Livox, Velodyne, or Ouster sensors in ROS/ROS2", "you need degeneracy detection and uncertainty estimation for state estimation", "you want a research-proven system (Science Robotics) with active maintenance and community support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/superodom", "repo": "superxslam/SuperOdom", "role": "main", "score": 52}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:45:44.342590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66e4613958dc348a59c3dbb903210be8207c05f45e9281ae38f20228e00c9663", "fetched_at": "2026-08-28T04:03:35.534210+00:00", "kind": "readme", "missing": false, "url": "https://github.com/superxslam/SuperOdom"}, {"content_hash": "c96581e5ccfefea2e70929d76fea7938ee7b702b22059cdc830637ca69d90c46", "fetched_at": "2026-08-29T12:48:42.782018+00:00", "kind": "homepage", "missing": false, "url": "https://superodometry.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:45:44.342590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66e4613958dc348a59c3dbb903210be8207c05f45e9281ae38f20228e00c9663", "fetched_at": "2026-08-28T04:03:35.534210+00:00", "kind": "readme", "missing": false, "url": "https://github.com/superxslam/SuperOdom"}, {"content_hash": "c96581e5ccfefea2e70929d76fea7938ee7b702b22059cdc830637ca69d90c46", "fetched_at": "2026-08-29T12:48:42.782018+00:00", "kind": "homepage", "missing": false, "url": "https://superodometry.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:45:44.342590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66e4613958dc348a59c3dbb903210be8207c05f45e9281ae38f20228e00c9663", "fetched_at": "2026-08-28T04:03:35.534210+00:00", "kind": "readme", "missing": false, "url": "https://github.com/superxslam/SuperOdom"}, {"content_hash": "c96581e5ccfefea2e70929d76fea7938ee7b702b22059cdc830637ca69d90c46", "fetched_at": "2026-08-29T12:48:42.782018+00:00", "kind": "homepage", "missing": false, "url": "https://superodometry.com"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:45:44.342590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66e4613958dc348a59c3dbb903210be8207c05f45e9281ae38f20228e00c9663", "fetched_at": "2026-08-28T04:03:35.534210+00:00", "kind": "readme", "missing": false, "url": "https://github.com/superxslam/SuperOdom"}, {"content_hash": "c96581e5ccfefea2e70929d76fea7938ee7b702b22059cdc830637ca69d90c46", "fetched_at": "2026-08-29T12:48:42.782018+00:00", "kind": "homepage", "missing": false, "url": "https://superodometry.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:45:44.342590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66e4613958dc348a59c3dbb903210be8207c05f45e9281ae38f20228e00c9663", "fetched_at": "2026-08-28T04:03:35.534210+00:00", "kind": "readme", "missing": false, "url": "https://github.com/superxslam/SuperOdom"}, {"content_hash": "c96581e5ccfefea2e70929d76fea7938ee7b702b22059cdc830637ca69d90c46", "fetched_at": "2026-08-29T12:48:42.782018+00:00", "kind": "homepage", "missing": false, "url": "https://superodometry.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:45:44.342590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66e4613958dc348a59c3dbb903210be8207c05f45e9281ae38f20228e00c9663", "fetched_at": "2026-08-28T04:03:35.534210+00:00", "kind": "readme", "missing": false, "url": "https://github.com/superxslam/SuperOdom"}, {"content_hash": "c96581e5ccfefea2e70929d76fea7938ee7b702b22059cdc830637ca69d90c46", "fetched_at": "2026-08-29T12:48:42.782018+00:00", "kind": "homepage", "missing": false, "url": "https://superodometry.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.534210+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:45:44.342590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66e4613958dc348a59c3dbb903210be8207c05f45e9281ae38f20228e00c9663", "fetched_at": "2026-08-28T04:03:35.534210+00:00", "kind": "readme", "missing": false, "url": "https://github.com/superxslam/SuperOdom"}, {"content_hash": "c96581e5ccfefea2e70929d76fea7938ee7b702b22059cdc830637ca69d90c46", "fetched_at": "2026-08-29T12:48:42.782018+00:00", "kind": "homepage", "missing": false, "url": "https://superodometry.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:45:44.342590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66e4613958dc348a59c3dbb903210be8207c05f45e9281ae38f20228e00c9663", "fetched_at": "2026-08-28T04:03:35.534210+00:00", "kind": "readme", "missing": false, "url": "https://github.com/superxslam/SuperOdom"}, {"content_hash": "c96581e5ccfefea2e70929d76fea7938ee7b702b22059cdc830637ca69d90c46", "fetched_at": "2026-08-29T12:48:42.782018+00:00", "kind": "homepage", "missing": false, "url": "https://superodometry.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:45:44.342590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66e4613958dc348a59c3dbb903210be8207c05f45e9281ae38f20228e00c9663", "fetched_at": "2026-08-28T04:03:35.534210+00:00", "kind": "readme", "missing": false, "url": "https://github.com/superxslam/SuperOdom"}, {"content_hash": "c96581e5ccfefea2e70929d76fea7938ee7b702b22059cdc830637ca69d90c46", "fetched_at": "2026-08-29T12:48:42.782018+00:00", "kind": "homepage", "missing": false, "url": "https://superodometry.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:45:44.342590+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "66e4613958dc348a59c3dbb903210be8207c05f45e9281ae38f20228e00c9663", "fetched_at": "2026-08-28T04:03:35.534210+00:00", "kind": "readme", "missing": false, "url": "https://github.com/superxslam/SuperOdom"}, {"content_hash": "c96581e5ccfefea2e70929d76fea7938ee7b702b22059cdc830637ca69d90c46", "fetched_at": "2026-08-29T12:48:42.782018+00:00", "kind": "homepage", "missing": false, "url": "https://superodometry.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 36, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 510, "days_push": 41, "days_rel": 495, "gap_med": null, "n_releases_24m": 1}, "score": 52, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}