python - “线程Thread-3中的异常”Python异常杀死ROS节点
问题描述
我正在尝试使用 python 脚本和 ROS 构建一个 slam 算法。我有一个顶级工作区,它有两个包,一个是来自 GitHub 的 (rplidar_ros) 包,另一个是我使用 catkin_create_pkg 构建的 (slam) 包,它有一个 src 目录,其中包含两个 python 文件 icp.py 和映射。 py,一个在 Custom.msg 中定义了自定义主题的 msg 目录和一个带有 icp.launch 的启动目录。我的问题是,当我使用roslaunch
启动所有三个节点时,rplidar_ros
启动icp_node
正常并保持活动状态。map_node 虽然一开始就立即死亡,然后重生,然后再次死亡并继续这个循环。
当每个节点不使用独立运行时roslaunch
,如果icp_node在map_node之前运行,map_node会产生相同的关闭和启动周期。但是如果 map_node 在 icp_node 之前启动它会给出这个错误 -
Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "/opt/ros/melodic/lib/python2.7/dist-packages/rospy/impl/tcpros_base.py", line 154, in run
(client_sock, client_addr) = self.server_sock.accept()
File "/usr/lib/python2.7/socket.py", line 206, in accept
sock, addr = self._sock.accept()
File "/usr/lib/python2.7/socket.py", line 174, in _dummy
raise error(EBADF, 'Bad file descriptor')
error: [Errno 9] Bad file descriptor
知道什么可能导致此错误吗?
解决方案
推荐阅读
- javascript - 如何在ejs中设置if else条件
- string - F# 中的表达式“some string”.[3 .. 7] 调用哪个函数?
- c# - 读取从 wcf 收到的原始 Soap 信息
- android - Ionic Cordova 不构建 android
- flutter - Flutter on web:如何获取 Iframe 高度以放入 SingleChildScrollView
- python - 将 pandas df 转换为字典
- c - 调用显示函数后循环运行无限时间
- python - 如何使用python检查git repo中是否有未暂存/未提交的更改或未推送的提交
- python - 为天真的日期时间添加 tzinfo 会导致奇怪的偏移量?
- mysql - 如何更改 mysqldump 使用数据库