ubuntu(14):ubuntu16编译move_base报错与解决

2023-05-16

目录

1 Could NOT find OpenVDB (missing: OPENVDB_LOCATION)

2 Could not find a package configuration file provided by "costmap_converter"

3 /move_base/src/rosaria/RosAria.cpp:6:25: fatal error: Aria/Aria.h: 没有那个文件或目录

3.1 解决方案----从wiki--失败

3.2 安装libaria库

        注意:这一步可能对下一步有帮助,目前还不清楚,需要文件的邮箱联系

3.3 替换rosaria包

3.3.1 error: ‘i’ does not name a type    for(auto i = p->cbegin(); i != p->cend(); ++i)

3.3.2  error: no matching function for call to ‘g2o::BlockSolver<-1,>

3.3.3 报错:/usr/bin/ld: 当搜索用于 /usr/local/Aria/lib/libAria.so 时跳过不兼容的 -lAria

3.4 最终,编译通过:



1 Could NOT find OpenVDB (missing: OPENVDB_LOCATION)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAYml0ZXIwMDg4,size_20,color_FFFFFF,t_70,g_se,x_16

 解决:我的另一篇博客:https://blog.csdn.net/BIT_HXZ/article/details/123694338

2 Could not find a package configuration file provided by "costmap_converter"

CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "costmap_converter"
  with any of the following names:

    costmap_converterConfig.cmake
    costmap_converter-config.cmake

  Add the installation prefix of "costmap_converter" to CMAKE_PREFIX_PATH or
  set "costmap_converter_DIR" to a directory containing one of the above
  files.  If "costmap_converter" provides a separate development package or
  SDK, be sure it has been installed.
Call Stack (most recent call first):
  move_base/src/teb_local_planner-kinetic-devel/CMakeLists.txt:8 (find_package)

        解决:

sudo apt-get install ros-kinetic-costmap-converter

3 /move_base/src/rosaria/RosAria.cpp:6:25: fatal error: Aria/Aria.h: 没有那个文件或目录

3.1 解决方案----从wiki--失败

        在rosaria的wiki教程上,有安装提示,我需要安装ubuntu16版本的

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAYml0ZXIwMDg4,size_20,color_FFFFFF,t_70,g_se,x_16         点击上图的链接:http://robots.mobilerobots.com/wiki/Aria去下载.deb,一直跳转不了;

        下面的github也说跳转不了:

No such file Aria.h · Issue #42 · amor-ros-pkg/rosaria · GitHub

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAYml0ZXIwMDg4,size_20,color_FFFFFF,t_70,g_se,x_16

        注:上图红框中的方法简单尝试一下,没有成功,就没有再花时间了(可能会有效)

3.2 安装libaria库

        去搜索 sudo dpkg -i libaria_2.9.1+ubuntu16_i368.deb需要的文件,找到了一个近似版本

        这里进行了安装:sudo dpkg -i  xxx.deb

/home/meng/Desktop/yellow/guikong/src/move_base/src/rosaria/LaserPublisher.cpp:165:12: error: ‘i’ does not name a type
   for(auto i = p->cbegin(); i != p->cend(); ++i)
            ^
/home/meng/Desktop/yellow/guikong/src/move_base/src/rosaria/LaserPublisher.cpp:165:29: error: expected ‘;’ before ‘i’
   for(auto i = p->cbegin(); i != p->cend(); ++i)
                             ^
/home/meng/Desktop/yellow/guikong/src/move_base/src/rosaria/LaserPublisher.cpp:165:29: error: ‘i’ was not declared in this scope
/home/meng/Desktop/yellow/guikong/src/move_base/src/rosaria/LaserPublisher.cpp:165:37: error: ‘const class std::__cxx11::list<ArPoseWithTime*>’ has no member named ‘cend’
   for(auto i = p->cbegin(); i != p->cend(); ++i)

         编译,显示版本不兼容。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAYml0ZXIwMDg4,size_20,color_FFFFFF,t_70,g_se,x_16

        注意:这一步可能对下一步有帮助,目前还不清楚,需要文件的邮箱联系

3.3 替换rosaria包

        直接获取github上默认的rosaria包,替换现有的包:

git clone https://github.com/amor-ros-pkg/rosaria.git

        编译,报错及解决如下:

3.3.1 error: ‘i’ does not name a type    for(auto i = p->cbegin(); i != p->cend(); ++i)

/home/meng/Desktop/yellow/guikong/src/move_base/src/rosaria/LaserPublisher.cpp:165:12: error: ‘i’ does not name a type
   for(auto i = p->cbegin(); i != p->cend(); ++i)
            ^
