Skip to content

INSTALLATION

pdell-kitware edited this page Oct 11, 2021 · 3 revisions

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 instructions

Modules depending on this dependency:

  • ct_icp_odometry: An Odometry module using pyct_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. (Config slam/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 (Config dataset=rosbag).

OpenCV

Some of our modules depend on OpenCV's bindings for Image processing

Installation

pip install opencv-python. You should have the cv2 module ready to be imported.

Modules depending on this dependency:

ElevationImageLoopClosure: A Loop Closure procedure which performs 2D Image Alignment on Elevation images (Config slam/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 our ElevationImageLoopClosure 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.