fzi-forschungszentrum-informatik / ros2_ros_bt_py

This is a Behavior Tree library meant to be an alternative to SMACH, FlexBE and the like. It includes a ReactJS-based web GUI and all the building blocks you need to build moderately advanced mission control Behavior Trees without writing a single line of code!
BSD 3-Clause "New" or "Revised" License
24 stars 6 forks source link

šŸ› [BUG] - TopicSubscriber Node crashes on start #91

Open Oberacda opened 1 month ago

Oberacda commented 1 month ago

Description

Topic subscriber crashes on startup due to an internal error.

Reproduction URL

https://github.com/fzi-forschungszentrum-informatik/ros2_ros_bt_py

Reproduction steps

1. Create a new tree
2. Add a Topic Subscriber
3. Start the tree

Screenshots

No response

Logs

[tree_node-1] [INFO] Not calling shutdown method, node has not been initialized yet  (TopicSubscriber loginfo:1114)
[tree_node-1] Traceback (most recent call last):
[tree_node-1]   File "/home/doberacker/repos/ros_ws/ros2_ros_bt_py/colcon_ws/install/ros_bt_py/lib/ros_bt_py/tree_node", line 33, in <module>
[tree_node-1]     sys.exit(load_entry_point('ros-bt-py', 'console_scripts', 'tree_node')())
[tree_node-1]   File "/home/doberacker/repos/ros_ws/ros2_ros_bt_py/colcon_ws/build/ros_bt_py/ros_bt_py/tree_node.py", line 434, in main
[tree_node-1]     executor.spin()
[tree_node-1]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 294, in spin
[tree_node-1]     self.spin_once()
[tree_node-1]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 739, in spin_once
[tree_node-1]     self._spin_once_impl(timeout_sec)
[tree_node-1]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 736, in _spin_once_impl
[tree_node-1]     raise handler.exception()
[tree_node-1]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/task.py", line 239, in __call__
[tree_node-1]     self._handler.send(None)
[tree_node-1]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 437, in handler
[tree_node-1]     await call_coroutine(entity, arg)
[tree_node-1]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 391, in _execute_service
[tree_node-1]     response = await await_or_execute(srv.callback, request, srv.srv_type.Response())
[tree_node-1]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 107, in await_or_execute
[tree_node-1]     return callback(*args)
[tree_node-1]   File "/home/doberacker/repos/ros_ws/ros2_ros_bt_py/colcon_ws/build/ros_bt_py/ros_bt_py/tree_manager.py", line 1073, in control_execution
[tree_node-1]     root.shutdown()
[tree_node-1]   File "/home/doberacker/repos/ros_ws/ros2_ros_bt_py/colcon_ws/build/ros_bt_py/ros_bt_py/node.py", line 767, in shutdown
[tree_node-1]     self.state = self._do_shutdown()
[tree_node-1]   File "/home/doberacker/repos/ros_ws/ros2_ros_bt_py/colcon_ws/build/ros_bt_py/ros_bt_py/nodes/sequence.py", line 110, in _do_shutdown
[tree_node-1]     child.shutdown()
[tree_node-1]   File "/home/doberacker/repos/ros_ws/ros2_ros_bt_py/colcon_ws/build/ros_bt_py/ros_bt_py/node.py", line 767, in shutdown
[tree_node-1]     self.state = self._do_shutdown()
[tree_node-1]   File "/home/doberacker/repos/ros_ws/ros2_ros_bt_py/colcon_ws/build/ros_bt_py/ros_bt_py/ros_nodes/topic.py", line 113, in _do_shutdown
[tree_node-1]     if self._subscriber is None:
[tree_node-1] AttributeError: 'TopicSubscriber' object has no attribute '_subscriber'. Did you mean: '_subscribe'?

ROS2 Version

Humble

OS

Ubuntu 22.04

mdeitersen commented 1 month ago

Working on it