- A high-performance, component-based object detection package for ROS 2 Jazzy.
- Utilizes the Point Cloud Library (PCL) for rule-based detection.
- Architecture: ROS 2 Lifecycle Nodes with Zero-Copy Intra-Process Communication.
- Modes: Floor, Table, Shelf, Placeable Positions, and 2D-LiDAR Line Detection.
Here, we describe the setup process for this repository.
Below are the system requirements for normal operation.
| System | Version |
|---|---|
| Ubuntu | 24.04 (Noble Numbat) |
| ROS | Jazzy Jalisco |
Note
If you need to install Ubuntu or ROS, please check our SOBITS Manual.
-
Move to the
srcfolder of your ROS workspace.$ cd ~/colcon_ws/src/
-
Clone this repository.
$ git clone -b jazzy-devel https://github.com/TeamSOBITS/pcl_object_detection.git
-
Install the dependent packages.
$ bash install.sh
-
Compile the package.
$ cd ~/colcon_ws $ colcon build --symlink-install
The system runs as a single ComposableNodeContainer to enable zero-copy memory sharing.
Launch the container:
ros2 launch pcl_object_detection pcl_object_detection.launch.pyThis package uses ROS 2 Lifecycle Nodes. By default, all detection workers are Unconfigured. You must manage their state to begin processing.
- Configure (Allocates memory and loads parameters):
ros2 lifecycle set /pcl_object_detection/table_detection configure - Activate (Starts data subscription and processing):
ros2 lifecycle set /pcl_object_detection/table_detection activate - Deactivate (Stops processing immediately, 0% CPU overhead):
ros2 lifecycle set /pcl_object_detection/table_detection deactivate
| Mode | Node Name | Function |
|---|---|---|
| 1 | table_detection |
Detect objects on horizontal surface |
| 2 | floor_detection |
Detect objects on floor (includes leg filtering) |
| 3 | shelf_detection |
Detect objects in storage bins |
| 4 | placeable_detection |
Find empty space for object placement |
| 5 | line_detection |
Detect lines from 2D LiDAR |
※ All parameters are defined in the config directory and can be tuned independently per node.