/home/meng/Desktop/yellow/guikong/src/move_base/src/rosaria/LaserPublisher.cpp:165:29: error: expected ‘;’ before ‘i’
   for(auto i = p->cbegin(); i != p->cend(); ++i)
                             ^
/home/meng/Desktop/yellow/guikong/src/move_base/src/rosaria/LaserPublisher.cpp:165:29: error: ‘i’ was not declared in this scope
/home/meng/Desktop/yellow/guikong/src/move_base/src/rosaria/LaserPublisher.cpp:165:37: error: ‘const class std::__cxx11::list<ArPoseWithTime*>’ has no member named ‘cend’
   for(auto i = p->cbegin(); i != p->cend(); ++i)

        解决:在CMakeLists.txt里面添加c++11编译选项

set(CMAKE_CXX_FLAGS "-std=c++11")

        这里参考了一个g++的编译:https://blog.csdn.net/u010420283/article/details/109782294

3.3.2  error: no matching function for call to ‘g2o::BlockSolver<g2o::BlockSolverTraits<-1, -1>

/home/meng/Desktop/yellow/guikong/src/move_base/src/teb_local_planner-kinetic-devel/src/optimal_planner.cpp:159:64: error: no matching function for call to ‘g2o::BlockSolver<g2o::BlockSolverTraits<-1, -1> >::BlockSolver(teb_local_planner::TEBLinearSolver*&)’
   TEBBlockSolver* blockSolver = new TEBBlockSolver(linearSolver);

        这里参考一个视觉slam十四讲的两个博客,两个博客都不能直接拿来用:https://blog.csdn.net/unlimitedai/article/details/86546368

https://blog.csdn.net/lun55423/article/details/109036995

        替换上面报错的行如下,在optimal_planner.cpp中(170多行):(注意:修改部分的前三行可能和原来一样)

  // allocating the optimizer
  
  // boost::shared_ptr<g2o::SparseOptimizer> optimizer = boost::make_shared<g2o::SparseOptimizer>();
  // TEBLinearSolver* linearSolver = new TEBLinearSolver(); // see typedef in optimization.h
  // linearSolver->setBlockOrdering(true);
  // TEBBlockSolver* blockSolver = new TEBBlockSolver(linearSolver);
  // g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg(blockSolver);

  boost::shared_ptr<g2o::SparseOptimizer> optimizer = boost::make_shared<g2o::SparseOptimizer>();
  TEBLinearSolver* linearSolver = new TEBLinearSolver();
  linearSolver->setBlockOrdering(true);
  TEBBlockSolver* blockSolver = new TEBBlockSolver(std::unique_ptr<TEBBlockSolver::LinearSolverType>(linearSolver));
  g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg(std::unique_ptr<TEBBlockSolver>(blockSolver));

3.3.3 报错:/usr/bin/ld: 当搜索用于 /usr/local/Aria/lib/libAria.so 时跳过不兼容的 -lAria

        参考一个在ubuntu16.04上安装Rosaria包的博客:https://blog.csdn.net/weixin_50774105/article/details/115373845

        上面博客中说,官方给出的解决办法为:重新编译ARIA library

cd /usr/local/Aria/
make clean
make -j

3.4 最终,编译通过:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu(14):ubuntu16编译move_base报错与解决 的相关文章

