diablodale/jit.openni

Switch xml configuration file error

Closed this issue · 13 comments

With OSX 10.6.8, Max 5.1.9, version_jit.openni 0 8 6, version_openni 1 5 4 0 :

Hi,

It is impossible to switch between different xml configuration file, without re-instantiating jit.openni.
Try to load your jit.openni_debugrec.xml file, and then after your jit.openni_config.xml file. Error is : jit_openni: XML config initialization open failed (This operation is invalid!).

Thanks,

_TG

This is an ongoing OpenNI bug. Please reference closed issue #4
#4

On Windows, I still sometimes get crashes in the skeleton engine NITE, specifically XnVFeatures_1_5_2.dll crashes.
On Mac, you seem to be lucky. You don't crash but you get a failure.

FYI, OpenNI has abandoned the v1.x API and will not be making any bug fixes on it or developing it further. Given this, I might be able to hack a workaround. I'll look into this.

Perfect !
My workaround is to do scripting in Max : for a now xml file, jit.openni object is deleted, and recreated... ... it works... !!

XnVFeatures_1_5_2.dll crashes....Is this bug fixed?

Sorry, no. OpenNI has abandoned the v1 codebase; they are fixing no bugs with it.
Not enough people are reporting or encountering this problem with jit.openni. I suspect the majority of people don't need to repeatedly load different XML files in the same patcher. I have to prioritize my time so I will not be researching and trying to work around their bug at this time.

Perhaps you can do the same scripting workaround that totoetlititi did. Or if you are on windows, switch to dp.kinect. An example of the scripting workaround took me about 10 minutes. Here is example code:

----------begin_max5_patcher----------
640.3oc0WlraaCCDF9rBPdGHXtpZHJKZGkdpu.EnmKBBnknsogDk.IkqZC56
d4hV7Z7RbbctHBNCE4+7MiGQ+5824AmTTSkPvSfeB77dUawyZyXwq0fGLmTm
jQj1EByoRIYFE523TQqUVGxDAqTARoYTEETJXbExGzXkS+UJcJoJS03AfhB.
CwAtocqKofyoIJvBlpnjx4LD.29FAcmYIQkLmwm8hPuVm7QgACB7AnXrY.Gf
rydbP.3412ZZAWwI4TqZ+lfQx51PVp0XwjEeILtyJuJmw0QiMvCWcajr+X2F
Tn9X5WcQkpc4nVyNapeWRcBEBAOac826uyLpG7e+vWPIoF3MkMaPcd1aQpHK
gFZwUb34hIz3OiXZ8Zz9hrcUmtRIXDVyq.ikANS6udUIXy.Aq9x8ksYL8ZKp
3p0.0tJlGYyQng1gH7XaFK7LxRQ2vYIMq0ZrSfKIht.ZMbtcZTAx.SNbMdbP
C2v9.S6gSldg6ldnSidg6md9.3DBe1Ejh8LZNSZICUbD8MCwVhMJ1N4LX00.
UvdQIIKa87v2M9VKbAvuZd7vOLOo7TmkO3RUz14f9FFGSCY2GvbCmU4J9hjC
Fs2bfNbdImn+IYsAnG+rlb2GA8cWMXaxas+l08QtlC32M0GcQndvFzwIC6mL
17BZ1nw3XClIKpDIs4p1BB80m5BnTpTw3DEqfu5pzA.XkvdNKMkZWPmTSYRx
jLZ5tDp+4Hrv0Ox8HL7UWXlK+cXgEd8A13iBX+GDVzMJvLGI5f5J9FUXah0S
TXMMOHkkKoBYyV6zjty5hBQeedntkkatqgk9eRrj09JMlHBc2Skt0Ykv0Lr9
wQPsG6Ape7O.3PVRLA
-----------end_max5_patcher-----------

Thank your reply!
XnVFeatures_1_5_2.dll crashes about several hours later when launching the app.
It's a little trouble for me...I am on Windows7 64 . Can I use dp.kinect for "Asus Xtion Pro"(it's important to me, cause considering space limitations)?

dp.kinect is exclusively for the Microsoft Kinect.

If you don't need skeletons, then perhaps you can avoid the buggy code by removing the user node <Node type="User" name="User1" />. This might help but I caution you that OpenNI didn't cleanly separate their depth code and their skeleton code. You might still have problems. You could also try not installing NITE. That would ensure you don't enter that DLL.

