/hdl_localization

Real-time 3D localization using a (velodyne) 3D LIDAR

Primary LanguageC++

hdl_localization

hdl_localization is a ROS package for real-time 3D localization using a 3D LIDAR, such as velodyne HDL32e and VLP16. This package performs Unscented Kalman Filter-based pose estimation. It first estimates the sensor pose from IMU data implemented on the LIDAR, and then performs multi-threaded NDT scan matching between a globalmap point cloud and input point clouds to correct the estimated pose. IMU-based pose prediction is optional. If you disable it, the system predicts the sensor pose with the constant velocity model without IMU information.

Video:
hdl_localization

Requirements

hdl_localization requires the following libraries:

  • OpenMP
  • PCL 1.7

The following ros packages are required:

Parameters

All parameters are listed in launch/hdl_localization.launch as ros params.
You can specify the initial sensor pose using "2D Pose Estimate" on rviz, or using ros params (see example launch file).

Example

Example bag files (recorded in an outdoor environment): RE

rosparam set use_sim_time true
roslaunch hdl_localization hdl_localization.launch
roscd hdl_localizatrion/rviz
rviz -d hdl_localizatrion.rviz
rosbag play --clock hdl_400.bag

If it doesn't work well, change ndt_neighbor_search_method in hdl_localization.launch to "DIRECT1". It makes the scan matching significantly fast, but a little bit unstable.

Related packages

Papers

Kenji Koide, Jun Miura, and Emanuele Menegatti, A Portable 3D LIDAR-based System for Long-term and Wide-area People Behavior Measurement, IEEE Transactions on Human-Machine Systems (under review) [PDF].

Contact

Kenji Koide, Active Intelligent Systems Laboratory, Toyohashi University of Technology [URL]
koide@aisl.cs.tut.ac.jp