Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_mindstormsdesign [2008/06/03 01:30] miw |
pl:miw:miw08_mindstormsdesign [2008/06/06 14:14] miw |
====== Opis ====== | |
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 ===== | |
* Algorytmy sterowania robotami mobilnymi zostały zapisane za pomocą reguł. | |
* Nie udało się znależć za wiele przykładów na internecie opisujących algorytmy sterowania robotami. | |
===== 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 ====== | |
- 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]] | |
* 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]] | |
* prezentacje: | |
* [[http://fountain.isis.vanderbilt.edu/teaching/2004/presentations/msrobot.ppt/download|Robot w labiryncie]] | |
* 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]] | |
| |
| |
| |
| |
| |
| |
| |