Skip to content
This repository has been archived by the owner on Apr 24, 2023. It is now read-only.

Feat/pointcloud clustering #818

Merged
merged 23 commits into from
Jan 7, 2021
Merged

Conversation

yyajima21
Copy link
Contributor

@yyajima21 yyajima21 commented Dec 20, 2020

Description

This project contains a software package that segments lidar point cloud into clusters and creates a bounding box over each cluster in real time. This package adds a feature to localize objects surrounded by the robot such as barrels and people. Here is readme file for this project.

This PR does the following:

  • Ground plane segmentation
  • Point cloud clustering that categorizes lidar points into several clusters using two well known method (region growing and euclidean clustering methods)
  • Visualization tool that creates a bounding box over each clusters

Fixes #777 and #651

Testing steps (If relevant)

Test Case 1

  1. Download a bag file (e.g. JESSII_RUN_SUN_2_2019-06-10-15-30-13.bag) from the robojacket cloud
  2. Modify launch file and add your file path
  3. Run the following command to visualize the point cloud segmentation.
    roslaunch igvc_perception pointcloud_filter.launch
    roslaunch igvc_perception ptseg.launch

Expectation: You should see the following result in your rviz screen. Each cluster has its own bounding box.

image

Note: here is readme file for this project.

Self Checklist

  • I have formatted my code using make format
  • I have tested that the new behavior works

@yyajima21 yyajima21 self-assigned this Dec 20, 2020
@yyajima21 yyajima21 added the area ➤ computer vision Issues relating to non-NN computer vision label Dec 20, 2020
@yyajima21 yyajima21 force-pushed the feat/pointcloud_clustering branch from 92b308d to 4d6de1d Compare December 22, 2020 04:32
yyajima21 and others added 2 commits December 28, 2020 16:44
Added an additional build instruction.
Copy link
Contributor

@andrewyarovoi andrewyarovoi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, this code looks good. The main thing is that there are a lot of hard coded parameters. These should be added to the pointcloud_filter.yaml file and then should be passed in to the util functions. That way, they can be tuned without requiring rebuilding the project and they can all be in one place (with comments and units).

igvc_perception/src/pointcloud_segmentation/README.md Outdated Show resolved Hide resolved
igvc_perception/src/pointcloud_segmentation/utils.h Outdated Show resolved Hide resolved
igvc_perception/src/pointcloud_segmentation/utils.h Outdated Show resolved Hide resolved
igvc_perception/src/pointcloud_segmentation/utils.h Outdated Show resolved Hide resolved
@yyajima21
Copy link
Contributor Author

@andrewyarovoi I removed hard coded values based on your feedback.

Copy link
Contributor

@andrewyarovoi andrewyarovoi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for addressing my comments. Everything looks good now. Great job!

@andrewyarovoi andrewyarovoi merged commit d2cb1d4 into master Jan 7, 2021
@andrewyarovoi andrewyarovoi deleted the feat/pointcloud_clustering branch January 7, 2021 22:47
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area ➤ computer vision Issues relating to non-NN computer vision
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add an additional output topic for pointcloud_filter that removes the ground points.
2 participants