关于libpointmatcher

安装完成后其api文档目录

/usr/local/share/doc/libpointmatcher/api/html/index.html

可用命令

firefox /usr/local/share/doc/libpointmatcher/api/html/index.html

打开


其参考文献为

Tracking a Depth Camera: Parameter Exploration for Fast ICP

ICP

libpointmatcher中,每一个模块都是一个类,每一个类会定义一些自己的控制参数,所以使用一个yaml文件来输入控制参数.

ICP的输入为两个点云,输出是两个点云之间的旋转和平移变换的估计.一般称第一个点云叫做参考点云(reference),第二叫reading(怎么翻译?). ICP首先会对两幅点云做滤波处理(PointMatcher::DataPointsFilters) ,然后对两幅点云进行匹配(PointMatcher::Matcher),去掉外围点(PointMatcher::OutlierFilters),计算能使配准误差最小(PointMatcher::ErrorMinimizer)的变换参数(PointMatcher::TransformationParameters) .


软件架构

所有的类都是PointMatcher的子类,它定义了点的类型,float或者double.


template<typename T>
struct PointMatcher< T >::DataPoints

点云保存点数据的类,包括feature和descriptor. feature主要是指它的坐标,可以用其次坐标来表示, descriptor是指该点的法向量,颜色等等。


对于DataPoints的初始化,features与featurelabels和descriptor和descriptorlabels要成对的出现,例如这个构造函数

PointMatcher<T>::DataPoints::DataPoints(const Matrix& features, const Labels& featureLabels, const Matrix& descriptors, const Labels& descriptorLabels)

成对的初始化了一个datapoints

添加一个目前名字为name维数为dim的不存在的descriptor

void PointMatcher<T>::DataPoints::allocateDescriptor(const std::string& name, const unsigned dim)

添加一个目前名字为name维数为dim的不存在的feature

void PointMatcher<T>::DataPoints::allocateFeature(const std::string& name, const unsigned dim)

eigen中matrix类的用到的函数:

void conservativeResize ( Index nbRows, Index nbCols )  在保留原来的数据下重新改变矩阵大小






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值