C++ implementation to Detect, track and classify multiple objects using LIDAR scans or point cloud
PCL based ROS package to Detect/Cluster --> Track --> Classify static and dynamic objects in real-time from LIDAR scans implemented in C++.
Follow the steps below to use this (multi_object_tracking_lidar
) package:
src
folder in your catkin workspace: cd ~/catkin_ws/src
git clone https://github.com/praveen-palanisamy/multiple-object-tracking-lidar.git
cd ~/catkin_ws && catkin_make
source ~/catkin_ws/devel/setup.bash
kf_tracker
ROS node in this package: rosrun multi_object_tracking_lidar kf_tracker
If all went well, the ROS node should be up and running! As long as you have the point clouds published on to the filtered_cloud
rostopic, you should see outputs from this node published onto the obj_id
, cluster_0
, cluster_1
, …, cluster_5
topics along with the markers on viz
topic which you can visualize using RViz.
The input point-clouds can be from:
Note: This package expects valid point cloud data as input. The point clouds you publish to the "filtered_cloud
" is not expected to contain NaNs. The point cloud filtering is somewhat task and application dependent and therefore it is not done by this module.
PCL library provides pcl::removeNaNFromPointCloud (...)
method to filter out NaN points. You can refer to this example code snippet to easily filter out NaN points in your point cloud.
If you use the code or snippets from this repository in your work, please cite:
@software{praveen_palanisamy_2019_3559187,
author = {Praveen Palanisamy},
title = {{praveen-palanisamy/multiple-object-tracking-lidar:
Multiple-Object-Tracking-from-Point-Clouds_v1.0.2}},
month = dec,
year = 2019,
publisher = {Zenodo},
version = {1.0.2},
doi = {10.5281/zenodo.3559187},
url = {https://doi.org/10.5281/zenodo.3559186}
}