3D LiDAR Object Detection & Tracking using Euclidean Clustering & Hungarian algorithm
- Segmentation of ground plane and obstacle point clouds
- Customizable Region of Interest (ROI) for obstacle detection
- Customizable region for removing ego vehicle points from the point cloud
- Tracking of obstacles between frames using IOU gauge and Hungarian algorithm
- In order to help you tune the parameters to suit your own applications better, all the key parameters of the algorithm are controllable in live action using the ros param dynamic reconfigure feature
TODOs
- LiDAR pointcloud motion undistortion
- Drive Space/Kurb Segmentation
- Refine PCA Bounding Boxes by L-Shape fitting
- Add trackers such as UKF
Known Issues
- PCA Bounding Boxes might not be accurate in certain situations
- autoware-msgs
- jsk-recognition-msgs
# clone the repo
cd catkin_ws/src
git clone https://github.com/SS47816/lidar_obstacle_detector.git
# install dependencies & build
cd ..
rosdep install --from-paths src --ignore-src -r -y
catkin_make # or catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
source devel/setup.bash
Step 1: Download the mai_city
dataset from their Official Website
Step 2: Launch the nodes using the mai_city.launch
launch file
# this will launch the obstacle_detector node, rviz, and rqt_reconfigure GUI together
roslaunch lidar_obstacle_detector mai_city.launch
Step 3: Run any of the bags from the dataset
# go to the folder where the dataset is located
cd mai_city/bags
# play the rosbag
rosbag play 00.bag
2. Use this pkg with LGSVL Simulator (with the help of the lgsvl_utils
pkg)
Step 1: Launch the LGSVL simulator and lgsvl_utils
nodes
Please refer this step to the
README
Usage Section of thelgsvl_utils
pkg
Step 2: Launch the nodes using the launch/lgsvl.launch
launch file
# launch node
roslaunch lidar_obstacle_detector lgsvl.launch
You are welcome contributing to the package by opening a pull-request
We are following: Google C++ Style Guide, C++ Core Guidelines, and ROS C++ Style Guide
MIT License