• Stars
    star
    244
  • Rank 165,885 (Top 4 %)
  • Language
    C++
  • License
    BSD 2-Clause "Sim...
  • Created over 4 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

3D LIDAR Localization using NDT/GICP and pointcloud map in ROS 2 (Not SLAM)

pcl_localization_ros2

CI
A ROS2 package of 3D LIDAR-based Localization using PCL.

Green: path, Red: map
(the 5x5 grids in size of 50m Γ— 50m)

IO

  • input
    /cloud (sensor_msgs/PointCloud2)
    /map (sensor_msgs/PointCloud2)
    /initialpose (geometry_msgs/PoseStamed)(when set_initial_pose is false)
    /odom (nav_msgs/Odometry)(optional)
    /imu (sensor_msgs/Imu)(optional)

  • output
    /pcl_pose (geometry_msgs/PoseStamped)
    /path (nav_msgs/Path)
    /initial_map (sensor_msgs/PointCloud2)(when use_pcd_map is true)

params

Name Type Default value Description
registration_method string "NDT" "NDT" or "GICP"
ndt_resolution double 2.0 resolution size of voxels[m]
ndt_step_size double 0.1 step_size maximum step length[m]
transform_epsilon double 0.01 transform epsilon to stop iteration in registration
voxel_leaf_size double 0.2 down sample size of input cloud[m]
scan_max_range double 100.0 max range of input cloud[m]
scan_min_range double 1.0 min range of input cloud[m]
scan_periad double 0.1 scan period of input cloud[sec]
use_pcd_map bool false whether pcd_map is used or not
map_path string "/map/map.pcd" pcd_map file path
set_initial_pose bool false whether or not to set the default value in the param file
initial_pose_x double 0.0 x-coordinate of the initial pose value[m]
initial_pose_y double 0.0 y-coordinate of the initial pose value[m]
initial_pose_z double 0.0 z-coordinate of the initial pose value[m]
initial_pose_qx double 0.0 Quaternion x of the initial pose value
initial_pose_qy double 0.0 Quaternion y of the initial pose value
initial_pose_qz double 0.0 Quaternion z of the initial pose value
initial_pose_qw double 1.0 Quaternion w of the initial pose value
use_odom bool false whether odom is used or not for initial attitude in point cloud registration
use_imu bool false whether 9-axis imu is used or not for point cloud distortion correction
enable_debug bool false whether debug is done or not

demo

demo data(ROS1) by Tier IV
https://data.tier4.jp/rosbag_details/?id=212
The Velodyne VLP-16 was used in this data.

Before running, put bin_tc-2017-10-15-ndmap.pcd into your map directory and
edit the map_path parameter of localization.yaml in the param directory accordingly.

rviz2 -d src/pcl_localization_ros2/rviz/localization.rviz
ros2 launch pcl_localization_ros2 pcl_localization.launch.py
ros2 bag play -s rosbag_v2 tc_2017-10-15-15-34-02_free_download.bag

Green: path, Red: map
(the 5x5 grids in size of 50m Γ— 50m)

More Repositories

1

lidarslam_ros2

ROS 2 package of 3D lidar slam using ndt/gicp registration and pose-optimization
C++
506
star
2

li_slam_ros2

ROS 2 package of tightly-coupled lidar inertial ndt/gicp slam
C++
292
star
3

kalman_filter_localization

kalmal filter localization
C++
219
star
4

lidar_localizer

lidar localizer in Autoware AI
C++
172
star
5

rust_robotics

Rust implementation of PythonRobotics such as EKF, DWA, Pure Pursuit, LQR.
Rust
133
star
6

PoseOptimizationSLAM3D

Python sample code of 3D pose optimization SLAM
Python
72
star
7

NormalDistributionTransform2D

Python sample code of 2D NDT Scan Matching
Python
28
star
8

littleslam_ros2

A ROS2 Wrapper for LittleSLAM, which is a 2D-LiDAR SLAM for educational use
C++
27
star
9

ensemble_kalman_filter

Python sample code of robot localization with ensemble kalman filter and landmarks
Python
25
star
10

laser_deskew

ros1 package for 2d laser deskew using tf.
C++
20
star
11

imu_estimator

attitude estimator with gyro bias correction
C++
16
star
12

lidar_undistortion

A header-only program of 3d rotary lidar undistortion using 9-axis imu
C++
16
star
13

gaussian_particle_filter

Python sample of Gaussian Particle Filter localization
Python
13
star
14

transfrom_velocity

C++ program for performing 3D and 2D velocity transformations using Lie algebra.
C++
9
star
15

particle_filtering_model_predictive_control

Particle filtering model predictive control simulation.
Python
6
star
16

pygnss

pygnss is a gnss analysis library
Python
5
star
17

quaternion-based_kalman_filter

Python
4
star
18

q-method

estimator to minimize Wahba's loss function for satellite attitude
Python
3
star