问题标签 [lejos-nxj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
679 浏览

eclipse - 在同一个项目中运行 SimpleOpenNI 和 leJOS

我们有一个项目,希望通过 Microsoft Kinect 传感器控制 Lego Mindstorms 机器人。我们决定使用 SimpleOpenNI with Processing 来读取传感器并使用 leJOS 来控制机器人,原因很简单:因为两者都是 Java 语言,我们可以指定一种RoboHandler并从传感器读取类中调用它的方法。

为了实现这一点,我们为 Eclipse 下载了 leJOS 插件,创建了一个新的 leJOS NXT 项目,并将处理和 SimpleOpenNI 库放在构建路径中。请注意,要使用 SimpleOpenNI,需要没有 Java 的旧处理版本。

现在的问题是,安装 leJOS 时,它严格要求 32 位 Java JDK,所以我不得不下载这个并在安装时指向它。

此时,项目中有以下构建路径:

  • LeJOS NXT Runtime(其中包含 java.awt 类)
  • core.jar(用于在eclipse中运行Processing)
  • SimpleOpenNI.jar

拥有所有这些,并设置第一个处理草图,例如

导致以下错误代码:

当我下载 Processing without Java 版本时,我无法选择 32 位或 64 位版本。SimpleOpenNI 安装为 64 位版本。

当也将 64bit-JDK(eclipse 工作区默认)添加为工作区时,错误消失了,但是当尝试运行草图时,控制台中会打印以下错误:

所以在我看来,JDK 版本(32 位和 64 位)存在问题,但必须有办法解决这个问题。有没有人在这个特定主题上有经验,甚至可能使用 Kinect -> Mindstorms?谁能告诉我这个错误到底是什么意思?

0 投票
2 回答
4572 浏览

linux - 蓝牙错误:本机库 bluecove_arm 不可用

我在 Raspberry Pi 上运行 leJOS pc 程序时遇到了一些困难。它适用于我的电脑。

我收到一条错误消息:“本机库 bluecove_arm 不可用”

蓝牙工作正常,否则使用:“hcitool scan”

我找不到用于 ARMv6 / Raspberry Pi 的 Bluecove 编译版本。

我已经在我的 PC 上安装了 Maven 并安装了 Maven Eclipse 插件,以尝试从源文件编译 Bluecove:虽然我看不到如何选择我想要定位的平台(ARM11)。

我注意到另一个用户提出了一个非常相似的问题,但没有提供任何有用的信息:我在运行 debian wheezy 的树莓派上的 Java 蓝牙服务器需要 bluecove 本机库 - 我在哪里可以找到它?

0 投票
4 回答
2561 浏览

java - 如何在没有反射的情况下进行 Java 序列化?

我正在开发一个不支持 Java 反射的 Lego Mindstorm NXT 机器人。

出于某种原因(模拟器的并行创建和实际的头脑风暴),我们想使用序列化来交换 Java 对象。

问题是序列化使用了反射,mindstorm上的JVM不支持。

有任何想法吗?

在 Zwong.de 上找到了这个页面,但源代码已被删除。

0 投票
1 回答
4607 浏览

nxt - 无法加载 LeJOS NXT 通讯驱动程序

我一直在尝试使用 LeJOS 库与我的 NXT 机器人生成接口。当我运行代码时,控制台打印出以下错误:

lejos.pc.comm.NXTCommException: Cannot load NXTComm driver at lejos.pc.comm.NXTCommFactory.newNXTCommInstance(NXTCommFactory.java:110) at lejos.pc.comm.NXTCommFactory.createNXTComm(NXTCommFactory.java:91) at com.thirteenbit.prasController.PrasController.initConnection(PrasController.java:24) at com.thirteenbit.prasController.PrasController.<init>(PrasController.java:17) at com.thirteenbit.prasController.PrasController$1.run(PrasController.java:42) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:708) at java.awt.EventQueue.access$400(EventQueue.java:82) at java.awt.EventQueue$2.run(EventQueue.java:669) at java.awt.EventQueue$2.run(EventQueue.java:667) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:678) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Caused by: lejos.internal.jni.JNIException: cannot load library /Users/Andrew/Desktop/Dropbox/Eclipse Files/leJOS_NXJ_0.9.1beta-3/lib/pc/native/macosx/libjfantom.jnilib, architecture macosx/x86_64 at lejos.internal.jni.JNILoader.loadLibrary(JNILoader.java:121) at lejos.pc.comm.NXTCommFantom.initialize0(NXTCommFantom.java:96) at lejos.pc.comm.NXTCommFantom.initialize(NXTCommFantom.java:103) at lejos.pc.comm.NXTCommFactory.newNXTCommInstance(NXTCommFactory.java:103) ... 18 more Caused by: java.lang.UnsatisfiedLinkError: /Users/Andrew/Desktop/Dropbox/Eclipse Files/leJOS_NXJ_0.9.1beta-3/lib/pc/native/macosx/libjfantom.jnilib: no suitable image found. Did find: /Users/Andrew/Desktop/Dropbox/Eclipse Files/leJOS_NXJ_0.9.1beta-3/lib/pc/native/macosx/libjfantom.jnilib: no matching architecture in universal wrapper at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703) at java.lang.Runtime.load0(Runtime.java:770) at java.lang.System.load(System.java:1020) at lejos.internal.jni.JNILoader.loadLibrary(JNILoader.java:111) ... 21 more

