leJOS es un firmware de reemplazo para los bloques programables Lego Mindstorms . Diferentes variantes del software son compatibles con el Robotics Invention System original , el NXT y el EV3 . Incluye una máquina virtual Java , que permite programar robots Lego Mindstorms en el lenguaje de programación Java . También incluye 'iCommand.jar', que permite la comunicación vía Bluetooth con el firmware original de Mindstorm. Se utiliza frecuentemente para enseñar Java a estudiantes de primer año de informática . [ 1 ] El robot Jitter , basado en leJOS, voló en la Estación Espacial Internacional en diciembre de 2001. [ 2 ]
Pronunciación
Según el sitio web oficial:
- En inglés , la palabra es similar a Legos, excepto que tiene una J de Java, así que la pronunciación correcta sería Ley-J-oss. Si te atreves a pronunciar el nombre en español , existe la palabra "lejos", que significa lejos, y se pronuncia Lay-hoss.
El nombre leJOS fue ideado por José Solórzano, basándose en el acrónimo de Java Operating System (JOS), el nombre de otro sistema operativo para el RCX, legOS , y la palabra española "lejos".
Historia
leJOS fue concebido originalmente como TinyVM y desarrollado por José Solórzano a finales de 1999. Comenzó como un proyecto de código abierto por afición , que posteriormente se bifurcó para crear lo que hoy se conoce como leJOS. Muchos colaboradores se unieron al proyecto y aportaron mejoras importantes. Entre ellos, Brian Bagnall, Jürgen Stuber y Paul Andrews, quien más tarde se hizo cargo del proyecto cuando José se retiró.
A partir del 20 de agosto de 2006, la versión original de leJOS para RCX se descontinuó con el lanzamiento de la versión 3.0. Poco después, se lanzó iCommand, una biblioteca para controlar el NXT desde una computadora con Bluetooth mediante LCP. Esta biblioteca utilizaba el firmware estándar de Lego. Posteriormente, esta biblioteca fue reemplazada por leJOS NXJ 0.8. En enero de 2007, se lanzó una versión completa para el nuevo Lego Mindstorms NXT como reemplazo del firmware. Esta versión es mucho más rápida (aproximadamente 15 veces más rápida) que la versión de RCX , tiene más memoria disponible, un sistema de menús, compatibilidad con Bluetooth mediante la biblioteca Bluecove y permite el acceso a muchas otras funciones del NXT. [ 3 ]
En 2008 se lanzaron las versiones 0.5, 0.6 y 0.7. Además de numerosas mejoras en las clases principales, se publicó el complemento para Eclipse junto con una nueva versión del tutorial. En 2009 se lanzaron dos versiones principales más: la 0.8 y la 0.85. En mayo de 2011 se lanzó la versión 0.9. En términos generales, las versiones se han centrado en mejoras en los algoritmos de navegación, así como en la compatibilidad con numerosos sensores de terceros y el complemento para Eclipse.
En 2013, se inició el desarrollo de una adaptación para el ladrillo Lego Mindstorms EV3 . En 2014, se lanzaron las versiones alfa 0.5 y 0.6. En 2015, se lanzaron las versiones beta 0.9 y 0.9.1.
Desde noviembre de 2014, leJOS se utiliza en una versión ligeramente adaptada también en el proyecto de código abierto Open Roberta. [ 4 ]
Arquitectura
leJOS NXJ ofrece soporte para el acceso a los puertos I²C del robot . Esto permite el acceso a los sensores y motores estándar (sensor de distancia ultrasónico, sensor táctil, sensor de sonido y sensor de luz). Otras empresas, como MindSensors [ 5 ] y HiTechnic [ 6 ], han ampliado este conjunto básico proporcionando sensores, actuadores y multiplexores avanzados. leJOS NXJ incluye API Java para estos productos.
Aprovechando la estructura orientada a objetos de Java, los desarrolladores de LeJOS NXJ han podido ocultar los detalles de implementación de sensores y actuadores tras múltiples interfaces. Esto permite al desarrollador de robótica trabajar con abstracciones de alto nivel sin tener que preocuparse por detalles como las direcciones hexadecimales de los componentes de hardware. El proyecto incluye implementaciones del controlador de retroalimentación de uso común, el controlador PID y el algoritmo de reducción de ruido del filtro de Kalman . LeJOS NXJ también proporciona bibliotecas que admiten funciones más abstractas como navegación, mapeo y robótica basada en el comportamiento .
Aquí hay un programa leJOS simple:
importar lejos.nxt.Motor ; importar 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 ); } }Comunidad
Desde el primer lanzamiento alfa de leJOS NXJ en 2007, el proyecto ha contado con un grupo de seguidores constantemente activo.
- Entre enero de 2007 y octubre de 2011 hubo más de 225.000 descargas [ 7 ].
- En 2011, las descargas promediaron entre 4000 y 6000 al mes [ 7 ].
- En 2011 se discutieron más de 500 temas en los foros. Cada tema a menudo generaba varios cientos de publicaciones. [ 8 ]
- Entre mayo de 2012 y marzo de 2013 se realizaron más de 36.000 descargas de la versión 0.91 [ 9 ].
El equipo de desarrollo principal ha sido un grupo relativamente pequeño. Se aceptan contribuciones de otros miembros de la comunidad. Varias de las interfaces para sensores y actuadores de terceros han sido aportadas por miembros ajenos al equipo principal. La plataforma se ha utilizado en cursos universitarios de robótica, proyectos de investigación de pregrado y como plataforma para la investigación en robótica.
NXJ y la plataforma Java
Como leJOS NXJ es un proyecto Java, aprovecha la gran cantidad de funcionalidades inherentes a la plataforma Java. Existen complementos de leJOS NXJ para los dos principales IDE de Java : Eclipse y NetBeans . Los desarrolladores de robótica pueden beneficiarse de las funcionalidades estándar de un IDE (autocompletado de código, refactorización y marcos de prueba), así como de la implementación intuitiva de las funciones de NXJ: compilación, enlace y carga. Asimismo, los desarrolladores de robótica NXJ tienen a su disposición una amplia gama de proyectos Java de código abierto (como Apache Math).
Véase también
Referencias
- ↑ Elouafiq, Ali (2012). "El kit de herramientas Lego Mindstorms Robotics Invention Systems 2.0: un caso de estudio". arXiv : 1204.1650 [ cs.RO ].
- ↑ "Frenado irregular en el sitio web de la NASA" . Archivado del original el 25 de noviembre de 2010. Consultado el 5 de diciembre de 2011 .
- ↑ «LeJOS, Java para Lego Mindstorms» . Consultado el 4 de noviembre de 2011 .
- ↑ Jost, Beate; Ketterl, Markus; Budde, Reinhard; Leimbach, Thorsten (2014). «Entornos de programación gráfica para robots educativos: Open Roberta - ¿Otro más?». Simposio Internacional IEEE de Multimedia de 2014. págs. 381–386 . doi : 10.1109/ISM.2014.24 . ISBN 978-1-4799-4311-1. S2CID 8272806 .
- ↑ "Sensores mentales" . Consultado el 22 de agosto de 2012 .
- ↑ "Productos HiTechnic" . Dataport Systems, Inc. Consultado el 22 de agosto de 2012 .
- 1 2 "Estadísticas de Sourceforge" . Consultado el 2 de diciembre de 2011 .
- ↑ "Estadísticas de los foros de NXJ" . Consultado el 5 de diciembre de 2011 .
- ↑ "Estadísticas de los foros de NXJ" . Consultado el 10 de marzo de 2013 .
Lecturas adicionales
- Brian Bagnall (2011). Inteligencia desatada: Creación de robots LEGO NXT con Java . Variant Press ISBN 0-9868322-0-0
- Brian Bagnall (2002). Programación básica de LEGO Mindstorms . Prentice Hall PTR. ISBN 0-13-009364-5
- Giulio Ferrari et al. (2002). Programación de LEGO Mindstorms con Java . Syngress. ISBN 1-928994-55-5
- Max Schöebel et al. (2015). Roberta - Programadores EV3 con Java . Fraunhofer Verlag. ISBN 978-3-8396-0840-1
Enlaces externos
- Sitio web oficial
- Instrucciones paso a paso para instalar y ejecutar leJOS
- Instalación de NXT y leJOS en Windows de 64 bits
- Libro electrónico: Desarrollar programas leJOS paso a paso. Archivado el 11 de marzo de 2022 en Wayback Machine.
- Lego Mindstorms
- Sistemas operativos integrados
- máquina virtual Java
- Lenguajes de programación de robots
- Software de 1999
- 1999 en robótica
- Software que utiliza la Licencia Pública de Mozilla.
- Software que utiliza la Licencia Pública General de GNU.