问题标签 [g2o]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1163 浏览

python - python导入在一个终端成功,但在另一个终端失败

我成功下载并安装(构建 + 制作)一个 cython 包g2opy。当我尝试检查一切是否顺利时,我得到了这个:

所以,我认为一切都很好并打开了另一个终端窗口。并尝试导入相同的模块,但失败了:

这与共享库(.so 文件)有关吗?如果成功导入,为什么下次会失败?

0 投票
0 回答
965 浏览

computer-vision - 使用 g2o 库进行捆绑调整。如何验证?

我有一个简单的捆绑调整功能,使用 g2o 库来优化相机姿势和 3d 地图点。我传入两个KeyFrames,每个包含:

以及 a vectorof Mappoint,其中包含:

我的功能是:

我运行该功能,它似乎可以工作,打印:

但是我怎样才能验证这些结果呢?g2o 中有没有办法在运行优化之前和之后打印重投影错误?或者我在上述结果中需要的信息是否在某处?

0 投票
0 回答
229 浏览

computer-vision - Bundle Adjustment with g2o,编译运行,但数据不变

我正在使用g2o库对一些已知数据进行捆绑调整。

我的函数基于 中的一个OrbSlam2,并采用两个相机姿势,以及一个std::vector具有相应 2d 点的 3d 点,或每个相机姿势中的“观察”。

它运行良好,当我使用已知(正确)的相机姿势时,重新投影的点看起来是正确的。然而,当我向第二个相机姿势添加噪声时,它仍然运行良好,并完成了优化,但生成的姿势看起来与嘈杂的输入数据完全相同。完整的功能是:

我哪里错了?我的数据没有优化吗?还是我错误地读回了数据?

0 投票
1 回答
158 浏览

visual-studio-2015 - 错误 LNK2001:未解析的外部符号 Visaul C++ SuiteSparse lib

我使用 Visual C++ 2015。当我尝试构建我的 g2o 示例代码时收到以下错误。

大约 172 个错误与 LNK2001 和 LNK2019 相关。当我检查文件时,它显示大多数错误都与 SuiteSparse 中的库有关。我已经检查了库目录和其他库目录。但它仍然弹出这些错误。我是g2o领域的新手。如果有人能给我你的好意,我将不胜感激。

0 投票
1 回答
1267 浏览

c++ - 如何在 C++ 中克隆、构建和链接 g2o 框架

我想在 Ubuntu 18.04 上的 C++11 项目中使用 g2o 库,但我无法使构建工作。我有所有的依赖项。但我无法通过 CMakeLists.txt 将 g2o 库链接到我的项目

我是 C++ 依赖项的新手。

我已经尝试克隆https://github.com/RainerKuemmerle/g2o存储库并使用 cmake 构建它。

结构如下:

我将 g2o 内部的 cmake_modules 添加到 my_project 的 CMakeLists.txt 中,然后尝试使用 find_package 找到它,但没有找到。

我没有修改 findG2O.cmake,因为它在https://github.com/RainerKuemmerle/g2o/blob/master/cmake_modules/FindG2O.cmake

我应该更改 findG2O.cmake 吗?我真的不明白发生了什么。我应该如何着手构建源代码和链接?

我在 StackOverflow 上的任何地方都没有找到我的问题的准确答案,但也许我只是不知道我在寻找什么。

错误信息是:

当我尝试更改为 #include "../../config.h" 时,它起作用了。如何在 CMakeLists 中解决它,这样我就不必更改第三方库中的所有包含?

0 投票
1 回答
381 浏览

c++ - 如何使用 g2o 优化多约束函数

我目前正在尝试为 SLAM 优化多约束功能。经典优化功能可以最大限度地减少 g2o 的重投影错误,如https://fzheng.me/2016/03/15/g2o-demo/中提出的。

我的问题是我不知道如何修改这个 g2o 示例代码来联合优化两个约束(例如:1 个约束用于重投影误差和 1 个约束用于惯性误差)。

问候,

0 投票
1 回答
383 浏览

python - g2o - VertexSE3 和 VertexSE3Expmap 有什么区别?

