Skocz do zawartości

Model autonomicznego pojazdu - porady


Stark

Pomocna odpowiedź

Witajcie,

Pracuję nad projektem autonomicznego pojazdu. Planowałem to zrobić na STM32, jednak z braku wiedzy na temat mikrokontrolerów rozpocząłem kurs Arduino, aby rozpocząć od podstaw. Dziś mija piąty dzień od rozpoczęcia kursu. Mam już wykonany pojazd prototypowy, który jeździ tak jak go zaprogramuję (zdjęcie poniżej). Docelowo jednak chcę, aby przejechał od z punktu A do punktu B, omijając przeszkody jakie napotka na drodze. Do omijania przeszkód chcę zastosować czujniki ultradźwiękowe. Zastanawiam się tylko, jak sprawić, aby pojazd wiedział, gdzie ma jechać. Myślę, że GPS nie będzie odpowiedni, bo chciałbym realizację projektu wykonać w dużym pomieszczeniu 10x20m. Będę potrzebował coś bardziej dokładnego i mającego lepszy zasięg. Czytałem o kompasach, magnetometrach - czy tego typu elementy byłyby odpowiednie? Kiedy pojazd znałby swoją aktualną pozycję, mógłbym mu w jakiś sposób wskazać docelową w postaci współrzędnych.

Proszę o pomoc w doradzeniu jakie elementy wybrać i wyjaśnieniu moich wątpliwości.

IMG_20200825_080403.jpg

Link do komentarza
Share on other sites

Do pkreslania pozycji gps najlepszy. Może bluetooth z czujnikiem hc-06,czy hc-05. Lub wifi, na esp2866, tylko wtedy nawet bez arduino by to działało, bo oprócz wifi można tam robić podobne rzeczy jak w arduino. 

Edytowano przez KHX
Dopisanie informacji.
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

(edytowany)

@KHX

23 godziny temu, KHX napisał:

Do pkreslania pozycji gps najlepszy

dokładnie jak @deshipu napisał, dokładność 300 m w pomieszczeniu 10x20m na niewiele mi się zda

 

@deshipu - dziękuję bardzo za tę garść pomysłów

17 godzin temu, deshipu napisał:

Zamontować na kołach enkodery

Wraz z silnikami otrzymałem specjalne tarcze, które mogę założyć z drugiej strony wału silnika (zdjęcie poniżej), jednak nie za bardzo wiem z jakim czujnikiem miałyby one pracować?

IMG_20200826_155606.thumb.jpg.55b36a570bd15133e4405176b6b69c28.jpg

17 godzin temu, deshipu napisał:

Przy czterokołowym pojeździe jak twój w grę wejdą jeszcze nieuniknione poślizgi kół na zakrętach

Dokładnie. To będzie problem, bo pojazd mój nie ma układu kierowniczego zatem skręt odbywa się przez zasilanie jednej strony kół, kiedy drugie pozostają w miejscu. Dodatkowo jeśli miałbym dokładać jeszcze 4 czujniki na każde koło to zajmuję drogocenne piny, których i tak już mi dużo nie zostaje.

17 godzin temu, deshipu napisał:

To samo, ale zamiast (oprócz) enkoderów użyć akceloremtru+żyroskopu+kompasu. Są gotowe czipy zawierające w sobie już całą logikę do tego

Do tego typu rozwiązania byłbym najbardziej skłonny. Czy mógłbyś polecić jakiś konkretny czip? Ewentualnie czy znasz jeszcze jakieś źródła, skąd mógłbym się nauczyć jak go obsłużyć?

17 godzin temu, deshipu napisał:

Śledzić za pomocą kamery rozmieszczone wzdłuż trasy znaczniki — fiduciale albo ledy mrugające w odpowiedni sposób

Kamery też wydają mi się rozsądne, jednak na chwilę obecną to dla mnie czarna magia. Aczkolwiek jesteś w stanie polecić mi jakieś konkretny model/czip z kamerą + ewentualne źródła skąd mógłbym nauczyć się jak to obsłużyć?

 

