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-24 | 536 |
| 2026-07-25 | 536 |
| 2026-07-28 | 536 |
| 2026-07-30 | 536 |
| 2026-08-06 | 536 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
35.0
growth rate 0.00%/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/path.png" alt="LiDAR localization path over pointcloud map" width="720">
<p><a href="./docs/koide_gif_gallery.md">Explore the complete Koide indoor/outdoor GIF gallery →</a></p>
</div>
## Features
- NDT/GICP localization against `.pcd` and `.ply` maps
- standalone, Nav2, and Livox MID-360 launch configurations
- odometry/IMU prediction, scan deskew, diagnostics, and guarded recovery
- rosbag demo and regression tools
ROS 2 Jazzy with NDT_OMP is the recommended starting point. Continuous-time deskew is
enabled by default and safely leaves scans unchanged until point timing and motion data
are ready. Guarded global initialization is enabled automatically when quickstart is
given a matching occupancy map. See [v1 status](docs/v1_status.md) for validated scope
and limitations.
## Install
```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
```
For manual builds and no-sudo setup, see [local build](docs/local_build.md).
## Quick Start
Start localization and RViz with one command:
```bash
ros2 run lidar_localization_ros2 quickstart.py \
--profile standalone \
--map /absolute/path/to/map.pcd
```
Quickstart detects unambiguous sensor topics, generates a reusable configuration,
restores only a pose saved against the same map, and verifies tracking. Add the matching
occupancy map to use the default guarded global initialization with 3D NDT scoring:
```bash
ros2 run lidar_localization_ros2 quickstart.py \
--profile mid360 \
--map /absolute/path/to/map.pcd \
--occupancy-map /absolute/path/to/map.yaml
```
If no safe candidate is available, it asks for **2D Pose Estimate** in RViz; it never
guesses the origin. See [quickstart and automatic initialization](docs/quickstart.md).
Use `--no-auto-initialize` to disable saved-pose restoration and global initialization,
or launch with `use_continuous_time_deskew:=false` to disable deskew.
Common launches:
```bash
# Standalone localization
ros2 launch lidar_localization_ros2 nav2_lidar_localization.launch.py
# Nav2
ros2 launch lidar_localization_ros2 nav2_navigation.launch.py \
map_yaml:=/absolute/path/to/map.yaml
# Livox MID-360
ros2 launch lidar_localization_ros2 mid360_legged_localization.launch.py \
map_path:=/absolute/path/to/map.pcd \
cloud_topic:=/livox/points imu_topic:=/livox/imu
```
Check topics, TF, pose output, and diagnostics with:
```bash
ros2 run lidar_localization_ros2 check_lidar_localization_bringup.py \
--profile standalone
```
## Runtime Contract
The default frames are `map`, `odom`, and `base_link`.
- `/initialpose` is expressed in `map`.
- Standalone mode publishes `map -> base_link`.
- Nav2 mode publishes `map -> odom` and requires an external `odom -> base_link`.
- `use_odom: true` consumes `/odom`; it does not publish odometry TF.
- Static LiDAR and IMU transforms must have only one publisher.
Main inputs are `/cloud`, `/initialpose`, `/odom`, and `/imu`. Main outputs are
`/pcl_pose`, `/path`, `/alignment_status`, and `/reinitialization_requested`. All
topic names are configurable. See [frame contract](docs/frame_contract.md) and
[troubleshooting](docs/troubleshooting.md) for details.
Nav2 additionally Excerpt of 5,171 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