Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
LeJOS
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{About|the [[firmware]] replacement for [[Lego Mindstorms]] programmable bricks|the song by [[Toby Love]]|Lejos}} {{lowercase|title=leJOS}} {{Infobox software | name = LeJOS RCX | title = LeJOS RCX | logo = | screenshot = | caption = | collapsible = | author = | developer = | released = {{Start date and age|2000|08|06|df=no}} | discontinued = | latest release version = v3.0 | latest release date = {{Start date and age|2006|09|17|df=no}} | latest preview version = | latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | programming language = [[Java (programming language)|Java]], [[C (programming language)|C]] | operating system = | platform = [[Cross-platform]] | size = | language = | genre = | license = [[open-source license|open-source]] ([[Mozilla Public License|MPL]]) | website = {{URL|lejos.sourceforge.io}} }} {{Infobox software | title = LeJOS NXT | name = LeJOS NXT | logo = | screenshot = | caption = | collapsible = | author = | developer = | released = {{Start date and age|2007|01|06|df=no}} | discontinued = | latest release version = v0.9.1 | latest release date = {{Start date and age|2012|02|06|df=no}} | latest preview version = | latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | programming language = [[Java (programming language)|Java]], [[C (programming language)|C]] | operating system = | platform = [[Cross-platform]] | size = | language = | genre = | license = [[open-source license|open-source]] ([[Mozilla Public License|MPL]]) | website = {{URL|lejos.sourceforge.io}} }} {{Infobox software | name = LeJOS EV3 | title = LeJOS EV3 | logo = | screenshot = | caption = | collapsible = | author = | developer = | released = {{Start date and age|2014|01|14|df=no}} | discontinued = | latest release version = v0.9.1 | latest release date = {{Start date and age|2015|11|16|df=no}} | latest preview version = | latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | programming language = [[Java (programming language)|Java]] | operating system = | platform = [[Cross-platform]] | size = | language = | genre = | license = [[open-source license|open-source]] ([[GNU General Public License|GPL v3]]) | website = {{URL|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 [[Lego Mindstorms NXT|NXT]], and the [[Lego Mindstorms EV3|EV3]]. It includes a [[Java virtual machine]], which allows Lego Mindstorms robots to be programmed in the [[Java (programming language)|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.<ref>{{cite arXiv |title=The Lego Mindstorms Robotics Invention Systems 2.0 Toolkit: A Study Case |first=Ali |last=Elouafiq |date=2012 |class=cs.RO |eprint=1204.1650 }}</ref> The leJOS-based robot ''Jitter'' flew around on the [[International Space Station]] in December 2001.<ref>{{cite web|title=Jitter on the NASA site|url=http://www.nasa.gov/mission_pages/station/research/experiments/Konstructor.html#images/|archive-url=https://web.archive.org/web/20101125113955/http://www.nasa.gov/mission_pages/station/research/experiments/Konstructor.html#images/|url-status=dead|archive-date=25 November 2010|accessdate=5 December 2011}}</ref> ==Pronunciation== According to the official website: : ''In [[English language|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 language|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 software|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|date=November 2011}}, has more memory available, a menu system, [[Bluetooth]] support using the Bluecove library, and allows access to many other NXT features.<ref>{{cite web|title=LeJOS, Java for Lego Mindstorms|url=http://lejos.sourceforge.net/|accessdate=4 November 2011}}</ref> In 2008, versions 0.5, 0.6 and 0.7 were released. In addition to numerous improvements to the core classes, the [[Eclipse (software)|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.<ref>{{cite book|chapter=Graphical Programming Environments for Educational Robots: Open Roberta - Yet Another One?|doi=10.1109/ISM.2014.24|isbn=978-1-4799-4311-1|title=2014 IEEE International Symposium on Multimedia|year=2014|last1=Jost|first1=Beate|last2=Ketterl|first2=Markus|last3=Budde|first3=Reinhard|last4=Leimbach|first4=Thorsten|pages=381–386|s2cid=8272806 }}</ref> == 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<ref>{{cite web|url=http://www.mindsensors.com/|title=Mindsensors|accessdate=22 August 2012}}</ref> and HiTechnic<ref>{{cite web|title=HiTechnic Products|url=http://www.hitechnic.com/|publisher=Dataport Systems, Inc.|accessdate=22 August 2012}}</ref> have extended this basic set by providing advanced sensors, actuators and multiplexers. leJOS NXJ includes Java [[Application programming interface|APIs]] for these products. By taking advantage of the [[Object-oriented programming|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, [[Robotic mapping|mapping]] and [[behavior based robotics]]. Here is a simple leJOS program: <syntaxhighlight lang="java"> import lejos.nxt.Motor; import lejos.nxt.Button; public class Example { public static void main(String[] args) { Motor.A.forward(); Button.waitForPress(); Motor.A.backward(); Button.waitForPress(); System.exit(1); } } </syntaxhighlight> == Community == Since the first alpha release of leJOS NXJ in 2007, the project has had a consistently active following. # Between January 2007 and October 2011 there were over 225,000 downloads<ref name="sfstats">{{cite web|title=Statistics from Sourceforge|url=http://sourceforge.net/projects/lejos/files/stats/timeline|accessdate=2 December 2011}}</ref> # In 2011 the downloads averaged between 4000 and 6000 a month <ref name="sfstats"/> # In 2011 over 500 topics were discussed in the forums. Each topic often generated several hundred posts.<ref>{{cite web|title=Statistics from NXJ forums|url=http://lejos.sourceforge.net/forum/|accessdate=5 December 2011}}</ref> # Between May 2012 and March 2013 there were over 36,000 download of release 0.91<ref>{{cite web|title=Statistics from NXJ forums|url=http://lejos.sourceforge.net/forum/|accessdate=10 March 2013}}</ref> 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 [[Integrated Development Environment|IDE]]s: [[Eclipse (software)|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== {{Portal|Computer programming|Free and open-source software}} * [[List of Java virtual machines]] * [[Lego Mindstorms]] * [[Robotics Invention System]] * [[URBI]] * [[Robotics suite]] ==References== {{Reflist}} ==Further reading== * Brian Bagnall (2011). ''Intelligence Unleashed: Creating LEGO NXT Robots with Java''. Variant Press {{ISBN|0-9868322-0-0}} * Brian Bagnall (2002). ''Core LEGO Mindstorms Programming''. Prentice Hall PTR. {{ISBN|0-13-009364-5}} * Giulio Ferrari et al. (2002). ''Programming LEGO Mindstorms with Java''. Syngress. {{ISBN|1-928994-55-5}} * Max Schöebel et al. (2015). ''Roberta - EV3 Programmieren mit Java''. Fraunhofer Verlag. {{ISBN|978-3-8396-0840-1}} ==External links== * {{Official website|http://lejos.sourceforge.net}} * [http://www.bartneck.de/2008/03/04/java-lego-nxt-eclipse-tutorial/ Step-by-Step Instructions for installing and running leJOS] * [http://highlevellogic.blogspot.se/2010/10/lego-mindstorms-nxt-robots-lejos.html Installing NXT and leJOS on 64 bit Windows] * [http://www.juanantonio.info/jab_cms.php?id=206 Ebook: Develop leJOS programs step by step] {{Webarchive|url=https://web.archive.org/web/20220311044254/http://www.juanantonio.info/jab_cms.php?id=206 |date=2022-03-11 }} {{Java Virtual Machine}} {{Lego}} [[Category:Lego Mindstorms]] [[Category:Embedded operating systems]] [[Category:Java virtual machine]] [[Category:Robot programming languages]] [[Category:1999 software]] [[Category:1999 in robotics]] [[Category:Software using the Mozilla Public License]] [[Category:Software using the GNU General Public License]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite arXiv
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:ISBN
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Java Virtual Machine
(
edit
)
Template:Lego
(
edit
)
Template:Lowercase
(
edit
)
Template:Main other
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Template other
(
edit
)
Template:Webarchive
(
edit
)