Rozwiązań typu podążanie za narysowaną linią czy kablem zakopanym pod powierzchnią nie biorę pod uwagę. Ma to być na tyle uniwersalne i praktyczne, że stawiam pojazd w dowolnym miejscu, wskazuje mu cel (współrzędne) i on jedzie.

Edytowano przez Stark
Link do komentarza
Share on other sites

5 godzin temu, Stark napisał:

Wraz z silnikami otrzymałem specjalne tarcze, które mogę założyć z drugiej strony wału silnika (zdjęcie poniżej), jednak nie za bardzo wiem z jakim czujnikiem miałyby one pracować?

Zazwyczaj po jednej stronie mocujesz diodę świecącą, po drugiej czujnik światła (fotodiodę, fototranzystor, fotorezystor, etc.) i liczysz ile razy promień światła został przerwany. Możesz też mieć dwa czujniki i wtedy wiesz też w którą stronę się obraca.Istnieją na rynku części, które już mają obie polowy takiego czujnika w jednej obudowie, generalnie poszukaj pod hasłem "enkoder optyczny".

5 godzin temu, Stark napisał:

Do tego typu rozwiązania byłbym najbardziej skłonny. Czy mógłbyś polecić jakiś konkretny czip? Ewentualnie czy znasz jeszcze jakieś źródła, skąd mógłbym się nauczyć jak go obsłużyć?

BNO055 jest dość drogi, ale robi wszystko za ciebie. Adafruit ma instrukcję: https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor/overview

Generalnie hasło do szukania to "dead reckoning".

5 godzin temu, Stark napisał:

Kamery też wydają mi się rozsądne, jednak na chwilę obecną to dla mnie czarna magia. Aczkolwiek jesteś w stanie polecić mi jakieś konkretny model/czip z kamerą + ewentualne źródła skąd mógłbym nauczyć się jak to obsłużyć?

Myślę, że na początek Raspberry Pi z PiCam-em albo nawet dowolnym webcamem podłączonym po USB będzie dobre. Niestety przetwarzanie obrazu to już coś, z czym Arduino sobie nie poradzi. Możesz też popatrzeć na rozwiązania typu OpenMV — drogie, ale dużo mają gotowego.

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

Zapomniałem napisać o najłatwiejszym rozwiązaniu z kamerą poza pojazdem obserwującą go, dzięki za przypomnienie @wn2001

Zapomniałem napisać o najłatwiejszym rozwiązaniu z kamerą poza pojazdem obserwującą go, dzięki za przypomnienie @wn2001

OpenMV to właśnie też coś w rodzaju PixyCam, tylko troszkę bardziej zaawansowane (obsługują April Tags, które tu by były idealne) i programowane w Pythonie. Tylko marketing mają dużo gorszy od PixyCam-a i nie celują wyłącznie w Arduino. Niestety to są już drogie zabawki, głównie dlatego, że dość specjalizowane i przez to nie sprzedają się w tysiącach, jak raspberry pi z kamerą.

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

@deshipu, @wn2001 - dziękuję bardzo za odpowiedzi

@wn2001:

Dnia 27.08.2020 o 00:03, wn2001 napisał:

Czy możesz napisać, co to za pomieszczenie, czy koniecznie musisz je wykorzystać i na jakie modyfikacje możesz sobie pozwolić (naklejenie znaczników, montaż "latarni") i z jaką dokładnością musisz śledzić trasę?

Dnia 27.08.2020 o 00:03, wn2001 napisał:

stąd właśnie pytanie jaka to musi być dokładność, na jakie modyfikacje trasy/pomieszczenia możesz sobie pozwolić i czy całość systemu musi być w robocie czy może mieć jakiś "system naprowadzania"?

Generalnie będzie to pusty budynek z betonowymi ścianami i sufitem po byłej przechowalni. Mogę sobie pozwolić na każde modyfikacje aczkolwiek chciałbym, jak wcześniej pisałem, aby pojazd był uniwersalny tj. gdziekolwiek bym go umieścił - wykona swoje zadanie polegające na przejechaniu z punktu A do B. Jeśli chodzi o dokładność to myślę, że przy próbach wewnątrz to interesowałoby mnie 20-30 cm, natomiast gdybym miał robić to na zewnątrz - 50-100 cm.  Całość systemu niekoniecznie musi znajdować się w robocie, pod warunkiem, że będzie w zasięgu robota.

