Attaching FlexBE GUI to a running behavior sometimes throws an error

asked 2019-01-30 07:22:32 -0500

manox gravatar image

updated 2019-01-30 07:23:07 -0500

I would like to run a FlexBE behavior directly on a robot (so that it theoretically can run without operator), but want also to attach the FlexBE GUI to it on another PC.

In the specific case, I start the behavior_onboard.launch on the robot and start the behavior with a be_launcher node. Then, Iwant to start the state machine manually after attaching the GUI (flexbe_ocs.launch) to the running behavior. I wonder what the best method is. At the moment, I use a wait state (with very long wait time) as first state, which gives me time to attach the GUI and then fore the outcome of that state. Maybe there are better methods like a state waiting for a start message. The problem is, that sometimes this works and sometimes it's throwing an error like follows:

[ERROR] [1548852953.881947]: Behavior execution failed!
    Could not execute state 'Wait before start' of type '<flexbe_states.wait_state.WaitState object at 0x7fc9a4820e50>': Traceback (most recent call last):
      File "/opt/ros/kinetic/lib/python2.7/dist-packages/smach/state_machine.py", line 247, in _update_once
        self._remappings[self._current_label]))
      File "/home/mark/catkin_ws/src/flexbe_behavior_engine/flexbe_core/src/flexbe_core/core/event_state.py", line 38, in _event_execute
        if self._is_controlled and self._sub.has_msg(self._pause_topic):
      File "/home/mark/catkin_ws/src/flexbe_behavior_engine/flexbe_core/src/flexbe_core/proxy/proxy_subscriber_cached.py", line 153, in has_msg
        return ProxySubscriberCached._topics[topic]['last_msg'] is not None
    KeyError: 'flexbe/command/pause'

Another question that a have regarding FlexBE: Is there is a possibility to automate the process of loading a behavior in the GUI and attaching to a running behavior?

edit retag flag offensive close merge delete