[Documentation] [TitleIndex] [WordIndex

Only released in EOL distros:  

lse_climber_robots: pole_structure_mapper

Package Summary

This package contains two nodes for pole extraction and mapping for aiding 3D climbing robots in navigation and localization.


The goal of the software presented in this stack is to be able to use a ground robot equipped with a depth sensor to generate a 3D map of a structure composed of poles as it is climbed by a climbing robot. This sections contains an overview of the two algorithms implemented in this package, pole section extractor and 3D structure mapper.

Pole Extractor

This algorithm is in charge of extracting pole sections from the environment inside a region of interest centered at the gripper of the climbing robot. Extraction is achieved using cylindrical segmentation.


3D Structure Mapper

This algorithm uses the pole sections published by pole extractor to construct a map of the structure being climbed.


For more details on how the algorithms work check the publications section down below.



pole_extractor_node is a region of interest cylindrical segmentation algorithm.

Subscribed Topics

chewed_cloud (sensor_msgs/PointCloud2) extract_poles (std_msgs/Bool)

Published Topics

pole_cloud (sensor_msgs/PointCloud2) roi_cloud (sensor_msgs/PointCloud2) pole_extractor_markers (visualization_msgs/Marker) pole (pole_structure_mapper/PoleSectionStamped)


~gripper_tag_frame_id (string, default: ar_marker) ~filter_box_width (double, default: 2.0) ~filter_box_height (double, default: 2.0) ~min_diameter (double, default: 0.2) ~max_diameter (double, default: 0.35) ~normal_distance (double, default: 0.1) ~max_iterations (int, default: 10000) ~distance_threshold (double, default: 0.05)


structure_mapper_node is a 3D structure mapper for climbing robots.

Subscribed Topics

pole (pole_structure_mapper/PoleSectionStamped)

Published Topics

pole_structure (pole_structure_mapper/PoleStructure) pole_structure_visualizer (visualization_msgs/Marker)


~global_frame_id (string, default: map) ~diameter_threshold (double, default: 0.03) ~axis_threshold (double, default: 10.0) ~distance_threshold (double, default: 0.10) ~length_threshold (double, default: 0.6) ~temporary_section_timeout (double, default: 30.0) ~num_of_temporary_sections (int, default: 10)


The following video shows the pole extractor and 3D stricture mapper working in rviz.


Coming soon...

Coming soon...

2019-07-13 12:58