Skocz do zawartości

Zaawansowany program sterujący robotem mobilnym


Pomocna odpowiedź

Ukończyłem pierwszy etap prac nad potężnym programem mapującym.

Program ma za zadanie doprowadzić robota do celu(czerwone pole ). Znane są tylko punkt startowy i pozycja końcowa natomiast rozmieszczenie przeszkód na mapie nie jest wiadome.

Robot używa trzech sensorów ultradzwiękowych, które mają za zadanie określić czy sąsiednie pole jest wolne bądz zajęte, oraz silników z enkoderami.

W zasadzie wydaje się po krótkich testach, że algorytm sprawuje się bezbłednie problem to właśnie pomiar przebytej drogi, poślizgi i czasem zawodzi sensoryka(echo,itp.)

Robot jeszcze nie mapuje do tyłu ale potrafi wycofać się ze ślepych zaułków.

Labiryntod.c

Link to post
Share on other sites

Około 1:09 robot ma do wyboru dwa kierunki, na jakiej zasadzie go wybiera?

Planujesz zrobić wyszukiwanie optymalnej trasy?

Opisz trochę szerzej algorytm :]

Link to post
Share on other sites

Fajnie to wyszło.

Jak byś mógł, opisz o co będzie rozszerzony algorytm, np wykrywanie "zajętości" pola oddalonego o 2, lub coś takiego.

I robotowi byłoby prościej, gdyby te przeszkody były kwadratowe i ni z papieru.

Link to post
Share on other sites

Program oblicza współrzędne sąsiednich wolnych pól i te które są najbliższe względem celu mają pierwszeństwo.

Pierwszy wybór jest w 0.17 sek. prosto/prawo a to z 1.09 sek. lewo/prawo pola mają taki sam priorytet lecz ustawiłem tak algorytm żeby preferował lewo niż prawo

kwestja ustawienia znaków

if wartość lewo >= wart. prawo to instrukcja1 lub if wartość lewo < wart. prawo to instrukcja1.

Nie planuję szukania najkrótszej drogi.

Tak Mihau lepsze były by przeszkody 2,5l pękate kartony po sokach lub sześciany ok. 20X20X20 cm ale te też dają radę.

Przedewszystkim rozbudować chodzenie do tyłu np. gdy cel jest z tyły robota to w tej chwili robot jest bezradny.

Labiryntod.c

Link to post
Share on other sites

Ja niestety nie będę już pracował nad tym programem. Chciałem jeszcze trochę posiedzieć

coś udoskonalić ale muszę wrócić do realu i tam popracować.

Ujawnienie zródeł może tylko pomóc w ewentualnym rozwijaniu tego typu programów, każdy może porównać, poprawić dodać coś od siebie itp. chyba u nas nie ma żadnych zawodów z labiryntami to i po co to utajniać.

NXT ma silniki z encoderami.

A tu plik z przykladem:

przyklad1.doc

Link to post
Share on other sites

Jeśli jeszcze kogoś coś w tym stylu interesuje tu jest kod i sprawko tego co kiedyś zrobiłem na uczelni.

Założenia podobne.

NXT musi być zparowany przez BT z kompem bo na kompie są wykonywane obliczenia.

W sprawku jest sporo pierdół wieć wybaczcie, ale tak trzeba było to napisać 🙂

Kod jest w NXC i C#

LegoNXT.pdf

NXT_MazeSolver.rar

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.