Skip to content

sacrover/traversability-nav2

Repository files navigation

Nav2 Traversability Plugin

Overview

The Nav2 Traversability Plugin generates traversability costmaps for outdoor terrains. The plugin utilizes LiDAR data to create heightmaps, gradient maps. The traverssability layer is generated by thresholding the gradient map and is intergrated as a custom Nav2 costmap layer.

Configuration

The traversability_params.yaml file contains configuration parameters for various modules:

Section Parameter Description
traversability/* norm_max Maximum value for normalization.
norm_min Minimum value for normalization.
min_height Minimum height value for the heightmap.
max_height Maximum height value for the heightmap.
out_frame Output frame of reference (set to odom).
traversability/fused_traversability_map max_gradient Maximum gradient value for the gradeint map.
min_gradient Minimum gradient value for the gradeint map.
traversability_max_gradient Maximum allowed gradient above which terrain is NOT traversable.
traversability_min_gradient Minimum gradient below which terrain is traversable.
process_noise Process noise for filtering.
measurement_noise Measurement noise for filtering.
clear_map_after Time (seconds) after which to clear the map.
save_map Boolean to save the map.
publish_fused_heightmap Boolean to publish the fused heightmap.
save_map_interval Interval (seconds) to save the map.
publish_map_interval Interval (seconds) to publish the map.
subscription_topic Topic for subscribing to the heightmap.
global_heightmap_topic Topic for the global heightmap.
fused_heightmap_topic Topic for the fused heightmap.
traversability_topic Topic for the traversability map.
traversability/pointcloud_to_heightmap subscription_topic Topic for subscribing to the point cloud.
heightmap_topic Topic for the heightmap output.
gradientmap_topic Topic for the gradient map output.
traversability_topic Topic for the traversability map output.
resolution Resolution of the heightmap (meters per cell).
max_range Maximum range to consider in the heightmap (meters).
robot_footprint Radius of the robot footprint (meters).
gradient_threshold Threshold for gradient calculations.
sensor_frame Frame of reference for the sensor.
robot_frame Frame of reference for the robot.
timeout_duration Timeout duration for transform buffer (seconds).

Custom Messages

  • GridMap16.msg: This message type stores the heightmap data as int16 values for better resolution.
  • QuadSurface.msg: The QuadSurface message holds an array of Quad messages and origin information. The Quad message type represents a quadrilateral in 3D space with four vertices. Each vertex is a point in 3D space, ordered as bottom-left, bottom-right, top-right, and top-left.

Visualising Terrain Surface

  • The custom RViz plugin (z_surface_rviz_plugin) can be used to visualize terrain surface. A helper node is provided in /traversability/traversability/terrain_surface.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published