pcl

pcl总结

断了今生、忘了曾经 提交于 2020-03-01 20:55:23
基本用法1、pcl功能介绍(解释各个模块和功能)2、开始/基本结构(介绍pcl基本数据结构和相关代码示例) 3、在自己项目中使用PCL(如何使用cmake PCL链接自己的项目) 4、如何编译PCL在POSIX / Unix系统。 5、解释PCL的cmake选项(基本的PCL cmake选项,以及如何调整以适应您的项目) 6、在windows上源代码构建pcl的依赖性 7、在windows上源码编译PCL 8、从MacPorts在Mac OS X上编译PCL及其依赖项和源 9、如何安装点云库在Mac OS X上使用自制程序 10、如何让你的PCL在Eclipse中作为一个项目 11、为PCL生成本地文件 12、矩阵变换点云 高级用法1、添加自定义point类型(解释了模板化点类型在PCL,为什么他们存在,以及如何创建和使用自己的PointT点类型) 2、编写新的PCL类(这个简短的指南作为HowTo和FAQ编写新的PCL类,从头开始,或者通过调整旧的代码) 应用程序 1、覆盖前面的教程可以组合解决一个更高层次的问题,调整之前捕获模型对象的一些新捕获的数据。 2、如何将视点特征直方图(VFH)描述符可以用来识别相似集群的几何学。 3、如何通过网络发送点云数据从一个桌面服务器到客户机运行在移动设备上 4、检测人与RGB-D地平面数据 特性1、PCL3 d功能如何工作(3D功能的评估方法

pcl总结

冷暖自知 提交于 2020-03-01 20:34:55
基本用法1、pcl功能介绍(解释各个模块和功能)2、开始/基本结构(介绍pcl基本数据结构和相关代码示例) 3、在自己项目中使用PCL(如何使用cmake PCL链接自己的项目) 4、如何编译PCL在POSIX / Unix系统。 5、解释PCL的cmake选项(基本的PCL cmake选项,以及如何调整以适应您的项目) 6、在windows上源代码构建pcl的依赖性 7、在windows上源码编译PCL 8、从MacPorts在Mac OS X上编译PCL及其依赖项和源 9、如何安装点云库在Mac OS X上使用自制程序 10、如何让你的PCL在Eclipse中作为一个项目 11、为PCL生成本地文件 12、矩阵变换点云 高级用法1、添加自定义point类型(解释了模板化点类型在PCL,为什么他们存在,以及如何创建和使用自己的PointT点类型) 2、编写新的PCL类(这个简短的指南作为HowTo和FAQ编写新的PCL类,从头开始,或者通过调整旧的代码) 应用程序 1、覆盖前面的教程可以组合解决一个更高层次的问题,调整之前捕获模型对象的一些新捕获的数据。 2、如何将视点特征直方图(VFH)描述符可以用来识别相似集群的几何学。 3、如何通过网络发送点云数据从一个桌面服务器到客户机运行在移动设备上 4、检测人与RGB-D地平面数据 特性1、PCL3 d功能如何工作(3D功能的评估方法

PCD地图转换

旧街凉风 提交于 2020-02-27 14:56:14
为了得到合适的地图(与GNSS数据融合、地图拼接等),有时需要对生成的三维地图进行转换:平移、翻转等等 void transform_(const std::string& pcd_path) { Eigen::Matrix4d transformation_; Eigen::Matrix4d trans; Eigen::Vector3d v1(axis_x1,axis_y1,axis_z1); Eigen::Vector3d v2(axis_x2,axis_y2,axis_z2); double angle = M_PI*(axis_angle/180.0); rotate_arbitrary_line(trans,v1,v2,angle); transformation_ = trans.transpose(); Eigen::Matrix4d transform_1 = Eigen::Matrix4d::Identity(); transform_1 (0,3) = t_x; transform_1 (1,3) = t_y; transform_1 (2,3) = t_z; transformation_ = transformation_*transform_1; pcl::PointCloud<pcl::PointXYZ>::Ptr source_cloud (new

Ubuntu16.04 PCL库安装

你离开我真会死。 提交于 2020-02-21 04:11:15
PCL库安装: 以下是十四讲里的方法: sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl sudo apt-get update sudo apt-get install libpcl-all 我执行第一行的时候就没成功,然后就去网上找了一下安装方法。 先安装各种依赖 sudo apt - get update sudo apt - get install git build - essential linux - libc - dev sudo apt - get install cmake cmake - gui sudo apt - get install libusb - 1.0 - 0 - dev libusb - dev libudev - dev sudo apt - get install mpi - default - dev openmpi - bin openmpi - common sudo apt - get install libflann1 . 8 libflann - dev sudo apt - get install libeigen3 - dev sudo apt - get install libboost - all - dev 其他依赖 sudo apt -

PCL入门第三节2020.02.19

可紊 提交于 2020-02-19 23:09:44
PCL文件的IO操作 读取文件 # include <iostream> # include <pcl/io/pcd_io.h> //PCD读写类的相关文件 # include <pcl/point_types.h> //PCL中支持的点类型头文件 int main ( int argc , char * * argv ) { pcl :: PointCloud < pcl :: PointXYZ > :: Ptr cloud ( new pcl :: PointCloud < pcl :: PointXYZ > ) ; //创建一个PointCloud<PointXYZ> boost共享指针并进行实例化 if ( pcl :: io :: loadPCDFile < pcl :: PointXYZ > ( "test_pcd.pcd" , * cloud ) == - 1 ) //用二进制进行读取 ,打开点云文件 { PCL_ERROR ( "Couldn`t read file test_pcd.pcd\n" ) ; return ( - 1 ) ; } //sensor_msgs::PointCloud2cloud_blob;//PoointCloud2适合版本低的点云文件 //pcl::io::loadPCDFile("test_pcd.pcd,cloud_blob");

Qt+vtk配置属性表

别来无恙 提交于 2020-02-15 08:26:38
最初在用Qt显示点云时,每次新建项目都要配置目录,十分麻烦。最近突然意识到可以新建一个属性表,每次引用属性表就行了。这教会了我们做事要灵活变通。 1.新建工程 2.将解决方案配置为Release X64 我的vtk被编译成了Release版本 3.打开属性管理器 可以再视图-》其他窗口-》属性管理器找到 4.右击Release X64,添加新项目属性表,名字自拟 5.双击刚才建的属性表,进行编辑 在【连接器】-》【常规】的附加库目录中按格式添加D:\Qt5.11.2\5.11.2\msvc2015_64\lib,这样可以防止新建项目出现波浪线错误。 在【VC++】的包含目录中,按以下方式添加 在库目录中,按以下方式添加 点击【链接器】、【输入】,在附加依赖项中添加 、 具体如下: pcl_tracking_release . lib pcl_stereo_release . lib pcl_people_release . lib pcl_surface_release . lib pcl_segmentation_release . lib pcl_outofcore_release . lib pcl_keypoints_release . lib pcl_recognition_release . lib pcl_visualization_release . lib pcl

VS2015+PCL1.81+Qt5.11.2配置VTK8.00完整方案

五迷三道 提交于 2020-02-10 17:47:53
第一次写博文,条理可能不太清楚。最近想要用Qt5制作一个GUI界面,用来显示pcl点云数据。在配置VTK的过程中碰到了许多坑,在此与大家分享,希望对大家有所帮助。 VS2015+PCL1.81+Qt5.11.2配置VTK8.00完整方案 1.前期介绍 2.CMake安装 3.CMake编译vtk 4.VS编译CMake编译后的vtk 5.VS配合QVTKWidget显示点云数据 1.前期介绍 软件信息: Visual Studio 2015_64 pcl 1.8.1 Qt 5.11.2 VTK 8.00 CMake 3.10 四者的关系: VS不用多说,集成开发环境;pcl为点云处理的库,提供了对点云处理的函数;Qt为跨品台的GUI制作工具;Qt中没有很好显示点云的控件,需要用CMake将vtk编译为QVTKWidget控件,以供Qt调用。 接下来的任务: 在这里我假设读者现在VS中已经配置好了pcl,Qt,接下来着重介绍vtk的编译安装过程。 安装vtk有两种方式,一是用CMake自己编译vtk,也就是我接下来要讲的方法,比较麻烦;另一种是下载别人编译好的vtk(一定要注意版本,版本差别太大可能用不了),使用我编译好的vtk直接替换掉PCL1.8.1\3rdParty\VTK就行了,这种方法没有试过,不保证成功。 这里附下参考博文和我编译好的vtk网盘连接: https:/

kdTree相关原理及c++实现

会有一股神秘感。 提交于 2020-02-06 03:12:59
kdTree概念 kd-tree或者k维树是计算机科学中使用的一种数据结构,用来组织表示k维空间中点的集合。它是一种带有其他约束条件的二分查找树。Kd-tree对于区间和近邻搜索十分有用。一般位于三维空间中的邻域搜索常用kd-tree,因此本文中所有的kd-tree都是三维的kd-tree。 图一 Kd-tree也是二叉树的一种,首先我们先选定一个维度用于第一次分类,如图一所示,我们先选择x维度方向作为分类方向,随机选取一个值使得小于该值的点位于左边,大于该值的点位于右边。在左右区域分别再对第二个维度进行分类,这里以y轴方向作为第二维度,同理根据y分类设置z轴方向为第三维度进行分类。 Kd-tree数据结构定义 Node-data :数据矢量,数据集中某个数据点,是n维矢量(总维度,unsigned int) Range :空间矢量,该节点所代表的的空间范围(二维数组) Split :整数,垂直于分割超平面的方向轴序号(int) Left :k-d树,由位于该节点分割超平面左侧子空间内所有点构成的k-d树(tuple<list,int>) Right :k-d树,由位于该节点分割超平面右侧子空间内所有点构成的k-d树(tuple<list,int>) Paren t:k-d树,父节点(auto) Kd-tree优化 方案一:Kd-tree通过不同维度划分数据,节点的选择显得尤为重要

PCL1.8.1 + VS 2017 + win 10点云环境配置及部分问题解决方法

陌路散爱 提交于 2020-02-04 02:15:11
环境搭建 首先下载文件,两个都要下 PCL-1.8.1-AllInOne-msvc2017-win64.exe pcl-1.8.1-pdb-msvc2017-win64.zip 看了一些教程,都没有配好,后来在B站发现了一个良心UP主,最终是按照他的视频配置的环境。`` 首先放两个文本,直接复制分别放入两个txt即可,看完视频就知道怎么用了,省得一会儿再找。 配置文件 系统变量: %PCL_ROOT%\bin %PCL_ROOT%\3rdParty\VTK\bin %PCL_ROOT%\3rdParty\FLANN\bin %OPENNI2_REDIST64% %PCL_ROOT%\3rdParty\Qhull\bin %PCL_ROOT%\3rdParty\OpenNI2\Tools VS: 1.属性->VC++目录->包含目录和源目录 $(PCL_ROOT)\include\pcl-1.8;$(PCL_ROOT)\3rdParty\Boost\include\boost-1_64;$(PCL_ROOT)\3rdParty\Eigen\eigen3;$(PCL_ROOT)\3rdParty\FLANN\include;$(PCL_ROOT)\3rdParty\Qhull\include;$(PCL_ROOT)\3rdParty\VTK\include\vtk-8.0;$(PCL

Turtlebot2 rgbdslam_v2环境配置

好久不见. 提交于 2020-02-02 14:07:18
Turtlebot2 rgbdslam_v2环境配置 创建一个工作空间,编译一遍 下载rgbdslam_v2代码包 安装g2o的依赖 创建eigen工作空间 创建g2o工作空间 配置g2o代码包中的CMakeLists.txt文件 编译g2o工作空间 下载PCL1.8(点云库:Point Cloud Library) 配置PCL,使其支持C++2011 编译PCL 配置rgbdslam_v2 编译rgbdslam_v2 环境测试 查看地图 有关博客参考: 创建一个工作空间,编译一遍 $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws $ catkin_make 下载rgbdslam_v2代码包 $ cd ~/catkin_ws/src $ wget -q http://github.com/felixendres/rgbdslam_v2/archive/kinetic.zip $ unzip kinetic.zip (把解压出来的文件名更改为rgbdslam_v2) $ sudo cp -a ~/catkin_ws/src/rgbdslam_v2 /opt/ros/kinetic/share 安装g2o的依赖 $ sudo apt-get install libsuitesparse-dev 创建eigen工作空间 $ mkdir ~/src $