Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_mindstormsenv [2008/06/03 17:01] miw |
pl:miw:miw08_mindstormsenv [2019/06/27 15:50] (aktualna) |
====== Opis ====== | ====== Opis ====== |
| **__Projekt zakończony__** |
| |
**Łukasz Dziedzia **, <dziedzia@student.agh.edu.pl> | **Łukasz Dziedzia **, <dziedzia@student.agh.edu.pl> |
| |
Dodatkowo na stronach Wikipedii można znaleźć odnośniki do kilku innych środowisk: | Dodatkowo na stronach Wikipedii można znaleźć odnośniki do kilku innych środowisk: |
//[[http://en.wikipedia.org/wiki/Lego_Mindstorms#Programming_languages|MindStorms on wiki]]// | //[[http://en.wikipedia.org/wiki/Lego_Mindstorms#Programming_languages|MindStorms on wiki]]// |
| |
| |
| |
| |
===== Propozycja use case'u ===== | ===== 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: | 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 projekt został zrealizowany zgodnie z następującymi założeniami: |
- 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 [[http://mindstorms.lego.com/Overview/MTR_Tribot.aspx|TriBot'a]] (w wersji rozszerzonej). Początkowo ciekawszym wydawał się humanoidalny [[http://mindstorms.lego.com/Overview/MTR_AlphaRex.aspx|Alpha Rex]], jednak oprócz interesującego układu ruchu nie udostępnia on ciekawych możliwości, tzn. ciekawego wykorzystania sensorów. | - 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 [[http://mindstorms.lego.com/Overview/MTR_Tribot.aspx|TriBot'a]] (w wersji rozszerzonej). Początkowo ciekawszym wydawał się humanoidalny [[http://mindstorms.lego.com/Overview/MTR_AlphaRex.aspx|Alpha Rex]], jednak oprócz interesującego układu ruchu nie udostępnia on ciekawych możliwości, tzn. ciekawego wykorzystania sensorów. |
- Dla danego robota zdefiniować algorytm programu. 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 wykonania pewnych zadań podrzędnych). | - Dla danego robota zdefiniować algorytm programu. 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 wykonania pewnych zadań podrzędnych). |
- Implementacja algorytmu przy użyciu wybranych środowisk (proponowane środowiska przedstawiam poniżej). | - Implementacja algorytmu przy użyciu wybranych środowisk (proponowane środowiska przedstawiam poniżej). |
- 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: | - Oprócz charakterystyki 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 | * ogólna ocena możliwości środowiska |
* "user friendly" | * "user friendly" |
| |
===== Implementacja ===== | ===== Implementacja ===== |
| |
| |
| |
==== Uwagi ogólne ==== | ==== 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ę. | * 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ę. |
* Wadliwa konstrukcja robota uniemożliwiała korzystanie z sensora natężenia światła (TODO opis modyfikacji). | * Wadliwa konstrukcja robota uniemożliwiała korzystanie z sensora natężenia światła([[pl:miw:miw08_mindstormsenv:materialy#Modyfikacja_konstrukcji_TriBot_a |sugerowana modyfikacja konstrukcji robota]]). |
* Przeszkodą nie może być piłeczka na platformie, sonar jest umieszczony zbyt wysoko , aby ją wykryć. | * Przeszkodą nie może być piłeczka na platformie, sonar jest umieszczony zbyt wysoko, aby ją wykryć. |
| |
| |
==== Środowisko Lego Mindstorms ==== | ==== Środowisko Lego Mindstorms ==== |
| |
* {{:pl:miw:miw08_mindstormsenv:saper_rbt.zip|saper_rbt.zip}} - implementacja [[pl:miw:miw08_mindstormsenv:materialy#Saper|Algorytmu Saper]] w natywnym środowisku LEGO Mindstorms. | * {{:pl:miw:miw08_mindstormsenv:saper_rbt.zip|saper_rbt.zip}} - implementacja [[pl:miw:miw08_mindstormsenv:materialy#Saper|Algorytmu Saper]] w natywnym środowisku LEGO Mindstorms. |
* {{:pl:miw:miw08_mindstormsenv:patrol_rbt.zip|patrol_rbt.zip}} - implementacja [[pl:miw:miw08_mindstormsenv:materialy#Patrol|Algorytmu Patrol]] w natywnym środowisku LEGO Mindstorms. Planowane ulepszenia: rozróżnianie 'wnętrza i zewnętrza' patrolowanego obszaru. | * {{:pl:miw:miw08_mindstormsenv:patrol_rbt.zip|patrol_rbt.zip}} - implementacja [[pl:miw:miw08_mindstormsenv:materialy#Patrol|Algorytmu Patrol]] w natywnym środowisku LEGO Mindstorms. |
| |
\\ | \\ |
| 'cieszący oko' interfejs | niedopracowany edytor (gubiące się połączenia, nic nie mówiące warningi) | | | '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) | | | 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) | | | | bezproblemowa komunikacja (USB) | niektóre błędy kompilacji nie posiadają opisu pozwalającego je zidentyfikować | |
| automatyczny odczyt wartości pomiarów z sensorów | | | | automatyczny odczyt wartości pomiarów z sensorów | | |
| możliwość kalibracji czujników z poziomu środowiska | | | | możliwość kalibracji czujników z poziomu środowiska | | |