|
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协同工作
- 有一个简单易用的菜单系统
- 广泛用于大学以及各种教育机构
- 支持简单的计算机视觉应用
|
|