项目场景:

Teb局部路径规划器的indigo版本在编译时可能会遇到如下编译报错情况


问题描述

提示:/home/ros/catkin_ws/data/huang/my_ws/src/teb_local_planner-indigo-devel/src/optimal_planner.cpp:155:64: error: no matching function for call to ‘g2o::BlockSolver<g2o::BlockSolverTraits<-1, -1> >::BlockSolver(teb_local_planner::TEBLinearSolver*&)’
   TEBBlockSolver* blockSolver = new TEBBlockSolver(linearSolver);
                                                                ^

/home/ros/catkin_ws/data/huang/my_ws/src/teb_local_planner-indigo-devel/src/optimal_planner.cpp: In member function ‘boost::shared_ptr<g2o::SparseOptimizer> teb_local_planner::TebOptimalPlanner::initOptimizer()’:
/home/ros/catkin_ws/data/huang/my_ws/src/teb_local_planner-indigo-devel/src/optimal_planner.cpp:155:64: error: no matching function for call to ‘g2o::BlockSolver<g2o::BlockSolverTraits<-1, -1> >::BlockSolver(teb_local_planner::TEBLinearSolver*&)’TEBBlockSolver* blockSolver = new TEBBlockSolver(linearSolver);^
/home/ros/catkin_ws/data/huang/my_ws/src/teb_local_planner-indigo-devel/src/optimal_planner.cpp:155:64: note: candidate is:
In file included from /usr/local/include/g2o/core/block_solver.h:199:0,from /home/ros/catkin_ws/data/huang/my_ws/src/teb_local_planner-indigo-devel/include/teb_local_planner/optimal_planner.h:55,from /home/ros/catkin_ws/data/huang/my_ws/src/teb_local_planner-indigo-devel/src/optimal_planner.cpp:39:
/usr/local/include/g2o/core/block_solver.hpp:40:1: note: g2o::BlockSolver<Traits>::BlockSolver(std::unique_ptr<typename Traits::LinearSolverType>) [with Traits = g2o::BlockSolverTraits<-1, -1>; typename Traits::LinearSolverType = g2o::LinearSolver<Eigen::Matrix<double, -1, -1> >]BlockSolver<Traits>::BlockSolver(std::unique_ptr<LinearSolverType> linearSolver)^
/usr/local/include/g2o/core/block_solver.hpp:40:1: note:   no known conversion for argument 1 from ‘teb_local_planner::TEBLinearSolver* {aka g2o::LinearSolverCSparse<Eigen::Matrix<double, -1, -1> >*}’ to ‘std::unique_ptr<g2o::LinearSolver<Eigen::Matrix<double, -1, -1> >, std::default_delete<g2o::LinearSolver<Eigen::Matrix<double, -1, -1> > > >’
/home/ros/catkin_ws/data/huang/my_ws/src/teb_local_planner-indigo-devel/src/optimal_planner.cpp:156:100: error: no matching function for call to ‘g2o::OptimizationAlgorithmLevenberg::OptimizationAlgorithmLevenberg(teb_local_planner::TEBBlockSolver*&)’g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg(blockSolver);^
/home/ros/catkin_ws/data/huang/my_ws/src/teb_local_planner-indigo-devel/src/optimal_planner.cpp:156:100: note: candidate is:
In file included from /home/ros/catkin_ws/data/huang/my_ws/src/teb_local_planner-indigo-devel/include/teb_local_planner/optimal_planner.h:58:0,from /home/ros/catkin_ws/data/huang/my_ws/src/teb_local_planner-indigo-devel/src/optimal_planner.cpp:39:
/usr/local/include/g2o/core/optimization_algorithm_levenberg.h:47:16: note: g2o::OptimizationAlgorithmLevenberg::OptimizationAlgorithmLevenberg(std::unique_ptr<g2o::Solver>)explicit OptimizationAlgorithmLevenberg(std::unique_ptr<Solver> solver);^
/usr/local/include/g2o/core/optimization_algorithm_levenberg.h:47:16: note:   no known conversion for argument 1 from ‘teb_local_planner::TEBBlockSolver* {aka g2o::BlockSolver<g2o::BlockSolverTraits<-1, -1> >*}’ to ‘std::unique_ptr<g2o::Solver>’

原因分析:

提示:note:   no known conversion for argument 1 from ‘teb_local_planner::TEBBlockSolver* {aka g2o::BlockSolver<g2o::BlockSolverTraits<-1, -1> >*}’ to ‘std::unique_ptr<g2o::Solver>’

例如:因为g2o库一直在更新,而indigo版本的Teb已经是2015年的代码,optimal_planner.cpp里申明的普通指针并不能转换成智能指针。


解决方案:

提示:

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

将报错位置optimal_planner.cpp里的// allocating the optimizer部分更换成如上写法,问题即可解决。

