roscore等ros命令执行后终端无输出,无反应

2024-09-05 17:52

本文主要是介绍roscore等ros命令执行后终端无输出,无反应,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现象

在终端中输入 roscore 等 ros 命令,终端无输出,无反应。但是,Ctrl+C后终端还是有输出的。

解决措施

打开.barshrc文件

gedit ~/.bashrc

修改ROS_HOSTNAMEROS_MASTER_URI变量的赋值语句,如果有ROS_IP变量也需要修改。用 localhost 替代具体的 IP地址。

修改前。

export ROS_HOSTNAME=192.168.8.144
export ROS_MASTER_URI=http://192.168.8.144:11311

修改后。用 localhost 替代具体的 IP地址。

export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311

如果没有主从机的需求,直接将这几行赋值语句,注释掉也行。

原因分析

直接原因:ros 没有找到 ros master 所在的位置。

这个问题一般是由于主从机配置问题导致的。在配置主从机时,需要在分别主机和从机中指定主机的 IP 地址,一般我们为了方便会将其设置为一个固定的 IP 地址。需要在.barshrc文件中对 ROS_HOSTNAMEROS_MASTER_URI等变量赋值。

一般我们以机器人的机载电脑为作为主机,它的.barshrc文件中 ROS_HOSTNAMEROS_MASTER_URI等变量赋值语句,类似于

export ROS_HOSTNAME=192.168.8.144
export ROS_MASTER_URI=http://192.168.8.144:11311

这种在主机上直接用具体 IP 地址来为变量赋值的方法,本来是没有问题的。但是连接 WIFI 时,该设备的 IP 地址是和网络有关的。下面具体说明:

  • 如果设备处于需要工作的 WIFI 网络下,此时,由于已经对设备在该网络下的 IP 地址进行了设定,其地址就会是设定的 192.168.8.144。此时,在终端中输入 roscore 等 ros 命令,应该是能正常工作的。

  • 但是,如果取消了该 WIFI 网络连接,或连接到了没有设置 IP 的网络下,本机的 IP 地址就不再是 192.168.8.144 了,但是.barshrc文件中还是使用了该 IP 地址对变量赋值,这导致启动 ros 节点无法找到ros master 所在位置。节点就会卡住,没有继续启动,也就没有输出了。为避免这种情况,在主机上,最好是用 localhost 替代具体的 IP地址。

这篇关于roscore等ros命令执行后终端无输出,无反应的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

使用TomCat,service输出台出现乱码的解决

《使用TomCat,service输出台出现乱码的解决》本文介绍了解决Tomcat服务输出台中文乱码问题的两种方法,第一种方法是修改`logging.properties`文件中的`prefix`和`... 目录使用TomCat,service输出台出现乱码问题1解决方案问题2解决方案总结使用TomCat,

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20