随机推荐

  • FCT测试

    1 总论 2 启动过程 3 各模块实现 1 总论 FCT 作为 Android 的一个外来测试程序 xff0c 位于源码的 external 文件夹内 xff0c 其目的是作为产品在 PCBA 装配生产线中的一个制程 xff0c 对外围硬件
  • ARM上电启动及Uboot代码分析

    注意 xff1a 由于文档是去年写的 xff0c 内有多个图片 xff0c 上传图片很麻烦 xff08 需要截图另存插入等等 xff09 xff0c 我把文章的PDF版本上传到了CSDN下载资源中 为了给自己赚点积分 xff0c 所以标价2
  • 【解决】缺少libstdc++.so.6库的原因及解决办法

    问题原因 xff1a 系统是64bit xff0c 该库是32bit的 xff0c 在64bit系统上安装32bit库 解决办法 xff1a 1 查看哪个安装包包含该库 xff1a yum provides libstdc 43 43 so
  • 仿真器和模拟器的区别

    仿真器 xff08 emulator xff09 和模拟器 xff08 simulator xff09 是比较容易混淆的概念 xff0c 这两个概念不仅针对计算机体系结构 xff0c 在很多方面都有所应用 xff0c 例如航空模拟器 街机仿
  • Flush-Cache/Page-Lock/Flush-TLB说明

    Flush Cache Page Lock Flush TLB说明 理论上顺序 xff1a 获得页面锁 xff0c 保证后续flush操作完成之前不允许继续读写Flush cacheFlush tlb 以下用numa migrate pag
  • 内核动态补丁(kpatch)及kpatch pushsection popsection previous的解释

    内核动态补丁 xff08 katch xff09 解释 本文阅读体验不好 xff0c 因此做了pdf版本 xff0c 点击下载 xff0c 如果你没有分数 xff0c 可以直接留言找我要pdf版本 内核可以在运行时动态执行补丁中的代码 xf
  • Shell编程:字符串与数值之间的转换与计算

    shell编程往往需要对字符串进行操作 xff0c 有时需要将字符串转为数值 xff0c 并做加减运算 以下介绍将字符串转为数值并进行计算的方法 temp1 61 400d7c echo 16 temp1 43 4 xff08 打印默认是十
  • linux内核代码预处理后便于阅读

    inux 内核庞大而复杂 内核代码阅读的时候 xff0c 有没有遇到因为宏定义或者inline层次太深而不知道到底代码是什么样子 代码预处理可以解决这个难题 平台 xff1a linux 3 4 5 ARM xff0c PC linux上类
  • 深度学习(六):pointnet.pytorch环境配置与学习

    目录 0 前言 0 1 shapenet数据集 1 配置环境 1 1 配置Python环境与安装pytorch 1 2 安装pointnet及其他包与下载数据 2 默认训练 2 1 分类训练train classification 2 1
  • sed在行首(行尾)添加字符串;在某行后添加多行字符串

    sed在行首添加字符串 xff1b sed s xxx 39 filename gt output xff1a 符号代表行首 sed在行尾添加字符串 xff1b sed s string 39 filename gt output xff1
  • 【解决】xterm Xt error: Can't open display: xterm: DISPLAY is not set

    当你运行xterm出现错误如下 xff1a xterm Xt error Can 39 t open display xterm DISPLAY is not set 我的系统centos6 2 解决办法 xff1a 1 首先确定你安装了x
  • 【解决】yum 安装 出错 Error: Protected multilib versions:

    我安装zlib出错 xff1a yum install zlib 1 2 3 29 el6 i686 Error Protected multilib versions zlib 1 2 3 29 el6 i686 61 zlib 1 2
  • 贴一下我的 vimrc 以及 vim 效果

    贴一下我的vimrc 看起来真的很养眼 xff0c 呵呵 这几天一直忙活着配置VIM xff0c 这个编辑器太迷人了 虽然emacs也强大 xff0c 可是仔细想想 xff0c 还是vim的效率高一些 原因如下 xff1a emacs通过
  • vim语法高亮——使自定义类型也能高亮的简单办法

    说明 xff1a 判断是否类型的简单办法 xff0c 就是简单的观察 xff1a 如果该标志符后面有空格 xff0c 空格后又是一个标志符的话 xff0c 在 xff23 xff0f xff23 xff0b xff0b 语言中 xff0c
  • 原创:纠正国人对Linux的误解和错误认识

    错误印象和认识罗列如下 xff0c 一一解释 xff1a 1 linux下的软件太少 回答 xff1a linux 下的软件一点也不少 windows还在娘肚子里的时候 xff0c Unix已经如日中天了 要知道微软公司开发的第一个操作系统
  • 原创:自己写的端口数据转发工具pf (port forwarding)

    看了 子清行 朋友博客里的一篇文章 xff0c 讲述了一个叫 DuplexPipe 的小工具的实现 最开始没怎么懂意思 xff0c 看了他公开的源代码 xff0c 是用java写的 xff0c 一个jar包 可惜我不太会java 因此没法看
  • 又一次被linux的工具震惊了

    前一篇博客还写了自己写的端口转发工具 xff0c 今天偶然在网上看到讲命名管道和netcat配合的用法 xff0c 被彻底雷倒了 原来以为netcat做不到 xff0c 原来是自己想不到 xff0c 而不是netcat做不到 方法如下 xf
  • Ubuntu桌面旋转xrandr

    项目实行过程中 xff0c 设备安装为竖屏模式 xff0c 分辨率由19201080变为10801920 xff1b 最简单实现 xff0c 将桌面系统显示旋转 xff1a xff08 终端命令 xff09 xrandr o left 向左
  • VR应用在直播领域上的实践与探索

    声明 xff1a 本文来自 七牛云主办的架构师实践日 泛娱乐 43 直播技术最佳实践 的演讲内容整理 PPT 速记和现场演讲视频等参见 七牛架构师实践日 官网 嘉宾 xff1a 孙其瑞 xff0c 得图网络CTO 责编 xff1a 钱曙光
  • ubuntu(14):ubuntu16编译move_base报错与解决

    目录 1 Could NOT find OpenVDB missing OPENVDB LOCATION 2 Could not find a package configuration file provided by 34 costma