JARVIS-MoCap / JARVIS-AcquisitionTool

AcquisitionTool to record multi-camera recordings for the JARVIS 3D Markerless Pose Estimation Toolbox

Home Page:https://jarvis-mocap.github.io/jarvis-docs/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AcquisitionTool: error while loading shared libraries: libopencv_videoio.so.4.5: cannot open shared object file

timsainb opened this issue · comments

I am installing the prebuilt version of acquisitiontool on a new version of ubuntu 20.04. I run into this error:

AcquisitionTool: error while loading shared libraries: libopencv_videoio.so.4.5: cannot open shared object file: No such file or directory

When trying to build from source, I get the following error at setup.sh

Checking dependencies of submodule 'qtbase'
Checking dependencies of submodule 'qtimageformats'
Checking dependencies of submodule 'qtlanguageserver'
Checking dependencies of submodule 'qtshadertools'
Checking dependencies of submodule 'qtsvg'
Checking dependencies of submodule 'qtmultimedia'
Skipping optional dependency 'qtdeclarative' of 'qtmultimedia', because building 'qtdeclarative' was explicitly disabled.
Checking dependencies of submodule 'qt3d'
Skipping optional dependency 'qtdeclarative' of 'qt3d', because building 'qtdeclarative' was explicitly disabled.
Checking dependencies of submodule 'qt5compat'
Skipping optional dependency 'qtdeclarative' of 'qt5compat', because building 'qtdeclarative' was explicitly disabled.
Checking dependencies of submodule 'qtactiveqt'
Checking dependencies of submodule 'qtcharts'
Skipping optional dependency 'qtdeclarative' of 'qtcharts', because building 'qtdeclarative' was explicitly disabled.
Checking dependencies of submodule 'qtcoap'
Checking dependencies of submodule 'qtdatavis3d'
Skipping optional dependency 'qtdeclarative' of 'qtdatavis3d', because building 'qtdeclarative' was explicitly disabled.
Checking dependencies of submodule 'qtserialport'
Checking dependencies of submodule 'qtpositioning'
Skipping optional dependency 'qtdeclarative' of 'qtpositioning', because building 'qtdeclarative' was explicitly disabled.
Checking dependencies of submodule 'qtqa'
Checking dependencies of submodule 'qtremoteobjects'
Skipping optional dependency 'qtdeclarative' of 'qtremoteobjects', because building 'qtdeclarative' was explicitly disabled.
Configuring submodule 'qtbase'
-- Could NOT find double-conversion (missing: double-conversion_DIR)
-- Could NOT find md4c (missing: md4c_DIR)
CMake Warning (dev) at qtbase/cmake/3rdparty/extra-cmake-modules/find-modules/FindXCB.cmake:180 (message):
  XINPUT from XCB was requested: this is EXPERIMENTAL and is likely to
  unavailable on many systems!
Call Stack (most recent call first):
  qtbase/cmake/QtFindPackageHelpers.cmake:130 (find_package)
  qtbase/src/gui/configure.cmake:123 (qt_find_package)
  qtbase/cmake/QtFeature.cmake:573 (include)
  qtbase/src/CMakeLists.txt:12 (qt_feature_evaluate_features)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Could NOT find md4c (missing: md4c_DIR)
CMake Warning (dev) at qtbase/cmake/3rdparty/extra-cmake-modules/find-modules/FindXCB.cmake:180 (message):
  XINPUT from XCB was requested: this is EXPERIMENTAL and is likely to
  unavailable on many systems!
Call Stack (most recent call first):
  qtbase/cmake/QtFindPackageHelpers.cmake:130 (find_package)
  qtbase/src/gui/configure.cmake:123 (qt_find_package)
  qtbase/cmake/QtModuleHelpers.cmake:572 (include)
  qtbase/src/gui/CMakeLists.txt:53 (qt_internal_add_module)
This warning is for project developers.  Use -Wno-dev to suppress it.