Dodatkowe pytanie - jaki konkretnie moduł polecilibyście do komunikacji z komputerem czy smartfonem. Podejrzewam, że będzie to technologia Bluetooth, tylko co konkretnie? Potrzebowałbym to, aby mieć wgląd do parametrów pracy robota i poszczególnych modułów np. na komputerze, czy stworzonej na tę potrzebę aplikacji na smartfonie lub do wydawania zdalnych rozkazów.

Dziękuję jeszcze raz za pomoc.

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

Tym wymogiem konieczności działania poza dedykowanym pokojem dość mocno komplikujesz sobie zadanie, ale OK 🙂 Pozostaje więc albo enkodery + IMU (jak w większosci Micromouse) lub znaczniki (fiduciale). Do rozpatrzenia pozostaje, która z tych metod będzie wygodniejsza, aha i jeszcze jedno pytanie - to będzie jakaś trasa, którą znasz z góry i możesz narysować linię czy też Ty np. będziesz sterował robotem jak samochodem RC i on musi wiedzieć, gdzie jest?

Sam pomysł dodania jakiegoś pomostu komunikacyjnego jest bardzo dobry - polecam HC-06, dość stary układ https://botland.com.pl/pl/moduly-bluetooth/6818-modul-bluetooth-hc-06-zs-040.html lub nowszy HM-10 https://botland.com.pl/pl/moduly-bluetooth/8591-modul-bluetooth-40-ble-hm-10-33v5v.html - zwróć uwagę na zasięg, 10 metrów i przyjmij bezpieczny zapas, może 8m? Trochę mało jak na pomieszczenie 10x20m, chyba, że stolik miałbyś dokładnie w centrum. Są inne metody komunikacji radiowej, ale BT jest właśnie bardzo wygodne, bo traktujesz je po sparowaniu jak zwykły port UART. Nie wiem, jak budżet, a może malina? Zero z WiFi kosztuje kilkadziesiąt PLN, a WiFi właśnie powinno zdać egzamin, jeśli np. będziesz miał ze sobą router i w jednej sieci laptopa + RPi, to powinno dać radę w takim pomieszczeniu. Ewentualnie szukanie jakiegoś BT o większym zasięgu lub modułów radiowych do Arduino, ale już w innej technologii. Zaletą, jaką widzę dla maliny jest bardzo proste połączenie - otwierasz sobie Putty na laptopie i przez SSH możesz wydać komendy i oglądać logi.

Zastrzegam, ze to luźne rozważania, nigdy nie robiłem testów zasięgu dla BT i WiFi 🙂

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

Dziękuję za odpowiedzi.

@wn2001:

Z racji na niewielkie doświadczenie nie za dużo zrozumiałem, ale generalnie chcę aby wszystko na chwilę obecną było tylko na Arduino. Wraz z biegiem czasu chcę ogarnąć również Raspberry, ale na chwilę obecną projekt ma być bez niej.

Dnia 1.09.2020 o 00:19, wn2001 napisał:

to będzie jakaś trasa, którą znasz z góry i możesz narysować linię czy też Ty np. będziesz sterował robotem jak samochodem RC i on musi wiedzieć, gdzie jest?

Trasa może i będzie ta sama, ale chodzi o to, aby tutaj symulować warunki drogowe - w sali tej porozstawiane będą powiedzmy kartony, symulujące budynki oraz inne tego typu przeszkody. Chcę również, aby pojazd reagował na przeszkodę dynamiczną - powiedzmy, jedzie sobie do celu a nagle zajeżdża mu drogę inny pojazd (wymuszenie inną zabawką sterowaną). Cała trasa będzie typu off-road - pojazd pojedzie zgodnie z programem, nie będzie żadnych wyznaczonych dróg, znaków itp. Cel to dojechać na miejsce bezkolizyjnie.