我相信这与在java eclipse 中发现的问题相同: failed to load nxt usb comm driver,并且我安装了 eclipse 32 位版本,但仍然遇到相同的错误,即上述错误。我将如何解决这个问题?

0 投票
2 回答
499 浏览

robotics - NXT - 龟兔赛跑 - 跟随移动物体 - 理论

作为考试前的复习,我正在阅读 Robotics 过去的论文,我发现了一个看起来非常令人困惑的问题。我的部门不提供过去论文的答案,所以我无法检查我是否正确。

第二部分

然后第二部分是事情变得有趣的地方:

第二部分

这是我的理解:

  1. 机器人和野兔放在同一个位置 0
  2. 机器人开始倒车,而野兔匀速前进(误差为负)
  3. 机器人发射声纳
  4. 声纳读数告诉距离为 30(误差为 0)
  5. 机器人停止(错误为 0)
  6. 野兔在此调整期间移动恒定距离
  7. 机器人发射声纳(错误为正)
  8. 机器人将速度提高到 setVelocity(error)
  9. 野兔在此调整期间移动恒定距离
  10. 机器人根据“旧”声纳读数改变速度,因为在速度改变期间,野兔会走得更远
  11. 因此,机器人总是会离期望的距离至少有点远

我还得出一个结论,如果野兔的速度高于机器人的速度,距离会不断增加。不会有稳定状态 - 稳定是指保持距离。

问题:我认为在最好的情况下,机器人会在 30 到 30+ 距离之间摆动,但你会如何更改程序以使其以恒定的 30 厘米距离行进?我还发现 k 在第 i 部分中为 1 很可疑,可以吗?

0 投票
0 回答
466 浏览

nxt - 如何使用 NXT 砖在 lejos-nxj 中构建 5 个墙图

我有一个NXT机器人。我想绘制一个没有任何障碍物的房间,并将这张地图“交给”机器人。我有这个示例代码:

在这段代码中,线条创建了一个三角形,假设是一个障碍物,边界是房间的墙壁。

问题是LineMap获取线和边界,但边界是矩形。我的房间类型没有障碍物(所以我不需要线,或者我可以建造一个假障碍物),并且有 5 面墙(五角大楼)。

有谁知道是否有任何方法可以接受任何类型的界限而不仅仅是Rectangles?如果我可以将线条作为墙壁而不是障碍物给机器人,那就太好了。

0 投票
1 回答
1277 浏览

android - Android报错x必须实现继承的抽象方法

我有一堂课叫:

Eclipse 给出以下红色错误

NXTCommAndroid 类型必须实现继承的抽象方法 NXTComm.search(String)

IDE 建议要么使类抽象,这是错误的,要么添加未实现的方法,这似乎很简单,除了方法已经实现。

它补充说:

但这已经存在:

0 投票
0 回答
38 浏览

lejos-nxj - Lejos NXJ 错误 76 是什么意思?

对于在 lejos 运行时之外工作的代码,我们收到错误 76。

错误是什么76意思?

0 投票
0 回答
522 浏览

java - 在 Linux 上使用 lejos for NXT

我有一个 Mindstorms NXT,只能用 sudo 刷新它,对吗?所以现在我想上传一个测试程序,但是:

我使用 eclipse 和 eclipse 插件。NXT 已开启并通过 USB 连接,我认为存在一些权限问题。你有什么想法?

0 投票
2 回答
49 浏览

java - 简单地控制另一个线程拥有的对象

我有一个 Java 控制的机器人。它有一个超声波传感器,由电机 B 来回旋转。

通常,我有一个单独的线程来扫描环境并将收集到的数据发送到另一台机器以绘制地图。

但是,有时主线程需要短暂使用传感器来查看特定方向。

这是我的扫描仪线程:

这是“现在告诉我方向”功能,它属于同一类:

所需行为:每当调用“getDistanceInDirection”时,它必须短暂停止扫描并转向给定方向,返回距离并继续扫描。

告诉我的扫描程序线程执行第二个函数所需的时间的正确方法是什么?