To jest stara wersja strony!


Opis

Spotkania

08.02.26

  • wyszukac wszystkie mozliwe srodowiska

08.03.11

  • propozycja usecase'u
  • wstępnie wysel. środowiska

LabView w uci

080318

  • propozycje algorytmów
  • próba uwzg. oryginalne środow LEGO

080408

  • impl tych 2 alg
  • ew. propozycje 3.
  • próba zapisania 2 alg. w postaci ogólnych reguł decyzyjnych: JEŻELI cośtam WTEDY cośtam, ew. bez przesłanek: jedź…

Projekt

LABView w UCI

Skontaktowalem sie droga mailowa z Panem odpowiedzialnym za udostepnianie licencji an oprogramowanie LABView, oto jego tresc:

Witam,

program LabView moze byc instalowany wylacznie na komputerach Uczelnianych

i tylko przez pracownikow.

Pozdrawiam

J.Pilch

Dostepne srodowiska

Kilka najciekawszych środowisk do programowania/sterowania MindStorms:

  • MicrosoftRobotics Studio - The Microsoft Robotics Studio is a Windows-based environment for academic, hobbyist and commercial developers to easily create robotics applications across a wide variety of hardware.
    • Next Byte Codes (NBC) is a simple language with an assembly language syntax that can be used to program LEGO's NXT programmable brick (from the new LEGO Mindstorms NXT set).
    • Not eXactly C (NXC) is a high level language, similar to C, built on top of the NBC compiler. It can also be used to program the NXT brick. NXC is basically NQC for the NXT. To compile NXC programs just use the NBC compiler with source code files that have a .nxc file extension.
  • LabView - Toolkit popularnego srodowiska firmy NationalInstruments
  • Lego.NET - Lego.NET is the name of our project to make the .NET run-time available on the Lego Mindstorm platform. As the original Lego firmware is too limited for such a project, we are building on top of alternative operating systems; currently, our focus is on brickOS.
  • ROBOTC - ROBOTC is a powerful C-based programming language with a Windows environment for writing and debugging programs, and the only programming language at this level that offers a comprehensive, real-time debugger. ROBOTC is a cross-platform solution that allows students to learn the type of c-based programming used in advanced education and professional applications.
  • http://www.mindstorms.rwth-aachen.de/RWTH - This toolbox is developed to control LEGO® MINDSTORMS® NXT robots with MATLAB via a wireless Bluetooth connection.
  • leJOS - Java for Lego MindStorms

Dodatkowo na stronach Wikipedii można znaleźć odnośniki do kilku innych środowisk: MindStorms on wiki

Propozycja use case'u

Aby porównanie środowisk było sensowne wymagane jest, aby każde z nich testowane było w identyczny sposób. Istotne jest również, aby podczas testowania możliwości jakie oferują poszczególne środowiska wykorzystać jak największą część z funkcjonalności jaką oferuje zestaw LEGO Mindstorms. Biorąc pod uwagę powyższe założenia sugeruje następujący przebieg realizacji tego projektu:

  1. Stworzyć robota, na którym odbędą się testy. Uważam, że warto posłużyć się w tym celu jednym z robotów proponowanych w instrukcjach dołączonych do zestawu(okazałoby się to korzystne w przypadku próby uruchomienia algorytmu). Po zapoznaniu się z możliwościami robotów opisanych w instrukcjach LEGO zdecydowałem się na TriBot'a (w wersji rozszerzonej). Początkowo ciekawszym wydawał się humanoidalny Alpha Rex, jednak oprócz interesującego układu ruchu nie udostępnia on ciekawych możliwości, tzn. ciekawego wykorzystania sensorów.
  2. Dla danego robota zdefiniować algorytm programu (lub bardziej ogólnie założenia jakie mają docelowo być spełnione przez robota?). Algorytm powinien wykorzystywać wszystkie sensory dostępne w zestawie (przynajmniej w stopniu pozwalającym na ocenę możliwości sterowaniem nimi, tzn. w przypadku, gdy nie istnieje racjonalne uzasadnienie na wykorzystanie któregoś z sensorów, algorytm powinien zawierać logikę, która wykorzysta możliwości sensora, do wykoanania jakichś zadań podrzędnych).
  3. Implementacja algorytmu przy użyciu wybranych środowisk (proponowane środowiska przedstawiam poniżej).
  4. Oprócz charakterystki porównawczej, opisującej podstawowe wady/zalety każdego ze sprawdzanych środowisk, w podsumowaniu przeprowadzonego eksperymentu powinna znaleźć się punktowa(uproszczona) ocena uwzględniająca następujące kryteria:
  • ogólna ocena możliwości środowiska
  • „user friendly”
  • komunikacja z urządzeniem(NXTBrick)
  • ?

