简介



简介

什么是leJOS?

leJOS NXJ 是基于乐高的MINDSTORM NXT型号机器人,一个Java程序开发/运行环境。有了它,你就可以用Java代码来编写控制机器人的程序。

leJOS NXJ主要由以下一些部分组成:

  • 包括了一个Java虚拟机的NXT固件。(也就是一个NXT的小型操作系统,会把原来NXT自带的系统替代掉,好比手机的刷机)
  • 一个包含了leJOS NXJ应用程序接口(API)的Java程序类库(classes.jar)。
  • 一个连接器(linker),用来链接用户的Java程序和类库(classes.jar),产生一个二进制的可执行文件,用来上传到MINDSTORM NXT中去。
  • 一套桌面程序,用来烧录固件到NXT,上传可执行文件,调试以及其他一些功能。
  • 一套桌面程序的API,用来开发能够与NXT上的程序通讯的桌面程序。通讯的协议包括,Java流,蓝牙,USB或者用乐高自有的协议。(LCP = LEGO Communications Protocol)。
  • 还附有好多例子代码,方便学习和参考。

因为上述的开发都基于leJOS NXJ的固件,所以必须把leJOS NXJ的固件烧录到新买的NXT中去,也就是说,会把乐高自带的固件覆盖掉。不过,乐高自带的标准固件可以被恢复的。恢复所需要的软件和工具,在套装的光盘里应该可以找到。

leJOS 是一个在Sourceforge.net上的开源项目,最初是有TinyVM项目演化而来的,用来实现LEGO Mindstorms RCX上的Java虚拟机,(LEGO Mindstorms RCX是NXT的旧版本)。RCX版本的leJOS在当时也是非常流行的,据说已经有200,000次的下载。TinyVM和RCX版本的leJOS的作者是 Jose Solorzano。

NXT的出现,给了leJOS的开发团队一个机会,大大提高了leJOS的功能和各方面。

返回顶部

leJOS有什么优点?

相对于NXT-G(NXT-G貌似是乐高自己的一个开发工具,里面和儿童玩具似的,拖拽控件来实现逻辑控制)和其他NXT的开发环境,leJOS有很多有点,下面就一一列出来:

  • 使用了工业标准化的Java语言。
  • 支持面向对象的编程。
  • 作为开源项目,有很多参与者和贡献者。
  • 支持你选择一个专业的可视化开发工具,比如Eclipse和Netbeans。
  • 提供针对上述2个开发工具的插件。
  • 支持不同的平台,Windows,linux和Mac OS X。
  • 比NXT-G快多了。
  • 对于蓝牙,usb,I2C和RS485协议的完美支持。
  • 提供了对于马达的精确控制。
  • 支持最新版本的v1.6的Java语言。
  • 对于Navigation的完美支持。
  • 对于本地化的支持,包括了Monte Carlo Localization (MCL)。
  • 支持其他复杂的机器人算法,比如Kalman filters。(我也不懂这是啥)
  • 提供了Behavior类,用来简化对于机器人复杂行为的控制。
  • 只是很多第三方的传感器。
  • 支持通过蓝牙或者usb的远程事件记录,可以选择把System.out或者System.err重定向。
  • 支持在桌面电脑上远程的控制和跟踪你在NXT上运行的程序。
  • 提供了浮点计算等系列复杂的计算啦。
  • 能在LCD上画比较复杂的图形。
  • 支持多线程。
  • 支持监听和事件。
  • 提供了安全的内存管理和回收机制。
  • 支持通过蓝牙,usb和RS485的标准Java输入/输出。
  • 提供了由Java io访问的闪存。
  • 数据记录,远程日志捕获。
  • 支持8位的wav声音播放。
  • 提供了好多例子程序可以参考。
  • 提供了在PC上运行复杂程序的功能。
  • 提供在线的技术支持和网站。
  • 有支持TCP/IP SOCKS的机器人遥控。
  • 支持多个NXT之间的蓝牙和RS485通讯。
  • 支持NXT通过蓝牙和其他设备通讯,比如GPS导航仪。
  • (译者:下面还有几个不怎么重要..就不一一翻译了...)
  • 支持GPS设备,包括javax.microedition.location API
  • 支持使用蓝牙SPP(Serial Port Profile)的蓝牙键盘
  • 通过第三方适配器——例如Mindsensors NRLink——支持与RCX间的双向通信
  • 支持伺服电机和Power Function (PF) motor(不知道是什么东东)
  • 提供与LEGO Communications Protocal(LCP)的兼容能力,所以很多可以与标准LEGO固件协同工作的工具也可以与LeJOS协同工作
  • 有一个简单易用的菜单系统
  • 广泛用于大学以及各种教育机构
  • 支持简单的计算机视觉应用

返回顶部