Skocz do zawartości

Robot i nawigacja


pi1er

Pomocna odpowiedź

Zakładam ten temat tutaj, chociaż w zasadzie ma wiele wspólnego z czujnikami. Jednak nie chce ograniczać jego tematyki.

Zastanawiam się nad systemami nawigacji (nie tam żadne GPSy), które umożliwiały by robotowi ustalenie jego położenia (powiedzmy - w mieszkaniu) i np na podstawie zaprogramowanej mapy lub jakiś algorytmów - znalezienie drogi do innego pomieszczenia.

Myślałem nad kilkoma rozwiązaniami. Pozwolę je sobie rozwinąć:

1. Ultradźwięki / Radiowa

W każdym pomieszczeniu w odpowiednim miejscu zamontowany jest nadajnik ultradźwięków, robot poprzez powolne obracanie odbiornikiem (serwo/silnik krokowy) ustala źródło sygnału. Podjeżdża blisko nadajnika

nadajnik może nadawać np nazwę pomieszczenia - dzięki czemu robot ustali szybko gdzie jest 
Robot podjeżdża do nadajnika, bo w ten sposób najłatwiej zaprogramować mu drogi między rożnymi pokojami - poruszał by się od nadajnika w pomieszczeniu 1 - przez zaprogramowana drogę (typu 10sek prosto, skręt w lewo 2sek - prawo 10sek

Pomocniczym narzędziem byłby elektroniczny kompas

2. Kompas

Kompas zamocowany odpowiednio w robocie tak aby enkoder mógł badać pozycję strzałki - sprawdzać gdzie jest północ.

Robot przy użyciu obu sposobów i zaprogramowanej w jego pamięci odpowiedniej mapy - mógłby dowolnie poruszać się po mieszkaniu. Teoretycznie.

3. Czujnik koloru

Dobrą metodą na rozpoznanie w jakim pomieszczeniu znajduje się robot może być jakiś czujnik RGB na jego spodzie zaraz kolo diody superjasnej (robot robi cień, więc czujnik koloru może nie zadziałać poprawnie - podłoże wymaga więc oświetlenia).

Gorzej jak w kilku pomieszczeniach podłoże jest podobne.

Na razie koniec - niestety nie mam chwilowo czasu pisać dalej

Macie jakieś własne pomysły - rozwiązania co do nawigacji robota w mieszkaniu/świecie/pomieszczeniu?

Wybaczcie za rysunki w paint'cie ale blender wymaga nieco czasu - dopiero z nim ćwiczę.

  • Lubię! 1
Link do komentarza
Share on other sites

Ja użyłbym jako beacona zestawu dioda ir z prockiem wysyłajacym dane, o ile się obrócić i ile jechać do następnej 'stacji przekaźnikowej', niestety jest to strasznie niedkładne (robo złapie sygnał już z pewnej odegłości).

  • Lubię! 1
Link do komentarza
Share on other sites

Ja użyłbym jako beacona zestawu dioda ir z prockiem wysyłajacym dane, o ile się obrócić i ile jechać do następnej 'stacji przekaźnikowej', niestety jest to strasznie niedkładne (robo złapie sygnał już z pewnej odegłości).

Można by zastosować dwie diody IR - jedna o dużym zasięgu kierującą do celu, drugą a mniejszym mówiącą "Jesteś w pozycji X".

Jednak bardziej interesowałaby mnie opcja ultradźwięków, na zasadzie Sonaru.

Na dniach przeprowadzę testy i dam znać co i jak 😉

Jeżeli ktoś ma również jakieś pomysły co do nawigacji po domu - śmiało pisać tutaj, co dwie głowy... 👹

Link do komentarza
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

No z ultradźwiękami myślę, że możesz mieć kłopot żeby precyzyjnie ustalić kierunek z którego są nadawane. Zwłaszcza, że będą odbicia od ścian i przedmiotów. Dużo lepsze by była podczerwień tak, jak pisałeś. Roomba tak szuka swojej stacji dokującej: ma odbiornik IR, a na stacji jest nadajnik. Generalnie jeśli chcesz precyzyjnie zlokalizować robota w pomieszczeniu to potrzebujesz laser - ceny zaczynają się bodaj już od 5000zł 😃

Możesz też pogooglać informacji o systemie stargazer.

Link do komentarza
Share on other sites

Ustalenie źródła ultradźwięków wymagałoby przeskanowania wszystkiego wokół (360* bez ruchu robota) i analizę - skąd najmocniejszy sygnał - kilka kroków i ponownie.

No właśnie, tutaj niestety wygrywa podczerwień.

Dobrą metodą na rozpoznanie w jakim pomieszczeniu znajduje się robot może być jakiś czujnik RGB na jego spodzie zaraz kolo diody superjasnej (robot robi cień, więc czujnik koloru może nie zadziałać poprawnie - podłoże wymaga więc oświetlenia).

Niestety robot - aby łatwiej ustalić swoją pozycję - musiałby być napędzany jakimiś silnikami krokowymi i liczyć kroki.

Jednak pomyślcie jakie możliwości daje zamontowanie kilku czujników: koloru, IR, odpowiedniego kompasu...

Link do komentarza
Share on other sites

Liczenie kroków nic Ci nie da. Nie jest to 100% dokładne, a błąd bez korekcji z zewnątrz (z innych czujników) będzie rósł w nieskończoność

A samo rozpoznawanie pomieszczenia to wydaje mi się, że jest najmniejszy problem, którym możesz się zająć jak już będziesz potrafił określić gdzie konkretnie robot się znajduje w obrębie jakiegoś pokoju.

Aha, jeszcze jedna uwaga. Wydaje mi się, że programowanie robota tak jak to opisałeś w pierwszym poście (jedź 10s prosto, skręć...), mija się z celem. nie wykorzystuje w ogóle potencjału jaki daje wiedza o pozycji robota. Jeśli już będziesz w stanie ją określić, to robot powinien mieć możliwość poruszania się pomiędzy dwoma dowolnie wybranymi punktami. W sumie zrobienie takiego systemu to byłby chyba niezły temat na inżynierkę 🙂

Link do komentarza
Share on other sites

Wracam do tematu, ciągle poszukuje metody umożliwiającej samo-nawigowanie robota wewnątrz pomieszczeń.

Testowałem już ultradźwięki (nie na robocie, ale na dwóch układach: nadajnik i odbiornik), raczej nie nadają się do tego. Mogą jedynie stanowić wstępną metodę odnalezienia bazy - jednak przez odbicia nie są dokładne.

Beacon na diodach IR nie jest głupim pomysłem, jednak jest pewien problem:

Co ma zrobić robot jak nie ma w zasięgu "wzroku" żadnego nadajnika? Wtedy nawet nie ma pojęcia gdzie jest.

Inna metoda, to jak ktoś już wspomniał, 3-4 nadajników radiowych na odpowiedniej częstotliwości odpowiednio rozmieszczonych. Każdy nadajnik, nadawałby czas wysłania sygnału (jednak wymagałoby to synchronizacji co do mikrosekundy; Transmitter) lub odpowiadałby na zapytanie od robota, odpowiednim sygnałem (Transceiver).

Poprzed odpowiednie porównanie czasów dotarcia sygnału do robota z wszystkich 4 punktów, uzyskalibyśmy dokładną pozycje robota. Jednak wymagałoby to dość szybkiego procesora, o ile dobrze myślę.

Liczę, że więcej osób przyłączy się chociaż do teoretycznej dyskusji.

Link do komentarza
Share on other sites

W którymś nr. Pc Format-u był opis pewnego robota. Kiedy rozładowywały mu się baterie to automatycznie podjeżdżał do "stacji" gdzie je ładował. Sposób w jaki ją odnajdywał był następujący:

Stacja leżąca na podłodze świeciła "laserkiem" na sufit, a robot odszukiwał na suficie ten "znak".

Link do komentarza
Share on other sites

Tzn. stwierdzał to na podstawie kamerki?

Można by zaprogramować robotowi mapy obiektowe.

Coś w formie drzewa zależności, mniej-więcej tak:

POMIESZCZNIE A ma wyjscia:

- do POMIESZCZENIA B

*natomiast B ma wyjscia do A i do D

- do POMIESZCZENIA C

*ktore ma wyjscia do A.

Jednak jest to jedynie drobna pomoc, ciągle trzeba zastosować metodę, która umożliwi ustalenie dokładnej pozycji i w jakim pomieszczeniu znajduje się robot.

Link do komentarza
Share on other sites

Ta metoda dotyczy jednak nawigowania po jednym pomieszczeniu chyba, ewentualnie zwiększasz liczbę stacji i rodzai znaków, co jednak jest do zrobienia. Też ostatnio o czymś takim myślałem, i możeby się sprawdziło wgrane do pamięci mapy mieszkania, dać zestaw enkoderó określających przemieszczenie, czyli np. dwa zwykłe do kół doczepione, ewentualnie dla korekcji błędów i poślizgów jeszcze jakieś, w jakiś sposób wykrywac progi między drzwiami, zeby kalibrować położenie i powinien jeździc, bez stacji zewnętrznych.

Link do komentarza
Share on other sites

Tak, ale zauważ, że kładąc robota raz 2 metry od łóżka, a raz 20cm od łóżka robot nie wie gdzie jest i takie wgrane mapy mu nic nie pomogą. Wtedy jeździłby już zaprogramowaną drogą.

Chociaż gdyby dać mu jakiegoś SHARPa i algorytm porownania rzeczywistosci do zaprogramowanej mapy...

Link do komentarza
Share on other sites

Oczywiście, jak po imprezie wyniosą Cię gdzie indziej niż się kładłeś, to masz tak samo, robot lepszy nie będzie 🙂 Myslałem o współpracy takiego robota z bluetoothem w telefonie, żeby można go było "zawołać". Oczywiście taki robot też ma ograniczenia, trzeba by, żeby miał jakąś listę miejsc startowych, przez komórkę podawałbyś mu w którym zaczyna. Ogolnie chyba do zrobienia.

Link do komentarza
Share on other sites

Tak, ale człowiek ma wbudowany algorytm mapowania i sieci neuronowe 😋

Staram się skupić tutaj na amatorskiej robotyce i uniknąć stosowania kamerki.

Hmm, wracając do pomysłu o 3-4 nadajnikach radiowych i pomiarze odległości miedzy robotem, a nimi.

Przy pomieszczeniu 10x10 metrów, sygnał radiowy od odbiornika do uC dotrze pewnie w tak krótkim czasie, że ciężko będzie to sprawdzić w jakiej odległości jest robot od nadajników.

Pewnie wymagałoby to użycia uC taktowanego >100-200MHz...

Ciągle zastanawiam się nad kolejną metodą nawigacji, ale ta na beacon'ach IR wygląda najprościej i najlepiej...

Link do komentarza
Share on other sites

Hmm, a może beacon ir wysyłający non-stop jakiś znak, choćby w rc5, na robocie obudowany termokurczką odbiornik typu tsop/sfh, na obrotowej wieżyczce (albo niech cały robot się kręci). Najpierw robot kręci się i ustawia do pierwszego beaconu, zatrzymuje się, i teraz zaczyna się kręcić do uzyskania sygnału z drugiego beaconu i zapamiętuje kąt, o który się obrócił. Można dodać jeszcze kilka beaconów (oczywiście każdy wysyła inny nzak/komendę), dla zwiększenia dokładności. Jak nie rozumiesz, to za jakąś godzinkę ci to rozrysuję, ale na razie wychodzę z domu.

  • Lubię! 1
Link do komentarza
Share on other sites

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.