请选择 进入手机版 | 继续访问电脑版

点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 24334|回复: 34

PCL中rigid点云配准典型路线

[复制链接]
发表于 2014-1-23 00:52:20 | 显示全部楼层 |阅读模式
本帖最后由 guohaolys 于 2014-1-23 00:58 编辑

最近开始做配准了,这个比较典型,感觉好就分享了。可惜我是non-rigid的数据,期待pcl出non-rigid的配准模块和deform的模块。
Hi,
I started working on an mapping project, which should create a map of partially overlapping pointclouds.
Today got my first program working.
Ich used NARF to extract keypoint with the 2 of the 5 Sample-PCD files which are mentioned in the tutorial "How to incrementally register pairs of clouds" -> http://www.pointclouds.org/documentation/tutorials/
The programm steps are:
1.Removing NAN-Points
2.Downsampling
3. NormalEstimation
4.NARF
5.FPFH-Descriptor
6.CorrespondenceEstimation
7.Rejecting the Correspondences with SAC
8. Transformation Estimation with SAC

while i was working with capture 3 and 4 i still worked very well. The alignment of cloud "capture0004" to cloud "capture0004" worked very well

(left: without aligning; right: after aligning)
but when i tried  to align "caputer0005" to "capture0001" it failed

Well the clouds are perfectly aligned at the wall-side and the bottom... but not keypoints are mentioned at the stairs

Could s.o. with more experience give me some advise? I choose NARF instead of SIFT because at this case i have no RGB-Information. The further Point-clouds which have to be aligned will be only partially overlaying, because of this i  thought icp wouldnt be the best choice.

Code:
回复

使用道具 举报

 楼主| 发表于 2014-1-23 01:01:09 | 显示全部楼层
忘记上传上贴的代码了。见附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册加入PCL中国点云技术相关产学研社区

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-6 00:23:34 | 显示全部楼层
guohaolys 发表于 2014-1-23 01:01
忘记上传上贴的代码了。见附件

上传的代码逻辑上,有问题,运行没问题。今天试了下。大家只能参考它的思路了,呵呵。改天改好了,上传个正确的。

点评

新建了一个新工程,把第十章的代码复制过去,编译遇到和此例相同问题,依然是无法解析pcl::Narfkeypoint符号。但第10章的例子用cmake做却没有问题  发表于 2015-1-28 21:13
代码你运行过?我添加了相应的头文件,编译时报错:无法解析外部符号pcl::Naftkeypoint,可是我已近包含了<pcl/keypoints/narf_keypoint.h>头文件,请问原因?   发表于 2015-1-28 15:16
回复 支持 反对

使用道具 举报

发表于 2014-3-24 10:21:15 | 显示全部楼层
guohaolys 发表于 2014-2-6 00:23
上传的代码逻辑上,有问题,运行没问题。今天试了下。大家只能参考它的思路了,呵呵。改天改好了,上传个 ...

朋友,有下文了么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-25 06:11:20 | 显示全部楼层
sdragon_163 发表于 2014-3-24 10:21
朋友,有下文了么?

恩,忘记这个事情了,
    //SAC
                double epsilon_sac = 0.1; // 10cm
                int iter_sac = 10000;
                pcl::registration::CorrespondenceRejectorSampleConsensus<pcl::PointXYZ> sac;
                //pcl::registration::corres
                sac.setInputCloud (cloud_src);
                sac.setTargetCloud (cloud_tgt);
                sac.setInlierThreshold (epsilon_sac);
                sac.setMaxIterations (iter_sac);
                sac.setInputCorrespondences (cor_all_ptr);
这段代码中的cloud设置的应该改为keypoint的cloud就行了。
回复 支持 反对

使用道具 举报

发表于 2014-3-28 10:12:26 | 显示全部楼层
guohaolys 发表于 2014-3-25 06:11
恩,忘记这个事情了,
    //SAC
                double epsilon_sac = 0.1; // 10cm

你的意思是更换成 keypoints_src 和 keypoints_tgt ?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-3 21:34:17 | 显示全部楼层
sdragon_163 发表于 2014-3-28 10:12
你的意思是更换成 keypoints_src 和 keypoints_tgt ?

嗯,它应该是对关键点进行用特征进行匹配,原始点云和关键点这里的序号不一样,并且也没有估计的特征啊。

点评

感觉好像不是,应该不用改,它不是排除错误估计嘛?深度图那块不是理解,为什么要加呢?  发表于 2015-8-10 20:51
回复 支持 反对

使用道具 举报

发表于 2014-4-8 19:54:19 | 显示全部楼层
能不能问一下,能不能把代码的头文件给贴上~谢谢啊
回复 支持 反对

使用道具 举报

发表于 2014-10-21 16:58:10 | 显示全部楼层
楼主你好,请问这个程序对于别的点云数据是否都能有较好的效果呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-25 12:07:42 | 显示全部楼层
大奔666 发表于 2014-10-21 16:58
楼主你好,请问这个程序对于别的点云数据是否都能有较好的效果呢?

也是看数据,一般的数据都可以的,我测试时用了好几组不同的数据。里面别全是平面之类的就行 。
回复 支持 反对

使用道具 举报

本版积分规则

QQ|小黑屋|点云技术相关产学研社区 ( 陕ICP备13001629号 )

GMT+8, 2022-8-10 16:24 , Processed in 2.126004 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表