У нас есть проект, в котором мы хотим управлять роботом Lego Mindstorms с сенсором Microsoft Kinect. Мы решили использовать SimpleOpenNI с Processing для чтения датчика и leJOS для управления роботом по простой причине: поскольку оба написаны на Java, мы можем указать своего рода RoboHandler
и вызвать его методы из класса чтения датчика.
Для этого мы загрузили подключаемый модуль leJOS для eclipse, создали новый проект leJOS NXT и поместили библиотеки обработки и SimpleOpenNI в путь сборки. Обратите внимание, что для использования SimpleOpenNI требуется старая версия обработки без Java.
Теперь проблема в том, что при установке leJOS строго требуется 32-битный Java JDK, поэтому мне пришлось скачать его и указать на него при установке.
На данный момент в проекте есть следующие пути сборки:
- LeJOS NXT Runtime (в котором, среди прочего, есть классы java.awt)
- core.jar (используется для запуска Processing в eclipse)
- SimpleOpenNI.jar
Имея все это и настроив первый скетч Processing, например
import processing.core.*;
public class Test extends PApplet{
(....)
}
приводит к следующему коду ошибки:
Multiple markers at this line
- The type java.awt.event.MouseMotionListener cannot be resolved. It is indirectly referenced from
required .class files
- The type java.applet.Applet cannot be resolved. It is indirectly referenced from required .class files
- The type java.awt.event.MouseListener cannot be resolved. It is indirectly referenced from required .class files
- The hierarchy of the type FirstTry is inconsistent
- The type java.awt.event.FocusListener cannot be resolved. It is indirectly referenced from required .class files
- The type java.awt.event.KeyListener cannot be resolved. It is indirectly referenced from required .class files
Когда я загрузил версию «Обработка без Java», я не смог выбрать 32-битную или 64-битную версию. SimpleOpenNI устанавливается как 64-битная версия.
При добавлении 64-битного JDK (рабочая область eclipse по умолчанию) в качестве рабочей области ошибка исчезает, но при попытке запустить скетч в консоли выводится следующая ошибка:
Invalid layout of java.lang.Thread at name
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (javaClasses.cpp:128), pid=9176, tid=8740
# fatal error: Invalid layout of preloaded class
#
# JRE version: 7.0_04-b22
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0-b21 mixed mode windows-amd64 compressed oops)
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\Valentino\Desktop\workspaces\workspace_processing\RoboZeugs\bin\hs_err_pid9176.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
Так что, на мой взгляд, есть проблема с версиями JDK (32- и 64-битная), но должен быть способ справиться с этим. Есть ли у кого-нибудь опыт работы по этой конкретной теме, может быть, даже с Kinect -> Mindstorms? Кто-нибудь может сказать мне, что означает эта ошибка точно?