Skip to main content

Python中的图形SLAM求解器

项目描述

https://travis-ci.com/JeffLIrion/python-graphslam.svg?branch=master https://coveralls.io/repos/github/JeffLIrion/python-graphslam/badge.svg?branch=master

这个包的文档可以在https://python-graphslam.readthedocs.io/找到。

这个包在 Python 中实现了一个 Graph SLAM 求解器。

特征

  • 优化R^2、R^3、SE(2)和SE(3)数据集

  • 解析雅可比行列式

  • 支持里程计边缘

  • 为SE(2)和SE(3)数据集导入和导出 .g2o 文件

安装

pip install graphslam

示例用法

SE(3) 数据集

>>> from graphslam.load import load_g2o_se3

>>> g = load_g2o_se3("data/parking-garage.g2o")  # https://lucacarlone.mit.edu/datasets/

>>> g.plot(vertex_markersize=1)

>>> g.calc_chi2()

16720.02100546733

>>> g.optimize()

>>> g.plot(vertex_markersize=1)

输出:

Iteration                chi^2        rel. change
---------                -----        -----------
        0           16720.0210
        1              45.6644          -0.997269
        2               1.2936          -0.971671
        3               1.2387          -0.042457
        4               1.2387          -0.000001

原来的

优化

https://raw.githubusercontent.com/JeffLIrion/python-graphslam/master/docs/source/images/parking-garage.png https://raw.githubusercontent.com/JeffLIrion/python-graphslam/master/docs/source/images/parking-garage-optimized.png

SE(2) 数据集

>>> from graphslam.load import load_g2o_se2

>>> g = load_g2o_se2("data/input_INTEL.g2o")  # https://lucacarlone.mit.edu/datasets/

>>> g.plot()

>>> g.calc_chi2()

7191686.382493544

>>> g.optimize()

>>> g.plot()

输出:

Iteration                chi^2        rel. change
---------                -----        -----------
        0         7191686.3825
        1       319916668.8138          43.484235
        2       124888469.1437          -0.609622
        3          338171.6169          -0.997292
        4             734.5693          -0.997828
        5             215.8405          -0.706167
        6             215.8405          -0.000000

原来的

优化

https://raw.githubusercontent.com/JeffLIrion/python-graphslam/master/docs/source/images/input_INTEL.png https://raw.githubusercontent.com/JeffLIrion/python-graphslam/master/docs/source/images/input_INTEL-optimized.png

参考文献和致谢

  1. Grisetti, G.、Kummerle, R.、Stachniss, C. 和 Burgard, W.,2010。基于图的 SLAM 教程。IEEE 智能交通系统杂志,2(4),pp.31-43。

  2. Blanco, JL, 2010。关于 SE(3) 变换参数化和流形优化的教程。马拉加大学,科技。众议员,3。

  3. Carlone, L.、Tron, R.、Daniilidis, K. 和 Dellaert, F.,2015 年 5 月。3D SLAM 的初始化技术:关于旋转估计的调查及其在位姿图优化中的应用。2015 年 IEEE 机器人与自动化国际会议 (ICRA) (pp. 4597-4604)。IEEE。

  4. Carlone, L. 和 Censi, A.,2014年。从角流形到整数格:保证方向估计与姿势图优化的应用。IEEE Transactions on Robotics,30(2),pp.475-492。

感谢 Luca Larlone 允许在这个 repo 中包含英特尔和停车场数据集。

Python中的实时编码图SLAM

有兴趣的可以看我写的代码。

  1. Python 中的实时编码图 SLAM(第 1 部分)

  2. Python 中的实时编码图 SLAM(第 2 部分)

  3. Python 中的实时编码图 SLAM(第 3 部分)

  4. Python 中的实时编码图 SLAM(第 4 部分)

  5. Python 中的实时编码图 SLAM(第 5 部分)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

graphslam-0.0.8.tar.gz (16.1 kB 查看哈希)

已上传 source

内置分布

graphslam-0.0.8-py3-none-any.whl (21.0 kB 查看哈希)

已上传 py3