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
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
正在安装(编译时间比较长):
安装完成后在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版
最后,不再尝试安装独立的pcl库,而是安装ros提供的包。
安装如下三个功能包,成功解决问题:
ros-melodic-pcl-conversions
ros-melodic-pcl-msgs
ros-melodic-pcl-ros