LeJOS

Last updated
LeJOS RCX
Initial releaseAugust 6, 2000;23 years ago (2000-08-06)
Stable release
v3.0 / September 17, 2006;17 years ago (2006-09-17)
Written in Java, C
Platform Cross-platform
License open-source (MPL)
Website lejos.sourceforge.io
LeJOS NXT
Initial releaseJanuary 6, 2007;17 years ago (2007-01-06)
Stable release
v0.9.1 / February 6, 2012;12 years ago (2012-02-06)
Written in Java, C
Platform Cross-platform
License open-source (MPL)
Website lejos.sourceforge.io
LeJOS EV3
Initial releaseJanuary 14, 2014;10 years ago (2014-01-14)
Stable release
v0.9.1 / November 16, 2015;8 years ago (2015-11-16)
Written in Java
Platform Cross-platform
License open-source (GPL v3)
Website lejos.sourceforge.io

leJOS is a firmware replacement for Lego Mindstorms programmable bricks. Different variants of the software support the original Robotics Invention System, the NXT, and the EV3. It includes a Java virtual machine, which allows Lego Mindstorms robots to be programmed in the Java programming language. It also includes 'iCommand.jar' which allows you to communicate via bluetooth with the original firmware of the Mindstorm. It is often used for teaching Java to first-year computer science students. [1] The leJOS-based robot Jitter flew around on the International Space Station in December 2001. [2]

Contents

Pronunciation

According to the official website:

In English, the word is similar to Legos, except there is a J for Java, so the correct pronunciation would be Ley-J-oss. If you are brave and want to pronounce the name in Spanish, there is a word "lejos" which means far, and it is pronounced Lay-hoss.

The name leJOS was conceived by José Solórzano, based on the acronym for Java Operating System (JOS), the name of another operating system for the RCX, legOS, and the Spanish word "lejos."

History

leJOS was originally conceived as TinyVM and developed by José Solórzano in late 1999. It started out as a hobby open source project, which he later forked into what is known today as leJOS. Many contributors joined the project and provided important enhancements. Among them, Brian Bagnall, Jürgen Stuber and Paul Andrews, who later took over the project as José essentially retired from it.

As of August 20, 2006, the original leJOS for the RCX has been discontinued with the 3.0 release. Soon afterwards, iCommand, a library to control the NXT from a Bluetooth-enabled computer via LCP, was released. This library made use of the standard Lego firmware. This library was later superseded by leJOS NXJ 0.8. In January 2007, a full port to the new Lego Mindstorms NXT was released as a firmware replacement. This is far faster (x15 or so) than the RCX version[ citation needed ], has more memory available, a menu system, Bluetooth support using the Bluecove library, and allows access to many other NXT features. [3]

In 2008, versions 0.5, 0.6 and 0.7 were released. In addition to numerous improvements to the core classes, the Eclipse plugin was released along with a new version of the tutorial. In 2009, there were 2 more major releases: 0.8 and 0.85. In May 2011 0.9 was released. Broadly speaking, the releases have concentrated on improvements to navigation algorithms, as well as support for numerous 3rd party sensors and the Eclipse plug-in.

In 2013, development began on a port to the Lego Mindstorms EV3 brick. In 2014, the 0.5 and 0.6 alpha versions were released. In 2015, beta versions 0.9 and 0.9.1 were released.

Since November 2014 leJOS is used in a slightly adapted version also in the open-source project Open Roberta. [4]

Architecture

leJOS NXJ provides support for access to the robot's I²C ports. This allows access to the standard sensors and motors (ultrasonic distance sensor, touch sensor, sound sensor and light sensor). Other companies, such as MindSensors [5] and HiTechnic [6] have extended this basic set by providing advanced sensors, actuators and multiplexers. leJOS NXJ includes Java APIs for these products.

By taking advantage of the object-oriented structure of Java, the developers of LeJOS NXJ have been able to hide the implementation details of sensors and actuators behind multiple interfaces. This allows the robotics developer to work with high-level abstractions without having to worry about details like the hexadecimal addresses of hardware components. The project includes implementations of the commonly used feedback controller, the PID controller and the Kalman filter noise reduction algorithm. leJOS NXJ also provides libraries that support more abstract functions such as navigation, mapping and behavior based robotics.

Here is a simple leJOS program:

importlejos.nxt.Motor;importlejos.nxt.Button;publicclassExample{publicstaticvoidmain(String[]args){Motor.A.forward();Button.waitForPress();Motor.A.backward();Button.waitForPress();System.exit(1);}}

Community

