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

点云技术相关产学研社区

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

扫一扫,访问微社区

查看: 19432|回复: 45

ndt例程运行成功!欢迎一起讨论相关问题!

[复制链接]
发表于 2014-11-9 11:17:37 | 显示全部楼层 |阅读模式
http://www.pointclouds.org/docum ... ributions-transform

我就是试验这个链接里面的demo了,在《点云库pcl学习教程》这本书的第13.3.3小节。

真的好郁闷,各种问题各种有,问了好多人,搜了好多地方也没啥进展,现在搞定了,跟大家分享一下这个过程。

开始的时候按着官网的稳定低配(1.6.0的all in one 安装包和上面表格里的各种傻瓜安装包),很多书上的例子都跑着没啥问题,试验这个NDT的时候出问题了,找不到ndt.h,额……这真是好郁闷……

没办法,我在1.7以上的pcl源码包里面看见了这个头文件和registration这个模块,真的好高兴啊!速度编译配置起来!(=.=!!真不想告诉大家,我这破电脑编译1.7.2用了整整一通宵加一早上:'()

然后build NDT例程呀……过了!灰常开心有木有!!就这样,欣欣然的按下了F5(我用vs2010),orz……长跪不起,vector访问越界……泥煤,各路求爷爷告奶奶的找,解决了一些小问题,但是对这个访问跨界一点办法也没有……

逼我放大招是不是?!单步调试打断点……F9\F10\F11之间切换找到了问题出在nn_index.h文件中三百四十多行的地方,临近点搜索的函数有bug,这个文件在Flann的algorithm目录下面,后来在Flann的官网http://www.cs.ubc.ca/research/flann/,发现Flann早就升级到1.8以上了,我还在用官网的1.7.1...这真是坑啊……下载了一个1.8.4,找了一下那个文件,它里面还真的把那个问题给修复了……

然后编译Flann的这个版本,然后又必须重新编译pcl1.7.2的源码包(不要问我为什么,我只能说,pcl的dll是以它们为底层编译出来的)……又是一个通宵,编译好了,然后各种路径配置好之后,跑通了……
回复

使用道具 举报

 楼主| 发表于 2014-11-9 11:46:13 | 显示全部楼层
配一张图……当然,我也不知道这样匹配起来的是不是对的……

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2014-11-11 15:58:57 | 显示全部楼层
恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-12 15:59:16 | 显示全部楼层
chrisfxz 发表于 2014-11-11 15:58
恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜恭喜 ...

谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢
回复 支持 反对

使用道具 举报

发表于 2015-1-12 14:34:07 | 显示全部楼层
你好 我编译flann时遇到一些问题,请问你是如何编译的 谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-22 13:50:01 | 显示全部楼层
callmeray 发表于 2015-1-12 14:34
你好 我编译flann时遇到一些问题,请问你是如何编译的 谢谢

是什么问题呢?我记得是用源码包里给的cmake文件直接就能生成工程,1.8.4版本的
回复 支持 反对

使用道具 举报

发表于 2015-3-10 09:55:17 | 显示全部楼层
MRQ您好!我是一个初学者,请问能不能把FLANN编译的详细步骤给出来,谢谢!
回复 支持 反对

使用道具 举报

发表于 2015-3-10 10:05:43 | 显示全部楼层
请问,找到ndt.h,就放到头文件的位置,然后CMAKE,再编译CPP,结果出现一个问题。normal_distributions_transform.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __thiscall pcl::VoxelGridCovariance<struct pcl::PointXYZ>::applyFilter(class pcl::PointCloud<struct pcl::PointXYZ> &)" (?applyFilter@?$VoxelGridCovariance@UPointXYZ@pcl@@@pcl@@MAEXAAV?$PointCloud@UPointXYZ@pcl@@@2@@Z)
2>D:\pclndt\cmake-bin\Debug\normal_distributions_transform.exe : fatal error LNK1120: 1 个无法解析的外部命令
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-10 10:10:26 | 显示全部楼层
gaoyqsmart 发表于 2015-3-10 10:05
请问,找到ndt.h,就放到头文件的位置,然后CMAKE,再编译CPP,结果出现一个问题。normal_distributions_tr ...

ndt.h文件也需要编译的,整个库编译好了会有相互引用dll的情况,只把.h文件放在工程路径下,环境是不会索引该文件的,很有可能根据工程配置又回到pcl路径寻找相应的函数,然后在dll里找不到,不过你可以试试新建一个头文件把要用的函数什么的从库文件中拿出来放进去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-10 10:13:56 | 显示全部楼层
gaoyqsmart 发表于 2015-3-10 09:55
MRQ您好!我是一个初学者,请问能不能把FLANN编译的详细步骤给出来,谢谢! ...

编译flann和从源码编译pcl是一样的呀,在官网上找到源码包,都有cmake的配置文件,然后用cmake生成工程,然后build该就行了呀,需要注意的是编译出来的flann名字什么的可能会有变化,在input库文件(.lib)的时候注意下名字
回复 支持 反对

使用道具 举报

本版积分规则

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

GMT+8, 2025-4-26 22:40 , Processed in 3.213352 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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