plvs

luigifredaGPL-3.0更新放缓

实时 SLAM 系统,融合点、线特征、体素建图与 3D 无监督增量分割,适合需要边建图边分割的机器人或 AR 场景。

PLVS is a real-time SLAM system with points, lines, volumetric mapping and 3D unsupervised incremental segmentation.

暂无版本567star83fork同步于 2026-11-07 07:32 UTC

怎么上手

由 README 提炼,执行前请确认
./install_dependencies.sh
./install_local_opencv.sh
./build.sh
硬件要求按 README 说明

README 未说明显存或 GPU 型号要求;构建流程在 Ubuntu 20、22、24 上测试过,ROS1 仅支持 Ubuntu 20 + noetic,ROS2 在 Ubuntu 20 + foxy 上测试。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 ORB-SLAM 的实时 SLAM 系统,同时做点线特征、体积建图和 3D 无监督增量分割

实时 SLAM 系统,融合点、线特征、体素建图与 3D 无监督增量分割,适合需要边建图边分割的机器人或 AR 场景。

核心能力

  • 在 ORB-SLAM2/3 基础上融合点与线特征做稀疏 SLAM
  • 实时构建体积地图(volumetric mapping)
  • 对场景做 3D 无监督增量式分割
  • PLVS II 支持带 IMU 的相机系统,含 stereo-inertial 模式
  • 提供 ROS1 noetic 与 ROS2 foxy 的构建脚本

容易踩的坑

默认会单独在本地目录编译安装 OpenCV,跳过该步需自行在 config.sh 设置 OpenCV_DIR 和 OPENCV_VERSION 且不推荐;Ubuntu 24.04 下 BUILD_WITH_MARCH_NATIVE 默认关闭,开启 --march=native 可能与系统 libpcl 冲突;运行示例前需在 Scripts 脚本里配置 DATASET_BASE_FOLDER、DATASET 和 YAML 配置文件。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    PLVS II

    v0.3.0

    Author: Luigi Freda

    PLVS is a real-time system that combines sparse SLAM, volumetric mapping, and 3D unsupervised incremental segmentation. PLVS stands for Points, Lines, Volumetric mapping, and Segmentation.

    PLVS is available in two different versions.

    • PLVS I: hosted in the branch plvs1. It builds on ORB-SLAM2, and supports mono, stereo, and RGB-D cameras.
    • PLVS II: hosted in the master branch. It builds on ORB-SLAM3, and also supports camera systems provided with IMUs.

    This document provides a list of the new features introduced by PLVS. For more information and videos, please visit this project page or refer to the following document: PLVS: A SLAM System with Points, Lines, Volumetric Mapping, and 3D Incremental Segmentation 
    Luigi Freda

    Note: PLVS is an active project. This README is under construction and will be updated with further information and details as new improvements are released. Stay tuned!

    Quick start

    • The build procedures were tested under Ubuntu 20, 22, 24.
    • ROS1 support is provided only under noetic with Ubuntu 20 (see here).
    • ROS2 was tested under foxy and Ubuntu 20 (further details here).

    If you don't have Ubuntu 20 with noetic, check rosdocker and use the noetic or noetic_cuda containers.

    NOTE: At present, under Ubuntu 24.04, BUILD_WITH_MARCH_NATIVE is set to OFF. Enabling --march=native optimization brings some problems probably due to different default building options in the native libpcl.


    Build

    1. Install basic dependencies:
      $ ./install_dependencies.sh
    2. Install OpenCV in a local folder:
      $ ./install_local_opencv.sh
    3. Build the PLVS framework:
      $ ./build.sh

    It should be easy to adapt the above procedures if you have a different OS version.

    If you want to skip step 2, you can set the variables OpenCV_DIR and OPENCV_VERSION in config.sh with your local OpenCV path and version, respectively. However, this is not recommended.

    ROS build

    ROS 1

    Under ROS noetic, open a new terminal, source the main ROS1 setup.bash and run:
    $ ./build_ros_catkin.sh

    This command builds the PLVS ROS1 workspace in Example_old/ROS/PLVS and deploys it in the ros_ws folder.

    ROS 2

    Under ROS 2, open a new terminal, source the main ROS2 setup.bash and run:
    $ ./build_ros_colcon.sh

    This command builds the PLVS ROS2 workspace in Example/ROS2/PLVS and deploys it in the ros2_ws folder.


    Running the examples

    Once everything is built, you can enter in the Scripts folder and test the different examples. For instance you can configure and run:

    • $ ./run_tum_rgbd.sh for TUM RGB-D datasets
    • $ ./run_kitti_stereo.sh for KITTI datasets
    • $ ./run_euroc_stereo_inertial.sh for Euroc datasets, stereo + inertial
    • $ ./run_euroc_stereo.sh for Euroc datasets, only stereo
    • $ ./run_tum_vi_stereo.sh for TUM VI datasets, only stereo
    • $ ./run_tum_vi_stereo_inertial.sh for TUM VI datasets, stereo + inertial

    In each of the above scripts, you have to configure (1) the DATASET_BASE_FOLDER, (2) the specific DATASET of interest, and (3) the used YAML configuration file. In particular, each YAML configuration file shows different sections with commented options. For a quick overview of the new features and their corresponding YAML options refer to new_features.md.

    ROS 1

    If you built the ROS workspace, you can use the scripts ros_xterm* to launch the PLVS ROS nodes. For instance, with the TUM datasets, configure and run ros_xterm_tum_rgbd.sh.

    ROS 2

    Refer to this README. At present, this is a work in progress. With the TUM datasets, configure and run ros2_xterm_tum_rgbd.sh.

    Note: The ROS1 and ROS2 install paths are automatically detected by the script Scripts/find_ros.sh.


    Contributing

    We welcome contributions to the codebase through pull requests, bug reports, comments, and feature proposals via issues. For any questions or feedback, please contact luigifreda(at)gmail(dot)com. Thank you!


    License

    PLVS is released under GPLv3 license. PLVS contains some modified libraries, each one coming with its license. Where nothing is specified, a GPLv3 license applies to the software.

    If you use PLVS in your projects, please cite our above-mentioned document.


    Credits

    • The PLVS I and PLVS II frameworks are based on ORB-SLAM2 and ORB-SLAM3 respectively. Many thanks to their Authors for their great work and contributions to the Research and open-source communities.
    • Ther ROS 2 wrapper was inspired by this repository. Many thanks to his Author, Haebeom Jung.