Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
jazzy

Package Summary

Tags No category tags.
Version 3.0.4
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version main
Last Updated 2025-04-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of different algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Jazzy on [Ubuntu] 24.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Binaries

On Ubuntu 24.04 you can install the latest version of this package using the following command

sudo apt-get update
sudo apt-get install ros-jazzy-laser-segmentation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b jazzy
cd ../
rosdep install -i --from-path src --rosdistro jazzy -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with:

ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.3 (06-02-2025)

  • First jazzy release.

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
kilted

Package Summary

Tags No category tags.
Version 3.0.4
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version main
Last Updated 2025-04-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of different algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Jazzy on [Ubuntu] 24.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Binaries

On Ubuntu 24.04 you can install the latest version of this package using the following command

sudo apt-get update
sudo apt-get install ros-jazzy-laser-segmentation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b jazzy
cd ../
rosdep install -i --from-path src --rosdistro jazzy -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with:

ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.3 (06-02-2025)

  • First jazzy release.

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
rolling

Package Summary

Tags No category tags.
Version 3.0.4
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version main
Last Updated 2025-04-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of different algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Jazzy on [Ubuntu] 24.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Binaries

On Ubuntu 24.04 you can install the latest version of this package using the following command

sudo apt-get update
sudo apt-get install ros-jazzy-laser-segmentation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b jazzy
cd ../
rosdep install -i --from-path src --rosdistro jazzy -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with:

ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.3 (06-02-2025)

  • First jazzy release.

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

laser_segmentation package from laser_segmentation repo

laser_segmentation

ROS Distro
humble

Package Summary

Tags No category tags.
Version 3.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/laser_segmentation.git
VCS Type git
VCS Version humble
Last Updated 2024-11-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Implementation of algorithms for segmentation of laserscans.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela
  • Manuel Fernandez-Carmona

Authors

  • Alberto Tudela

laser_segmentation

ROS2 License Build codecov

Overview

Implementation of differents algorithms for segmentation of laserscans, splitting them into subsets of beams, with a ROS2 interface. The currently implemented algorithm are:

  • Jump distance clustering: widely used method for 2D laser range data in mobile robotics. It’s a simple and fast method to segment the scans: if the Euclidean distance between two adjacent beams exceeds a given threshold distance, a new segment is generated.
  • Jump distance clustering and merge: Similar algorithm as above but checks if pre-predecessor segments are close to each other. This deals with over-segmented data with many small cluster in outdoor environment. It uses the same threshold condition twice.

In the two implementation mentioned above the jump distance threshold is fixed. However, a dynamic jump distance threshold can be calculated using methods of Lee (Lee, 2001), Dietmayer (Dietmayer, et al., 2001) and Santos (Santos, et al., 2003). See the parameters list below to change between them.

Includes a dynamic reconfigure server parameter to change online the configuration of the algorithms and the filtering.

Laser scan Segments
LaserScan Segments

Keywords: ROS2, laser, segmentation, clustering

Author: Alberto Tudela

The laser_segmentation package has been tested under [ROS2] Humble on [Ubuntu] 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

Building

To build from source, clone the latest version from the main repository into your colcon workspace and compile the package using

cd colcon_workspace/src
git clone https://github.com/ajtudela/laser_segmentation.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install

Usage

With some scan source running, run the laser_segmentation node with: ros2 launch laser_segmentation segmentation.launch.py

Nodes

laser_segmentation

Segmentation of the laserscans.

Subscribed Topics

  • scan ([sensor_msgs/LaserScan])

    Laser scan topic where segmentation will be performed.

Published Topics

  • segments ([slg_msgs/SegmentArray])

    Splitted segments resulting of the segmentation.

  • segments/visualization ([visualization_msgs/MarkerArray])

    It comprises three namespaces:

    • “segments”: 3d markers of the segments for showing the segments in [Rviz2].

    • “segments_names”: 3d markers with the id of the segments.

    • “centroids”: 3d markers of the segment centroids in [Rviz2].

Parameters

  • scan_topic (string, default: “scan”)

    Topic of the laserscan.

  • segment_topic (string, default: “segments”)

    Topic of the segmented laser scan.

  • segmentation_type (string, default: “jump_distance”)

    Choose between several segmentation algorithms. Jump distance clustering (jump_distance) and jump distance and merge (jump_distance_merge).

Parameters for filtering

  • min_points_segment (int, default: 3)

    Minimium number of points per segment.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package laser_segmentation

3.0.2 (31-07-2024)

  • Update to use modern CMake idioms.

3.0.1 (12-06-2024)

  • Remove nav2_util dependency.

3.0.0 (08-03-2024)

  • Improve formatting.
  • Improve documentation of source.
  • Converted to Lifecycle node.
  • Converted to component.
  • Rename header and source files.
  • Move parameters to new class: parameterHandler.
  • Rename show_visualization to create_segment_viz_points.
  • Fix jump distance merge.
  • Add unit testing.

2.1.2 (23-06-2023)

  • Rename visualization topic.

2.1.1 (29-11-2022)

  • Add hierarchy between segmentationJumpDistance and segmentationJumpDistanceMerge to avoid code redundancy.
  • Rise up centroids visualization.

2.1.0 (28-11-2022)

  • Added include to find slg_msgs library.
  • Added launch with some non-default param values.
  • Minor changes to configuration info display.
  • Added params folder with two yaml config files.
  • Launch file now relies on config files, it is its only argument.
  • Minor changes to range values in laser_segmentation paramas to accept smaller granularity.
  • Added rviz CUBE marker with segment centroids.
  • Reunited all markers into a single topic, using three namespaces.
  • Added license.

2.0.0 (15-10-2022)

  • First ROS2 (Humble) version.
  • Contributors: Manuel Fernandez-Carmona

1.2.1 (20-10-2022)

  • Rename segment_topic to segments_topic.

1.2.0 (03-05-2022)

  • Added noise reduction parameter.
  • Push a delete marker before the others. I hope this fix the RViz problem.

1.1.3 (13-01-2022)

  • Refactoring jump distance and jump distance merge.
  • Added jump between points with NaN values.
  • Fix merge of first and last segments.

1.1.2 (12-01-2022)

  • Update simple_laser_geometry to 3.2.0.
  • Checking of NaN points.
  • Change lifetime of markers.

1.1.1 (23-12-2021)

  • Check publisher before doing any calculations.

1.1.0 (15-12-2021)

  • Change segment marker to markerArray.
  • Publish id of the segment as markerArray.
  • Change the color palette.
  • Fix jump distance merge.

1.0.1 (15-12-2021)

  • Update simple_laser_geometry to 3.0.0.

1.0.0 (14-12-2021)

  • Changes to new simple laser geometry library.
  • Add max width filter.
  • Remove readDataPoints.
  • Added option to select threshold method.
  • Update dynamic jump distance methods.
  • Improve jump distance merge.

0.0.0 (-)

  • Initial release.
  • Create README.md.

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged laser_segmentation at Robotics Stack Exchange