解决在ubuntu22.04安装kalibr时遇到的问题

项目场景:

在ubuntu 22.04安装kalibr时遇到了一些问题,这里做下记录。
Kalibr由ETHZ视觉组开源,链接如下:https://github.com/ethz-asl/kalibr , 它可以解决多相机标定、视觉惯性标定、卷帘相机标定等问题。

在ubuntu22.04安装kalibr时主要会遇到两个大问题:

  1. kalibr是由ros 1构建的,而ubuntu22.04已经停止了对ros1的支持,想要在ubuntu22下安装kalibr,首先要解决ros1 在ubuntu22的安装,这个过程非常痛苦,因此建议还是老实降系统版本比较好。但是对于一些像我一样头铁的人,可以参考这个教程:https://www.bilibili.com/opus/890840405512290392 。
  2. kalibr可以参考官方教程使用catkin build进行构建,这里就不详细展开了。在构建时,具有下面报错:
 CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake:141   (find_package):
  Found package configuration file:

    /usr/lib/x86_64-linux-gnu/cmake/boost_python-1.74.0/boost_python-config.cmake

  but it set boost_python_FOUND to FALSE so package "boost_python" is
  considered to be NOT FOUND.  Reason given by package:

  No suitable build variant has been found.

  The following variants have been tried and rejected:

  * libboost_python310.so.1.74.0 (3.10, Boost_PYTHON_VERSION=3.8)

  * libboost_python310.a (3.10, Boost_PYTHON_VERSION=3.8)


原因分析:

可以发现错误主要是已经安装的libboost_python 版本跟kalibr需要的版本不一致导致的。已经安装的是libboost_python310 而kalibr需要Boost_PYTHON_VERSION=3.8。但如果强行对当前环境中的python与boost版本进行降级,可能对其他已经构建好的库产生影响。


解决方案:

经过两天的研究,终于发现了一个可行的解决方案:

  1. 找到源代码中 ***/Schweizer-Messer/python_module/cmake/add_python_export_library.cmake 文件的第88行。将原本的python38那行注释掉换成如下代码就可以:
  else()
    #list(APPEND BOOST_COMPONENTS python38)
    list(APPEND BOOST_COMPONENTS python310)
  endif()
  1. 在构建过程中你可能还会遇到其它问题,比如找不到头文件,这个大概率也是由boost的版本导致的,可以搜一下当前版本该头文件对应的位置,在源码中改掉就可以了。

结论:

能用ubuntu20还是用ubuntu20吧,不要再这样折磨自己了!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值