ROS编译报错 “error: ‘tf2_buffer_’ was not declared in this scope”的解决方法

2023-05-16

写在前面

笔者测试的环境:
Ubuntu18.04, ROS-melodic

一、问题描述

自己在测试 amcl 程序的时候遇到如下问题(测试的amcl程序在Ubuntu16.04 ROS-kinetic上正常,但是拿到Ubuntu18.04, ROS-melodic进行测试,却出现了如下问题):

/home/ubuntu/***_ws/src/amcl_icp/amcl/src/amcl_node.cpp: In member function ‘tf2_ros::Buffer& AmclNode::TransformListenerWrapper::getBuffer()’:
/home/ubuntu/***_ws/src/amcl_icp/amcl/src/amcl_node.cpp:140:50: error: ‘tf2_buffer_’ was not declared in this scope
     inline tf2_ros::Buffer &getBuffer() { return tf2_buffer_; }

二、解决方法

经过查阅资料发现,ROS-melodic 版本中对该处进行了修改,在melodic中把 tf2_buffer_ 修改成了 tf2_buffer_ptr_所以需要修改amcl的程序。
需要修改2个位置:
位置1:

// 原来的程序:
inline tf2_ros::Buffer &getBuffer() { return tf2_buffer_; }
// 修改为:
inline std::shared_ptr<tf2_ros::Buffer> &getBuffer() {return tf2_buffer_ptr_;}

位置2:

// 原来的程序:
tf_->getBuffer().setTransform(tf_msg->transforms[ii], "rosbag_authority");
// 修改为:
tf_->getBuffer()->setTransform(tf_msg->transforms[ii], "rosbag_authority");

然后再次编译,就可以正常编译成功。

参考链接

[1] moriarty. Compile Error Melodic due to tf change #717 [EB/OL]. https://github.com/ros-planning/navigation/issues/717, 2018-05-15/2023-04-12.
[1] 向阳花开. ROS- 解决error “tf2_buffer_’ was not declared in this scope” [EB/OL]. https://blog.csdn.net/Draonly/article/details/111885161, 2020-12-29/2023-04-12.

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

ROS编译报错 “error: ‘tf2_buffer_’ was not declared in this scope”的解决方法 的相关文章

  • 详解vim插件安装及配置

    前言 vim插件依赖项安装 xff1a dnf install python future dnf install python devel dnf install ncurses dnf install cmake dnf install
  • SubliemText_3配置Java的编译环境

    Sublime Text 3 添加Java环境 最近在学习Java语言 xff0c 因为写一些基础的代码练习 xff0c 而使用sublime编辑器写代码 xff0c 因为每次运行都要在命令行执行 javac 和 java 代码 xff0c
  • JDBC的学习(01)

    关于JDBC的学习 1 JDBC的简介 JDBC Java DataBase Connectivity 是由Sun公司为简化java程序访问数据库而制定的一套面向对象的应用程序的接口 它规定了一套访问数据库的API xff0c 该API对应
  • JDBC的学习(02)

    关于JDBC的学习 xff08 2 xff09 文章目录 关于JDBC的学习 xff08 2 xff09 Blob类型和批量操作1 Blob类型操作2 批量操作 数据库事务1 事务的概念2 事务的ACID属性3 数据库的四种隔离级别数据库的
  • 吐血整理的IDEA个人配置

    IDEA的个人配置 这两天突然发现电脑的浏览器主页被捆绑成hao123的主页了 xff0c 出于各种方法都没能解决这个问题 xff0c 一气之下 xff0c 重装了系统 xff0c 由于忘记了很多软甲的配置都放在C盘下了 xff0c 导致都
  • 两个报错:Ubuntu进入root后无法使用anaconda 和Your shell has not been properly configured to use ‘conda activate‘

    这个是由于我在root权限下没有添加anaconda的路径导致的 首先先进入普通用户 xff0c 看一下自己的anaconda的路径 echo PATH 然后再进入root sudo su 查看一下root下的路径 如果缺失进行添加 exp
  • 抖音品质建设 - iOS启动优化之原理篇

    前言 启动是 App 给用户的第一印象 xff0c 启动越慢用户流失的概率就越高 xff0c 良好的启动速度是用户体验不可缺少的一环 启动优化涉及到的知识点非常多面也很广 xff0c 一篇文章难以包含全部 xff0c 所以拆分成两部分 xf
  • c语言_多线程入门_信号量Semaphore

    也属于线程同步的一种方式 信号量 Semaphore 定义 xff1a 有时被称为信号灯 xff0c 是在多线程环境下使用的一种设施 xff0c 是可以用来保证两个或多个关键代码段不被并发调用 目的 xff1a 类似计数器 xff0c 常用
  • Ubuntu 18.04 LTS 配置VNC Server后 VNC Viewer连接灰屏

    这几天在配置实验室的服务器的时候发现了这一问题 xff0c 前前后后搞了好久 xff0c 后来我也不知道为啥就搞好了 xff0c 网上也有好多类似的解决方法 xff0c 但总感觉每个人都不一样 xff0c 这里就记录一下自己的解决方法 xf
  • debian10 更换阿里源

    阿里云镜像官网 xff1a https developer aliyun com mirror 1 先备份 span class token function cp span etc apt sources list etc apt sou
  • mysql常见问题

    1 错误 xff1a W GPG error http repo mysql com apt debian buster InRelease The following signatures couldn 39 t be verified
  • Unity实现在Android端获取Android手机的唯一ID(设备号)(亲测Android11可用)

    Unity实现在Android端获取Android手机的唯一ID xff08 设备号 xff09 亲测Android11可用 备注 测试版本Unity2020 xff0c 理论上Unity2018以上都可用 xff0c 未做测试 文章初衷
  • 远程桌面连接后闪退的解决方法

    远程桌面连接后闪退的解决方法 xff1a 1 打开注册表编辑器 xff0c 找到Memory Management文件夹 xff1b 2 新建DWORD键值 xff0c 名称为SessionlmageSize xff0c 值为0x00000
  • Java代码实现上传视频获取视频某一帧作为截图封面(二)

    上一个文章讲了Java代码实现上传视频获取视频某一帧作为截图封面的一种方法 xff0c 现在讲述第二种方法 为什么要在这里讲这种方法呢 xff1f 第一 这种方法生成的图片占用的空间更小第二 这种方法可以获取很多信息 一 根上一篇文章一样导
  • IDEA import导入的类明明存在,却飘红,你可以这样做

    今天刚刚代码自己的idea xff0c 发现有的类中出现了爆红的错误提示 明明这个类昨天下班之前测试过了 xff0c 是好用的而且爆红的类还是自己写的 xff0c 在别的类中import进去怎么会提示没有作用呢 想必你也可能会在开发中遇到这
  • mysql数据库sql优化(五)看这里之--覆盖索引

    目录 什么是覆盖索引 xff1f 举例一 举例二 覆盖索引的利弊 好处 弊端 什么是覆盖索引 xff1f 理解方式一 xff1a 索引是高效找到行的一个方法 xff0c 但是一般数据库也能使用索引找到一个列的数据 xff0c 因此它不必读取
  • 抖音品质建设 - iOS启动优化《实战篇》

    前言 启动是 App 给用户的第一印象 xff0c 启动越慢 xff0c 用户流失的概率就越高 xff0c 良好的启动速度是用户体验不可缺少的一环 启动优化涉及到的知识点非常多 xff0c 面也很广 xff0c 一篇文章难以包含全部 xff
  • 如何使用idea来设置文件模板,方便创建配置文件

    很多时候 xff0c 我们需要重复的创建模板文件 比如我们在学习Mybatis的时候 xff0c 需要创建mybatis config xml文件以及xxxmapper xml文件 很多时候这些文件的格式是类似的 xff0c 我们需要做的就
  • Mybatis学习之数据库字段与实体属性的映射

    目录 准备 问题 方式一 xff1a 给查询的字段起别名 方式二 xff1a 修改核心配置文件mybatis config xml 方式三 xff1a 通过resultMap自定义映射 准备 我们的表的字段以及表数据如下 生成的实体类的属性
  • Maven学习之使用idea开发工具创建父工程以及子工程(子模块)

    目录 概述 创建父工程 创建project 配置Maven信息 配置本次新建项目的Maven环境 配置全局的Maven环境 创建Java模块的子工程 创建Web模块的子工程 修改打包方式 概述 之前我们在将Maven的时候都是实用的手动创建

随机推荐