Generating Plugins files for Core;Concurrent;Sql;Network;Xml;DBus;Gui;OpenGL;Widgets;OpenGLWidgets;DeviceDiscoverySupportPrivate;FbSupportPrivate;InputSupportPrivate;Test;PrintSupport;XcbQpaPrivate;EglFSDeviceIntegrationPrivate...
Configuring submodule 'qtimageformats'
-- Found the following ICU libraries:
--   i18n (required): /usr/lib/x86_64-linux-gnu/libicui18n.so
--   uc (required): /usr/lib/x86_64-linux-gnu/libicuuc.so
--   data (required): /usr/lib/x86_64-linux-gnu/libicudata.so
-- Found the following ICU libraries:
--   i18n (required): /usr/lib/x86_64-linux-gnu/libicui18n.so
--   uc (required): /usr/lib/x86_64-linux-gnu/libicuuc.so
--   data (required): /usr/lib/x86_64-linux-gnu/libicudata.so
-- Found ICU: /usr/include (found version "66.1") 
-- Found the following ICU libraries:
--   i18n (required): /usr/lib/x86_64-linux-gnu/libicui18n.so
--   uc (required): /usr/lib/x86_64-linux-gnu/libicuuc.so
--   data (required): /usr/lib/x86_64-linux-gnu/libicudata.so
-- Found ICU: /usr/include (found version "66.1") 
CMake Error at /home/dattalab/anaconda3/envs/jarvis/lib/cmake/zstd/zstdTargets.cmake:37 (message):
  Some (but not all) targets in this export set were already defined.

  Targets Defined: zstd::libzstd_static

  Targets not yet defined: zstd::libzstd_shared

Call Stack (most recent call first):
  /home/dattalab/anaconda3/envs/jarvis/lib/cmake/zstd/zstdConfig.cmake:1 (include)
  qtbase/cmake/FindWrapZSTD.cmake:21 (find_package)
  /usr/share/cmake-3.24/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
  /home/dattalab/JARVIS/JARVIS-AcquisitionTool/libs/Qt/build/qtbase/lib/cmake/Qt6Core/Qt6CoreDependencies.cmake:48 (find_dependency)
  /home/dattalab/JARVIS/JARVIS-AcquisitionTool/libs/Qt/build/qtbase/lib/cmake/Qt6Core/Qt6CoreConfig.cmake:40 (include)
  /home/dattalab/JARVIS/JARVIS-AcquisitionTool/libs/Qt/build/qtbase/lib/cmake/Qt6/Qt6Config.cmake:213 (find_package)
  qtimageformats/CMakeLists.txt:13 (find_package)


CMake Warning at /home/dattalab/JARVIS/JARVIS-AcquisitionTool/libs/Qt/build/qtbase/lib/cmake/Qt6/Qt6Config.cmake:213 (find_package):
  Found package configuration file:

    /home/dattalab/JARVIS/JARVIS-AcquisitionTool/libs/Qt/build/qtbase/lib/cmake/Qt6Core/Qt6CoreConfig.cmake

  but it set Qt6Core_FOUND to FALSE so package "Qt6Core" is considered to be
  NOT FOUND.
Call Stack (most recent call first):
  qtimageformats/CMakeLists.txt:13 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/dattalab/JARVIS/JARVIS-AcquisitionTool/libs/Qt/build/CMakeFiles/CMakeOutput.log".
See also "/home/dattalab/JARVIS/JARVIS-AcquisitionTool/libs/Qt/build/CMakeFiles/CMakeError.log".
CMake Error at /home/dattalab/JARVIS/JARVIS-AcquisitionTool/libs/Qt/qt/qtbase/cmake/QtProcessConfigureArgs.cmake:963 (message):
  CMake exited with code 1.

Thanks for letting me know!
It seems like the Debian package for Ubuntu 20.04 was trying to link to a wrong version of the OpenCV shared library files. This should be fixed in the latest release you can download by clicking here.

