Giter VIP home page Giter VIP logo

lidar_obstacle_detector's Introduction

lidar_obstacle_detector

3D LiDAR Object Detection & Tracking using Euclidean Clustering & Hungarian algorithm

Ubuntu ROS C++ CodeFactor ROS-CI cpp-linter GitHub Repo stars GitHub Repo forks

demo_1

demo_2

Features

  • 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

Dependencies

  • autoware-msgs
  • jsk-recognition-msgs

Installation

# 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

Usage

1. (Easy) Use this pkg with ROS Bags (mai_city dataset as an example here)

demo_mai_city

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)

demo_lgsvl

Step 1: Launch the LGSVL simulator and lgsvl_utils nodes

Please refer this step to the README Usage Section of the lgsvl_utils pkg

Step 2: Launch the nodes using the launch/lgsvl.launch launch file

# launch node
roslaunch lidar_obstacle_detector lgsvl.launch

Contribution

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

License

MIT License

lidar_obstacle_detector's People

Contributors

ss47816 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

lidar_obstacle_detector's Issues

velodyne real data

Hey bro! I've succeed running the launch file with my real velodyne lidar, but the result shown in Rviz shows that some noise still brought some trouble. What should I do to reduce these flashing bboxes?

lab.mp4

What are the parameters in compareBoxes()

Hi, I have a problem after reading your code.
You used two parameters when calculating IoU in compareBoxes: the Percetage Displacements and the Dimension similiarity. May I ask what its actual meaning is?

Documentation

Hello,
Do you have this work documented or published somewhere?

Segmentation problem

Thank you for your great work. but I found the segmentaion method in your project is not very ideal when dealing with my own lidar date.

So what is the Space/Kurb segmention you mentioned in the Todos list, I can't find any reference. Than you.

Does it also include obstacle tracking? and any paper published on this work?

Hi, I'm working something with obstacle tracking, and I noticed that in autoware_msgs they have that velocity field, but I didn't saw it in your code, do you have any work on this? or do you have any paper reference that I could use to work with.

And also, do you have any public paper for this work? I would be grateful if you could help me with this, thank you so much.

Anyway, this is the best typed and well documented repo i've cross so far on this method, nice work

topic mismatch

I'm getting this error message when running: rosrun lidar_obstacle_detector obstacle_detector_node

[ WARN] [1694011142.137067402]: couldn't register subscriber on topic [/]
[ERROR] [1694011142.138495795]: Tried to advertise on topic [/] with md5sum [c8f4a8bb1acd18ce778d183912bb472d] and datatype [jsk_recognition_msgs/BoundingBoxArray], but the topic is already advertised as md5sum [1158d486dd51d683ce2f1be655c3c181] and datatype [sensor_msgs/PointCloud2]
[ERROR] [1694011142.138548295]: Tried to advertise on topic [/] with md5sum [c16aecef51c24c6808480a0295e47806] and datatype [autoware_msgs/DetectedObjectArray], but the topic is already advertised as md5sum [1158d486dd51d683ce2f1be655c3c181] and datatype [sensor_msgs/PointCloud2]

cannot show the bbox

Hey! I've set it up successfully, but when I r
Uploading rviz.jpg…
un with mai_city dataset, it did not show the bbox, Rviz result like this

some running problems

Hey,@SS47816,I was trying to run this code with the specified dataset mai_city/bags/00.bag and the command "roslaunch lidar_obstacle_detector mai_city.launch",but there was a problem occuring.
It showed " PluginlibFactory: The plugin for class 'jsk_rviz_plugin/BoundingBoxArray' failed to load. Error: According to the loaded plugin descriptions the class jsk_rviz_plugin/BoundingBoxArray with base class type rviz::Display does not exist. Declared types are rviz/Axes rviz/Camera rviz/DepthCloud rviz/Effort rviz/FluidPressure rviz/Grid rviz/GridCells rviz/Illuminance rviz/Image rviz/InteractiveMarkers rviz/LaserScan rviz/Map rviz/Marker rviz/MarkerArray rviz/Odometry rviz/Path rviz/PointCloud rviz/PointCloud2 rviz/PointStamped rviz/Polygon rviz/Pose rviz/PoseArray rviz/PoseWithCovariance rviz/Range rviz/RelativeHumidity rviz/RobotModel rviz/TF rviz/Temperature rviz/WrenchStamped rviz_plugin_tutorials/Imu"
If you have any fixes please show me what to do with this issue.Thanks a lot!

real time data

can this apply to get the data from the lidar immediately?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.