ROS中预览pcl点云数据,提示fatal error: pcl/point_cloud.h: 没有那个文件或目录

pcl_ros/point_cloud.h: No such file or directory - ROS Answers: Open Source Q&A Forum

看样子需要安装pcl的功能包,注意有个ros_pcl的包也是需要调用pcl包的。

在pointCloud的官网下载pcl源码包

Releases · PointCloudLibrary/pcl · GitHub

ROS中预览pcl点云数据,提示fatal error: pcl/point_cloud.h: 没有那个文件或目录_第1张图片

 tar xvfj source.tar.gz

cd pcl && mkdir build && cd build    ##pcl为解压后的目录名

cmake ..                                           ##以下命令都要在build目录下进行

make -j2

make -j2 install

或者

sudo make -j2 install

全部命令如下:

cd pcl && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j2
sudo make -j2 install

正在安装(编译时间比较长):

ROS中预览pcl点云数据,提示fatal error: pcl/point_cloud.h: 没有那个文件或目录_第2张图片

 

安装完成后在catkin_ws工作空间的src目录中的CMakeLists.txt文件中包含目录:

注意ros论坛中包含的路径错了,下面是正确的。

include_directories(

include

${catkin_INCLUDE_DIRS}

/usr/include/pcl-1.8

)

但是又报另一个错误:

Eigen/StdVector: 没有那个文件或目录

再加进去Eigen3的目录,如下:

    include_directories(
      include
      ${catkin_INCLUDE_DIRS}
      /usr/include/pcl-1.8
      /usr/include/eigen3
    )

再次报错:

 fatal error: vtkSmartPointer.h: 没有那个文件或目录

找到一个高级的命令,使用locate查看头文件的位置

locate vtkSmartPointer.h

然后在include中包含一下:

    include_directories(
      include
      ${catkin_INCLUDE_DIRS}
      /usr/include/pcl-1.8
      /usr/include/eigen3
      /usr/include/vtk-6.3
    )

  这个错误似乎难以解决,问题可能是安装pcl的时候没有选择release版

ROS中预览pcl点云数据,提示fatal error: pcl/point_cloud.h: 没有那个文件或目录_第3张图片

 

最后,不再尝试安装独立的pcl库,而是安装ros提供的包。

安装如下三个功能包,成功解决问题:

ros-melodic-pcl-conversions

ros-melodic-pcl-msgs

ros-melodic-pcl-ros

你可能感兴趣的:(ROS,pcl,机器人,自动驾驶,人工智能)