FlexBE / flexbe_app

The classic user interface (editor + runtime control) for the FlexBE behavior engine. See the flexbe_webui for latest
BSD 3-Clause "New" or "Revised" License
48 stars 49 forks source link

Stuck on "waiting for behaviour" #67

Open tim-fan opened 4 years ago

tim-fan commented 4 years ago

Hi there, I'm trying to run through the basic tutorials, but am not able to get a behaviour to run. It appears to be stuck waiting for confirmation from onboard behaviour.

Not sure if this is a bug or if I've missed something in the setup.

I'm using bionic/melodic

How I set it up:

mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://github.com/FlexBE/flexbe_app.git
cd ..
rosdep install --from-paths src/ --ignore-src
source /opt/ros/melodic/setup.bash
catkin build
source devel/setup.bash
cd src
rosrun flexbe_widget create_repo test_repo
cd ..
catkin build
source devel/setup.bash
roslaunch flexbe_app flexbe_full.launch

When the app opens I select "Load Behaviour" then "Example Behaviour". Then I select "Runtime Control" and click "Start Execution". The app shows the screen from the following screenshot, and never transitions past this state ('waiting for confirmation from onboard behaviour'). I waited up to two minutes, but still the screen did not update. Screenshot from 2020-09-02 21-19-53

The full terminal output from roslaunch is:

... logging to /home/tim/.ros/log/d625547c-ecff-11ea-aecb-3052cb149165/roslaunch-tim-Aspire-R5-471T-32492.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://tim-Aspire-R5-471T:35225/

SUMMARY
========

PARAMETERS
 * /behavior/log_enabled: False
 * /behavior/log_folder: ~/.flexbe_logs
 * /behavior/log_level: INFO
 * /behavior/log_serialize: yaml
 * /rosdistro: melodic
 * /rosversion: 1.14.5

NODES
  /
    behavior (flexbe_onboard/start_behavior)
    behavior_launcher (flexbe_widget/be_launcher)
    behavior_mirror (flexbe_mirror/behavior_mirror_sm)
    flexbe_app (flexbe_app/run_app)

auto-starting new master
process[master]: started with pid [32502]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to d625547c-ecff-11ea-aecb-3052cb149165
process[rosout-1]: started with pid [32514]
started core service [/rosout]
process[behavior_mirror-2]: started with pid [32518]
process[flexbe_app-3]: started with pid [32522]
process[behavior_launcher-4]: started with pid [32524]
process[behavior-5]: started with pid [32525]
[32526:32526:0902/213658.646153:ERROR:component_loader.cc(165)] Failed to parse extension manifest.
[32549:32549:0902/213659.178205:ERROR:sandbox_linux.cc(371)] InitializeSandbox() called with multiple threads in process gpu-process.
[32549:32549:0902/213700.348295:ERROR:buffer_manager.cc(488)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : glBufferData: <- error from previous GL command
(node:32566) [DEP0025] DeprecationWarning: sys is deprecated. Use util instead.
[INFO] [1599039436.337382]: 1 behaviors available, ready for start request.
[INFO] [1599039437.014049]: --- Behavior Engine ready! ---

Any ideas on how to get this behaviour to execute?

zerolatnc commented 4 years ago

I have the same issue.

cjue commented 4 years ago

Can the two of you check which version of the flexbe_onboard/widget packages you are using?

Running the behavior from the create_repo command works fine for me on 16.04 with the current develop branches.

tim-fan commented 4 years ago

I got those packages from apt (following instructions from http://philserver.bplaced.net/fbe/download.php)

This gives me the following versions:

$ rosversion flexbe_widget
1.2.5
$ rosversion flexbe_onboard
1.2.5
tim-fan commented 4 years ago

Follow up, I've confirmed if I build everything from source then the state machine runs (does not get stuck waiting for behaviour).

To be specific, I cloned flexbe_behavior_engine into my source space: git clone https://github.com/team-vigir/flexbe_behavior_engine.git Then rebuilt, then it all worked.

So it looks like the issue is that the released packages for melodic are not compatible with the master branch of https://github.com/FlexBE/flexbe_app.git

dcconner commented 1 year ago

Closing this based on lack of recent comments. If you see issue on consistent Noetic or ros2-devel/humble branches, then please re-open or file a new issue

adam2809 commented 10 months ago

Unfortunately I have encoutered a similar issue while running flexbe on noetic. I have both flexbe_app and flexbe_behaviour_engine cloned into the src folder in my catkin workspace and checked out on the noetic branch. Below is the output of runnning the app:

roslaunch flexbe_app flexbe_ocs.launch             
... logging to /home/adam/.ros/log/de5e716e-a642-11ee-b9af-77a6928f1b3d/roslaunch-kompirrr-22625.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://kompirrr:34933/

SUMMARY
========

PARAMETERS
 * /rosdistro: noetic
 * /rosversion: 1.16.0

NODES
  /
    behavior_launcher (flexbe_widget/be_launcher)
    behavior_mirror (flexbe_mirror/behavior_mirror_sm)
    flexbe_app (flexbe_app/run_app)

auto-starting new master
process[master]: started with pid [22636]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to de5e716e-a642-11ee-b9af-77a6928f1b3d
process[rosout-1]: started with pid [22649]
started core service [/rosout]
process[behavior_mirror-2]: started with pid [22652]
process[flexbe_app-3]: started with pid [22658]
process[behavior_launcher-4]: started with pid [22660]
[22662:22662:1229/130743.123127:ERROR:component_loader.cc(165)] Failed to parse extension manifest.
[22693:22693:1229/130743.147393:ERROR:viz_main_impl.cc(176)] Exiting GPU process due to errors during initialization
[22711:22725:1229/130743.301467:ERROR:command_buffer_proxy_impl.cc(124)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
(node:22711) [DEP0025] DeprecationWarning: sys is deprecated. Use util instead.
[INFO] [1703851664.009216]: 2 behaviors available, ready for start request.

When I click "Check Behavior" the terminal gets stuck on "Performing behavior checks" Screenshot from 2023-12-29 13-13-58

Clicking on "Save Behavior" does nothing. Even though the configuration screen suggests that there is a connection to the ROS master: Screenshot from 2023-12-29 13-13-30 it is contradicted in the "Runtime Control" screen: Screenshot from 2023-12-29 13-13-26

Most confusingly these issues only came up after around 1 hour of using flexbe after I was able to develop my behavior partially. I would really appreciate help with the issue.

dcconner commented 10 months ago

Have you tried pressing the "Connect" button on the Runtime control screen.

Also, verify that all of the ROS nodes are running: the mirror, be_launcher widget, and onboard are still running.