https://github.com/louislelay/lidar_detection
LiDAR detection package for ROS2
https://github.com/louislelay/lidar_detection
3d-lidar lidar pointcloud2 ros2 ros2-humble
Last synced: about 13 hours ago
JSON representation
LiDAR detection package for ROS2
- Host: GitHub
- URL: https://github.com/louislelay/lidar_detection
- Owner: louislelay
- License: mit
- Created: 2024-10-23T03:51:07.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-10-23T23:46:40.000Z (12 months ago)
- Last Synced: 2025-02-26T15:17:14.267Z (7 months ago)
- Topics: 3d-lidar, lidar, pointcloud2, ros2, ros2-humble
- Language: C++
- Homepage:
- Size: 800 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LiDAR Detection Package for ROS2
The **LiDAR Detection Package** provides nodes for each steps of processing point cloud data in ROS2. This package has been tested with ROS2 Humble, but it is expected to work with ROS2 Foxy as well.
## Dependencies
To use this package, you will need to install the following dependencies:
- **PCL Conversion**: A package for converting point clouds.
- **PCL ROS**: The ROS interface for the Point Cloud Library.
- **PCL**: The Point Cloud Library itself.Make sure to install these packages before running any nodes from the `lidar_detection` package.
## Nodes
You can run the following nodes using the command:
```bash
ros2 run lidar_detection
```### Node Descriptions
**Important**: This is not a cascade of nodes. As you go further down the list, each node performs all the actions of the previous ones, with an additional processing step implemented. This means each node builds upon the functionality of the prior node.
1. **preprocessor_node**
- **Functionality**: Subscribes to `input_pointcloud` (sensor_msgs/PointCloud2) and applies filtering to the point cloud. Publishes the filtered point cloud to `output_pointcloud` (sensor_msgs/PointCloud2).
- **Usage**: Useful for cleaning up point cloud data before further processing.
![]()
![]()
2. **ground_removal_node**
- **Functionality**: Subscribes to `input_pointcloud` (sensor_msgs/PointCloud2) and removes ground points from the point cloud. Publishes the filtered point cloud to `output_pointcloud` (sensor_msgs/PointCloud2).
- **Usage**: Ideal for focusing on objects above the ground in the point cloud data.
3. **cluster_extraction_node**
- **Functionality**: Subscribes to `input_pointcloud` (sensor_msgs/PointCloud2), removes ground points, and extracts clusters from the remaining data. Publishes the result to `output_pointcloud` (sensor_msgs/PointCloud2).
- **Usage**: Helpful for identifying distinct objects within the point cloud.4. **bounding_box_node**
- **Functionality**: Subscribes to `input_pointcloud` (sensor_msgs/PointCloud2), removes ground points, extracts clusters, and publishes bounding boxes around each cluster in `bounding_boxes` (visualization_msgs/MarkerArray).
- **Usage**: Provides visual markers for detected clusters, making it easier to visualize object detection in RViz.
## Installation
1. Clone the repository:
```bash
cd /src
git clone
```2. Build the package:
```bash
cd
colcon build
```3. Source your workspace:
```bash
source install/setup.bash
```