最近在win7系统下依赖pcl/io,pcl/visualization完成了三维真彩色点云重建任务,现开始转过来分析pcl/segmentation这一块儿了,期许能用它完成机器人视觉导航的任务. 这里罗列两篇前辈写的用PCL让PR2机器人找门把手开门的文献:
<<Laser-based Perception for Door and Handle Identification>>
<<Autonomous Door Opening and Plugging In with a Personal Robot>>
依旧从运行官网范例入手,在vs2010中,跑tutorials/Cylinder model segmentation时,编译能通过,可运行时却老报错:vector subscript out of range! 能生成plane.pcd,却不能正常生成cylinder.pcd.我尝试改写文件流,把源文件的点数减少一万个以后,还是会出现类似的错误.(早就听闻了PCL占用资源的功能厉害,再加一个庞大的VS,也许已经使我2G内存的机器转不开,又或许是win7系统的其他原因,现在我依然不是很明确.)被迫转到了ubuntu下,早前在我自己的机子上就安装好了ubuntu10.04+ROS,PCL作为ROS的附属包也安装了低版本.具体是:头文件在/usr/include目录下, /usr/lib则存放着相应的动(.so)静(.a)态库文件.在ubuntu10.04中,图形化交互界面的CMake已安装在了应用程序中,我只需要将cylinder_segmentation.cpp和对应的CMakeLists.txt的路径添加到source code 路径下,选一个binaries生成路径(这里,我默许它和cylinder_segmentation.cpp放在同一个目录下),点configure,进行编译配置,会多生成如下文件:
再点Generate,就会生成相关所需的Makefile文件.
在终端将路径移到当前Makefile文件所在目录下,使用$make命令,则生成cylinder_segmentation可执行文件.
生成可执行文件后,只需使用命令$ ./cylinder_segmentation来运行它,即可.