indigo版本teb_local_planner常见编译问题相关推荐

  1. PHP中间件ICE,ICE的安装配置,ICE常见编译和运行(异常)错误(自测Php版本安装部分,因为php版本跟ice版本不一样失败)

    ICE(Internet Communications Engine)是Zeroc提供的一款高性能的中间件.使用ICE能使得php(或c++,java,python)与java,c++,.net,py ...

  2. 乐鑫esp8266学习rtos3.0笔记第9篇:整理分享那些我在项目中常用的esp8266 rtos3.0版本的常见驱动,Button按键长短按、PWM平滑调光等。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...

  3. JavaWeb第三讲 JSP内置对象、基本动作指令、常见编译指令及四大作用域

    JSP内置对象.基本动作指令.常见编译指令及四大作用域 (一) JSP工作原理 当一个jsp页面第一次被访问的时候,jsp将执行以下三个步骤,之后的访问速度会因为class文件已经生成而大大提高,当j ...

  4. android.mk 编译32位_C/C++初学者常见编译错误及其解决办法

    用户在C/C++集成开发环境(例如 Dev-C++)中编辑了源代码,执行编译之后,常常会因为源代码中存在问题而出现编译错误(它们会显示在编译窗口中).初学者常常会面对这些错误而不知如何处理.本文下面列 ...

  5. bison版本问题导致编译报错:‘parse.error‘ is not used

    bison版本问题导致编译报错:'parse.error' is not used 'parse.error' 问题定位和修正 问题发现 问题调查与定位 更新bison/flex版本 问题修正 一些参 ...

  6. cv_bridge与python版本问题导致编译错误error: return-statement with no value, in function returning ‘void*’ [-fpe

    1.先说一下报错的过程(着急看解决过程的直接看第二点): 首先,在使用OpenCV时候,报错如下: [ERROR] [1663728000.010723, 6019.022000]: bad call ...

  7. SublimeText 4.0配置多版本的Python编译及交互环境

    SublimeText配置多版本的Python编译及交互环境 一.背景说明 1.当系统有多个python版本的时候,需要在sublime中设置和选择使用哪个版本. 2.由于sublime text下p ...

  8. C# asp.net常见编译|运行错误

    编译器给出的错误描述的朦胧程度是有目共睹的,本文记录了平时常见的编译错误及其正确内容以辅助参考.长期更新. 按第一个有意义的错误的首字母排序,以便查找. 错误: "$"未定义(出现 ...

  9. C++常见编译/链接错误及其解决办法

    解决error LNK2005: ___crtExitProcess 已经在 LIBCMTD.lib(crt0dat.obj) 中定义 有的时候, 在 Debug 模式下编译没问题, 换到 Relea ...

最新文章

  1. 转载:如何区分空间参考、坐标系统、投影、基准面和椭圆体?
  2. Turbo C 2.0 集成调试器的使用方法
  3. Smart Template tile的绘制原理
  4. Python学习(变量与字符串)
  5. 温故知新 .Net重定向深度分析
  6. 电脑系统哪个最好用_袪痘袪痘印哪个产品最好 祛痘印最好用的产品十大推荐...
  7. 组策略对应于注册表位置汇总
  8. 绝缘检测是什么? 绝缘检测原理 绝缘检测检测的是什么?那个量?电压?电流?电阻?
  9. 电商运营小白,如何快速入门学习数据分析?
  10. 我的深圳真实驾考经历
  11. sql 错误码 备用
  12. 界面音效以及3D音效通过参数控制声音加载声音资源包
  13. 移动APP云测试平台测评分析
  14. 新世达380修改服务器密码,新时达AS380利用小键盘调试说明
  15. Jetson Xavier NX 套件将系统装到SSD
  16. xx.h和xx.c的奥妙
  17. java gif等比例缩放_对gif动图进行缩放等处理(java)
  18. (MATLAB代码分享,可运行)基于改进遗传算法的柔性作业车间调度优化研究
  19. 【Linux】Linux多线程(上)
  20. 计算机网络的安全审计管理,东南大学审计处关于计算机网络系统安全管理制度...

热门文章

  1. 密码学读书笔记——4
  2. Facebook Move 语言 IR 编译器简介
  3. 使用苹果MAC电脑怎么旋转图片
  4. 怒刷python作业(西北工业大学cpSkill平台)
  5. 将分布式项目sck-demo部署到本地kubernetes,以及实现版本升级和回滚
  6. android点击按钮打开相册,打开相机的代码
  7. arista 交换机镜像端口配置(将某一端口的数据转发到指定端口)
  8. Beyond Compare4
  9. win10电脑耳机没有声音 如何在不重启电脑情况下耳机重新有声音
  10. python英语词汇读音_利用Python制作查单词小程序(一):抓取来自百度翻译的单词释义和音标...