-
Notifications
You must be signed in to change notification settings - Fork 40
INSTALLATION
Clone the project:
git clone https://github.com/Kitware/pyLiDAR-SLAM
Install pytorch version 1.7.1 and hydra /!\ version 1.0.
Install the required packages:
pip install -r requirements.txt
This installation already provides the main code base, with multiple modules.
However, other modules (which are optional) require other dependencies, as explained below.
pyLiDAR-SLAM integrates multiple optional modules, which require external dependencies.
At runtime, pyLiDAR-SLAM will try to import each dependencies, and if the import are successful, the modules depending on them will be made accessible.
Below we present the dependencies and modules they enable, and describe how to install them.
Our other work CT-ICP present a new Open Source LiDAR-Odometry implemented in C++ with python bindings.
In our work (see article) we show that it obtains state of the art results on a large variety of datasets.
The python bindings allow us to use it as an odometry module to pyLiDAR-SLAM.
Follow the installation instructions of the project's github.
You should have the module
pyct_icp
installed following these instructions
ct_icp_odometry
: An Odometry module usingpyct_icp
for integration with pyLiDAR-SLAM.ct_icp_dataset
: A support for the different datasets made available in the project.
In order to debug / visualize our SLAM algorithms, we use the lightweight python visualizer pyviz3d
With the options
slam.odometry.viz_debug
, it allows the visualization of the aggregated frames registered by the different odometries.Follow the installation instructions of the project's github.
For our PoseGraph backend, we use
g2o
's python bindings:Follow the installation instructions of the project's github
You should have the
g2o
module ready to be imported.
GraphSLAM
: A basic PoseGraph which can integrate Loop Closure and Absolute (e.g. GPS constraints) to globally optimize the Trajectory. (Configslam/backend=graph_slam
).
pyLiDAR-SLAM supports the reading of individual rosbags (though this naturally produces an overhead with respect to pure ROS application).
pip install --extra-index-url https://rospypi.github.io/simple/ rosbag
RosbagDataset
: The Dataset to read Rosbag files (Configdataset=rosbag
).
Some of our modules depend on OpenCV's bindings for Image processing
pip install opencv-python
. You should have thecv2
module ready to be imported.
ElevationImageLoopClosure
: A Loop Closure procedure which performs 2D Image Alignment on Elevation images (Configslam/loop_closure=elevation_image
) between windows of aggregated scans.ElevationImageInitialization
: A initialization procedure which performs 2D Elevation Image Alignment between consecutive LiDAR frames
We use the excellent
Open3D
library for ourElevationImageLoopClosure
for the refinement of the 6Dof pose after the 2D image-based registration.Follow the main page's instructions for the installation of the python module.