我对 g2o 库真的很陌生,我正在努力为顶点添加姿势:(

我使用了 g2o 的 python 版本,这是我编写的代码。

类型错误发生在这一行:v_se3.set_estimate(pose)

错误说

我发现当我使用v_se3 = g2o.VertexSE3Expmap()而不是g2o.VertexSE3().

但我不确定究竟是什么g2o.VertexSE3Expmap()意思。

所以这些是我的问题,

  1. 为什么VertexSE3()不在这里工作?

  2. g2o.VertexSE3和 有什么区别g2o.VertexSE3Expmap

  3. 我应该怎么做才能用四元数(numpy数组)添加顶点?

谢谢

0 投票
0 回答
259 浏览

c++ - 如何在 cmake 文件中指定包位置?

我的Ubuntu 18.04 电脑上有同一个库 ( g2o ) 的两个版本。一个是catkin_make在 ROS 工作区 (/home/riccardo/catkin_ws/src/g2o) 中构建的。另一个在我正在尝试构建的项目的目录中(/home/myproject/g2o)。正如我所说,我正在尝试使用和 g2o 库的第二个版本构建myproject 。catkin_build但是,我看到catkin_build找到了 g2o 库的第一个版本,即 ROS 工作区中的那个。

我在myproject目录下有一个CMakeLists.txt,我尝试了不同的方法来指定确切的包位置:

  • 首先,我尝试过:

find_package(G2O REQUIRED PATHS ${PROJECT_SOURCE_DIR}/g2o)

在这种情况下,错误如下:

  • 然后,我还尝试了:

在这种情况下,使用了另一个 g2o 版本。

你能帮我吗?

编辑 1

我认为 Stackoverflow 上有一个相关问题: How to clone, build, and link g2o framework in C++ 但是我没有${CMAKE_PREFIX_INTALL}/home/user/ 中指定的目录。我不明白我必须做什么...

编辑 2

为了构建和安装 g2o 库,我在 g2o 根目录中启动了以下命令:

  • mkdir 构建
  • 光盘构建
  • 制作../
  • 制作
0 投票
0 回答
106 浏览

visual-studio-2019 - 在 Windows 的发布模式下,本征矩阵产品在 ORB-SLAM3 中无法正常工作

问题的整体情况如下:

我从https://github.com/rexdsp/ORB_SLAM3_Windows克隆了 ORB-SLAM3 。它可以构建并且运行良好。然后我尝试用 EuRoC MH_01_easy 评估它的准确度,但发现它在发布模式下至少比论文中报告的准确度差 10 倍。经过几天的调试,我发现原因在下面的函数中:

该函数在release模式下无法正常工作,如日志所示:(Jac是projectJac在其他函数中打印的内容)</p>

江淮汽车:6.586051 0.000000 5.789042

江淮:0.000000 6.566550 -0.414389

S:0.000000 69.640217 -4.394719 1.000000 0.000000 0.000000

S:-69.640217 0.000000 -61.212726 0.000000 1.000000 0.000000

S: 4.394719 61.212726 0.000000 0.000000 0.000000 1.000000

j: 25.478939 354.888530 0.000000 -0.000000 -0.000000 5.797627

j: -2.092870 -29.150968 0.000000 -0.000000 -0.000000 -0.476224

整个系统在Debug模式下正常工作,准确度与论文报告的结果相近。而上述函数的日志如下:

江淮汽车:6.586051 0.000000 5.789042

江淮:0.000000 6.566550 -0.414389

S:0.000000 69.640217 -4.394719 1.000000 0.000000 0.000000

S:-69.640217 0.000000 -61.212726 0.000000 1.000000 0.000000

S: 4.394719 61.212726 0.000000 0.000000 0.000000 1.000000

j: -25.441210 -813.017008 28.943840 -6.586051 -0.000000 -5.789042

j: 459.117113 25.365882 401.956448 0.000000 -6.566550 0.414389

你以前遇到过这种问题吗?你能告诉我这个问题的原因吗?我猜这是由编译器设置引起的。谁能告诉我如何解决这个问题?

非常感谢。

嗨,我更改了 projectJac 的声明,整个系统工作正常。我的更改如下:

原来的:

修改:

函数projectJac的定义如下:

现在很明显该错误是由“自动”引起的。你能告诉我这是什么原因吗?我应该如何更改 Visual Studio 2019 中的设置以使“自动”正常工作?非常感谢。

0 投票
0 回答
40 浏览

linear-algebra - 如何计算二维位姿图优化的信息矩阵

我正在用 g2o 解决 2D 位姿图优化问题。

'.g2o' 文件同时包含 VERTEX_SE2 和 EDGE_SE2。

EDGE_SE2 的格式是EDGE_SE2 IDout IDin t_x t_y theta I11 I12 I13 I22 I23 I33.

最后 6 个元素代表一个 3×3 对称信息矩阵。

我的问题是如何计算这个信息矩阵(即最后 6 个元素)。