INSTALLATION - Kitware/pyLiDAR-SLAM GitHub Wiki
Python code-base 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.
Additional Modules
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.
CT-ICP
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.
Installation
Follow the installation instructions of the project's github.
You should have the module
pyct_icp
installed following these instructionsModules depending on this dependency:
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.
Viz3D
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.Installation
Follow the installation instructions of the project's github.
g2opy
For our PoseGraph backend, we use
g2o
's python bindings:Installation
Follow the installation instructions of the project's github
You should have the
g2o
module ready to be imported.Modules depending on this dependency:
GraphSLAM
: A basic PoseGraph which can integrate Loop Closure and Absolute (e.g. GPS constraints) to globally optimize the Trajectory. (Configslam/backend=graph_slam
).
Rosbag
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
Modules depending on this dependency:
RosbagDataset
: The Dataset to read Rosbag files (Configdataset=rosbag
).
OpenCV
Some of our modules depend on OpenCV's bindings for Image processing
Installation
pip install opencv-python
. You should have thecv2
module ready to be imported.Modules depending on this dependency:
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
Open3D
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.