Wyselekcjonowane środowiska

Wykonanie eksperymentu propnuje przeprowadzić dla 3 środowisk. Wstępna analiza (polegająca na ocenie możliwości oraz popularności) wyłoniła następujące środowiska:

  • NXC - jest to chyba najpopularniejszy zestaw do tworzenia oprogramowania na LEGO Mindstorms. Język NXC (Not eXactly C) powstał w oparciu o język C, więc jest on bardzo intuicyjny dla wielu programistów. Dodatkowo dobre doświadczenia z poprzednią wersją tego języka (NQC) wskazują na słuszność tego wyboru.
  • MicrosoftRobotics Studio - zapowiadające się dobrze środowisko do tworzenia oprogramowania (oraz symulacji) dla wielu platform hardware'owych. Ciekawa również wydaje się perspektywa możliwości pisania kodu w dowolnym języku platformy .NET.
  • leJOS - wybór tego środowiska jest podyktowane stosunkową dużą ilością publikacji (np. książka )opisujących to narzędzie. Poza tym w ramach przedmiotu Metody Inżynierii Wiedzy istnieją projekty dotyczące LEGO Mindstorms bazujące na języku Java, stąd wniosek, że warto opisać/porównać to środowisko.


Porównanie ww. środowisk powinno zostać przygotowane w oparciu o możliwości środowiska dostarczonego wraz z zestawem Lego Mindstorms.

Propozycje algorytmów

Biorąc pod uwagę wcześniejsze założenia oraz możliwości/ograniczenia robota TriBot, proponuje następujące algorytmy:

  • Saper - Celem robota będzie wywiezienie z obszaru wyznaczonego przez czarną linię (plansza dostarczona z zestawem Mindstorms) obiektu. Robot startuje z dowolnego miejsca na podłodze, jego zadaniem jest znaleźć obszar wyznaczony przez czarną linię(sensor natężenia światła). Po przekroczeniu obszaru robot powinien wyszukać miejsce, w którym znajduje sie piłeczka(sonar), a następnie dotrzeć do niej, uchwycic ją(czujnik dotyku) i wywieźć poza obszar wyznaczony przez czarna linię. Aktywacja robota odbędzie się za pomocą sygnału dźwiękowego (jest to najbardziej sensowne zastosowanie sensora natężenia dźwięku, jakie udało mi się zdefiniować dla tego zadania).Algorytm Saper.
  • Patrol - Celem robota będzie poruszanie się po zadanej trajektorii(plansza dostarczone wraz z zestawem Mindstorms), w przypadku wykrycia na patrolowanej drodze przeszkody(sonar) robot powinien zwolnić, aby nie zderzyć się z nią, a następnie przechwycić przeszkodę i usunąć ją z trasy. Podobnie jak w poprzednim przykładzie czujnik natężenia dźwięku może służyć do aktywacji/deaktywacji robota. Algorytm Patrol.

Regułowy zapis algorytmów

Algorytmy zapisane regułami (IF THEN) dostępne są:

Implementacja

Uwagi ogólne

  • Implementując powyższe algorytmy w środowisku LEGO okazało się, że szczególnie istotna jest możliwość kalibracji sensorów. Porównując środowiska należy zwrócić na to szczególną uwagę.

Środowisko Lego Mindstorms


Implementacja ww. algorytmów w natywnym środowisku LEGO (przy użyciu schematów blokowych).

+ -
'cieszący oko' interfejs niedopracowany edytor (gubiące się połączenia, nic nie mówiące warningi)
zintegrowany tutorial i pomoc dotycząca używania środowiska praca z edytorem wymaga sporo cierpliwości (wolne przewijanie przy 'dłuższych' algorytmach)
bezproblemowa komunikacja (USB)
automatyczny odczyt wartości pomiarów z sensorów
możliwość kalibracji czujników z poziomu środowiska
ułatwione zarządzenie urządzeniem (wgrywanie firmware'u, zarządzanie plikami zapisanymi w pamięci NXTBrick, podgląd poziomu baterii)
możliwość definiowania własnych bloków


UWAGA Dostępna baza wiedzy dotycząca 'programowania' w środowisku LEGO Mindstorms mogłaby zostać uwzględniona w ćwiczeniach laboratoryjnych z JSI (szczególnie takie zagadnienia jak równoległe wykonywanie zadań, zmienne, typy danych oraz ich przekazywanie między blokami) Najprościej do tej pomocy dostać się można poprzez Help→Contents and Index.

Sprawozdanie

Materiały

pl/miw/miw08_mindstormsenv.1207515177.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0