Giter Club home page Giter Club logo

urban_road_filter's Introduction

urban_road_filter: a real-time LIDAR-based urban road and sidewalk detection algorithm for autonomous vehicles

Dependency

  • ROS (tested with Kinetic and Melodic)
  • PCL

Install

Use the following commands to download and compile the package.

cd ~/catkin_ws/src
git clone https://github.com/jkk-research/urban_road_filter
catkin build urban_road_filter

Getting started

Issue the following commands to start roscore, download and play sample data, and start the algorithm with visualization. You can also watch this as a youtube tutorial.

In a new terminal start roscore:

roscore

In a new terminal go to your bag folder (e.g. ~/Downloads):

cd ~/Downloads

Download a sample rosbag (~3,3 GB):

wget https://laesze-my.sharepoint.com/:u:/g/personal/herno_o365_sze_hu/EYl_ahy5pgBBhNHt5ZkiBikBoy_j_x95E96rDtTsxueB_A?download=1 -O leaf-2021-04-23-campus.bag

Play rosbag:

rosbag play -l ~/Downloads/leaf-2021-04-23-campus.bag

In a new terminal start the urban_road_filter node, rviz and rqt_reconfigure with roslaunch:

roslaunch urban_road_filter demo1.launch

Cite & paper

If you use any of this code please consider citing the paper:

@Article{roadfilt2022horv,
    title = {Real-Time LIDAR-Based Urban Road and Sidewalk Detection for Autonomous Vehicles},
    author = {Horváth, Ernő and Pozna, Claudiu and Unger, Miklós},
    journal = {Sensors},
    volume = {22},
    year = {2022},
    number = {1},
    url = {https://www.mdpi.com/1424-8220/22/1/194},
    issn = {1424-8220},
    doi = {10.3390/s22010194}
}

Related solutions

Videos and images

ROS publications / subscriptions

flowchart LR

P[points]:::gray -->|sensor_msgs/PointCloud2| U([urban_road_filt</br>node]):::gray
U --> |sensor_msgs/PointCloud2| A[curb]:::gray
U --> |sensor_msgs/PointCloud2| B[road]:::gray 
U --> |sensor_msgs/PointCloud2| C[road_probably]:::gray
U --> |sensor_msgs/PointCloud2| D[roi]:::gray
U --> |visualization_msgs/MarkerArray| E[road_marker]:::gray


classDef light fill:#34aec5,stroke:#152742,stroke-width:2px,color:#152742  
classDef dark fill:#152742,stroke:#34aec5,stroke-width:2px,color:#34aec5
classDef white fill:#ffffff,stroke:#152742,stroke-width:2px,color:#152742
classDef gray fill:#f6f8fa,stroke:#152742,stroke-width:2px,color:#152742
classDef red fill:#ef4638,stroke:#152742,stroke-width:2px,color:#fff

urban_road_filter's People

Contributors

csaplaci avatar dobaybalazs avatar horverno avatar hwenwur avatar szepilot avatar umiklos 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  avatar  avatar

urban_road_filter's Issues

Add some usage examples

Hi, Horvath

Great work! I'm very interested in your work. Can you add some usage demo about this work.

Thanks!

About run-time

Hello,how can I test the runtime of a frame?check the topic frequency or need clock? how should I solve it? Thanks

A question about interval param

Hi, thank for you great work!

I have some trouble about the param interval, why it is 0.18?

Is it related to the vertical field of view of lidar?

Hope for your reply , Thanks!

I need help

Hello, I follow the steps to generate this error. How should I solve it? Thanks
Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions. urban_road_filter/CMakeFiles/lidar_road.dir/build.make:75: recipe for target 'urban_road_filter/CMakeFiles/lidar_road.dir/src/lidar_segmentation.cpp.o' failed make[2]: *** [urban_road_filter/CMakeFiles/lidar_road.dir/src/lidar_segmentation.cpp.o] Error 4 make[2]: *** 正在等待未完成的任务.... c++: internal compiler error: 已杀死 (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions. urban_road_filter/CMakeFiles/lidar_road.dir/build.make:131: recipe for target 'urban_road_filter/CMakeFiles/lidar_road.dir/src/z_zero_method.cpp.o' failed make[2]: *** [urban_road_filter/CMakeFiles/lidar_road.dir/src/z_zero_method.cpp.o] Error 4 c++: internal compiler error: 已杀死 (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions. urban_road_filter/CMakeFiles/lidar_road.dir/build.make:89: recipe for target 'urban_road_filter/CMakeFiles/lidar_road.dir/src/main.cpp.o' failed make[2]: *** [urban_road_filter/CMakeFiles/lidar_road.dir/src/main.cpp.o] Error 4 CMakeFiles/Makefile2:2521: recipe for target 'urban_road_filter/CMakeFiles/lidar_road.dir/all' failed make[1]: *** [urban_road_filter/CMakeFiles/lidar_road.dir/all] Error 2 Makefile:145: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j8 -l8" failed

Refactor

  • english comments
  • more readable code

Facing issues while using different dataset

I am trying to convert some standard datasets to robag file and use them. But the ROS topics my bag files are far less and different than the ROS topics in the data given in repository. How to make this work?

Question

How can we use this algorithm on single pcd files?

Questions about fixed frames

hello,i encountered some issues while running the code.when i try to use the rslidar and change the fixed frame in the LidarFilter.cfg,but i find that it dosen't work normal although i recompile the code.Is this code only applicable to the velydone or ouster?Can u give me something suggestion?thank u.

If the given dataset have a preprocessing?

Thanks for your great work! I try to do some experiment on kitti dataset. But I found it does not have the same effect as yours. The blue marks, as shown in the following image, are false positive. I want to wonder if the given dataset have a preprocessing? img

Question about an error I met when using pointcloud data collected by velodyne 32 channel lidar

Hi,
Thank you for your great work!
When I used the Ouster 64 channel lidar as input, the project worked perfectly.
But as I changed the input to point cloud data collected by Velodyne 32-channel lidar, The program ran for a few seconds and crashed.
Error info is like the process has died, exit code -11.
BTW, the point cloud data from two types of lidar are two topics in the same rosbag, as I changed the topic, the program crashed.
Could you give me some advice about this?

截屏2023-12-13 15 02 00

Velodyne-32 Lidar on Husky

Hey, I am facing problem with parameter tuning. I am trying with a single velodyne-32 channel lidar mounted on Husky rover. The code crashes on changing the parameters through the parameter-window occurs along with rviz.
Can u suggest something??

Semi-automated vector map building

New feature:

Based on the urban_road_filter output a semi-automated vector map building (e.g. lanelet2 / opendrive) in the global frame (e.g. map)

(small help)

StarShapedSearch algorithm not functioning properly

The "star shaped search" detection algorithm seems to function with reduced range and [by angle] only in the first quarter of its detection area (counter-clockwise / positive z angles from x-axis, right-handed coordinate-system).

The images below show the output using only this algorithm (other detection methods, blind spot correction and output polygon simplification turned off).

[red line = polygon connecting the detected points]

2

3

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.