ubuntu22.04/ROS2

状态查询

22-9-13

在使用下面的指令时

ros2 node list
ros2 server list
  • 等等诸如此类的查询命令出现了貌似节点crash的问题,但是偶尔出现,导致无法百分百复刻
Traceback (most recent call last):
  File "/opt/ros/humble/bin/ros2", line 33, in <module>
    sys.exit(load_entry_point('ros2cli==0.18.3', 'console_scripts', 'ros2')())
  File "/opt/ros/humble/lib/python3.10/site-packages/ros2cli/cli.py", line 89, in main
    rc = extension.main(parser=parser, args=args)
  File "/opt/ros/humble/lib/python3.10/site-packages/ros2node/command/node.py", line 37, in main
    return extension.main(args=args)
  File "/opt/ros/humble/lib/python3.10/site-packages/ros2node/verb/list.py", line 38, in main
    node_names = get_node_names(node=node, include_hidden_nodes=args.all)
  File "/opt/ros/humble/lib/python3.10/site-packages/ros2node/api/__init__.py", line 60, in get_node_names
    node_names_and_namespaces = node.get_node_names_and_namespaces()
  File "/usr/lib/python3.10/xmlrpc/client.py", line 1122, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python3.10/xmlrpc/client.py", line 1464, in __request
    response = self.__transport.request(
  File "/usr/lib/python3.10/xmlrpc/client.py", line 1166, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python3.10/xmlrpc/client.py", line 1182, in single_request
    return self.parse_response(resp)
  File "/usr/lib/python3.10/xmlrpc/client.py", line 1354, in parse_response
    return u.close()
  File "/usr/lib/python3.10/xmlrpc/client.py", line 668, in close
    raise Fault(**self._stack[0])
xmlrpc.client.Fault: <Fault 1: "<class 'rclpy._rclpy_pybind11.InvalidHandle'>:cannot use Destroyable because destruction was requested">
  • 有趣的是,ros2 daemon status显示The daemon is running. 运行ros2 node list --no-daemon几次第一次调用什么都没有返回,然后是 2/6 个节点,然后是 6/6 个节点,然后什么都没有。重新启动守护程序已解决上述问题。所以看起来守护进程以某种方式崩溃
  • 不太确定造成这种情况的根本原因,但以下任何一项都可以解决?
    – 在有此问题的节点上重新启动 ros2 守护程序。
ros2 daemon stop
ros2 daemon start
ros2 daemon status

– 使用 ros2cli 作为DirectNode

ros2 node list --no-daemon
ros2 topic list --no-daemon

排查原因

后期尝试复刻时,发现可能是开启两个相同的节点并操作后导致的crash

22-9-14

注意ROS2,即humble版本中用于编译的catkin或者catkin_make命令已经被colcon命令代替
(花了一天多的时间研究了一堆关于各种语言的编译工具的资料,最后发现啥用都没有。。。。)

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生稚晖君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值