我最熟悉的是点云的SLAM映射,通常采用矢量形式,如$ $。我也了解如何使用EKF创建这样的地图。

今天,我遇到了.graph文件格式,正如您所期望的那样,该文件格式由顶点和边组成:

VERTEX2 id x y orientation

EDGE2 observed_vertex_id observing_vertex_id forward sideward rotate inf_ff inf_fs inf_ss inf_rr inf_fr inf_sr

我知道矩阵和图之间存在联系(例如,邻接矩阵)。但是我不清楚地图的这种图形格式如何等同于我所熟悉的点云地图。

是什么关系?顶点既是姿势又是地标?它们在全球参考框架中吗?如何从诸如速度信息和距离/方位传感器创建?在图谱图和点云之间有转换吗?

#1 楼

就像在文件格式的描述中所说的,它是基于图的SLAM方法。这些工作使姿势约束网络的误差最小。您可以这样考虑:有许多参考框架(您的顶点),然后您对这些框架之间的转换有所了解。这些转换与不确定性相关。姿势图优化框架,例如在给定约束的情况下,TORO,HogMan,G2O等将为您提供顶点位置的最大可能性。

在实际机器人术语中,这通常意味着:


每个机器人姿势$ p_k $在$ k $时都有自己的参考系,因此顶点
根据您的使用方法,您还可以添加界标作为顶点。但是您不必。
每当您获得有关两个姿势之间关系的新信息时,就将其添加到约束图中。例如。您的里程表将为您提供$ p_k $和$ p_ {k + 1} $之间的转换。
如果您的方法基于地标,则可以向地标添加转换。如果只知道地标的位置,则在变换的旋转信息上设置了很高的不确定性。
如果您的方法不了解地标,例如如果您有与ICP匹配的大点云,则可以将ICP结果添加到约束图中。

姿势约束通常存储为大小为$ n \ times $$的稀疏矩阵,其中$ n $是图形中顶点的数量(再次是机器人的姿势和地标)。

文件格式本身提供了VERTEX2(对于2D模型)和VERTEX3(对于3D模型)的顶点位置的初步猜测。您不能将两者混在一起。
添加了约束,以便您指定from_idto_id给出的参考帧(顶点)之间的变换。由EDGE2EDGE3给出的变换是欧拉角的平移和旋转,以及不确定性的信息矩阵。在这种情况下,信息矩阵是变换矢量$ [x \,y \,z \,\ text {roll} \,\ text {pitch} \,\ text {yaw}] $的协方差矩阵的逆。

取决于您的框架,通常其中一个顶点是基于全局参考框架的。

基于图的姿势图优化器被视为SLAM后端。您如何生成约束例如从您的范围数据是一个前端问题。这些讲义中有一个很好的概述。

#2 楼

有一个论坛帖子,其中包含有关格式的更多澄清信息。看起来图节点的值是对自身姿势的初始估计,并且边缘对姿势约束进行了编码,如信息过滤器(卡尔曼过滤器的对偶)所表示。

根据我的判断,这张图格式仅包含自身姿势信息,不包含地标,因此不会从点云图直接转换。

评论


$ \ begingroup $
请说明姿势信息和地标之间的区别。通常,地标是根据其姿势估算的。
$ \ endgroup $
–乔什·范德·胡克(Josh Vander Hook)
13年1月13日在22:27

$ \ begingroup $
在同时进行定位和制图的过程中,通常会保持对自己在环境中移动的位置和方向的估计,以及通常被认为是固定的,通常被认为是固定的环境中几个可识别点的估计。以作为地标。对地标的准确姿势估计有助于减少个人姿势的不确定性,反之亦然。我所说的姿势信息是对自身姿势的约束,尽管可以想象它们实际上是从涉及地标的计算中得出的。
$ \ endgroup $
–surtur
13年1月14日在14:13