Skocz do zawartości

Nawigacja w mieszkaniu


Rizim

Pomocna odpowiedź

Witam, wiem że temat nawigacji był już kilkukrotnie poruszany na tym forum ale nie widziałem żeby doszło to do jakiś sensownych rozwiązań. Ponadto wszystkie ciekawe tematy które znalazłem umarły już kilka lat temu. Mam kilka pomysłów na ten problem, część była już poruszana w innych tematach ale są i nowe.

Najpierw napisze jakieś bzdury które możecie pominąć, a potem jest pomysł który chce zrealizować.

Enkoderów na kołach w ogóle nie planuje rozważać bo robot który buduje ma nieciekawą cechę że znosi go nawet przy jeździe na wprost, a podczas pełnego obrotu potrafi wylądować 10 cm dalej. Dostrzegam ten problem ale nie zamierzam go rozwiązywać.

Śledzenie przebytej trasy mogło by się odbywać przy pomocy sensoru z myszki optycznej. Testowałem to rozwiązanie. Idealnie pokazuje w którą stronę sensor się porusza, można odczytać prędkość i przyśpieszenie. Niestety w praktyce wygląda to tak że gdy poruszę sensorem 20 cm do przodu to pokaże mi że przebyłem np 1000j, a gdy z powrotem wrócę te 20cm sensor pokaże że przebyłem 350j (powinno być 0) - zupełnie bez sensu.

Pomysł z trzema emiterami (ultra) dźwięków rozmieszczonymi po pokoju nie podoba mi się bo wymaga aż trzech latarni, a gdybym chciał rozszerzyć prace robota na kilka pokoi to pewnie wymagało by to trzydziestu latarni tak żeby z każdego miejsca robot widział przynajmniej trzy. Był by też potrzebny kompas.

Kolejny pomysł to trzy latarnie na podczerwień - tutaj potrzebny był by serwomechanizm. Trzeba by było liczyć kąty pomiędzy latarniami. Niestety jak wyżej wymagało by to bardzo dużej liczby latarni. Podczas ustalania pozycji robot musiał by się zatrzymać co bardzo by mi się nie spodobało. Zapewne problemem było by też słońce które miota wszystkimi długościami fal jak głupie i zakłóca co się tylko da.

Można by było też zbudować (co najmniej) jedną latarnie która emitowała by podczerwień oraz wysyłała ultra dźwięki po wzbudzeniu przez robota. W ten sposób robot mógł by określić swoją odległość od latarni oraz kąt pod jakim się ona znajduje. Co wystarczyło by teoretycznie do określenia swojej pozycji względem latarni.

Teraz przejdę do opcji która najbardziej mi się podoba

Wymagało by to użycia (co najmniej) jednej latarni która emitowała by ultradźwięk co kilka milisekund (nie potrzeba wzbudzeń przez robota). Na robocie umieszczone były by 3 odbiorniki ultradźwięków i obliczenie pozycji odbywało by się na podstawie czasów dotarcia sygnałów. Tutaj obrazek poglądowy który pokazuje zasadniczą wadę tego pomysłu.

Rozwiązaniem tej sytuacji mógł by być elektroniczny kompas tylko nie wiem na ile dokładnie pokazywał by pozycje i jak bardzo by wariował przy zasilaczach, ścianach czy przy samych silnikach z robota.

Główna zaleta jest taka że robot mógł by określać swoją pozycje nawet co kilka milisekund, nie musiał by się zatrzymywać no i konstrukcja latarni jest dosyć prosta.

Celem całej tej nawigacji ma być określenie pozycji robota i pomoc w dotarciu do określonego celu w tym przypadku butelki z piwem (robot pamiętał by gdzie można je dostać) potem zabierał by ją i dostarczał do kolejnego celu w tym przypadku do mnie. Ja odkładał bym to piwo na początkowe miejsce i można by było powtórzyć całą zabawę.

Jeśli kogoś ciekawi jak ten robot ma wyglądać to możecie go tutaj znaleźć.

https://www.forbot.pl/forum/topics7/wielozadaniowy-skoczek-vt8424.htm

Jeśli jakiemuś śmiałkowi udało się dotrwać do końca moich wypocin. To proszę bądź tak miły i podziel się swoją opinią.

Link do komentarza
Share on other sites

1. Ultradźwięki co kilka ms to może być za krótki czas - ultradźwięki są wolne i mógłbyś jedno z odbić pomylić z bezpośrednim sygnałem.

2. Zamiast kilku odbiorników na robocie (małe odległości -> b.mała różnica czasowa) lepiej zastosować kilka nadajników (np, 4 w rogach pokoju) i sterować nimi z centralnie położonego urządzenia, żeby np. co 25ms każdy kolejny dał impuls. Z tak zebranych danych dasz radę dosyć dokładnie określić położenie robota (plus kompas na kierunek, albo po prostu sprawdzać w którą stronę pojazd jedzie z przejechanej od ostatniej ramki drogi).

Link do komentarza
Share on other sites

Bardzo ciekawy pomysł ze zrobieniem nawigacji do robota 😉

A gdyby tak orientować się z odległością od danych latarni po kolei? Tzn. są cztery latarnie po jednej w rogu pokoju. Komunikują się one z komputerem ( a komputer z robotem). Robot, aby określić pozycje najpierw "pyta się" jednej gdzie jest, później drugiej itd. Czujnik odbierający sygnał na robocie byłby obrotowy. Ustawiałby się dzięki temu przodem do każdej latarni. I w sumie to tyle. Mam nadzieję, że wytłumaczyłem to zrozumiale (jak nie to daj znać, spróbuję inaczej wytłumaczyć) 😉

