Ubuntu18.04 中编译 TI 官方的ros驱动包中 autonomous_robotics_ros 包所存在的问题及解决方案

本文主要是介绍Ubuntu18.04 中编译 TI 官方的ros驱动包中 autonomous_robotics_ros 包所存在的问题及解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境:

安装有 ROS 系统的 Ubuntu18.04 环境,并且已将 TI 官方的毫米波雷达 ROS 驱动下载到Ubuntu18.04系统中,如需获取此代码请点击此链接根据教程下载即可。

代码下载链接:TI IWR6843ISK ROS驱动程序搭建-CSDN博客

问题1:

编译时出现没有 turtlebot_msgs 安装包的提示

解决方案:

将下面链接中的代码克隆或者下载zip文件到autonomous_robotics_ros/src/turtlebot/文件夹下

git clone https://github.com/turtlebot/turtlebot_msgs.git

将此 turtlebot_msgs 安装包克隆或者下载到autonomous_robotics_ros/src/turtlebot/文件夹下之后,再次执行 catkin_make 指令编译即可。

问题2:

#error This file was generated by an older version of protoc which is:

fecea42140f14207a4481f057d81da48.png

解决方法:

上述的问题主要是

error This file was generated by an older version of protoc which is:错误此文件是由旧版本的protoc生成的,我目前的版本为3.4.0,因此需要下载新版本的protoc才行。因为我的系统是Ubuntu18.04,此本版的gazebo对应的protoc版本为protoc 3.0.0.

根据如下步骤进行操作更新protoc文件

1)查看protoc文件版本

 protoc --version  

fe2fcc8550d54e549694d5934bdcde6d.png

2)首先移除原有的 protobuf 

cd /usr/local/include/google
sudo rm -rf protobuf

d460f7f594c942f6aaef92a64461f40f.png

3)下载protobuf文件,因为我自己的是protobuf 3.4.0,我这里就先下载了protobuf-v3.0.0

,按照所有步骤操作完成之后,如果还报版本不对的错误,说明这个v3.0.0 版本不对,需要根据下载更新的版本或者更旧的版本~~)

# 进入mmwave_ti_ros/autonomous_robotics_ros/src/文件下
cd mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot/# 克隆 protobuf v3.0.0 文件
git clone https://github.com/protocolbuffers/protobuf/tree/v3.0.0

下载完成后,执行如下操作编译 protobuf 3.0.0 文件,先进行自动配置,然后当前路径下会生成一个configure文件,指定安装路径

cd protobuf-3.0.0
./autogen.sh
./configure
make
make check
sudo make install
sudo ldconfig

至此 protobuf 3.0.0 安装完成,可以使用如下指令进行查询

protoc --version

2650cc9f075f4aed9c7f1a0a544bf84f.png

注意:执行 ./autogen.sh时,如果出现下面的问题

:~/third_library/protobuf-3.0.0$ ./autogen.sh 
Google Mock not present.  Fetching gmock-1.7.0 from the web...% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed0     0    0     0    0     0      0      0 --:--:--  0:02:09 --:--:--     0curl: (7) Failed to connect to googlemock.googlecode.com port 443: 连接超时

解决方法是之间通过下载gmock 这个文件 ,链接:paulsapps/gmock-1.7.0首页 - GitCode,然后放到 protobuf-3.0.0/ 文件夹下,并且 将文件夹 gmock-1.7.0/改名为 gmock/ ,然后再次执行 ./autogen.sh 指令即可。

到此,protobuf问题已解决,在执行 catkin_make 指令编译之前,需要将刚刚下载的autonomous_robotics_ros/src/turtlebot/ protobuf-3.0.0/文件夹删除,然后再执行 catkin_make 指令编译,不然编译不了。

参考博客:

Turtlebot1入门教程-安装Turtlebot(Ubuntu18.04+Melodic)_sudo apt-get install ros-melodic-kobuki-CSDN博客

error This file was generated by an xxx version of protoc which is 解决方法_error: #error this file was generated by an older -CSDN博客

 Ubuntu 18.04 安装protobuf --- version 3.20.3_protobuf 3.20-CSDN博客

Gazebo需要的protoc版本与google-cartographer需要的版本不一致_protobuf 哪个版本与 gazebo 9 兼容-CSDN博客

This file was generated by an older version of protoc 解决方法_windows下#error: this file was generated by an olde-CSDN博客

 

这篇关于Ubuntu18.04 中编译 TI 官方的ros驱动包中 autonomous_robotics_ros 包所存在的问题及解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/821578

相关文章

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三