Szukam jakichś prostych algorytmów mapowania, jakies proste programy poruszania się robota po szachownicy np. mała tablica 4X4 z wiadomym rozmieszczeniem przeszkód. Najbardziej interesują mnie proste przykłady kodów źródłowych na początek które mógłbym przeanalizować i pogłębić swoją wiedzę. Bo A* to narazie dla mnie zbyt trudne . Jak macie coś takiego to podrzucie proszę.
McRancor Pomógł: 5 razy Posty: 76 Otrzymał 9 piw(a) Skąd: ze wsi
Wysłany: 21 Lis 08 05:35
Jeżeli chcesz zastosować to w robocie mobilnym to najpierw trzeba zdać sobie sprawę z innych problemów. Algorytm A z gwiazdką jest jednym z najprostszych. Podobne algorytmy:
- algorytm propagacji fali
- metoda gradientowa
- metoda elastycznej wstęgi
- diagram woronoja
- metody grafu widoczności
- metoda sztucznych pól potencjałowych
Kod źródłowy niewiele da bez znajomości teoretycznej zagadnienia. W załączniku moja prezentacja odnośnie algorytmu A* - powinieneś wykumać o co chodzi.
Chcesz symulować robota na komputerze czy stworzyć fizyczny model? Generalnie o ile same algorytmy nie są trudne, to implementacja w rzeczywistym otoczeniu jest moim zdaniem dobrym tematem na pracę dyplomową...
new.pdf Prezentacja dotycząca algorytmu A* (A star, A z gwiazdką)
No tak przejrzałem sieć no jets tego trochę ale ja myślę żeby zmodyfikować algorytmy szukania drogi wykorzystywane w grach, podpiąć funkcje ruchu robota pod poszczególne kroki np: lewo, prawo, przód. Narazie to tak raczej sie przyglądam a jaki będzie efekt i czy w ogóle jakiś będzie zobaczymy?
Chcę to zastosować w robocie mobilnym, o jakich problemach mianowicie wspominasz?
Może ktoś już wykorzystuje te algorytmy w swoim robocie??
McRancor Pomógł: 5 razy Posty: 76 Otrzymał 9 piw(a) Skąd: ze wsi
Wysłany: 28 Lis 08 07:34
Problem polega na konieczności lokalizacji robota w przestrzeni. Potrzebowałbyś robota który potrafi sam się zlokalizować, albo posiada czujniki umożliwiające dokładny pomiar drogi. Baaaardzo dokładny. No i znajomość sceny (robot musi mieć mapę otoczenia). Nie wiem jak chcesz rozwiązać tego typu problemy.
W grach (tych starszych typu civilization) w większości przypadków korzysta się z A*
Wysłany: 29 Lis 08 09:03 Program mapujący wersja beta
[ Dodano: 30 Lis 08 10:45 ]
devonport napisał/a:
Oto po tygodniu pracy napisałem prosty program mapujący, coś już potrafi ale brakuje np: funkcji cofnij w przypadku dotarcia w ślepy zaułek. Ważne że odczyta z tablicy drogę i potrafi się zatrzymać na punkcie końcowym. Wszystko robione na NXT, z dokładnoscią jest tak sobie ale nie oto tu tak naprawdę chodziło.
Mapa jest podzielona na kwadraty 30x30 cm mniej-więcej tyle potrzeba aby robot swobodnie wykonał manewr na danym polu. Ważne, że robot jezdzi w realnym swiecie przechodzi plansze tak jak ma zapisane w tablicy. Postaram się wrzucić niebawem jakiś filmik z testu robota.
Trzon programu wygląda tak:
Kod:
int x;
int i=5,j=2;// pozycja startowa robota robot powinien stac na srodku kwadratu zawsze przodem
int tab[6][6]= //tablica musi zawierac na krancach zera zeby robot nie wyszedl poza tablice
{{0,0,0,0,0,0}, //i=0 nr wiersza
{0,1,2,1,0,0}, //cyfra 2 poz i=1,j=2 oznacza pole kocowe, robot sie zatrzyma na tym polu
{0,1,0,1,0,0},//obszar manewrowy dla robota to wlasciwie tablica 4x4
{0,1,1,1,0,0}, // zera oznaczaja przeszkody
{0,0,1,0,0,0},
{0,0,0,0,0,0}};//i=5 nr wiersza, tylko przy starcie robot moze stac na pozycji-"0"
//j=0,1,2,3,4 5 nr kolumny
task main()
//petla 30 razy jak dojdzie do "2" szybciej to i tak sie zatrzyma
for(x=0;x<30;x++) // gorzej gdy nie wyrobi sie w 30 krokach
{
if(tab[i-1][j]>0&&tab[i][j]!=2) {//jesli wolna droga"1" i nie jest to pole koncowe"2" wykonuje sie funkcja prosto
prosto(); //wywolanie funkcji
i--;}
else{ //ten warunek wykonuje sie gdy jest mozliwosc w prawo
if(tab[i][j+1]>0&&tab[i][j]!=2){ // robot najpierw czyta pozycje a dopiero skreca
prawo();
j++;}
[ Dodano: 19 Gru 08 05:51 ]
Mały programik
To nie jest symulacja komputerowa ruchu robota a wręcz odwrotnie ten program jest produktem ubocznym programu sterującego robotem. Powstał bo nie bardzo mogłem znalezć coś w sieci, są prace teoretyczne, symulacje komputerowe(nie przydatne zbytnio do zastosowania w realu), ale kodu zródłowego jakoś nikt nie udostępnia. Ja też nie udostępnię, ma słabe strony ale można się pobawić programem.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum