|
|
||
|---|---|---|
| include/kf_tracker | ||
| src | ||
| .gitignore | ||
| CHANGELOG.rst | ||
| CMakeLists.txt | ||
| README.md | ||
| package.xml | ||
README.md
Multiple objects detection, tracking and classification from LIDAR scans/point-clouds
PCL based ROS package to Detect/Cluster --> Track --> Classify static and dynamic objects in real-time from LIDAR scans implemented in C++.
Features:
- 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
Usage:
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
srcfolder 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_trackerROS 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.
Supported point-cloud streams/sources:
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
