Closed TypingCat closed 3 years ago
Topology extraction proceeded in two stages. Detect the movable area, and specify the structure of the space as a graph. For example, the second image is the movable area in the first image. The third image is the result of world-coordinate transform. Finally, the topology was extracted in the fourth image.
There were following issues:
There are two options for detecting the movable area.
The first option is to use Light Detection and Ranging(LiDAR). The coordinates detected by LiDAR are the vertices of the movable area. Simple, but it cannot respond to obstacles such as chairs and stairs because 3D scanning is not supported. Operates up to 10Hz.
Another option is to use a RGBD camera. Ground can be detected with semantic segmentation from the camera image. I tested the semantic segmentation packages of Nvidia, MIT, PixelLib, and CSAIL. There is a critical problem that it cannot respond to reflected light. Operate up to 1Hz.
Therefore, LiDAR was adopted as the detection method.
There are two options for extracting topology.
The first option is Generalized Voronoi Diagram(GVD)(left). This method is traditionally used in the field of mobile robots. It is advantageous to keep the distance from obstacles. Another option is the thinning of image processing(right). It doesn't draw a strict spatial structure like GVD, but parallel computation is possible.
Thinning was adopted considering reasonable results and fast processing.
Converting the above image to a graph is simple. Extract the outline, and build the graph by traversing it. Here is the result. See issue #6 for details.
This feature was developed before this package was created and tested on issue #6. There were two issues and LiDAR-Thinning approach was adopted. Let me introduce the history.