One of the main challenges presented in this dissertation is how to discover something that doesn’t exist. It was relatively easy to find where the biggest concentration of points was (corresponding to positive road curbs) but, as observed in fig. 1, when talking about negative road curbs there will be a “shadow” in the point cloud, that is, an “empty space”. So how will we identify the absence of points?
After discussing what would be the best solution to solve this problem, the decision was to calculate the medium road plane, and divide the space above it into small cuboids, find the point cloud density in each one and calculate the “negative” point cloud, that is, removing points in the high density zones and inserting points in low density zones, resulting in a cloud with only points in low (or zero) density zones.
Concatenating this point cloud with the one given by the road_reconstruction_node ( the one who identifies positive obstacles) we will have a point cloud where points represent obstacles, which means known areas where the vehicle can not go because there are obstacles in that zone.
In that line, the first thing to do was to calculate the medium road plane. For that, a ransac technique was applied to the raw cloud, resulting in a cloud with the inlier points and the respective plane coefficients. That cloud is represented by the black points in vid. 1. After that, a marker with a planar shape was created and adapted to the plane coefficients calculated before, as it shows in the following video. This allowed to define the search area for the spatial partition feature.
The fact that the total accumulated point cloud of a certain path may also provide interesting information was also discussed, not also in the line of this work but also in 3D road reconstruction through point clouds. So a feature that generates a point cloud was created, to which it will constantly be added new points corresponding to laser readings obtained from the car movement. This cloud is periodically saved in a .pcd format that can be visualized in the pcl_viewer.
Fig. 2 shows the comparison between the resulting point cloud and the corresponding real circuit and the reliability of the obtained results.