ROS 节点 运行 但一些连接已断开
ROS nodes running but some connections are broken
设置
我是 运行 ROS 节点在两台不同的机器上(我的笔记本电脑,运行 ROS melodic 在 Ubuntu 18.04 和 voxl computer 运行 ROS yocto 上的动力学)。
问题
voxl 计算机运行 roscore
。两个设备之间的通信很好。相应的 IP 设置正确(ROS_IP
和 ROS_MASTER_URI
在每个设备上相应地明确设置)。
然而,有些节点(只有少数!)虽然启动正常,但似乎未连接,roswtf
生成错误:
ERROR The following nodes should be connected but aren't:
* /node_x -> /node_y
* ...
在网上搜索时,导致此类错误的原因通常是DNS相关问题,但在这里,两台设备都已成功连接到网络并且大多数节点都可以正常运行,除了其中一些...
此外,杀死与 rosnode kill node_z
通信有问题的节点并单独用 rosrun package node_z
重新启动它可以使其再次正常通信。
roscore
相关问题?
此外,采用工作配置(多个节点在同一设备上交互,在同一台机器上使用 roscore)没问题,但是 运行 相同的配置,但是这次,roscore 开启另一台设备断开了某些连接。是什么导致了这种差异?
对发射序列的敏感度
似乎节点或启动文件的调用顺序有影响。
结论
我不确定是什么原因导致了这里的问题,也不知道在哪里可以解决问题...
好的,看来这种行为可能是由于防火墙造成的,在本例中是 ufw
。我不知道防火墙已启用,因为有些节点可以通信而有些节点不能通信,所以我没想先检查一下。
要解决通信问题,我所要做的就是禁用防火墙:
sudo ufw disable
在那之后,所有节点都能够正常通信并且roswtf
不再报告任何错误。
错误 The following nodes should be connected but aren't:
是由于防火墙阻止了 inbound/outbound 连接。当我想从 windows PC (Windows 10) 中的 MATLAB ROS 节点 运行 到 [= 中的主节点 (roscore) 运行 进行通信时,我遇到了类似的问题16=] 机器 (Ubuntu 18.04)。在允许 MATLAB 通过防火墙通过网络进行通信后,我终于能够完成它。
设置
我是 运行 ROS 节点在两台不同的机器上(我的笔记本电脑,运行 ROS melodic 在 Ubuntu 18.04 和 voxl computer 运行 ROS yocto 上的动力学)。
问题
voxl 计算机运行 roscore
。两个设备之间的通信很好。相应的 IP 设置正确(ROS_IP
和 ROS_MASTER_URI
在每个设备上相应地明确设置)。
然而,有些节点(只有少数!)虽然启动正常,但似乎未连接,roswtf
生成错误:
ERROR The following nodes should be connected but aren't:
* /node_x -> /node_y
* ...
在网上搜索时,导致此类错误的原因通常是DNS相关问题,但在这里,两台设备都已成功连接到网络并且大多数节点都可以正常运行,除了其中一些...
此外,杀死与 rosnode kill node_z
通信有问题的节点并单独用 rosrun package node_z
重新启动它可以使其再次正常通信。
roscore
相关问题?
此外,采用工作配置(多个节点在同一设备上交互,在同一台机器上使用 roscore)没问题,但是 运行 相同的配置,但是这次,roscore 开启另一台设备断开了某些连接。是什么导致了这种差异?
对发射序列的敏感度
似乎节点或启动文件的调用顺序有影响。
结论
我不确定是什么原因导致了这里的问题,也不知道在哪里可以解决问题...
好的,看来这种行为可能是由于防火墙造成的,在本例中是 ufw
。我不知道防火墙已启用,因为有些节点可以通信而有些节点不能通信,所以我没想先检查一下。
要解决通信问题,我所要做的就是禁用防火墙:
sudo ufw disable
在那之后,所有节点都能够正常通信并且roswtf
不再报告任何错误。
错误 The following nodes should be connected but aren't:
是由于防火墙阻止了 inbound/outbound 连接。当我想从 windows PC (Windows 10) 中的 MATLAB ROS 节点 运行 到 [= 中的主节点 (roscore) 运行 进行通信时,我遇到了类似的问题16=] 机器 (Ubuntu 18.04)。在允许 MATLAB 通过防火墙通过网络进行通信后,我终于能够完成它。