【ORBSLAM2点线融合】点特征图模型构建

本文介绍了在SLAM中如何构建基于点特征的图优化模型,详细推导了点特征重投影误差关于相机位姿增量和三维点坐标的雅克比矩阵,并探讨了在g2o中如何实现这些优化。
摘要由CSDN通过智能技术生成

在SLAM中,通常用BA(Bundle Adjustment)来实现多个三维点和不同相机位姿的优化
本文描述如何建立基于点特征的图优化,并推导相应的雅克比矩阵,并用g2o实现相应的类

1. 点特征误差及观测模型

假设相机位姿为 T c w T_{cw} Tcw表示世界坐标系到相机坐标系的变换,或者表示成 R c w , t c w R_{cw},t_{cw} Rcw,tcw。三维空间点表示成
世界坐标下 P w = [ P x w , P y w , P z w ] T P^{w}=\begin{bmatrix} P^{w}_{x}, P^{w}_{y}, P^{w}_{z}\end{bmatrix}^{T} Pw=[Pxw,Pyw,Pzw]T
相机坐标下 P c = [ P x c , P y c , P z c ] T P^{c}=\begin{bmatrix} P^{c}_{x}, P^{c}_{y}, P^{c}_{z}\end{bmatrix}^{T} Pc=[Pxc,Pyc,Pzc]T
相机内参为 K K K
重投影误差为 e p = p − p ′ = [ u v ] − [ u ′ v ′ ] e_{p}=p-p^{'}=\begin{bmatrix} u \\ v\end{bmatrix}-\begin{bmatrix} u^{'} \\ v^{'}\end{bmatrix} ep=pp=[uv][uv]
其中 p p p为当前图像中提取的点, p ′ p^{'} p为与 p p p匹配的三维空间点的投影点,计算方式为
P c = R c w P w + t c w u ′ = f x P x c P z c + c x v ′ = f y P y c P z c + c y \begin{aligned} P^{c}&=R_{cw}P^{w}+t_{cw} \\ u^{'} &= \frac {f_{x}P^{c}_{x}} {P^{c}_{z}}+c_{x} \\ v^{'} &= \frac {f_{y}P^{c}_{y}} {P^{c}_{z}}+c_{y} \end{aligned} Pcuv=RcwPw+tcw=PzcfxPxc+cx=PzcfyPyc+cy

2. 点特征重投影误差关于位姿增量的雅克比矩阵

利用链式法则,可以求得
∂ e p ∂ δ ξ = ∂ e p ∂ P c ∂ P c ∂ δ ξ \frac{\partial e_{p}}{\partial \delta\xi}=\frac{\partial e_{p}}{\partial P^{c}}\frac{\partial P^{c}}{\partial \delta\xi } δξep=PcepδξPc
下面分别计算等式右边两项

这里注意,这里需要涉及到矩阵求导,矩阵求导通常分为分子布局和分母布局,这两种情况只是表达形式的不同,本身并没有两样,下面统一都用分母布局,具体求导结果可以看这篇文章

第一部分
∂ e p ∂ P c = ∂ [ u − u ′ v − v ′ ] ∂ P c = [ ∂ ( u − u ′ ) ∂ P x c ∂ ( u − u ′ ) ∂ P y c ∂ ( u − u ′ ) ∂ P z c ∂ ( v − v ′ ) ∂ P x c ∂ ( v − v ′ ) ∂ P y c ∂ ( v − v ′ ) ∂ P z c ] = − [ f x P z c 0 f x P x c P z c 2 0 f y P z c f y P y c P z c 2 ] 2 × 3 \begin{aligned} \frac{\partial e_{p}}{\partial P^{c}}&= \frac{\partial \begin{bmatrix} u-u^{'}\\ v-v^{'}\end{bmatrix}}{\partial P^{c}} \\ &= \begin{bmatrix} \frac{\partial(u-u^{'})}{\partial P_{x}^{c}} & \frac{\partial(u-u^{'})}{\partial P_{y}^{c}} & \frac{\partial(u-u^{'})}{\partial P_{z}^{c}} \\ \frac{\partial(v-v^{'})}{\partial P_{x}^{c}} & \frac{\partial(v-v^{'})}{\partial P_{y}^{c}} & \frac{\partial(v-v^{'})}{\partial P_{z}^{c}} \end{bmatrix} \\ &= -\begin{bmatrix} \frac{f_{x}}{P_{z}^{c}} & 0 & \frac{f_{x}P_{x}^{c}}{P_{z}^{c2}} \\ 0 & \frac{f_{y}}{P_{z}^{c}} & \frac{f_{y}P_{y}^{c}}{P_{z}^{c2}} \end{bmatrix}_{2 \times 3} \end{aligned} Pcep=P

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值