Since the first alpha release of leJOS NXJ in 2007, the project has had a consistently active following.

  1. Between January 2007 and October 2011 there were over 225,000 downloads [7]
  2. In 2011 the downloads averaged between 4000 and 6000 a month [7]
  3. In 2011 over 500 topics were discussed in the forums. Each topic often generated several hundred posts. [8]
  4. Between May 2012 and March 2013 there were over 36,000 download of release 0.91 [9]

The core development team has been a relatively small group. Contributions are accepted from other members of the community. Several of the interfaces to third party sensors and actuators have been contributed by members outside the core team. The platform has been used in university robotics courses, undergraduate research projects and as a platform for robotics research.

NXJ and the Java platform

As leJOS NXJ is a Java project, it builds on the wealth of functionality inherent in the Java platform. There are leJOS NXJ plugins for the two leading Java IDEs: Eclipse and NetBeans. Robotics developers can take advantage of the standard functionality of an IDE (code completion, refactoring and testing frameworks) as well as point-and-click implementation of NXJ functions: compiling, linking and uploading. A wealth of java open source projects (such as Apache Math) are likewise available to the NXJ robotics developer.

See also

Related Research Articles

<span class="mw-page-title-main">Lego Mindstorms</span> Hardware and software platform by Lego

Lego Mindstorms is a discontinued hardware and software structure which develops programmable robots based on Lego bricks.

JCSP is an implementation of communicating sequential processes (CSP) for the programming language Java.

BrickOS is an open-source operating system created by Markus Noga as firmware to operate as an alternative software environment for the Lego Mindstorms Robotic Invention System. BrickOS is the first open-source software made for Lego Mindstorms robots. It is embedded with a C/C++-based and a Java-based environment for RCX program through utilizing g++ and jack toolchain. It uses a Hitachi H8 cross compiler assembler as its primary toolchain.

Lego Spybotics was a Mindstorms robotics sub-series by Lego. There are four different sets, each of which includes a Spybot, a controller, a cable, and a software disc. The Spybots are color-coded, and each one has a different set of equipment attached. The software disc allows the user to program the robots and set up simulated missions for them.

<span class="mw-page-title-main">Lego Mindstorms NXT</span> Programmable robotics kit

Lego Mindstorms NXT is a programmable robotics kit released by Lego on August 2, 2006. It replaced the Robotics Invention System, the first-generation Lego Mindstorms kit. The base kit ships in two versions: the retail version and the education base set. It comes with the NXT-G programming software or the optional LabVIEW for Lego Mindstorms. A variety of unofficial languages exist, such as NXC, NBC, leJOS NXJ, and RobotC. A second-generation set, Lego Mindstorms NXT 2.0, was released on August 1, 2009, with a color sensor and other upgrades. The third-generation EV3 was released in September 2013.

<span class="mw-page-title-main">Ballbot</span> Mobile robot design

A ball balancing robot also known as a ballbot is a dynamically-stable mobile robot designed to balance on a single spherical wheel. Through its single contact point with the ground, a ballbot is omnidirectional and thus exceptionally agile, maneuverable and organic in motion compared to other ground vehicles. Its dynamic stability enables improved navigability in narrow, crowded and dynamic environments. The ballbot works on the same principle as that of an inverted pendulum.

<span class="mw-page-title-main">Webots</span> Open-source robot simulator

Webots is a free and open-source 3D robot simulator used in industry, education and research.

DialogOS is a graphical programming environment to design computer system which can converse through voice with the user. Dialogs are clicked together in a Flowchart. DialogOS includes bindings to control Lego Mindstorms robots by voice and has bindings to SQL databases, as well as a generic plugin architecture to integrate with other types of backends.

Lego Education is a Lego theme designed specifically for schools that concentrates sets that can be used by education institutions and includes sets that focus on Duplo and Technic themes and contain larger amounts of pieces. The theme was first introduced in 1999.

The World Robot Olympiad (WRO) is a global robotics competition for young people. The World Robot Olympiad competition uses Lego Mindstorms manufactured by LEGO Education. First held in 2004 in Singapore, it now attracts more than 28,000 teams from more than 85 countries.

<span class="mw-page-title-main">Bricx Command Center</span>

Bricx Command Center (BricxCC) is the integrated development environment (IDE) of Next Byte Codes (NBC), Not Quite C (NQC) and Not eXactly C (NXC). These programming languages are used to program the Robots in the Lego Mindstorms series. Not Quite C and Not eXactly C have a syntax like C. Bricx Command Center is currently limited to computers running the Microsoft Windows operating system. However, a version for the Linux operating system is currently in development. It is written by John Hansen.

<span class="mw-page-title-main">For Inspiration and Recognition of Science and Technology</span> Engineering societies based in the United States