Dnia 1.09.2020 o 00:19, wn2001 napisał:

zwróć uwagę na zasięg, 10 metrów i przyjmij bezpieczny zapas, może 8m

Zasięg nie musi być duży, 8m jest wystarczające. Moduł do komunikacji na chwilę obecną potrzebuję do kontrolowania parametrów pojazdu w czasie testów beta - aby szybciej znaleźć źródło niesprawności czy niedopracowania.

 

@deshipu:

Dnia 1.09.2020 o 13:56, deshipu napisał:

Jeśli samo Arduino, to zależy co chcesz mieć po drugiej stronie — smartfon, laptop, radio modelarskie, malinę czy drugie Arduino.

Po drugiej stronie ma być smartfon, ewentualnie laptop.

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

6 godzin temu, Stark napisał:

na chwilę obecną było tylko na Arduino

OK, jasne, jak najbardziej jest to do zrealizowania 🙂

6 godzin temu, Stark napisał:

Cała trasa będzie typu off-road - pojazd pojedzie zgodnie z programem, nie będzie żadnych wyznaczonych dróg, znaków itp. Cel to dojechać na miejsce bezkolizyjnie.

OK, czyli tutaj wybierasz trudniejszą opcję, robot nie będzie mógł np. podążać za linią czy znacznikami. W takim razie chyba sensowne wydają się enkodery + IMU. Do tego czujniki odległości tak, aby można było korygować pozycję względem katonów  - budynków? Jeśli chcesz, poczytaj o konkurencji micromouse i rozwiązywaniu labiryntu - tam również robot jest (zazwyczaj) zdany sam na siebie i też musi jechać bezkolizyjnie

6 godzin temu, Stark napisał:

Zasięg nie musi być duży, 8m jest wystarczające. Moduł do komunikacji na chwilę obecną potrzebuję do kontrolowania parametrów pojazdu w czasie testów beta - aby szybciej znaleźć źródło niesprawności czy niedopracowania.

 

6 godzin temu, Stark napisał:

Po drugiej stronie ma być smartfon, ewentualnie laptop.

W takim razie moduł BT powinien się sprawdzić 🙂 Inną kwestią jest sama aplikacja, która pozwoliłaby odbierać logi/sterować robotem, ale dzięki BT odpada przynajmniej kwestia sprzętowa - po stronie Arduino traktujemy taki moduł jak zwykły port Serial i wypisujemy, co sobie życzymy 😉

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

@wn2001: dziękuję bardzo za odpowiedź. Miałem małą przerwę ze względu na inne obowiązki, ale wracam do tematu, więc będą nasuwać się kolejne pytania.

Dnia 5.09.2020 o 00:23, wn2001 napisał:

W takim razie chyba sensowne wydają się enkodery + IMU.

Czy enkodery są niezbędne? Jeśli możesz na chłopski rozum mi opisać jakie byłoby ich zadanie to byłbym wdzięczny. Kilka postów wyżej w odpowiedzi na post @deshipu napisałem, że enkodery raczej odpadają ze względu na to, że koła roboty będą działały z poślizgiem np. podczas zawracania czy skręcania. Może jednak chodzi tu o coś innego i czegoś nie rozumiem.

Dnia 5.09.2020 o 00:23, wn2001 napisał:

Do tego czujniki odległości tak, aby można było korygować pozycję względem katonów  - budynków?

Tak, do tego mam zamiar użyć czujników ultradźwiękowych oraz jak piszemy wyżej - układ IMU. Czy jednak jeszcze jakiś element (oprócz modułu Bluetooth) będzie konieczny do zrealizowania mojego projektu?

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

To nie jest tak, że możemy ci podać gotowy przepis i wszystko będzie działać. Tak jak pisałem na samym początku, orientowanie się w przestrzeni jest bardzo trudnym problemem i raczej nie ma jednego niezawodnego rozwiązania. Pozostaje ci eksperymentować aż osiągniesz coś, co jest wystarczająco dobre dla twojego konkretnego zastosowania.

  • 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.