线特征基础知识

线特征基础知识

最近在研究线特征相关的SLAM问题,学习了相关的基础知识,在此做个总结。以前一直都是研究基于点的SLAM算法,对于线的SLAM了解不是很多。经过阅读相关的文章,发现最近研究基于点和线特征的文章很多,前年和去年就有好几篇IROS的文章是研究点和线SLAM的。


点、线和平面的表示

首先介绍点、线和平面的表示方法,由于点可以由下面的两种方式得到:空间中的两个点确定一条线;两个不平行平面相交得到一条直线。
空间中的一个点可以由坐标 X=[x,y,z]T X = [ x , y , z ] T 表示,也可以由齐次坐标为 X=[x,y,z,w]T X _ = [ x _ , y _ , z _ , w _ ] T 表示。齐次坐标系 X=[x,y,z,w]T X _ = [ x _ , y _ , z _ , w _ ] T 等价于 X=[x/w,y/w,z/w,1]T=[X,1]T X _ = [ x _ / w _ , y _ / w _ , z _ / w _ , 1 ] T = [ X , 1 ] T
空间中的一条线 L L 可以由两个点 p=X1=[x1,y1,z1,w1]T p = X _ 1 = [ x _ 1 , y _ 1 , z _ 1 , w _ 1 ] T q=X2=[x2,y2,z2,w2]T q = X _ 2 = [ x _ 2 , y _ 2 , z _ 2 , w _ 2 ] T 确定

L=[X1×X2w2X1w1X2]=[nv]R6 L = [ X 1 × X 2 w 2 X 1 − w 1 X 2 ] = [ n v ] ∈ R 6

其中 n n 是经过原点、p q q 的平面的法向量,v是直线的方向向量。
线 L=[nv] L = [ n v ] 做线的Plucker表示方式,其中 nTv=0 n T v = 0
已知空间中某个点以及其方向向量,可以得到线的另外一种表示方法, L^=[av]=[v×nv2v] L ^ = [ a v ] = [ v × n ‖ v ‖ 2 v ] ,其中 a a 为坐标系原点到直线距离最近的点。
平面π由4维的向量表示,经过点 p1=X1 p 1 = X 1 p2=X2 p 2 = X 2 p3=X3 p 3 = X 3 的平面为
π=[(X1X3)×(X2X3)XT3(X1×X2)] π = [ ( X 1 − X 3 ) × ( X 2 − X 3 ) − X 3 T ( X 1 × X 2 ) ]

线的另外一种表达方式为四个元素的正交表示 (U,W)SO3×SO2 ( U , W ) ∈ S O 3 × S O 2 ,这种表示由于没有冗余参数,不存在约束,从而适合做为后端优化的表示方式。
线 L=[nv] L = [ n v ] 转换成正交表示参数的公式为
[n|v]=[nnvvn×vn×v][n00v]=U[n00v] [ n | v ] = [ n ‖ n ‖ v ‖ v ‖ n × v ‖ n × v ‖ ] [ ‖ n ‖ 0 0 ‖ v ‖ ] = U [ ‖ n ‖ 0 0 ‖ v ‖ ]

矩阵 U=[nnvvn×vn×v]SO3 U = [ n ‖ n ‖ v ‖ v ‖ n × v ‖ n × v ‖ ] ∈ S O 3 是一个正交矩阵,


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值