Note that with this release you will also need the updated Trigger Firmware (which is now based on PlatformIO instead of the Arduino IDE). You can download the new firmware from its Repo, you'll also find instructions on how to install it there.

Please let me know if this does not resolve the issue!
Timo

Awesome thanks!

I've been using a Teensy 4.0 with the old firmware, will i need to switch to a arduino uno for this update?

I get this error in running sh install_arduino_uno.sh


========================= [SUCCESS] Took 20.71 seconds =========================

Environment    Status    Duration
-------------  --------  ------------
uno            SUCCESS   00:00:20.706
========================= 1 succeeded in 00:00:20.706 =========================
Processing uno (platform: atmelavr; board: uno; framework: arduino)
--------------------------------------------------------------------------------
Tool Manager: Installing platformio/tool-avrdude @ ~1.60300.0
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Tool Manager: tool-avrdude@1.60300.200527 has been installed!
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/uno.html
PLATFORM: Atmel AVR (4.0.0) > Arduino Uno
HARDWARE: ATMEGA328P 16MHz, 2KB RAM, 31.50KB Flash
DEBUG: Current (avr-stub) On-board (avr-stub, simavr)
PACKAGES: 
 - framework-arduino-avr @ 5.1.0 
 - tool-avrdude @ 1.60300.200527 (6.3.0) 
 - toolchain-atmelavr @ 1.70300.191015 (7.3.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 6 compatible libraries
Scanning dependencies...
Dependency Graph
|-- PacketSerial @ 1.4.0
Building in release mode
Checking size .pio/build/uno/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=====     ]  48.7% (used 997 bytes from 2048 bytes)
Flash: [==        ]  23.1% (used 7442 bytes from 32256 bytes)
Configuring upload protocol...
AVAILABLE: arduino
CURRENT: upload_protocol = arduino
Looking for upload port...

Warning! Please install `99-platformio-udev.rules`. 
More details: https://docs.platformio.org/en/latest/core/installation/udev-rules.html

Auto-detected: /dev/ttyACM0
Uploading .pio/build/uno/firmware.hex
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x31
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x32
avrdude: stk500_getsync() attempt 3      sh install_arduino_uno.sh
of 10: not in sync: resp=0x33
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x32
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x0d
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x0a
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x31
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x32
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x33

avrdude done.  Thank you.

*** [upload] Error 1
========================== [FAILED] Took 6.01 seconds ==========================

Environment    Status    Duration
-------------  --------  ------------
uno            FAILED    00:00:06.012
==================== 1 failed, 0 succeeded in 00:00:06.012 ====================

You should be able to install it on your Teensy using the PlatformIO VSCode plugin. Simply open the JARVIS-Triggerfirmware directory in VSCode, select the right MCU (I guess Teensy41 in your case) from the Project Tasks tree and click Upload.

Alternatively I also attached a untested Teensy installer script (as a .zip to make GitHub happy), that should work with you board, but no promises there.
I know that @padok uses different Teensys in his setup, maybe he can help out if you have any problems with the installation.

Regarding the error you are getting, is that using a Teensy or an Arduino? If you're using it with an Arduino I think following the instructions from https://docs.platformio.org/en/latest/core/installation/udev-rules.html as suggested in the error message should fix it.
install_teensy.zip

Hope this helps!

Hey there!
I just added Teensy 4.0 support here JARVIS-MoCap/JARVIS-TriggerFirmware#4

I didn't test it yet since I don't have a Teensy 4.0, but I'm confident it works.
Please note that pins 0-15 are trigger pins now and pins 16-23 can be used for inputs.

All available boards and the ability to specify wich board you want to flash can be found in the platformio.ini file.

Just change your default environment to the one for your micro controller:

...
[platformio]
- default_envs = uno
+ default_envs = teensy40

[env]
framework = arduino
monitor_filters = time, default
...

This worked great! Thanks!