报错解决:Could not find a package configuration file provided by “Pangolin“以及一系列问题

报错解决:Could not find a package configuration file provided by "Pangolin"

Pangolin软件包介绍

Pangolin是一个用于视觉SLAM(Simultaneous Localization and Mapping,同时定位与地图构建)的开源软件包,旨在帮助机器人、自动驾驶汽车、无人机和其他自主系统实现实时的三维环境感知和定位。该软件包由Steven Lovegrove和Rok Solidar于2013年创建,其主要功能是使用视觉传感器(例如摄像头)来实时构建环境地图并同时定位自身在该地图中的位置。

以下是Pangolin的一些关键特点和功能:

  • 实时三维地图构建: Pangolin可以从一台或多台摄像头捕捉的图像中构建实时的三维地图,这对于自主导航和环境理解非常重要。
  • 相机追踪: Pangolin具有功能强大的相机追踪能力,可以跟踪相机的姿势和运动,从而确定相机在环境中的位置。
  • 数据可视化: 软件包提供了丰富的数据可视化工具,使用户能够直观地查看三维地图、相机轨迹、点云数据等。
  • 多传感器支持: Pangolin不仅支持单一相机,还支持多个传感器,如立体相机、激光雷达和惯性测量单元(IMU),以提供更丰富的环境感知。
  • 跨平台: Pangolin支持多个操作系统,包括Linux、Windows和macOS,以适应不同的开发需求。
  • 开源性质: Pangolin是一个开源软件包,这意味着用户可以自由地访问、修改和分发其源代码,从而促进了社区合作和开发。

Pangolin主要用于研究、开发和测试SLAM算法,以及在机器人、自动驾驶汽车和无人机等应用中实现实时的环境感知和定位。它为开发人员提供了一个强大的工具,用于构建自主系统的核心感知和导航功能。

报错与解决

博主在使用cmake编译自己的工程时,遇到了如下报错:

CMake Error at CMakeLists.txt:5 (find_package):
  By not providing "FindPangolin.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Pangolin",
  but CMake did not find one.

  Could not find a package configuration file provided by "Pangolin" with any
  of the following names:

    PangolinConfig.cmake
    pangolin-config.cmake

  Add the installation prefix of "Pangolin" to CMAKE_PREFIX_PATH or set
  "Pangolin_DIR" to a directory containing one of the above files.  If
  "Pangolin" provides a separate development package or SDK, be sure it has
  been installed.

-- Configuring incomplete, errors occurred!

解决方法是安装Pangolin软件包:

# 下载Pangolin
git https://github.com/stevenlovegrove/Pangolin.git
# 编译
cd Pangolin
mkdir build
cd build 
cmake .. && make
sudo make install
# 注意sudo make install一定要执行,否则编译自己的工程会报错fatal error: pangolin/pangolin.h: 没有那个文件或目录

在编译Pangolin时发现GLEW软件包未安装:

CMake Error at cmake/FindGLEW.cmake:51 (MESSAGE):
  Could not find GLEW

使用如下命令进行安装:

sudo apt install libglew-dev

安装完后,重新对Pangolin进行编译,成功编译与安装。

但编译自己的工程又遇到了如下的报错(报错只截取了一部分):

In file included from /usr/local/include/pangolin/utils/signal_slot.h:3,
                 from /usr/local/include/pangolin/windowing/window.h:35,
                 from /usr/local/include/pangolin/display/display.h:34,
                 from /usr/local/include/pangolin/pangolin.h:38,
                 from /home/a616708946/slambook/ch5/code/disparity.cpp:8:
/usr/local/include/sigslot/signal.hpp:109:79: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
  109 | constexpr bool is_weak_ptr_compatible_v = detail::is_weak_ptr_compatible<std::decay_t<P>>::value;
      |                                                                               ^~~~~~~
      |                                                                               decay

解决方法是把CMakeLists.txt中的这一部分进行修改,修改完如下:

set( CMAKE_CXX_FLAGS "-std=c++14")
# set(CMAKE_CXX_FLAGS "-std=c++11 -g -Wall")

接着,编译自己的工程又遇到了如下的报错(报错只截取了一部分):

In file included from /usr/local/include/pangolin/gl/gl.h:324:0,
                 from /usr/local/include/pangolin/handler/handler.h:31,
                 from /usr/local/include/pangolin/display/widgets.h:32,
                 from /usr/local/include/pangolin/pangolin.h:40,
                 from /home/marcos/code/SensorsCalibration/lidar2camera/manual_calib/src/run_lidar2camera.cpp:9:
/usr/local/include/pangolin/gl/gl.hpp: In member function ‘void pangolin::GlTexture::CopyFrom(const pangolin::GlTexture&)’:
/usr/local/include/pangolin/gl/gl.hpp:348:5: error: ‘glCopyImageSubDataNV’ was not declared in this scope
     glCopyImageSubDataNV(tex.tid, GL_TEXTURE_2D, 0, 0, 0, 0,
     ^~~~~~~~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/gl.hpp:348:5: note: suggested alternative: ‘glCopyColorSubTable’
     glCopyImageSubDataNV(tex.tid, GL_TEXTURE_2D, 0, 0, 0, 0,
     ^~~~~~~~~~~~~~~~~~~~
     glCopyColorSubTable

Pangolin安装的版本有误,解决方法如下:

cd Pangolin
cd build 
sudo make uninstall
cd .. && rm -rf build
git checkout v0.6
mkdir build && cd build
cmake ..
cmake --build .
sudo make install

最后编译自己的工程成功,问题成功解决。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI Player

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值