#slam #robotics

gs-rs

纯Rust实现的简单单目SLAM(同时定位与建图)算法

1个不稳定版本

0.1.0 2020年8月31日

#849 in 数学

MIT/Apache

2.5MB
2K SLoC

gs-rs [ˈdʒiːzrs] - Rust中的GraphSLAM

Travis CI Coverage Status License-MIT License-Apache Issues Forks Stars Crates.io Version

gs-rs 是纯Rust实现的基于单目图的SLAM后端。它主要受到Rainer Kümmerle的通用图优化器 g2o 的启发,尽管它给它添加了一些“Rust式”的元素。

概述

文档

有关所使用算法的简要介绍可在此处作为Jupyter Notebook找到

构建说明

  • 安装Rust工具链
  • 克隆仓库
  • 在根目录下执行cargo build --release

示例用法

除了下面的代码片段外,还可以在 examples/ 中找到不同用例的进一步示例。有关该目录的信息可以在相应的 README 文件中找到。

use gs_rs::parser::json::JsonParser;
use gs_rs::parser::Parser;
use gs_rs::optimizer::optimize;
use gs_rs::visualizer::visualize;

fn main() {

    // parse file at "file_path.json" to internal factor graph representation
    let factor_graph = JsonParser::parse_file("file_path.json").unwrap();

    // optimize the factor graph's variables with 5 iterations
    optimize(&factor_graph, 5);

    // display the improved factor graph in a new window
    visualize(&factor_graph);

}

归属

文件格式 .g2o 以及参考实现 C++ 是项目 g2o 的部分。

data_files/examples/ 中使用的数据集已被Carlone等人描述,并适应了包括固定顶点在内的内容。还对其他内容进行了修改,以展示gs-rs支持的不同的顶点和边类型。原始数据集以及更多示例可在网上找到。归属和详细信息也可在 数据集部分 中找到。

注意

我们,贡献者,完全意识到我们无法禁止开源软件的军事用途。但我们想明确表示,我们不鼓励以伤害人为目的使用我们的软件。

许可证

© 2020 Samuel Valenzuela, TNG Technology Consulting GmbH

© 2020 Florian Rohm, TNG Technology Consulting GmbH

© 2020 Daniel Pape,TNG Technology Consulting GmbH

gs-rs 采用 Apache 许可证,版本 2.0(参见此处https://apache.ac.cn/licenses/LICENSE-2.0)或 MIT 许可证(参见此处http://opensource.org/licenses/MIT),任选其一。

依赖项

~20–30MB
~300K SLoC