ubuntu22.04安装kalibr

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

前言

首先ros1目前目前在ubuntu支持的最高版本是20.04。当时我是在ubuntu22.04上编译安装的ros1。过程也十分坎坷手动下载了很多包具体就不累赘了。
再者目前网上的资料也都是kalibr+ros1, 所以推荐安装ros1之后再来安装kalibr。其次这次安装主要
参考如下。但是我的情况还有一些不一样主要我的ros是noetic版本。

安装过程出现的问题

1 boost提示python版本不对kalibr期待的是早期版本但是我ubuntu22.04的版本是python310版本

  • 解决方案就是根据提示错误的文件找到文件后修改如下文件
    /home/liuchaoqun/kalibr_workspace/src/Kalibr/Schweizer-Messer/python_module/cmake/add_python_export_library.cmake
    
    • 修改的地方是lcq注释的地方。主要是允许使用python310
      lcq为修改处

2 报如下错误当时看这一堆心情都郁闷了。最后这个错误没有主动解决。只是修改了源码中C++的错误这个错误自己好了。

  • 错误如下
    在这里插入图片描述

3 这个是编译的时候找不到include <boost/detail/endian.hpp>最后一查是废弃了话说废弃了作者也不删除。这个直接注释就好。

  • 废弃的endian.hpp
    • 文件路径: /home/liuchaoqun/kalibr_workspace/src/Kalibr/Schweizer-Messer/sm_boost/include/boost/portable_binary_archive.hpp
      废弃的endian.hpp

4 同上

  • 文件路径: /home/liuchaoqun/kalibr_workspace/src/Kalibr/Schweizer-Messer/sm_boost/src/portable_binary_oarchive.cpp
    废弃的endian.hpp

修改完上边的再编译就好了

  • 安装成功的截图耗费1天多时间
    • 结果
      最终成功画面

总结

  • 这次最主要的问题就是一开始系统就是ubuntu22.04。但是网上这些开源的项目对新版本的ubuntu支持的又不是很好所以遇到的很多问题都找不到答案或者最后只能源码安装非常耗时。建议初学者最好在安装系统的时候就选择早期的版本如ubuntu20.4等。
  • 自己心态问题遇到错误就很烦躁其实仔细阅读提示信息还是能找到蛛丝马迹的。解决bug就跟侦探办案一样总会有线索留给你所以要乐观。方法论大致如下
    • 1 从报错的那行看看是从哪里报错的然后不要着急在网上搜错误先试着理解现场告诉我们什么信息想让我们从哪方面入手去改可以自己先试着改改看能编译通过不
    • 2 对于编译别人的开源代码不要以为开源的都是神不会出错。当与ubuntu系统版本python版本C++等版本不一致时就是会出错作者一开始在开发的时候也不可能将以后所有版本都兼容。尤其是早期开发代码只能依赖早期的库而你的环境又是新的所以出现适配问题在所难免。
    • 3 即使看到很多问题也不要慌一个一个慢慢解决很有可能你解决了一个很多其他问题也跟着solved。因为开源的再离谱也不可能很多错毕竟这么多人用。
    • 4 调整好心态问题总有解决的方案。
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Ubuntu