For Inspiration and Recognition of Science and Technology (FIRST) is an international youth organization that operates the FIRST Robotics Competition, FIRST LEGO League Challenge, FIRST LEGO League Explore, FIRST LEGO League Discover, and FIRST Tech Challenge competitions. Founded by Dean Kamen and Woodie Flowers in 1989, its expressed goal is to develop ways to inspire students in engineering and technology fields. Its philosophy is expressed by the organization as Coopertition and Gracious Professionalism. FIRST also operates FIRST Place, a research facility at FIRST Headquarters in Manchester, New Hampshire, where it holds educational programs and day camps for students and teachers.

Dexter Industries is a company that designs robots for education, research, and personal use. The company makes several products that expand the LEGO Mindstorms, Raspberry Pi, and Arduino prototype systems.

<span class="mw-page-title-main">Lego Mindstorms EV3</span>

LEGO Mindstorms EV3 is the third generation robotics kit in LEGO's Mindstorms line. It is the successor to the second generation LEGO Mindstorms NXT kit. The "EV" designation refers to the "evolution" of the Mindstorms product line. "3" refers to the fact that it is the third generation of computer modules - first was the RCX and the second is the NXT. It was officially announced on January 4, 2013, and was released in stores on September 1, 2013. The education edition was released on August 1, 2013. There are many competitions using this set, including the FIRST LEGO League Challenge and the World Robot Olympiad, sponsored by LEGO.

Enchanting is a free and open-source cross-platform educational programming language designed to program Lego Mindstorms NXT robots. It is primarily developed by Southern Alberta Robotics Enthusiasts group in the province of Alberta, Canada, and runs on Mac OS X, Windows, and experimentally on Linux devices. Since 2013, the Enchanting version 0.2 has been available.

Braigo is a Braille printer design. Braigo version 1.0 uses a Lego Mindstorms EV3 kit, which includes a microprocessor with assorted components such as electric motors, sensors and actuators. Braigo v1.0 was designed by 13-year-old Shubham Banerjee in January 2014, as an entry in 7th grade school science fair project. The model was based on the PLOTT3R, a bonus model released with the EV3 kit and originally designed by Ralph Hempel. The cost was said to be about US$350 or 250 Euros for the Lego Mindstorms EV3 kit and some extra commonly used hardware whereas a conventional Braille printer retails starting from about $1,900.

Open Roberta is a project within the German education initiative "Roberta – Learning with robots", initiated by Fraunhofer IAIS, which is an institute belonging to the Fraunhofer Society. With Open Roberta Fraunhofer IAIS is looking to encourage children to code by using robots such as Lego Mindstorms, and other programmable hardware systems such as Arduino, BBC micro:bit, and the Calliope mini. The Cloud-approach of the Open Roberta Lab is intended to simplify programming concepts and make it easier for teachers and schools to teach how to code. Open Roberta is free and does not require any installation. The project was initially founded with €1m by Google.org. Users from up to 120 countries now access the platform.

<span class="mw-page-title-main">RoboBlockly</span>

RoboBlockly is a web-based robot simulation environment for learning coding and math. Based on Blockly, it uses a simple puzzle-piece interface to program virtual Linkbot, Lego Mindstorms NXT and EV3, as well as to draw and animate for beginners to learn robotics, coding, math, science, and art. Blocks in RoboBlockly can be executed in debug mode step-by-step. All math activities in RoboBlockly are Common Core State Standards Mathematics compliant.

References

  1. Elouafiq, Ali. "The Lego Mindstorms Robotics Invention Systems 2.0 Toolkit: A Study Case" (PDF). Archived (PDF) from the original on September 3, 2020. Retrieved January 8, 2024.
  2. "Jitter on the NASA site". Archived from the original on 25 November 2010. Retrieved 5 December 2011.
  3. "LeJOS, Java for Lego Mindstorms" . Retrieved 4 November 2011.
  4. Jost, Beate; Ketterl, Markus; Budde, Reinhard; Leimbach, Thorsten (2014). "Graphical Programming Environments for Educational Robots: Open Roberta - Yet Another One?". 2014 IEEE International Symposium on Multimedia. pp. 381–386. doi:10.1109/ISM.2014.24. ISBN   978-1-4799-4311-1. S2CID   8272806.
  5. "Mindsensors" . Retrieved 22 August 2012.
  6. "HiTechnic Products". Dataport Systems, Inc. Retrieved 22 August 2012.
  7. 1 2 "Statistics from Sourceforge" . Retrieved 2 December 2011.
  8. "Statistics from NXJ forums" . Retrieved 5 December 2011.
  9. "Statistics from NXJ forums" . Retrieved 10 March 2013.

Further reading