一起做RGB-D SLAM (5)学习心得

本文解决了在使用PCL库进行点云处理时遇到的编译错误问题,包括成员函数未定义、类型未声明等,并提供了正确的头文件引入方式及源代码替换方案。

 在运行示例代码时出现了如下错误:

error: ‘transformPointCloud’ is not a member of ‘pcl’
  pcl::transformPointCloud(*original, *output, T.matrix());
  ^
/home/exbot/catkin_ws/src/slam/src/slamBase.cpp:178:8: error: ‘VoxelGrid’ in namespace ‘pcl’ does not name a type
 static pcl::VoxelGrid<PointT> voxel;
        ^
/home/exbot/catkin_ws/src/slam/src/slamBase.cpp:181:1: error: ‘voxel’ was not declared in this scope
 voxel.setLeafSize(gridsize, gridsize, gridsize);
 ^
make[2]: *** [src/CMakeFiles/slambase.dir/slamBase.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/slambase.dir/all] Error 2
make: *** [all] Error 2

出现该错误的原因是没有添加相应的头文件,只需在slamBase.h中增加下列头文件即可:

#include <pcl/common/transforms.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/filters/voxel_grid.h>

 

在编译的过程中出现了如下错误:

../../lib/libslambase.a(slamBase.cpp.o):(.rodata._ZTVN3pcl9VoxelGridINS_12PointXYZRGBAEEE[_ZTVN3pcl9VoxelGridINS_12PointXYZRGBAEEE]+0x48):对‘pcl::VoxelGrid<pcl::PointXYZRGBA>::applyFilter(pcl::PointCloud<pcl::PointXYZRGBA>&)’未定义的引用
collect2: error: ld returned 1 exit status
make[2]: *** [../bin/visualOdometry] 错误 1
make[1]: *** [src/CMakeFiles/visualOdometry.dir/all] 错误 2
make: *** [all] 错误 2

解决方案:找了很久我还是不知道为什么会出现这个错误,但是我把include目录下的slamBase.h、slam目录下的parameters.txt、src目录下的slamBase.cpp和visualOdometry.cpp替换为一起做RGB-D SLAM (5)源代码中相应的内容时,编译就成功了。

注:需要修改一下data的目录,修改为 /home/exbot/catkin_ws/src/slam/data即可(其中用户名替换为自己的用户名)。

 

最后附上最终运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cchangcs

谢谢你的支持~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值