"Empty factory for Dethprovider"

Hello, again.

I managed to make a ROS node provided here for the nuitrack body tracking. The camera is working and the catkin_make compiles but when launching the launch file I get the same error:

Usage: nuitrack_console_sample [path/to/nuitrack.config]
WARNING: Can not load library module: /usr/etc/nuitrack/middleware/libNuitrackModule.so
ERROR: Empty factory for DepthProvider
Can not initialize Nuitrack (ExceptionType: 2)

The same appears when I just run the sample by doing:

./nuitrack_console_sample

Perhaps, I am missing a step in the installation of the NuitrackSDK. After installing the drivers, I extracted the NuitrackSDK.zip and put it in the home directory. What could be missing?

I am also seeing that no nuitrack.config has been generated by installing “nuitrack-ubuntu-amd64.deb” with dpkg -i. I hope that helps seeing the possible problem.

I am a bit lost. Could you help me with this.

All the best,

Daniel

I´m fighting with a similar problem in Windows 10 using the Intel RealSense D435
When trying to start the “nuitrack_c11_sample.exe”
I get the following:
Start nuitrack c11
Warning: Can not load library module: E:\MultiKinect Gen2\nuitrack-win64\nuitrack/middleware/NuitrackModule.dll

ERROR: Empty factory for DepthProvider
terminate called after throwing an instance of ‘tdv::nuitrack::TerminateException’
what(): Empty factory for DepthProvider

This application has requested the Runtime to terminate it in a unusal way.
Please contact the application’s support team for more information

Could this be related to the environment variables?
I´ve set them to

System variables
NUITRACK_HOME E:\MultiKinect Gen2\nuitrack-win64\nuitrack

User variables
Path E:\MultiKinect Gen2\nuitrack-win64\nuitrack\bin

also tried it with a PATH variable in the Systemsvariable section.

Firmware Version of the sensor is 5.9.13.0 but also didn´t work with earlier versions

Any suggestions?
Thanks for your help

Best regards
Björn

HI Bjorn,

Make sure you set the environment variables for system wide - not just the current user. And also make sure you reboot your computer after you set the environment variables.

The PATH should be set in the system path variable.

Westa

Hi Westa,

sorry for late reply I was on holiday.
I got it to work on another computer. It seems to be related to the Version of Windows 10.
Here is what I found:

  • PC 1 WIN 10 1709 -> not working
  • PC 2 WIN 10 1803 -> working
  • PC 3 WIN 10 1511 -> not working -> upgrade to 1803 -> working

On WIN 10 1803 all examples work, also the Unity stuff.
The PC 1 I can not upgrade to 1803 right now for some other reasons but I´m sure it will work there as well after upgrade.

Björn
.

AH - well ive been there too - FWIW the firmware updated for intel has an opposite weird effect on my systems - it doesnt run on 1803 - but does run for me on 1709 … go figure.

Microsoft and Intel - have suggested they are working on some know “Driver” related issues in this area.

Westa

On Windows, the error “Can not load library module” may occur when VS redistributable package is not installed on the PC (see the Installation Instructions for Windows, step 2). Try to install the required package and run nuitrack_c11_sample.exe once again.

I had exactly the same issue and I solved it by installing the openNI, which is attached to the same folder as the Nuitrack SDK. I had it installed already before, so I thought it will be working, but it wasn’t. After I uninstalled the version I had and installed the one from the folder it worked! :slight_smile:

Hope its not too late.
Cheers, Matej

Hello everybody,

we are getting the same issue reported by other users, that is, when trying to run the nuitrack_c11_sample.exe example on a RealSense D415 or D435 camera, we get the error “Empty factory for DepthProvider”.
We have Windows 10 version 1803 and the latest available firmware on Realsense cameras.
We followed the suggestions found on the documentation and on this forum, such as adding NUITRACK_HOME environment variable, adding \nuitrack\bin to the PATH variable, changing privacy access to allow all apps to access camera, but without success.

Both D415/D435 are working fine in the Intel Realsense Viewer.

The only thing we didn’t do is to install OpenNI, because in our knowledge, they shouldn’t be necessary for Intel Realsense.

Maybe is there some field to manually edit in the nuitrack.config file to get it working with Realsense? We really don’t know what else we could try.

Any help or suggestion is greatly appreciated.
Thank you very much
Piero

You need to install openni - it is part of the detection cycle required by nuitrack,

Westa

Hello Westa,

thank you very much, after installing OpenNI it works!
However, when launching the nuitrack_c11_sample with D415 or D435, I get the following error messages:

===============================================================
Microsoft Windows [Versione 10.0.17134.228]
© 2018 Microsoft Corporation. Tutti i diritti sono riservati.

C:\Users\BBC>cd C:\libs\nuitrack\bin

C:\libs\nuitrack\bin>nuitrack_c11_sample.exe
Start nuitrack c11
ERROR: AstraProPerseeDepthProvider can't create RGB Stream (VideoCapture device ID is not valid)
DepthProviderManager: AstraProPerseeDepthProvider can't create RGB Stream (VideoCapture device ID is not valid)
Can't find video camera!
Can't find Depth camera!
ERROR: Couldn't open device (   DeviceOpen using default: no devices found
)
DepthProviderManager: Couldn't open device (    DeviceOpen using default: no devices found
)
ERROR: Can not create OpenNI depth generator (OpenNI Status: Can't create any node of the requested type!)
DepthProviderManager: Can not create OpenNI depth generator (OpenNI Status: Can't create any node of the requested type!)
Create DepthProvider: Realsense2DepthProvider

===============================================================

but, despite the above errors, the application starts and it is able to reconstruct a skeleton. Are you getting the same errors with your Realsense cameras?

Thank you for your feedbacks
Piero

Hi Piero,

Just ignore all the messages - its just a log of nuitrack trying to find a sensor that it can connect to.
Calling them ERROR is somewhat of a misnomer in this setting - maybe WARNING: would be more appropriate language.

Westa