PCL based ROS package to Detect/Cluster --> Track --> Classify static and dynamic objects in real-time from LIDAR scans implemented in C++.
- K-D tree based point cloud processing for object feature detection from point clouds
- Unsupervised k-means clustering based on detected features and refinement using RANSAC
- Stable tracking (object ID & data association) with an ensemble of Kalman Filters
- Robust compared to k-means clustering with mean-flow tracking
Follow the steps below to use this (multi_object_tracking_lidar
) package:
- Create a catkin workspace (if you do not have one setup already).
- Navigate to the
src
folder in your catkin workspace:cd ~/catkin_ws/src
- Clone this repository:
git clone https://github.com/praveen-palanisamy/multiple-object-tracking-lidar.git
- Compile and build the package:
cd ~/catkin_ws && catkin_make
- Add the catkin workspace to your ROS environment:
source ~/catkin_ws/devel/setup.bash
- Run the
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:
- A real LiDAR or
- A simulated LiDAR or
- A point cloud dataset or
- Any other data source that produces point clouds