码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Ubuntu 20.04 下编译 Lego Loam 踩过的一些坑


    Ubuntu 20.04 下编译 Lego Loam 踩过的一些坑

    • 简介
    • 错误以及解决方法
      • ***fatal error: opencv/cv.h: No such file or directory***
      • ***/usr/include/pcl-1.10/pcl/pcl_config.h:7:4: error: #error PCL requires C++14 or above***
      • ***error: ‘Index’ is not a member of ‘Eigen’***
      • ***Failed to transform from frame [/camera] to frame [map]***
      • ***/usr/bin/ld: 找不到 -lBoost::timer***

    简介

    Lego LOAM 在 Ubuntu 20.04 (ROS Noetic)遇到一些问题,这里作为记录方便以后参考。

    错误以及解决方法

    fatal error: opencv/cv.h: No such file or directory

    Ubuntu20.04 默认安装 opencv 4.2.0,opencv4 对头文件名作出了一点修改,因此需要对 Lego LOAM 中 include opencv 头文件的部分做出修改,将 Utility.h 中的 #include 改成 #include

    /usr/include/pcl-1.10/pcl/pcl_config.h:7:4: error: #error PCL requires C++14 or above

    PCL 1.10 要求使用 c++14 及以上版本,将 LEGO LOAM 中的 CMakeLists.txt 中的编译选项 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3") 改为 -std=c++14 即可

    error: ‘Index’ is not a member of ‘Eigen’

    这个错误是因为 Lego LOAM 中原作者建议使用的 gtsam 版本为 4.0.0-alpha2,gtsam 是自带了一个 eigen 库的,而这个版本的 gtsam 中使用的是较低版本的 Eigen,还没有 Eigen::Index 这个定义。比较简单的做法是将 PCL 中用到的 Eigen::Index 改为 int 即可。不过使用 gtsam 中低版本的 Eigen 可能也会在别的库造成问题,所以建议的做法是不使用 gtsam 带的第三方库,具体方法为按照作者的方法编译 gtsam 时在 cmake 阶段设置使用系统自带的 Eigen,此外 gtsam 编译时会默认进行 SSE 加速,而如 PCL 等其他库大多数情况不会打开,因此如果一起使用的话会造成节点崩溃,因此一般将其关闭,如下所示:

    mkdir build && cd build
    cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..
    sudo make install
    
    • 1
    • 2
    • 3

    在安装完 gtsam 之后,需要运行一次 sudo ldconfig 来更新链接设置

    Failed to transform from frame [/camera] to frame [map]

    rviz 中出现上述错误提示,因为 tf2 开始已经不会在 frame_id 前面加 /,所以只需要将代码中所有涉及 frame_id 的部分将 / 去掉即可。

    /usr/bin/ld: 找不到 -lBoost::timer

    在 CmakeLists.txt 中添加

     find_package(Boost REQUIRED COMPONENTS timer)
    
    • 1
  • 相关阅读:
    一克商评|未来向外输出自动驾驶技术和解决方案的中国企业会越来越多
    网络基础(了解网络知识的前提)
    Python基础之综合练习二
    AcWing 4713:反转字符串
    Java Controller层异常处理示例【含面试题】
    RCD负载箱的优势和特点与其他负载箱有何区别?
    今天面试遇到这样一个问题:一个TCP连接可以发多少个HTTP请求?
    深度优先与宽度优先搜索(python)
    MySQL 数据导入方案推荐
    SpringCloud链路追踪SkyWalking-第六章-日志采集
  • 原文地址:https://blog.csdn.net/hhz_999/article/details/126767250
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号