2011-07-26 40 views
15

Tôi đã xây dựng OpenNI và Bộ cảm biến từ nguồn trên Github và cài đặt Nite. Tôi đã thử nghiệm điều này trên Debian với hạt nhân 2.6.39 và với các phiên bản Java khác nhau, và trên một máy tính khác với Lubuntu 11.04 và cũng với OpenNI không ổn định và cảm biến avin2 - cùng một kết quả. Tôi cũng đã thử nghiệm với các tệp nhị phân dựng sẵn.Tai nạn mẫu OpenNI UserTracker.java

Mẫu UserTracker trong C++ và .NET hoạt động, nhưng UserTracker.java chạy, phát hiện hình bóng của tôi và sau đó JVM đổ vỡ khi tôi thực hiện tư thế hiệu chuẩn. Đây là sản phẩm trước khi vụ tai nạn:

New user 1 
Pose Psi detected for 1 

Tôi đã thử chơi đùa với các mã, nhưng tôi không thể tìm thấy đoạn mã gây ra nó - nó không sụp đổ trong PoseDetectedObserver.update.

Dưới đây là liên kết với ví dụ trong câu hỏi: https://github.com/OpenNI/OpenNI/blob/master/Samples/UserTracker.java/org/OpenNI/Samples/UserTracker/UserTracker.java

Đã có người khác gặp phải vấn đề này, hoặc có lẽ thấy những gì có thể xảy ra?

chỉnh sửa: Tôi đã bật tính năng ghi nhật ký trong SamplesConfig.xml và các mẫu Java xuất hiện trong khi các mẫu C++ và .NET, chỉ có phần cuối cùng - đó là sự khác biệt duy nhất tôi tìm thấy trong nhật ký.

125 INFO  OpenNI version is 1.3.2 (Build 3)-Linux-x86 (Jul 28 2011 03:43:14) 
    141 INFO  Filter Info - minimum severity: WARNING, masks: ALL 
2482 WARNING Failed loading lib: /usr/lib/libXnVFeatures_1_3_0.so: undefined symbol: xnOSStrFormat 

2489 WARNING Failed to load '/usr/lib/libXnVFeatures_1_3_0.so' - missing dependencies? 
4080 WARNING Failed loading lib: /usr/lib/libXnVHandGenerator_1_3_0.so: undefined symbol: xnOSStrFormat 

4087 WARNING Failed to load '/usr/lib/libXnVHandGenerator_1_3_0.so' - missing dependencies? 
7581 WARNING Open named event: failed to open key file (2) - event might not exist... 

edit2: bây giờ tôi đã thiết lập một tiền thưởng và đây là một tập tin log verbose và đổ từ các phiên bản ổn định mới nhất của OpenNI, NITE và SensorKinect avin2 về Lubuntu 11.04: http://pastebin.com/anG18agphttp://pastebin.com/mAkf0G6M

+1

bạn đã thử bằng cách sử dụng JVM mặt trời, sử dụng phiên bản mới nhất 1.6? – sbridges

+0

vâng, tôi hiện đang sử dụng sun java 1.6.0_26, nhưng tôi cũng đã thử với openjdk 6 và 7 ... Tôi nghĩ rằng vấn đề nằm trong những tệp .so không tải đúng, bởi vì đó là sự khác biệt duy nhất tôi có thể tìm thấy trong các bản ghi chi tiết giữa các mẫu C++ và Java. – HairyFotr

Trả lời

6

có lỗi trong các lớp java wrapper của OpenNI:

trong org_OpenNI_NativeMethods.cpp là đọc:

void XN_CALLBACK_TYPE PoseDetectionHandler(XnNodeHandle hNode, const XnChar* strPose, XnUserID user, void* pCookie) 
{ 
    CallbackCookie* pCallback = (CallbackCookie*)pCookie; 
    JNIEnvSupplier supplier; 
    jstring jPose = supplier.GetEnv()->NewStringUTF(strPose); 
    supplier.GetEnv()->CallVoidMethod(pCallback->obj, pCallback->mid, jPose, user); 
    supplier.GetEnv()->ReleaseStringUTFChars(jPose, strPose); 
} 

Nhưng bạn không phải là s upposed để releaseStringUTF một chuỗi được phân bổ với newStringUTF ... do đó nó bị treo .. Xem ở đây ví dụ: http://www.velocityreviews.com/forums/t144581-crash-while-calling-releasestringutfchars-for-newstringutf-string.html

Lấy mã nguồn ... Bỏ ghi chú dòng phát hành .. xây dựng OpenNI.jni.dll và usetracker.java sẽ chạy!

Trân trọng, David

+0

Tôi đã thử xây dựng mã nguồn Openni nhưng nó mang lại cho tôi một số lỗi lạ. Bạn có OpenNI.jni.dll này không? Bạn có thể gửi nó cho tôi không. Tôi đang sử dụng win64. – cooltechnomax

+0

cooltechnomax, tôi không thể giúp bạn ... thử đăng câu hỏi và các lỗi tại nhóm OpenNI http://groups.google.com/group/openni-dev ... nhận xét quá ngắn đối với những thứ như vậy và ở đó có nhiều người đọc hơn. – HairyFotr

+0

Ồ, và pullrequest với wrapper cố định đã được thực hiện trên github, nhưng chưa đóng: https://github.com/OpenNI/OpenNI/pull/35 – HairyFotr

Các vấn đề liên quan