indigo版本teb_local_planner常见编译问题
项目场景:
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常见编译问题相关推荐
- PHP中间件ICE,ICE的安装配置,ICE常见编译和运行(异常)错误(自测Php版本安装部分,因为php版本跟ice版本不一样失败)
ICE(Internet Communications Engine)是Zeroc提供的一款高性能的中间件.使用ICE能使得php(或c++,java,python)与java,c++,.net,py ...
- 乐鑫esp8266学习rtos3.0笔记第9篇:整理分享那些我在项目中常用的esp8266 rtos3.0版本的常见驱动,Button按键长短按、PWM平滑调光等。(附带demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...
- JavaWeb第三讲 JSP内置对象、基本动作指令、常见编译指令及四大作用域
JSP内置对象.基本动作指令.常见编译指令及四大作用域 (一) JSP工作原理 当一个jsp页面第一次被访问的时候,jsp将执行以下三个步骤,之后的访问速度会因为class文件已经生成而大大提高,当j ...
- android.mk 编译32位_C/C++初学者常见编译错误及其解决办法
用户在C/C++集成开发环境(例如 Dev-C++)中编辑了源代码,执行编译之后,常常会因为源代码中存在问题而出现编译错误(它们会显示在编译窗口中).初学者常常会面对这些错误而不知如何处理.本文下面列 ...
- bison版本问题导致编译报错:‘parse.error‘ is not used
bison版本问题导致编译报错:'parse.error' is not used 'parse.error' 问题定位和修正 问题发现 问题调查与定位 更新bison/flex版本 问题修正 一些参 ...
- cv_bridge与python版本问题导致编译错误error: return-statement with no value, in function returning ‘void*’ [-fpe
1.先说一下报错的过程(着急看解决过程的直接看第二点): 首先,在使用OpenCV时候,报错如下: [ERROR] [1663728000.010723, 6019.022000]: bad call ...
- SublimeText 4.0配置多版本的Python编译及交互环境
SublimeText配置多版本的Python编译及交互环境 一.背景说明 1.当系统有多个python版本的时候,需要在sublime中设置和选择使用哪个版本. 2.由于sublime text下p ...
- C# asp.net常见编译|运行错误
编译器给出的错误描述的朦胧程度是有目共睹的,本文记录了平时常见的编译错误及其正确内容以辅助参考.长期更新. 按第一个有意义的错误的首字母排序,以便查找. 错误: "$"未定义(出现 ...
- C++常见编译/链接错误及其解决办法
解决error LNK2005: ___crtExitProcess 已经在 LIBCMTD.lib(crt0dat.obj) 中定义 有的时候, 在 Debug 模式下编译没问题, 换到 Relea ...
最新文章
- 转载:如何区分空间参考、坐标系统、投影、基准面和椭圆体?
- Turbo C 2.0 集成调试器的使用方法
- Smart Template tile的绘制原理
- Python学习(变量与字符串)
- 温故知新 .Net重定向深度分析
- 电脑系统哪个最好用_袪痘袪痘印哪个产品最好 祛痘印最好用的产品十大推荐...
- 组策略对应于注册表位置汇总
- 绝缘检测是什么? 绝缘检测原理 绝缘检测检测的是什么?那个量?电压?电流?电阻?
- 电商运营小白,如何快速入门学习数据分析?
- 我的深圳真实驾考经历
- sql 错误码 备用
- 界面音效以及3D音效通过参数控制声音加载声音资源包
- 移动APP云测试平台测评分析
- 新世达380修改服务器密码,新时达AS380利用小键盘调试说明
- Jetson Xavier NX 套件将系统装到SSD
- xx.h和xx.c的奥妙
- java gif等比例缩放_对gif动图进行缩放等处理(java)
- (MATLAB代码分享,可运行)基于改进遗传算法的柔性作业车间调度优化研究
- 【Linux】Linux多线程(上)
- 计算机网络的安全审计管理,东南大学审计处关于计算机网络系统安全管理制度...
热门文章
- 密码学读书笔记——4
- Facebook Move 语言 IR 编译器简介
- 使用苹果MAC电脑怎么旋转图片
- 怒刷python作业(西北工业大学cpSkill平台)
- 将分布式项目sck-demo部署到本地kubernetes,以及实现版本升级和回滚
- android点击按钮打开相册,打开相机的代码
- arista 交换机镜像端口配置(将某一端口的数据转发到指定端口)
- Beyond Compare4
- win10电脑耳机没有声音 如何在不重启电脑情况下耳机重新有声音
- python英语词汇读音_利用Python制作查单词小程序(一):抓取来自百度翻译的单词释义和音标...