{"adoption": {"forks": 584, "observed_at": "2026-08-28T04:07:01.296366+00:00", "stars": 2569}, "canonical_url": "https://ross.abutalabs.com/products/slam_in_autonomous_driving", "card": {"archived": false, "artifact_type": "learning-resource", "description": "《自动驾驶中的SLAM技术》对应开源代码", "domain": ["autonomous-vehicles", "robotics", "tutorials"], "enriched": true, "function": ["simulation", "math", "computer-vision", "developer-tools"], "health_score": 51, "homepage": null, "language": "C++", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["gaoxiang12/slam_in_autonomous_driving"], "name": "gaoxiang12/slam_in_autonomous_driving", "platform": ["cpp", "cross-platform"], "pushed_at": "2025-11-13T06:14:24+00:00", "repo": "gaoxiang12/slam_in_autonomous_driving", "stars": 2569, "tags": ["slam", "lidar", "lidar-inertial-odometry", "kalman-filter", "point-cloud", "ndt", "icp", "gnss", "imu", "autonomous-driving", "book-companion-code", "algorithms", "linux"], "topics": [], "urls": [], "use_cases": ["learn lidar slam from scratch", "implement error-state kalman filter for imu gnss fusion", "build 2d and 3d lidar mapping algorithms", "understand lidar inertial odometry tightly coupled", "study ndt and icp point cloud registration", "offline mapping and loop closure detection example", "ekf fusion localization with lidar maps"], "what_it_is": "Companion source code for the book 'SLAM in Autonomous Driving', implementing LiDAR SLAM, LiDAR-inertial odometry, and integrated navigation algorithms in C++. It covers ESKF, pre-integration, 2D/3D LiDAR mapping, NDT, ICP, and fusion localization with educational implementations.", "when_to_avoid": ["you need a production-ready, well-supported SLAM library with a maintained license", "you want a plug-and-play solution rather than educational code tied to a book", "you require a permissively licensed dependency - the repository has no license"], "when_to_choose": ["you are studying SLAM for autonomous driving and want book-aligned, pedagogical implementations", "you want to implement classic algorithms like ESKF, pre-integration, NDT, and ICP yourself", "you need reference C++ code for LiDAR-inertial odometry and mapping pipelines"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/slam_in_autonomous_driving", "repo": "gaoxiang12/slam_in_autonomous_driving", "role": "main", "score": 54}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.296366+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:23:20.499985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92eb1361049be07ae81659658d459befa3f1e655ad9580a37c72c9566084c2f", "fetched_at": "2026-08-28T04:07:01.296366+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slam_in_autonomous_driving"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.296366+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:23:20.499985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92eb1361049be07ae81659658d459befa3f1e655ad9580a37c72c9566084c2f", "fetched_at": "2026-08-28T04:07:01.296366+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slam_in_autonomous_driving"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:23:20.499985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92eb1361049be07ae81659658d459befa3f1e655ad9580a37c72c9566084c2f", "fetched_at": "2026-08-28T04:07:01.296366+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slam_in_autonomous_driving"}], "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:07:01.296366+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.296366+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.296366+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:23:20.499985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92eb1361049be07ae81659658d459befa3f1e655ad9580a37c72c9566084c2f", "fetched_at": "2026-08-28T04:07:01.296366+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slam_in_autonomous_driving"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.296366+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.296366+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:23:20.499985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92eb1361049be07ae81659658d459befa3f1e655ad9580a37c72c9566084c2f", "fetched_at": "2026-08-28T04:07:01.296366+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slam_in_autonomous_driving"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.296366+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.296366+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.296366+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:23:20.499985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92eb1361049be07ae81659658d459befa3f1e655ad9580a37c72c9566084c2f", "fetched_at": "2026-08-28T04:07:01.296366+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slam_in_autonomous_driving"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.296366+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.296366+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:23:20.499985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92eb1361049be07ae81659658d459befa3f1e655ad9580a37c72c9566084c2f", "fetched_at": "2026-08-28T04:07:01.296366+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slam_in_autonomous_driving"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:23:20.499985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92eb1361049be07ae81659658d459befa3f1e655ad9580a37c72c9566084c2f", "fetched_at": "2026-08-28T04:07:01.296366+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slam_in_autonomous_driving"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:23:20.499985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92eb1361049be07ae81659658d459befa3f1e655ad9580a37c72c9566084c2f", "fetched_at": "2026-08-28T04:07:01.296366+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slam_in_autonomous_driving"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:23:20.499985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d92eb1361049be07ae81659658d459befa3f1e655ad9580a37c72c9566084c2f", "fetched_at": "2026-08-28T04:07:01.296366+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slam_in_autonomous_driving"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 52, "longevity": 92, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1300, "days_push": 293, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 54, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}