leJOS是Lego Mindstorms可编程砖的固件替代品。 该软件的不同变体支持原始机器人发明系统,NXT和EV3。 它包括一个
Java虚拟机,它允许使用Java编程语言对Lego Mindstorms机器人进行编程。 它通常用于向一年级计算机科学专业的学生教授Java [需要引证]。 基于leJOS的机器人Jitter于2001年12月在国际空间站上飞行。
leJOS最初被设想为TinyVM,由JoséSolórzano于1999年末开发。它最初是一个业余爱好的开源项目,后来他分到了今天所谓的leJOS。许多贡献者加入了该项目并提供了重要的改进。其中,Brian Bagnall,JürgenStuber和Paul Andrews后来接管了这个项目,因为José基本上退休了。
截至2006年8月20日,RCX的原始leJOS已经停止发布3.0版本。不久之后,iCommand,一个通过LCP从蓝牙计算机控制NXT的库被发布。该库使用标准Lego固件。该库后来被leJOS NXJ 0.8取代。 2007年1月,新款Lego Mindstorms NXT的完整端口作为固件更换发布。这比RCX版本[引用需要]快得多(x15左右),有更多可用内存,菜单系统,使用Bluecove库的蓝牙支持,并允许访问许多其他NXT功能。[2]
2008年,发布了版本0.5,0.6和0.7。除了对核心类进行了大量改进之外,Eclipse插件与本教程的新版本一起发布。 2009年,还有2个主要版本:0.8和0.85。 2011年5月,0.9发布。从广义上讲,这些版本主要集中在改进导航算法,以及支持众多第三方传感器和Eclipse插件。
2013年,开发了Lego Mindstorms EV3砖的端口。 2014年,发布了0.5和0.6
alpha版本。 2015年,发布了测试版0.9和0.9.1。
leJOS NXJ支持访问机器人的I2C端口。这允许访问标准传感器和电机(
超声波距离传感器,触摸传感器,
声音传感器和
光传感器)。其他公司,如MindSensors [4]和HiTechnic [5],通过提供先进的传感器,执行器和
多路复用器扩展了这一基本设置。 leJOS NXJ包含这些产品的Java API。
通过利用Java的面向对象结构,LeJOS NXJ的开发人员能够隐藏多个接口背后的传感器和执行器的实现细节。这允许机器人开发人员使用高级抽象,而不必担心硬件组件的十六进制地址等细节。该项目包括常用反馈控制器,
PID控制器和
卡尔曼滤波器降噪算法的实现。 leJOS NXJ还提供了支持更多抽象功能的库,例如导航,映射和基于行为的机器人。
由于leJOS NXJ是一个Java项目,它建立在
Java平台固有的丰富功能之上。 有两个领先的Java IDE的leJOS NXJ插件:Eclipse和NetBeans。 Robotics开发人员可以利用IDE的标准功能(代码完成,重构和测试框架)以及NXJ功能的点击式实现:编译,链接和上传。 NXJ机器人开发人员同样可以使用大量的
Java开源项目(例如Apache Math)。