Link do komentarza
Share on other sites

Przyznaje że pomysł z kilkoma nadajnikami w pokoju był by bardziej precyzyjny i wydaje się bardziej sensowny ale dyskwalifikuje go to że potrzebuję wielu latarni.

3 odbiorniki na robocie są pod tym względem bardo atrakcyjne. Odległość pomiędzy nimi powinna wystarczyć do tego aby ustalanie pozycji było wystarczająco dokładne.

Podejrzewam że moim największym wyzwaniem będzie zbudowanie odbiornika i nadajnika dźwięku. Mam nadzieje że znajdzie się ktoś na forum dla kogo ten problem jest trywialny i podzieli się swoją wiedzą. Bardzo chciał bym uniknąć robienia tych układów samemu. Może wiecie czy da się coś podobnego kupić albo użyć jakiś podobnych modułów do tego celu?

Ewentualnie można by użyć zwyczajnych głośników i mikrofonów - jak sądzicie?

edit:

antwito dodałeś posta gdy ja swojego dopiero pisałem 😉

ale takie problemy dostrzegam w Twoim pomyśle

- robot musi się zatrzymać i obracać żeby znaleźć latarnie

- komunikacja wszystkich latarni z komputerem była by trudna i droga

- gdybym chciał pokryć jakieś 3 pomieszczenia i rozegrać to tak żeby z każdej strony było widać 4 latarnie to bym zbankrutował na samych modułach łączności (no chyba że mega plątanina kabli)

- dodatkowe serwo na robocie było by tu już najmniejszym problemem

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

Z enkoderów nie rezygnowałbym całkowicie. Dzięki nim robot może zacząć jeździć prosto - silniki bardzo rzadko mają identyczne parametry, a co za tym idzie, przy tym samym wypełnieniu PWM mogą kręcić się z różną prędkością. Prosty regulator PID może temu zaradzić.

Jeśli chodzi o latarnie, to można też pomyśleć o rozwiązaniu pośrednim między powyższymi: dwie latarnie i dwa odbiorniki. Latarnie wyzwalana sygnałem radiowym z centralnego urządzenia, tak abyś wiedział, który sygnał pochodzi z którego nadajnika.

Jeśli chodzi o dalszą lekturę, polecam hasło: filtr cząsteczkowy.

Link do komentarza
Share on other sites

Silniki kręcą się jeszcze w miarę równo ale koła są praktycznie w ciągłym poślizgu i lubię to więc enkodery nie wchodzą w gre ;l

2 latarnie i 2 czujniki na robocie to też rozważałem ale wynik nie był by jednoznaczny nawet przy użyciu kompasu.

Link do komentarza
Share on other sites

1. Komunikacja radiowa z czymkolwiek raczej odpada - nie znasz dokładnych czasów, ew. problemy gdy pakiet nie dojdzie itd...

2. Schemat 2/2 jest bez sensu w mojej opinii, bo kumulujesz tylko problemy

3. Zrobienie nadajnika jest bajecznie proste, a w zasadzie potrzebujesz jednostkę centralną (arduino, dowolna atmega czy co tam zazwyczaj używasz) + 4 np. 2 metrowe kable + małą płytkę na każdej latarni składającą się np. z max232 służącego za wzmacniacz sygnału z cpu + nadajnika ultradźękowego. Można to zbudować w 5min na płytce prototypowej.

Link do komentarza
Share on other sites

Jeśli chciałbyś, aby robot rozróżniał która latarnia to która, to można by zrobić tak, aby każda nadawała dźwięk z inną częstotliwością. Może dałoby się dzięki temu uniknąć modułów łączności.

Mam też pomysł który raczej na pewno nie wchodzi w rachubę. Poprzyklejanie na suficie znaczków i odczytywanie ich kamerką umieszczoną na robocie 😋

EDIT:

A może by tak odczytywanie położenia na podstawie elementów otoczenia? Tylko to już zdecydowanie wyższa szkoła jazdy...

Link do komentarza
Share on other sites

antwito Różne częstotliwości dla kolejnych latarni wydają się dobrym pomysłem. Natomiast w miarę dokładna nawigacja na podstawie elementów otoczenia bez użycia markerów jest niestety całkowicie niewykonalna przy moim sprzęcie i poziomie wiedzy.

MirekCz wielkie dzięki za podpowiedź z maxem232. Masz też może jakiś pomysł na prosty odbiornik?

Zastanawia mnie tez czy te odbiorniki i nadajniki tego typu będą działać 'dookólnie' bo wydają się być kierunkowymi.

http://electropark.pl/czujniki-ultradzwiekowe/1317-odbiornik-ultradzwiekowy-16mm-5901001317003.html

Ps. zamówiłem właśnie kompas elektroniczny jak tylko dotrze zdam relacje 🙂

Link do komentarza
Share on other sites

Nadajniki i odbiorniki z powyzszego linku sa kierunkowe. W przypadnu nadajnikow do "latarni" umieszczanych w rogach pokoju, to nawet zaleta. Odbiornik powinien miec charakterystyke dookolna. Rozwiazaniem moze byc skierowanie odbiornika kierunkowego pionowo w gore i umieszczenie nad nim stozka z metalu.

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.