Skip to content
Snippets Groups Projects
Commit 07d3f446 authored by Iván del Pino's avatar Iván del Pino
Browse files

Update Readme.md

parent bc80551e
No related branches found
No related tags found
No related merge requests found
[submodule "kf_based_terrain_analysis"] [submodule "kf_based_terrain_analysis"]
path = kf_based_terrain_analysis path = kf_based_terrain_analysis
url = https://gitlab.iri.upc.edu/idelpino/kf_based_terrain_analysis url = https://gitlab.iri.upc.edu/idelpino/kf_based_terrain_analysis
branch = main
We are pleased to share the code repository associated with our paper, “Probabilistic Graph-based Real-Time Ground Segmentation for Urban Robotics.” This paper has been accepted for publication in the IEEE Transactions on Intelligent Vehicles. You can access the Early Access Version of the paper here: https://ieeexplore.ieee.org/document/10487036 We are pleased to share the code repository associated with our paper, “Probabilistic Graph-based Real-Time Ground Segmentation for Urban Robotics.”
This paper has been accepted for publication in the IEEE Transactions on Intelligent Vehicles.
You can access the Early Access Version of the paper here: https://ieeexplore.ieee.org/document/10487036
Currently, our team is diligently working on cleaning and documenting the repository. In just a few days, it will be fully prepared and ready for exploration! Currently, our team is diligently working on cleaning and documenting the repository. In just a few days, it will be fully prepared and ready for exploration!
--- ---
This package implements a ROS node for traversable ground / non-traversable ground / obstacle and overhanging obstacle segmentation. It provides the interface to the library kf_based_terrain_analysis, which angularly exploring a poincloud from the origin to the limits, generates a graph of ground references containing their 2D coordinates (XY) and three Gaussian variables (Z, slope in X (tan(pitch)) and slope in Y (tan(roll))) with means and variances. These three variables are estimated by means of a Kalman Filter. ROS Node for Ground Segmentation and Obstacle Detection
This package contains a ROS node designed for ground segmentation and obstacle detection. It interfaces with the kf_based_terrain_analysis library, which generates a probabilistic ground model. Let’s dive into the details:
Features:
Dependences: Ground Model Generation:
The ground model consists of nodes with 2D coordinates (XY) and three Gaussian variables: Z (height), slope in X (tan(pitch)), and slope in Y (tan(roll)).
These Gaussian variables are described by means and variances.
The model predicts a Gaussian distribution in the Z-axis for any desired XY coordinate, allowing us to treat obstacle detection as an outlier rejection problem.
1) gnss_lidar_navigation_preprocessing (https://gitlab.iri.upc.edu/idelpino/gnss_lidar_navigation_preprocessing): Traversable vs. Non-Traversable Ground:
To distinguish between traversable and non-traversable ground, we employ a shallow neural network.
The neural network operates on features extracted from the ground model.
We provide two pre-trained neural networks:
ROAD Detection: This network identifies ROAD areas (which are considered traversable).
TERRAIN and VEGETATION Classification: This network classifies TERRAIN and VEGETATION as non-traversable classes.
The neural networks were trained in Matlab, and their weights were exported in .csv files.
Regarding the ground segmentation algorithm it provides: Usage:
- A node to adapt the input point cloud to the format internally used by the kf_based_terrain_analysis.
- And a node for fusing two pointclouds into one (for the ADD robot).
2) the kf_based_terrain_analysis library (https://gitlab.iri.upc.edu/idelpino/kf_based_terrain_analysis) Input Point Clouds:
The ROS node accepts two types of input point clouds:
XYZI Point Cloud (Topic: “lidar_points”): Use this for interfacing with LiDAR sensors.
XYZIRGBL Point Cloud: Use this for training. To generate this input, follow the instructions in the semantickitti2bag repository.
To launch the whole ground segmentation pipeline for the ADD robot just roslaunch the iri_ground_segmentation add_ground_segmentation_pipeline.launch
Subproject commit c1be17b68e5a1af56cdb1a050b45374b1bce963c Subproject commit 61c1886b8227e98ec5315dfb2f8f05d011f982ff
...@@ -37,7 +37,7 @@ iri_ground_segmentation: { ...@@ -37,7 +37,7 @@ iri_ground_segmentation: {
# Neural Network related parameters # Neural Network related parameters
use_neural_network: true, use_neural_network: true,
extract_data_to_external_training_of_the_network: false, extract_data_to_external_training_of_the_network: true,
dataset_filename_with_global_path: '/home/idelpino/Documentos/dataset.csv', # This is the filename with path where the data for neural net training is dumped dataset_filename_with_global_path: '/home/idelpino/Documentos/dataset.csv', # This is the filename with path where the data for neural net training is dumped
neural_net_filename_with_global_path: '/home/idelpino/iri-lab/ground_segmentation_ws/src/iri_ground_segmentation/shallow_neural_nets/veg_terrain_and_obs_13_features_39_neurons.csv', neural_net_filename_with_global_path: '/home/idelpino/iri-lab/ground_segmentation_ws/src/iri_ground_segmentation/shallow_neural_nets/veg_terrain_and_obs_13_features_39_neurons.csv',
neural_net_number_of_features: 13, neural_net_number_of_features: 13,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment