This repository works as a learning process of constructing maps from sparse sensor data.
We use optimization-based compressive sensing technique to reconstruct 2D depth profile, and build a complete map using occupancy grid mapping.
CS Reconstruction | Mapping |
---|---|
We created diverse Gazebo worlds, brought up a Kobuki robot equipped with laser scanners, then used the ROS package on RRT-based map exploration to collect data.
-
We solved the relative pose prediction problem via a multi-task regression model, and loop closure detection problem via a binary classification model.
-
To create the pose regression dataset, we subsample the data to a frequency of {2Hz, 1Hz, 0.5Hz}. In total, there are more than 150k pairs for training+validation+testing (fraction: 0.99x0.85:0.99x0.15:0.01, see training environment) and 30k pairs for extra testing (see testing environment).
-
To create the loop closure dataset, we define the closure condition as: norm of the relative translation is less than 0.3m and the absolute value of the relative rotation is less than 100 degrees. There are more than 240k pairs for training+validation+testing(fraction: 0.99x0.85:0.99x0.15:0.01) and 40k for extra testing. Overall, the positive rate of the training dataset is 44.5%.
-
From the pose regressor, the estimate trajectory from only odometry (scan matching) can be obtained. We then used closure detection model to find out the closures. The relative constraints were added to the pose graph to implement Pose Graph Optimization.
Gazebo | Trajectory | Gazebo | Trajectory |
---|---|---|---|
simple wall |
custom office 2 |
||
MTR |
house | ||
large map |
custom office 3 |