Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_mindstormsdesign [2008/06/03 01:52] miw |
pl:miw:miw08_mindstormsdesign [2008/06/06 14:14] miw |
====== Opis ====== | |
| |
**__Projekt zakończony__ | |
** | |
| |
Lukasz Zalewski, <zalewik@gmail.com> | |
| |
High-level NXT programming, design tools, XTT applications | |
| |
| |
====== Spotkania ====== | |
[[pl:miw:miw08_mindstormsdesign:spotkania|Spotkania]] | |
| |
| |
| |
| |
| |
====== Projekt ====== | |
| |
=== Regułowe algorytmy sterowania === | |
{{ :pl:miw:robot.jpg?300|TriBot}} | |
Poniższe algorytmy zostały opracowane dla robota mobilnego TriBot. Jest to rozbudowana wersja robota z katalogu zestawu mindstorm: | |
W algorytmach wykorzystano wszystkie użyte sensory (tak jak widać na obrazku: echosonda, mikrofon, czujnik dotyku i sensor natężenia światła). | |
- [[pl:miw:miw08_mindstormsdesign:strona_2|Poruszania się po linii]] | |
- [[pl:miw:miw08_mindstormsdesign:strona_1|Objechanie przeszkody]] | |
- [[pl:miw:miw08_mindstormsdesign:strona_3|Omijanie przeszkód]] | |
- [[pl:miw:miw08_mindstormsdesign:grid|Omijania przeszkód - plansza z przeszkodami]] | |
- [[pl:miw:miw08_mindstormsdesign:labirynt|Labirynt]] | |
Wadą powyższych algorytmów jest brak informacji o położeniu. Robot nie ma punktów odniesienia. Nie zna swojej pozycji. Stąd trudno wymagać, by poruszał się w zadanym kierunku nawet po napotkaniu przeszkody. Sytuację tą można poprawić wprowadzając możliwość zapisu pomiarów z czujników. | |
| |
=== Algorytmy genetyczne === | |
Można również rozważyć wykorzystanie algorytmów genetycznych do sterowania robotami. Tym zagadnieniem zajmują się już inne uczelnie [[http://portal.acm.org/citation.cfm?id=1050231.1050292|Southwestern University, Georgetown, TX]] | |
Bardzo ciekawe zastosowanie algorytmów genetycznych w przypadku robotów zaprezentowano na naukowym zjeździe fundacji [[http://www.ted.com/talks/view/id/165|Ted]]. Przedstawiono tam algorytm, który sam generuje sterowanie wiedząc tylko tyle, że ma kilka serwomechanizmów i czujników. | |
| |
| |
| |
| |
| |
| |
====== Sprawozdanie ====== | |
| |
===== Algorytmy sterowania z internetu ===== | |
W pierwszej iteracji projektu należało znaleźć możliwie jak najwięcej przykładów sterowania robotami. Niestety, informacji na ten temat jest niewiele. Większość materiału jest nie udokumentowana, cześciej spotykane były wzmianki lub prezentacje sterowania robotami. | |
Ciekawostką jest to, że również inne europejskie uczelnie zajmują się opracowywaniem sterowania, prowadzą laboratoria z MindStormów. | |
| |
Udokumentowane algorytmy (przykłady) sterowania robotami mobilnymi - z sieci: | |
* udokumentowane algorytmy sterowania | |
* [[http://www.micsymposium.org/mics_2006/papers/Pilling.pdf|Algorytm omijania przeszkód]] | |
* [[https://ai.ia.agh.edu.pl/wiki/pl:miw:miw08_mindstormsenv#propozycje_algorytmow|Proponowane algorytmy w dziale miw:miw08_mindstormsenv]] | |
* prezentacje: | |
* [[http://fountain.isis.vanderbilt.edu/teaching/2004/presentations/msrobot.ppt/download|Robot w labiryncie]] | |
| |
===== Algorytmy - zapis regułowy ===== | |
* algorytmy zostały zapisane przy użyciu reguł | |
* część reguł została zapisana za pomocą 'luźnych reguł' a inne przy użyciu reguł uzupełniających się. Wszelkie uwagi dotyczące tego zostały zamieszczone przy opisywanych regułach. | |
| |
===== Prolog - UWAGI ===== | |
* algorytmy zostały zapisane przy użyciu przygotowanego API przez Pana Piotra Hołownię. Wszelkie uwagi i spostrzeżenia zostały wymienione z kolegą Piotrem. Uwag było niewiele. Przygotowane funkcje wydają się jak najbardziej poprawne. | |
* Na obecnym etapie napotkano problem związany z ewentualną alokacją zmiennych w pamięci. Czy to ma być zwykły **assert**?? | |
| |
| |
===== XTT - UWAGI ===== | |
* W jednym z algorytmów zastosowano puste przebiegi oraz próbę zaimplementowania konstrukcji z **'else'** [[https://ai.ia.agh.edu.pl/wiki/pl:miw:miw08_mindstormsdesign:grid#xtt|Proponowane puste przebiegi]] | |
* [[https://ai.ia.agh.edu.pl/wiki/pl:miw:miw08_mindstormsdesign:strona_2#xtt|Problem z wpisaniem ujemnej wartości w XTT]] | |
* [[https://ai.ia.agh.edu.pl/wiki/pl:miw:miw08_mindstormsdesign:labirynt#xtt|Przy większych algorytmach pojawiają się problemy z reprezentacją tablic atrybutów. Ponadto zapętlanie algorytmu robi się bardzo nieczytelne.]] | |
| |
===== ARD - UWAGI ===== | |
* wydzielanie atrybutów dla algorytmów sterowania nie zawsze jest łatwe. Pojawiają się problemy z rozróżnieniem akcji od atrybutu. | |
* również, atrybuty występują w w różnych częściach algortymu. Stąd, relacje pomiędzy atrybutami często są złożone. Przejawie się to choćby w późniejszej realizacji XTT. Czytelność XTT jest słaba. | |
===== Program HQED - UWAGI ===== | |
| |
* podczas przeciągania połączenia od jednej tabeli do drugiej pojawiają się błędy. A dokładniej linia (connector) nie podąża za kursorem, co uniemożliwią dokonanie poprawnego połączenia tabel | |
* obecna wersja programu nie jest jeszcze stabilna. Program zawiesza się np. przy wprowadzaniu danych do tabel. | |
| |
| |
| |
| |
| |
| |
====== Materiały ====== | |
Oprócz wyżej zaprezentowanych materiałów znaleziono: | |
* google.books.com zawiera wiele materiałów z gotowymi projektami LEGO MINDSTORMS. W tym jak zbudować i zaprogramować roboty jeżdżące, chodzące itp. | |
* [[http://books.google.com/books?id=IMOGegzD1vAC&printsec=titlepage&dq=mindstorm&hl=pl&source=gbs_toc_s&cad=1#PPA52,M1|Lego Mindstorms NXT: The Mayan Adventure ]] | |
* [[http://books.google.com/books?id=8atl8tQgC08C&printsec=frontcover&dq=mindstorm&hl=pl&sig=kvWwiPhrGlxvOUgRQkUOCZom0rc#PPA103,M1|LEGO Mindstorm Masterpieces: Building and Programming]] | |
* [[http://books.google.com/books?id=uMRp4BGl8J8C&printsec=frontcover&dq=mindstorm&hl=pl&sig=x5UU6c4WirCQ-ZqM571Fgf1yYF8#PPR17,M1|Building Robots With Lego Mindstorms]] | |
* na sieci znajduje się wiele rozważań dotyczących tematyki sterowania robotami mobilnymi. Są to jednak prace ujmujące zagadnienie w sposób matematyczny. Tworzone są modele matematyczne, a następnie analizowane są przeprowadzone wcześniej symulacje. Np: | |
* [[http://149.156.12.42/bams/bams_pdf/157-164_kaczmarek.pdf|ZINTEGROWANE SYMULATORY CHODU W ZASTOSOWANIU DO | |
SYNTEZY ALGORYTMÓW STEROWANIA]] | |
* zfilmowane projekty robotów: | |
* [[http://video.google.pl/videoplay?docid=-9117349876850037888&q=lego+mindstorms&total=2801&start=0&num=10&so=0&type=search&plindex=0|Mindstorms Designes]] | |
* [[http://www.youtube.com/watch?v=sRTcHnjNd5E|Układanie kostki Rubika]] | |
| |
| |
| |
| |
| |
| |
| |