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

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

C#文件复制异常:"未能找到文件"的解决方案与预防措施

《C#文件复制异常:未能找到文件的解决方案与预防措施》在C#开发中,文件操作是基础中的基础,但有时最基础的File.Copy()方法也会抛出令人困惑的异常,当targetFilePath设置为D:2... 目录一个看似简单的文件操作问题问题重现与错误分析错误代码示例错误信息根本原因分析全面解决方案1. 确保

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据