leJOS
Pierwsze wydanie | 6 sierpnia 2000 |
---|---|
Wersja stabilna | v3.0 / 17 września 2006
|
Napisane w | Jawa , C |
Platforma | Międzyplatformowe |
Licencja | open-source ( MPL ) |
Strona internetowa |
Pierwsze wydanie | 6 stycznia 2007 |
---|---|
Wersja stabilna | v0.9.1 / 6 lutego 2012
|
Napisane w | Jawa , C |
Platforma | Międzyplatformowe |
Licencja | open-source ( MPL ) |
Strona internetowa |
Pierwsze wydanie | 14 stycznia 2014 |
---|---|
Wersja stabilna | v0.9.1 / 16 listopada 2015
|
Napisane w | Jawa |
Platforma | Międzyplatformowe |
Licencja | open source ( GPL v3 ) |
Strona internetowa |
leJOS to oprogramowanie zastępujące programowalne klocki Lego Mindstorms . Różne warianty oprogramowania obsługują oryginalny system Robotics Invention System , NXT i EV3 . Zawiera wirtualną maszynę Java , która umożliwia programowanie robotów Lego Mindstorms w języku programowania Java . Zawiera również „iCommand.jar”, który umożliwia komunikację przez Bluetooth z oryginalnym oprogramowaniem Mindstorm. Jest często używany do nauczania języka Java na pierwszym roku studenci informatyki [ potrzebne źródło ] . Robot Jitter oparty na leJOS latał po Międzynarodowej Stacji Kosmicznej w grudniu 2001 roku.
Wymowa
Według oficjalnej strony internetowej:
- W języku angielskim słowo to jest podobne do Legos, z wyjątkiem tego, że jest tam J dla Java, więc poprawna wymowa to Ley-J-oss. Jeśli jesteś odważny i chcesz wymówić nazwę po hiszpańsku , istnieje słowo „lejos”, które oznacza daleko, i wymawia się je Lay-hoss.
Nazwa leJOS została wymyślona przez José Solórzano na podstawie akronimu Java Operating System (JOS), nazwy innego systemu operacyjnego dla RCX, legOS i hiszpańskiego słowa „lejos”.
Historia
leJOS został pierwotnie pomyślany jako TinyVM i opracowany przez José Solórzano pod koniec 1999 roku. Zaczął jako hobbystyczny projekt open source , który później rozwidlił w coś, co jest dziś znane jako leJOS. Wielu współpracowników dołączyło do projektu i wprowadziło ważne ulepszenia. Wśród nich Brian Bagnall, Jürgen Stuber i Paul Andrews, który później przejął projekt, gdy José zasadniczo z niego zrezygnował.
Od 20 sierpnia 2006 r. Oryginalny leJOS dla RCX został wycofany wraz z wydaniem 3.0. Wkrótce potem wydano iCommand, bibliotekę do sterowania NXT z komputera obsługującego Bluetooth za pośrednictwem LCP. Ta biblioteka korzystała ze standardowego oprogramowania układowego Lego. Ta biblioteka została później zastąpiona przez leJOS NXJ 0.8. W styczniu 2007 r. Wydano pełny port do nowego Lego Mindstorms NXT jako zamiennik oprogramowania układowego. Jest to znacznie szybsze (około x15) niż wersja RCX [ potrzebne źródło ] , ma więcej dostępnej pamięci, system menu, Bluetooth wsparcie przy użyciu biblioteki Bluecove i umożliwia dostęp do wielu innych funkcji NXT.
W 2008 roku zostały wydane wersje 0.5, 0.6 i 0.7. Oprócz licznych ulepszeń podstawowych klas, Eclipse wraz z nową wersją samouczka. W 2009 roku ukazały się jeszcze 2 główne wydania: 0,8 i 0,85. W maju 2011 roku ukazała się wersja 0.9. Ogólnie rzecz biorąc, wydania koncentrowały się na ulepszeniach algorytmów nawigacji, a także obsłudze wielu czujników innych firm i wtyczce Eclipse.
W 2013 roku rozpoczęto prace nad portem do klocka Lego Mindstorms EV3 . W 2014 roku ukazały się wersje alfa 0.5 i 0.6. W 2015 roku ukazały się wersje beta 0.9 i 0.9.1.
Od listopada 2014 leJOS jest używany w nieco zmodyfikowanej wersji także w projekcie open-source Open Roberta.
Architektura
I²C robota . Umożliwia to dostęp do standardowych czujników i silników (ultradźwiękowy czujnik odległości, czujnik dotykowy, czujnik dźwięku i czujnik światła). Inne firmy, takie jak MindSensors i HiTechnic, rozszerzyły ten podstawowy zestaw o zaawansowane czujniki, elementy wykonawcze i multipleksery. leJOS NXJ zawiera API Java dla tych produktów.
Korzystając z obiektowej struktury języka Java, twórcy LeJOS NXJ byli w stanie ukryć szczegóły implementacji czujników i elementów wykonawczych za wieloma interfejsami. Dzięki temu programista robotyki może pracować z abstrakcjami wysokiego poziomu bez martwienia się o szczegóły, takie jak szesnastkowe adresy komponentów sprzętowych. Projekt obejmuje implementacje powszechnie stosowanego regulatora ze sprzężeniem zwrotnym, regulatora PID oraz algorytmu redukcji szumów filtra Kalmana . leJOS NXJ zapewnia również biblioteki obsługujące bardziej abstrakcyjne funkcje, takie jak nawigacja, mapowanie i robotyka oparta na zachowaniu .
Oto prosty program leJOS:
importuj lejos.nxt.Motor ; importuj lejos.nxt.Button ; public class Przykład { public static void main ( String [] args ) { Motor . A. _ do przodu (); przycisk . czekajNaPress (); Silnik . A. _ wstecz (); przycisk . czekajNaPress (); systemu .
wyjście ( 1 ); } }
Wspólnota
Od pierwszej wersji alfa leJOS NXJ w 2007 roku projekt cieszy się niezmiennie aktywnymi zwolennikami.
- Od stycznia 2007 do października 2011 pobrano ponad 225 000 plików
- W 2011 roku pobrania wynosiły średnio od 4000 do 6000 miesięcznie
- W 2011 roku na forach dyskutowano na ponad 500 tematów. Każdy temat generował często kilkaset postów.
- Między majem 2012 a marcem 2013 pobrano ponad 36 000 wersji 0.91
Główny zespół programistów stanowił stosunkowo niewielką grupę. Wkłady są przyjmowane od innych członków społeczności. Kilka interfejsów do czujników i siłowników innych firm zostało wniesionych przez członków spoza głównego zespołu. Platforma była wykorzystywana na uniwersyteckich kursach robotyki, projektach badawczych studiów licencjackich oraz jako platforma do badań robotyki.
NXJ i platformę Java
Ponieważ leJOS NXJ jest projektem Java, opiera się na bogactwie funkcjonalności związanych z platformą Java. Istnieją wtyczki leJOS NXJ dla dwóch wiodących środowisk Java IDE : Eclipse i NetBeans . Programiści robotyki mogą korzystać ze standardowej funkcjonalności IDE (struktury uzupełniania kodu, refaktoryzacji i testowania), a także z implementacji funkcji NXJ typu „wskaż i kliknij”: kompilacji, łączenia i przesyłania. Bogactwo projektów Open Source Java (takich jak Apache Math) jest również dostępnych dla programisty robotyki NXJ.
Zobacz też
Dalsza lektura
- Briana Bagnalla (2011). Uwolniona inteligencja: tworzenie robotów LEGO NXT w Javie . Wariant Prasa ISBN 0-9868322-0-0
- Briana Bagnalla (2002). Podstawowe programowanie LEGO Mindstorms . Prentice Hall PTR. ISBN 0-13-009364-5
- Giulio Ferrari i in. (2002). Programowanie LEGO Mindstorms w Javie . Syngres. ISBN 1-928994-55-5
- Max Schöebel i in. (2015). Roberta - EV3 Programowanie z Java . Fraunhofer Verlag. ISBN 978-3-8396-0840-1