今天开始,利用一些制作
机器人的空闲时间来翻译一下
LeJOS NXJ的
入门。(LeJOS NXJ是LeJOS的NXT版本)
我会同时在自己的BLOG和这里发布,希望能给大家带来帮助。如有更新,以BLOG上的内容为最新。
翻译中必然有一些胡言乱语或者不知所云之处,还请各位在BLOG上留言或者在此回帖予以更正或提出建议。
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://programus.blogbus.com/logs/48493001.html
英文原文:
http://lejos.sourceforge.net/nxt/nxj/tutorial/Preliminaries/Intro.htm
什么是LeJOS NXJ?LeJOS NXJ是运行于LEGO MINDSTORMS NXT ®之上的
Java编程环境。它让你可以使用Java语言来编写
乐高(LEGO)机器人。
它主要由以下部分组成:
- 一个包含Java虚拟机的NXT固件系统(firmware)。可以替代标准的NXT固 件。
- 一套对LeJOS NXJ编程接口(API)的实现类库——classes.jar
- 一个连接器:可以将用户编写 的Java程序与classes.jar类库连接为能够在NXT上 运行的二进制文件。
- 一套运行在PC上的工具。它们可以帮助你刷新NXT固件、上传程序、调试以及其他各种附加功能。
- 一 套PC API。利用这套API,你可以使用Java流(stream)来实现PC和NXJ程序的通信,其中包括通过蓝牙、USB以及LEGO Communication Protocol(LCP)进行的通信。
- 一些例子程序。
由于LeJOS与NXT的标准固件并不互相兼容,所以必须将新的LeJOSNXJ固件刷入NXT才可以让Java编程成为可能。而这将替换掉NXT标准固件,并删除掉原有固件所安装的全部文件。不过你随时可以使用LEGO提供的软件还原标准固件,
LeJOS是建立在sourceforge之上的一个开源项目。它起源自TinyVM项目——一个在LEGOMindstormsRCX系统上的Java虚拟机项目。
LeJOS的RCX版本早已在LEGO Mindstorms RoboticInventionsSystems的人群中被证明具有很高的人气,各个版本的下载总数已达到大约200,000次。TinyVM和LeJOS的RCX版本的原作者是JoseSolorzano。
NXT的出现,让LeJOS开发团队有了大幅度扩展LeJOS的机会。
LeJOS NXJ的优点比起使用
NXT-G或者其他NXT编程环境,使用LeJOSNXJ有很多优点。比如:
- 使用了符合业界标准的Java语言(译注:符合标准意味着更高的兼容性和可维护性)
- 支持面向 对象编程(译注:面向对象思想特别适合机器人的编程,可以考虑单独开专题介绍)
- 是一个众人拾柴火焰高的开源项目
- 使你 可以自己选择一个专业的集成开发环境,例如Eclipse或者Netbeans(译注:用过的人都说这俩工具真的很强大)
- 有针对 Eclipse和Netbeans的插件(译注:与开发环境结合地更加完美)
- 拥有Java的跨平台性——支持Windows、 Linux以及Mac OS X等
- 比NXT-G更快
- 全面支持蓝牙、USB、I2C以及RS485协议(译注:我不知 道RS485是什么)
- 提供了更加精确的马达控制(译注:这是真的!至少比NXC的方法易懂易用)
- 支持Java 1.6语言特性
- 拥有高级的导航支 持
- 支持定位算法,例如Monte Carlo Localization(MCL)
- 支持其他机器人学概率算法,例如 卡尔曼滤波(Kalman filters)
- 提供了行为(Behavior)类以及行为编程架构,使得编写复杂机器人变得更加简单(译 注:详情请看指南最后一章)
- 支持众多第三方传感器
- 支持通过蓝牙或者USB的日志远程输出,即在PC上输出调试日志, 并可通过System.out或者System.err来输出。(译注:这一特性真的很有用!)
- 支持从PC对LeJOS NXJ程序的远程监控和追踪
- 提供了浮点数的数学、三角及其他数学公式
- 支持JME液晶显示器用户接口,比如一些绘图功 能
- 支持多线程
- 支持listener和event(事件监听机制)
- 支持安全内存管理和垃圾回收
- 支 持基于蓝牙、USB以及RS485的标准Java输入输出流
- 可通过标准java.io类来操作NXT的Flash文件系统
- 支 持数据日志以及日志的远程捕捉
- 声音支持,可以播放8-bit的wav文件
- 提供了一大票例子程序可供参考
- 支 持从PC上远程运行大部分API
- 拥有一个网站论坛,可以帮助你解决各种疑难杂症、共享大家的伟大想法甚至直接与开发团队沟通(译注:目 录里提到的有意见你就提,就可以到那里提)
- 通过TCP/IP实现了对远程机器人(telerobotics)的支持(译注:这句不确定,请高手支招)
- 支持NXT之间的蓝牙和 RS485通信
- 支持与其它设备的蓝牙通信,比如GPS接收器
- 支持GPS设备,并支持 javax.microedition.location API
- 支持使用蓝牙SPP(Serial Port Profile)的蓝牙键盘
- 通过第三方适配器——例如Mindsensors NRLink——支持与RCX间的双向通信
- 支 持servo motor和Power Function (PF) motor(译注:专业名词太多,偷懒不译了,其实也不会翻译)
- 提 供与LEGO Communications Protocal(LCP)的兼容能力,所以很多可以与标准LEGO固件协同工作的工具也可以与LeJOS协同工作
- 有一个简单易用的菜 单系统
- 广泛用于大学以及各种教育机构
- 支持简单的计算机视觉应用
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。