Graph-slam(二)

1.3 Building Up the Graph
Suppose we are given a set of measurements z1:t with associated correspondence variables c1:t , and a set of controls u1:t . GraphSLAM turns this data into a graph. The nodes of this graph are the robot poses x1:t and the features in the map m = mj . Each edge in the graph corresponds to an event: a motion event generates an edge between two robot poses, and a measurement event creates a link between a pose and a feature in the map. Edges represent soft constraints between poses and features in GraphSLAM.
For a linear system, these constraints are equivalent to entries in an information matrix and an information vector of a large system of equations. As usual, we will denote the information matrix by Ω and the information vector by ϵ . As we shall see below, each measurement and each control leads to a local update of Ω and ϵ , which corresponds to a local addition of an edge to the graph in GraphSLAM. In fact, the rule for incorporating a control or a measurement into Ω and ϵ is a local addition, paying tribute to the important fact that information is an additive quantity.
Figure 2 illustrates the process of constructing the graph along with the corresponding information matrix. First consider a measurement zit . This measurement provides information between the location of the feature j=cit and the robot pose xt at time t. In GraphSLAM, this information is mapped into a constraint between xt and mj .We can think of this edge as a (possibly degenerate) “spring” in a spring-mass model. As we shall see below, the constraint is of the type:

(ztih(xt,mj,i))TQt1(ztih(xt,mj,i))

Here h is the measurement function, and Qt is the covariance of the measurement noise. Figure 2(a) shows the addition of such a link into the graph maintained by GraphSLAM. Note that the constraint may be degenerate, that is, it may not constrain all dimensions of the robot pose xt . This will be of no concern for the material yet to come.
In information form, the constraint is incorporated into Ω and ϵ by adding values between the rows and columns connecting xt1 and xt . The magnitude of these values corresponds to the stiffness of the constraint, as governed by the uncertainty covariance Qt of the motion model. This is illustrated in Figure 2(b), which shows the link between two robot poses along with the corresponding element in the information matrix.
Now consider robot motion. The control ut provides information about the relative value of the robot pose at time t −1 and the pose at time t. Again, this information induces a constraint in the graph, which will be of the form:
(xtg(ut,xt1))TRt1(xtg(ut,xt1))

Here g is the kinematic motion model of the robot, and Rt is the covariance of the motion noise. Figure 2(b) illustrates the addition of such a link in the graph. It also shows the addition of a new element in the information matrix, between the pose xt and the measurement zti . This update is again additive. As before, the magnitude of these values reflects the residual uncertainty Rt due to the measurement noise; the less noisy the sensor, the larger the value added to Ω and ϵ . After incorporating all measurements z1:t and controls u1:t , we obtain a sparse graph of soft constraints. The number of constraints in the graph is linear in the time elapsed, hence the graph is sparse. The sum of all constraints in the graph will be of the form:
JGraphSLAM=x0TΩ0x0+t(xtg(ut,xt1))TRt1(xtg(ut,xt1))+ti(ztih(yt,cti,i))TQt1(ztih(yt,cti,i))

It is a function defined over pose variables x1:t and all feature locations in the map m. Notice that this expression also features an anchoring constraint of the form x0TΩ0x0 . This constraint anchors the absolute coordinates of the map by initializing the very first pose of the robot as (0,0,0)T .
In the associated information matrix , the off-diagonal elements are all zero with two exceptions: between any two consecutive poses xt1 and xt will be a non-zero value that represents the information link introduced by the control ut . Also non-zero will be any element between a map feature mj and a pose xt , if mj was observed when the robot was at xt .All elements between pairs of different features remain zero.This reflects the fact that we never receive information pertaining to their relative location—all we receive in SLAM are measurements that constrain the location of a feature relative to a robot pose. Thus, the information matrix is equally sparse; all but a linear number of its elements are zero.

Cartographer主要理论是通过闭环检测来消除构图过程中产生的累积误差[1]。用于闭环检测的基本单元是submap。一个submap是由一定数量的laser scan构成。将一个laser scan插入其对应的submap时,会基于submap已有的laser scan及其它传感器数据估计其在该submap中的最佳位置。submap的创建在短时间内的误差累积被认为是足够小的。然而随着时间推移,越来越多的submap被创建后,submap间的误差累积则会越来越大。因此需要通过闭环检测适当的优化这些submap的位姿进而消除这些累积误差,这就将问题转化成一个位姿优化问题。当一个submap的构建完成时,也就是不会再有新的laser scan插入到该submap时,该submap就会加入到闭环检测中。闭环检测会考虑所有的已完成创建的submap。当一个新的laser scan加入到地图中时,如果该laser scan的估计位姿与地图中某个submap的某个laser scan的位姿比较接近的话,那么通过某种 scan match策略就会找到该闭环。Cartographer中的scan match策略通过在新加入地图的laser scan的估计位姿附近取一个窗口,进而在该窗口内寻找该laser scan的一个可能的匹配,如果找到了一个足够好的匹配,则会将该匹配的闭环约束加入到位姿优化问题中。Cartographer的重点内容就是融合多传感器数据的局部submap创建以及用于闭环检测的scan match策略的实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值