leJOS

LeJOS RCX
Pierwsze wydanie 6 sierpnia 2000 ; 22 lata temu ( 06.08.2000 )
Wersja stabilna
v3.0 / 17 września 2006 ; 16 lat temu ( 17.09.2006 )
Napisane w Jawa , C
Platforma Międzyplatformowe
Licencja open-source ( MPL )
Strona internetowa lejos .sourceforge .io
LeJOS NXT
Pierwsze wydanie 6 stycznia 2007 ; 16 lat temu ( 06.01.2007 )
Wersja stabilna
v0.9.1 / 6 lutego 2012 ; 11 lat temu ( 2012-02-06 )
Napisane w Jawa , C
Platforma Międzyplatformowe
Licencja open-source ( MPL )
Strona internetowa lejos .sourceforge .io
LeJOS EV3
Pierwsze wydanie 14 stycznia 2014 ; 9 lat temu ( 14.01.2014 )
Wersja stabilna
v0.9.1 / 16 listopada 2015 ; 7 lat temu ( 16.11.2015 )
Napisane w Jawa
Platforma Międzyplatformowe
Licencja open source ( GPL v3 )
Strona internetowa lejos .sourceforge .io

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.

  1. Od stycznia 2007 do października 2011 pobrano ponad 225 000 plików
  2. W 2011 roku pobrania wynosiły średnio od 4000 do 6000 miesięcznie
  3. W 2011 roku na forach dyskutowano na ponad 500 tematów. Każdy temat generował często kilkaset postów.
  4. 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

Linki zewnętrzne