1、ubuntu20.04.5配置PCL点云库

2023-05-16

基本思想:想学点云算法,陆续记录笔记和学习

一、配置系统环境

ubuntu@ubuntu:~$ sudo apt-get update
ubuntu@ubuntu:~$ sudo apt-get install -y git build-essential linux-libc-dev
ubuntu@ubuntu:~$ sudo apt-get install -y cmake cmake-gui
ubuntu@ubuntu:~$ sudo apt-get install -y libusb-1.0-0-dev libusb-dev libudev-dev
ubuntu@ubuntu:~$ sudo apt-get install -y mpi-default-dev openmpi-bin openmpi-common
ubuntu@ubuntu:~$ sudo apt-get install -y libflann1.9 libflann-dev 
ubuntu@ubuntu:~$ sudo apt-get install -y libeigen3-dev
ubuntu@ubuntu:~$ sudo apt-get install -y libboost-all-dev
ubuntu@ubuntu:~$ sudo apt-get install -y libqhull* libgtest-dev
ubuntu@ubuntu:~$ sudo apt-get install -y freeglut3-dev pkg-config
ubuntu@ubuntu:~$ sudo apt-get install -y libxmu-dev libxi-dev
ubuntu@ubuntu:~$ sudo apt-get install -y mono-complete
ubuntu@ubuntu:~$ sudo apt-get install -y libopenni-dev
ubuntu@ubuntu:~$ sudo apt-get install -y libopenni2-dev
ubuntu@ubuntu:~$ sudo apt-get install -y libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
ubuntu@ubuntu:~$ sudo apt-get install -y build-essential libgl1-mesa-dev libglu1-mesa-dev

二、下载对应的版本vtk和pcl

ubuntu@ubuntu:~$ wget https://vtk.org/files/release/7.1/VTK-7.1.1.zip
ubuntu@ubuntu:~$ cd VTK-7.1.1/
ubuntu@ubuntu:~/VTK-7.1.1$ mkdir build
ubuntu@ubuntu:~/VTK-7.1.1/build$ cd build/
ubuntu@ubuntu:~/VTK-7.1.1/build$ cmake ..
ubuntu@ubuntu:~/VTK-7.1.1/build$ make
ubuntu@ubuntu:~/VTK-7.1.1/build$ sudo make install

三、下载pcl

ubuntu@ubuntu:~$ wget https://codeload.github.com/PointCloudLibrary/pcl/tar.gz/refs/tags/pcl-1.12.0
ubuntu@ubuntu:~$ cd VTK-7.1.1/
ubuntu@ubuntu:~/pcl-1.12.0$ mkdir build
ubuntu@ubuntu:~/pcl-1.12.0/build$ cd build/
ubuntu@ubuntu:~/pcl-1.12.0/build$ cmake ..
ubuntu@ubuntu:~/pcl-1.12.0/build$ make
ubuntu@ubuntu:~/pcl-1.12.0/build$ sudo make install

四、测试demo-/home/ubuntu/pcl-pcl-1.12.0/examples/common/example_organized_point_cloud.cpp

cmakelists.txt

cmake_minimum_required(VERSION 3.16)
project(pcl_test)

find_package(PCL REQUIRED)

add_executable(pcl_test main.cpp)

target_link_libraries (pcl_test ${PCL_LIBRARIES})

测试代码

#include <iostream>

// PCL
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>

int
main ()
{
    // Setup the cloud
    using PointType = pcl::PointXYZ;
    using CloudType = pcl::PointCloud<PointType>;
    CloudType::Ptr cloud (new CloudType);

    // Make the cloud a 10x10 grid
    cloud->height = 10;
    cloud->width = 10;
    cloud->is_dense = true;
    cloud->resize(cloud->height * cloud->width);

    // Output the (0,0) point
    std::cout << (*cloud)(0,0) << std::endl;

    // Set the (0,0) point
    PointType p; p.x = 1; p.y = 2; p.z = 3;
    (*cloud)(0,0) = p;

    // Confirm that the point was set
    std::cout << (*cloud)(0,0) << std::endl;

    return (0);
}

测试结果

/home/ubuntu/CLionProjects/untitled1/cmake-build-debug/pcl_test
(0,0,0)
(1,2,3)

Process finished with exit code 0

五、测试展示

cmakelists.txt

cmake_minimum_required(VERSION 3.16)
project(pcl_test)

find_package(PCL REQUIRED)

add_executable(pcl_test main.cpp)

target_link_libraries (pcl_test ${PCL_LIBRARIES})

测试代码

#include <iostream>
#include <pcl/common/common_headers.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/parse.h>


int main(int argc, char **argv) {
    std::cout << "Test PCL !!!" << std::endl;

    pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
    uint8_t r(255), g(15), b(15);
    for (float z(-1.0); z <= 1.0; z += 0.05)
    {
      for (float angle(0.0); angle <= 360.0; angle += 5.0)
      {
	pcl::PointXYZRGB point;
	point.x = 0.5 * cosf (pcl::deg2rad(angle));
	point.y = sinf (pcl::deg2rad(angle));
	point.z = z;
	uint32_t rgb = (static_cast<uint32_t>(r) << 16 |
		static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
	point.rgb = *reinterpret_cast<float*>(&rgb);
	point_cloud_ptr->points.push_back (point);
      }
      if (z < 0.0)
      {
	r -= 12;
	g += 12;
      }
      else
      {
	g -= 12;
	b += 12;
      }
    }
    point_cloud_ptr->width = (int) point_cloud_ptr->points.size ();
    point_cloud_ptr->height = 1;

    pcl::visualization::CloudViewer viewer ("test");
    viewer.showCloud(point_cloud_ptr);
    while (!viewer.wasStopped()){ };
    return 0;
}

测试结果图

参考

PCLVisualizer — Point Cloud Library 0.0 documentation

ubuntu20.04下安装pcl_Yuannau_jk的博客-CSDN博客_ubuntu安装pcl

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1、ubuntu20.04.5配置PCL点云库 的相关文章

随机推荐