isaac_ros_map_localization
isaac_ros_map_localization copied to clipboard
Hardware-accelerated global localization
Isaac ROS Map Localization
Hardware-accelerated Map localization.
Overview
The Isaac ROS Map Localization module contains ROS 2 packages for lidar processing to estimate poses relative to a map. The Occupancy Grid Localizer processes a planar range scan to estimate pose in an occupancy grid map; this occurs in less than 1 second for most maps. This initial pose can be used to bootstrap navigation for mobile robots and has been integrated and tested with Nav2. This can remove the need for upwards of 30 seconds to manually estimate the position and direction of a robot with RViz, for example.
The Occupancy Grid Localizer is designed to work with planar and 3D LIDARs. It uses Flatscan for input to the GPU-accelerated computation estimating pose. Flatscan allows for representation of 3D LIDARs, which have variable angular increments between multiple beams.
LaserScan to Flatscan provides conversion from LaserScan, which by definition has equal angle increment between beams, to Flatscan.
PointCloud to FlatScan provides conversion from pointcloud output from 3D LIDARs to Flatscan.
[!Note] Localization can be performed multiple times during navigation.
[!Note] The input FlatScan Message header/frame_id is used to get the transform of the lidar with respect to the robot base_link frame.
[!Note] The output
localization_resultis the transform ofbase_linkwith respect to the frame specified in theloc_result_frame(map) ROS parameter.
[!Note] Localization can be triggered in one of two ways:
- Buffer FlatScan messages received on a topic and trigger the localization using an
std_srvs/Emptyservice call.- Trigger localization every time a FlatScan message is sent to a topic.
Refer to the Isaac ROS Occupancy Grid Localizer/Usage section for more details.
Isaac ROS NITROS Acceleration
This package is powered by NVIDIA Isaac Transport for ROS (NITROS), which leverages type adaptation and negotiation to optimize message formats and dramatically accelerate communication between participating nodes.
Performance
| Sample Graph |
Input Size |
AGX Orin |
Orin NX |
Orin Nano 8GB |
x86_64 w/ RTX 4060 Ti |
|---|---|---|---|---|---|
| Occupancy Grid Localizer Node |
~50 sq. m |
15.9 fps 64 ms |
7.34 fps 140 ms |
5.17 fps 200 ms |
50.1 fps 20 ms |
Documentation
Please visit the Isaac ROS Documentation to learn how to use this repository.
Packages
Latest
Update 2023-10-18: Updated for Isaac ROS 2.0.0.

