tesseract-robotics/tesseract_python

Failed to instantiate plugin 'ProcessPlanningInputTaskFactory'

dave992 opened this issue · 5 comments

I've installed tesseract_python using the instructions in the readme. I am using Ubuntu 20.04 (via WSL2 on Windows 11).

Once I start the listed example tesseract_planning_example_composer I received the following error:

You can set logging level with TRAJOPT_LOG_THRESH. Valid values: FATAL ERROR WARN INFO DEBUG TRACE. Defaulting to ERROR
Error:   Failed to instantiate plugin 'ProcessPlanningInputTaskFactory', Details:
Search Paths (Search System Folders: True):
    - /__w/tesseract_python/tesseract_python/ws/install/lib
    - /usr/local/lib
Search Libraries:
    - libtesseract_task_composer_factories.so
    - libtesseract_task_composer_planning_factories.so
    - libtesseract_task_composer_taskflow_factories.so

         at line 161 in /__w/tesseract_python/tesseract_python/ws/install/include/tesseract_common/plugin_loader.hpp
Warning: Failed to load symbol 'ProcessPlanningInputTaskFactory'
         at line 273 in /__w/tesseract_python/tesseract_python/ws/src/tesseract_planning/tesseract_task_composer/core/src/task_composer_plugin_factory.cpp
Warning: Failed to load symbol 'PipelineTaskFactory', Details: Task Composer Graph 'FreespacePipeline' failed to create node 'ProcessInputTask'
         at line 281 in /__w/tesseract_python/tesseract_python/ws/src/tesseract_planning/tesseract_task_composer/core/src/task_composer_plugin_factory.cpp
Segmentation fault

The other examples seem to run fine. Both tesseract_collision_example, and tesseract_kinematics_example run without errors and provide output to the terminal. tesseract_planning_example_no_composer also runs as expected and provides output to the terminal. Furthermore, on localhost:8000 this example also produces a visual of a robot moving along a trajectory.

Did I miss any installation instructions or am I doing something wrong?

The plugins should automatically configure when using the Python packages from pip. I have not tested on WSL so I do not know if there are some weird behaviors that differ from normal Linux environments.

I ran the example again with:

tesseract_common.setLogLevel(tesseract_common.CONSOLE_BRIDGE_LOG_DEBUG)

This did result in some more log messages regarding a Bad file descriptor:

You can set logging level with TRAJOPT_LOG_THRESH. Valid values: FATAL ERROR WARN INFO DEBUG TRACE. Defaulting to ERROR
Debug:   SRDF Parser: The version number warning can be suppressed by adding the attribute: version=1.0.0
Debug:   Created collision object for link base_link
Debug:   Created collision object for link link_1
Debug:   Created collision object for link link_2
Debug:   Created collision object for link link_3
Debug:   Created collision object for link link_6
Debug:   Created collision object for link link_4
Debug:   Created collision object for link link_5
Debug:   Created collision object for link base_link
Debug:   Created collision object for link link_1
Debug:   Created collision object for link link_2
Debug:   Created collision object for link link_3
Debug:   Created collision object for link link_6
Debug:   Created collision object for link link_4
Debug:   Created collision object for link link_5
Debug:   Failed to find or load library: /__w/tesseract_python/tesseract_python/ws/install/lib/libtesseract_task_composer_factories.so with error: Bad file descriptor
Debug:   Failed to find or load library: /__w/tesseract_python/tesseract_python/ws/install/lib/libtesseract_task_composer_planning_factories.so with error: Bad file descriptor
Debug:   Failed to find or load library: /__w/tesseract_python/tesseract_python/ws/install/lib/libtesseract_task_composer_taskflow_factories.so with error: Bad file descriptor
Debug:   Failed to find or load library: /usr/local/lib/libtesseract_task_composer_factories.so with error: Bad file descriptor
Debug:   Failed to find or load library: /usr/local/lib/libtesseract_task_composer_planning_factories.so with error: Bad file descriptor
Debug:   Failed to find or load library: /usr/local/lib/libtesseract_task_composer_taskflow_factories.so with error: Bad file descriptor
Debug:   Failed to find or load library: libtesseract_task_composer_factories.so with error: Bad file descriptor
Debug:   Failed to find or load library: libtesseract_task_composer_planning_factories.so with error: Bad file descriptor
Debug:   Failed to find or load library: libtesseract_task_composer_taskflow_factories.so with error: Bad file descriptor
Error:   Failed to instantiate plugin 'ProcessPlanningInputTaskFactory', Details: 
Search Paths (Search System Folders: True):
    - /__w/tesseract_python/tesseract_python/ws/install/lib
    - /usr/local/lib
Search Libraries:
    - libtesseract_task_composer_factories.so
    - libtesseract_task_composer_planning_factories.so
    - libtesseract_task_composer_taskflow_factories.so

         at line 161 in /__w/tesseract_python/tesseract_python/ws/install/include/tesseract_common/plugin_loader.hpp
Warning: Failed to load symbol 'ProcessPlanningInputTaskFactory'
         at line 273 in /__w/tesseract_python/tesseract_python/ws/src/tesseract_planning/tesseract_task_composer/core/src/task_composer_plugin_factory.cpp
Warning: Failed to load symbol 'PipelineTaskFactory', Details: Task Composer Graph 'FreespacePipeline' failed to create node 'ProcessInputTask'
         at line 281 in /__w/tesseract_python/tesseract_python/ws/src/tesseract_planning/tesseract_task_composer/core/src/task_composer_plugin_factory.cpp
Segmentation fault

Are there any checks I could do?

I also tested it on Windows 11 directly (so not using WSL2) and I am getting the exact same error. The only difference is some of the paths.

Command Prompt Output

You can set logging level with TRAJOPT_LOG_THRESH. Valid values: FATAL ERROR WARN INFO DEBUG TRACE. Defaulting to ERROR
Error:   Failed to instantiate plugin 'ProcessPlanningInputTaskFactory', Details:
Search Paths (Search System Folders: True):
    - /usr/local/lib
    - D:/a/tesseract_python/tesseract_python/ws/install/bin
Search Libraries:
    - libtesseract_task_composer_factories.dll
    - libtesseract_task_composer_planning_factories.dll
    - libtesseract_task_composer_taskflow_factories.dll

         at line 161 in D:\a\tesseract_python\tesseract_python\ws\install\include\tesseract_common/plugin_loader.hpp
Warning: Failed to load symbol 'ProcessPlanningInputTaskFactory'
         at line 273 in D:\a\tesseract_python\tesseract_python\ws\src\tesseract_planning\tesseract_task_composer\core\src\task_composer_plugin_factory.cpp
Warning: Failed to load symbol 'PipelineTaskFactory', Details: Task Composer Graph 'FreespacePipeline' failed to create node 'ProcessInputTask'
         at line 281 in D:\a\tesseract_python\tesseract_python\ws\src\tesseract_planning\tesseract_task_composer\core\src\task_composer_plugin_factory.cpp

It looks like there were changes to the newer version of tesseract_planning. The configuration files are for the newer plugin system that hasn't been updated in the Python wrappers yet.

In tesseract_planning, run:

git checkout 0.18.5

This will check out a version that is compatible.

Thanks. it does not crash anymore after using the 0.18.5 version. I do not get the visual on http://localhost:8000 yet, but I first need to have a look at why that might be.