Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
3D LIDAR Localization using pointcloud map in ROS 2 (Not SLAM)
| Date | Stars |
|---|---|
| 2026-07-30 | 536 |
| 2026-08-09 | 542 |
| 2026-08-17 | 544 |
| 2026-08-18 | 545 |
| 2026-08-20 | 545 |
| 2026-08-21 | 547 |
| 2026-08-23 | 548 |
| 2026-08-25 | 548 |
| 2026-08-26 | 549 |
| 2026-08-27 | 548 |
| 2026-08-28 | 551 |
| 2026-09-03 | 552 |
| 2026-09-08 | 553 |
| 2026-09-13 | 552 |
| 2026-09-18 | 553 |
| 2026-09-19 | 552 |
| 2026-09-20 | 555 |
| 2026-09-21 | 556 |
| 2026-09-22 | 557 |
| 2026-09-24 | 561 |
| 2026-09-30 | 562 |
| 2026-10-01 | 563 |
| 2026-10-02 | 564 |
| 2026-10-04 | 564 |
| 2026-10-05 | 565 |
| 2026-10-06 | 566 |
| 2026-10-07 | 566 |
| 2026-10-08 | 566 |
| 2026-10-10 | 567 |
| 2026-10-11 | 567 |
| 2026-10-12 | 570 |
| 2026-10-15 | 569 |
| 2026-10-16 | 570 |
| 2026-10-17 | 574 |
| 2026-10-18 | 581 |
| 2026-10-19 | 582 |
| 2026-10-20 | 586 |
| 2026-10-23 | 587 |
| 2026-10-25 | 589 |
| 2026-10-27 | 588 |
| 2026-10-30 | 588 |
| 2026-11-01 | 590 |
| 2026-11-03 | 590 |
| 2026-11-04 | 590 |
Today
— stars today
This week
+2 stars this week
This month
+25 stars this month
Momentum
37.0
growth rate 0.34%/day
<div align="center">
<h1>lidar_localization_ros2</h1>
<p><strong>Map-based 3D LiDAR localization for ROS 2 and Nav2.</strong></p>
<p>
<a href="https://github.com/rsasaki0109/lidar_localization_ros2/actions/workflows/main.yml">
<img alt="build" src="https://github.com/rsasaki0109/lidar_localization_ros2/actions/workflows/main.yml/badge.svg">
</a>
<img alt="ROS 2 Jazzy" src="https://img.shields.io/badge/ROS%202-Jazzy-2563eb">
<img alt="ROS 2 Humble" src="https://img.shields.io/badge/ROS%202-Humble-compatible-1f5b99">
<img alt="License BSD 2 Clause" src="https://img.shields.io/badge/license-BSD--2--Clause-6b46c1">
</p>
<img src="./images/readme/localization_koide_outdoor_hard_02b.gif" alt="Handheld outdoor run tracked on a prior point-cloud map; the estimate follows the ground truth for the whole run" width="720">
<p><em>Handheld Livox MID-360, ~390 m outdoors on a prior map, including stretches where the scans do not match the map and a section outside it. Each scan is matched to the map with NDT; RKO-LIO odometry predicts the motion between scans and carries the pose where matching fails. The error is 0.26 m RMSE for the whole run, in an offline replay started from the ground-truth pose (<a href="https://zenodo.org/records/10122133">Koide Hard Point Cloud Localization Dataset</a> <code>outdoor_hard_02b</code>, CC BY 4.0). <a href="./docs/readme-media.md">How this was made</a> · <a href="./docs/koide_gif_gallery.md">more runs</a></em></p>
</div>
Give it a point cloud map (`.pcd` or `.ply`) and a LiDAR stream; it publishes the
robot pose in the map. It finds the starting pose by itself, uses odometry and IMU when
you have them, and works standalone or as the localization source for Nav2.
## Where to start
| You want to | Go to |
| --- | --- |
| Localize your robot on a map you already have | [Install](#install), then [Quick start](#quick-start) |
| Run it on a Unitree Go2 or another MID-360 robot | [Go2 / MID-360 in five minutes](docs/go2_mid360_quickstart.md) |
| Navigate with Nav2 | [Nav2](#nav2) |
| Try it without a robot | [Run the public dataset](#try-it-without-a-robot) |
| See how accurate it is | [Benchmark](#benchmark) |
| Fix a bringup that does not work | [Troubleshooting](docs/troubleshooting.md) |
## Install
ROS 2 Jazzy is the main target; Humble is supported.
```bash
mkdir -p ~/lidarloc_ws/src
cd ~/lidarloc_ws/src
git clone https://github.com/rsasaki0109/lidar_localization_ros2.git
cd lidar_localization_ros2
scripts/bootstrap_colcon_workspace.sh --build
source ~/lidarloc_ws/install/setup.bash
```
This builds [ndt_omp_ros2](https://github.com/rsasaki0109/ndt_omp_ros2) and this
package, about 30 minutes on an 8-core machine.
[small_gicp](https://github.com/koide3/small_gicp) is optional (`SMALL_GICP` and
`SMALL_VGICP` backends): on Jazzy, `sudo apt install ros-jazzy-small-gicp-vendor`
before building is enough. For Humble, a manual or no-sudo build, see
[local build](docs/local_build.md).
No ROS install? Build the [Docker image](docs/docker.md) and check it in one command:
```bash
docker build -f docker/Dockerfile -t lidar_localization_ros2 .
docker run --rm lidar_localization_ros2 /ws/src/lidar_localization_ros2/docker/smoke_status.sh
```
## Quick start
1. Start the LiDAR driver, and odometry if you have it.
2. Run quickstart with your map:
```bash
ros2 run lidar_localization_ros2 quickstart.py --map /absolute/path/to/map.pcd
```
3. Check that it is tracking:
```bash
ros2 run lidar_localization_ros2 check_lidar_localization_bringup.py --profile standalone
```
Quickstart finds the cloud and IMU topics, `/clock`, an `odom -> base` TF and the
LiDAR frame, and prints what it picked on its `Discovery:` line. Then it starts the
localizer and RViz. On the first run it searches the whole map for the robot; next time
it restores the pose saved for the same map. If the search finds no safe match, it asks
you for **2D Pose Estimate** in RViz (press **P**, click the robot, draExcerpt of 12,416 characters
Read on GitHubRyohei Sasaki · MAP IV · Japan
233
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:d46e8f650361812d, topic:ros2, desc:slam