Also, you write that XnVFeatures_1_5_2.dll crashes when you launch the app. I don't fully understand this. Would you please provide more detailed repro steps?

Finally, are you running all these tests with the Asus Xtion Pro?

yes, I don't need skeletons informations for my current app. but the next version will .

I removed the "user node" and try it agian . Resualt is no user map shown...

I also tried not installing NITE and restart my PC again, but message shows:
XML config initializing failed(one or more of the following nodes could not be enumerated : )
XML confing intitalization open failed(Can't create any node of the requested type!)
unlucky.... do I miss something ?

My current environment is :
Win7 (64 bits)
Max6.0.8
jit.openni v0.7.3 (long time no update) . I'll try jit.openni v0.88 later...
OpenNI 1.5.2.23 (32bits version)
PrmeSense Driver 5.1.0.41 (32bits version)
NITE 1.5.2.21 (32bits version)
XML setting :

XML setting

About XnVFeatures_1_5_2.dll crashs. Situation is :

  1. execute my app.
  2. about 10 hours(roughly observed)
  3. my app crashed!

Message box shows :
event name : APPCRASH
application name : myapp.exe
application version : 6.0.8.0
application time seal : 509bfe52
error modual name : XnVFeatures_1_5_2.dll
error modual version : 1.5.2.1
error modual time seal : 4efb1d22
exception code : c0000094
exception shift : 00007554
OS version : 6.1.7600.2.0.0.256.1

All these tests are with the Asus Xtion Pro Live.

I see several problems that could contribute.

  1. Update jit.openni. I am unable to support you any further after this post until you have upgraded to v0.88 and use matching OpenNI and NITE dependent versions as listed on the download page.
  2. If you have a USER, SCENE, or GESTURE node then you must have NITE installed. If you remove all those nodes, then you should be able to uninstall NITE and have no errors. If you do encounter errors like you describe (one or more of the following nodes could not be enumerated) then there is a bug in the OpenNI code. They are trying to use NITE even though you explicitly removed it from the config. There will likely be no workaround for this issue if it occurs.
  3. There is another known OpenNI bug about the USER and SCENE nodes. In short, if you declare a USER node, then do not declare a SCENE node. One will be automatically created for you. #5
  4. The major of people are using SensorKinect with a Kinect. One person got it working with the new PMD Camboard nano. You might be the first person that I know has tested long-term use with the Xtion. There could be some unknown interaction between the Xtion drivers and OpenNI and NITE. I have used a Kinect with jit.openni for whole weekends (2-3 days) continuous with no crashes with color, depth, skeletons, and floor detection.
  5. I am still unclear on how you are using this. The crash report writes "myapp.exe" but you say you are using Max 6.0.8. After you have upgraded, please provide far more detailed repro steps on how you use and run your scenario.

I'v upgrade to v0.88.

In my long-term observations, I found several situations that can cause "XnVFeatures_1_5_2.dll crashes" with higher probability...

  1. when moving the Xtion's position.
  2. too close to the Xtion.
  3. when the max app do more works.
  4. it seems affected by skeleton recognition with irregular object that like peaple ... it's strange!

I observed my chair was recognized to be a skeleton(using OpenNI Demo : Sample-StickFigure.exe)

All of the above 4 led me to believe that the bugs and crashes you are experiencing are with NITE itself and its interaction with the sensor. There is nothing that I can do to help you with this.

Moving the sensor is the same as moving the subject being detected. Any problems with NITE in this case are bugs in their software. All sensors have a limitation on how close you can get to the sensor. Please consult the documentation for the sensor to understand its minimum distance limits. Like any software, NITE has bugs and limitations. You are experiencing those limitations.

I am considering closing this issue. All of the symptoms and steps you have provided point to limitations and flaws in NITE and not in jit.openni. Do you have any jit.openni specific problems?

closing this issue due to no response and that the problem is definitely external to jit.openni. It appears to be a code defect in NITE and possibly related to its interaction with the Xtion.

LGinC commented

I don't know where is NITE.How can I download it

NITE is illegal to store, distribute, or use. Apple killed it and everyone's license.
I recommend you use official Kinect drivers which are used with dp.kinect and dp.kinect. You can learn more about them both at:
http://hidale.com/shop/dp-kinect/
http://hidale.com/shop/dp-kinect2/