报错解决: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

最后编译自己的工程成功,问题成功解决。文章来源地址https://www.toymoban.com/news/detail-429446.html

到了这里,关于报错解决:Could not find a package configuration file provided by “Pangolin“以及一系列问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包