Skocz do zawartości

Model autonomicznego pojazdu - porady


Stark

Pomocna odpowiedź

A przy okazji: enkoderów możesz użyć do precyzyjnej regulacji prędkości i pomiaru przejechanej drogi. IMU do utrzymania robota na kierunku jazdy i do zwrotów o określony kąt.

Do orientacji według "budynków" użyłbym raczej czujników laserowych (próbowałem czegoś takiego do ustawienia robota równolegle do ściany, nawet ładnie działało). Zarówno czujniki ultradźwiękowe jak i laserowe nie grzeszą szybkością, ale laser jest dużo bardziej precyzyjny.

 

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

@Stark, tak jak pisze Kolega @deshipu, projekt będzie dość trudny i złożony, może podzieliłbyś go sobie najpierw na mniejsze "moduły" - pomiar drogi, komunikacja, samo podwozie itd...

2 godziny temu, Stark napisał:

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.

IMU ma duże szumy i nie działa idealnie, ale dość dobrze liczy kąt obrotu. Podobnie enkodery, poślizg przy skręcaniu wprowadza błąd, ale na linii prostej radzą sobie nieźle. Dlatego łączy się te dwie metody, co pozwala zmniejszyć (ale nie usunąć) błąd 🙂 Potem "sprzęgnięcie" tego, już samo oprogramowanie aby dobrze orientować się w przestrzeni (tzn według wytycznych Kolegi) to będzie kawał roboty - nie mówiąc o innych aspektach projektu

2 godziny temu, Stark napisał:

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?

Widzę kilka bloków: korekcji i orientacji w przestrzeni (IMU, enkodery, pomiar odległości), BT jako kanał komunikacyjny, Arduino jako "mózg" i inne peryferia - zasilanie, sterowanie silników itd.. Tak jak napisał @deshipu, nie umiem powiedzieć, czy takie rozwiązanie będzie OK - pozostaje budować prototyp i testować 🙂

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

Witajcie,

@deshipu, @ethanak, @wn2001: dziękuję Wam bardzo za odpowiedzi.

Zastój w projekcie okazał się jednak dłuższy niż myślałem, ale powracam już z większym zdecydowaniem. Mianowicie zmieniłem założenia projektowe. Pojazd jednak będzie posiadał GPS a przejazd będzie odbywał się na wolnym powietrzu.

Potrzebuję więc dobrać jakiś moduł GPS do Arduino. Polecacie coś konkretnego w przyzwoitej cenie? Do wykrywania przeszkód chcę użyć czujników ultradźwiękowych HC-SR04. Moduł komunikacyjny to rzecz opcjonalna, ale co do doboru to już mi pomógł @wn2001 (układ HC-06 lub HM-10). Co do żyroskopu/kompasu w doborze pomógł mi @deshipu (układ Adafruit BNO055). 

Wydaje mi się, że posiadając te elementy wystarczy to będzie odpowiednio zaprogramować czy może potrzebuję coś jeszcze?

 

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

@Stark Polecam ten artykuł: http://www.jarzebski.pl/arduino/komponenty/moduly-gps-fgpmmop6-i-neo6-m.html - sam na temat GPS się nie wypowiem, bo nigdy nie korzystałem 🙂

Polecam też ten wątek - https://forum.arduino.cc/index.php?topic=445689.0 - zakładam dokładność 2,5m; czy taka Ci wystarczy? Zakładając, że wspomniane 2,5m uda się osiągnąć, to mając kwadrat 10x10m dokładność pozycjonowania w każdej z osi to 25% - dla kwadratu 100x100m to już 2,5%; ale to - jakby nie było - cały hektar. Chcę uświadomić Ci, że dokładność GPS-u ma wielokrotnie większy błąd pomiarowy od domniemanych rozmiarów Twojej konstrukcji 🙂 - bo jadąc samochodem, taka dokładność jest rewelacyjna; ale budujesz zapewne coś znacznie mniejszego...

Pozdrawiam 😉

  • Lubię! 1
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

@wn2001 dziękuję bardzo za pomoc i wskazanie artykułów

Dnia 12.11.2020 o 22:17, wn2001 napisał:

zakładam dokładność 2,5m; czy taka Ci wystarczy? Zakładając, że wspomniane 2,5m uda się osiągnąć, to mając kwadrat 10x10m dokładność pozycjonowania w każdej z osi to 25% - dla kwadratu 100x100m to już 2,5%; ale to - jakby nie było - cały hektar. Chcę uświadomić Ci, że dokładność GPS-u ma wielokrotnie większy błąd pomiarowy od domniemanych rozmiarów Twojej konstrukcji 🙂 - bo jadąc samochodem, taka dokładność jest rewelacyjna; ale budujesz zapewne coś znacznie mniejszego...

Jasne, mam tego świadomość, dlatego jeszcze będę musiał obmyślić sposób na to, aby model znajdując się już blisko celu wyznaczonego przez współrzędne w jakiś sposób upozycjonował się. Jest to jednak temat, którym chcę zająć się, kiedy pojazd będzie już jeździł. W najbliższych dniach zamówię brakujące moduły i postaram się opanować jak je zaprogramować.

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

Zrobiłem przegląd i wybrałem moduły. Z racji na brak doświadczenia przedstawiam Wam moje propozycje.

  1. GPS: Moduł GPS NEO-6M z jakiegoś powodu został wycofany ze sklepu botland, wybrałem więc bliźniaczy (przynajmniej z wyglądu) Moduł L76X Multi-GNSS GPS/BDS/QZSS - Waveshare 16332 - https://botland.com.pl/pl/moduly-gps/14643-modul-l76x-multi-gnss-gpsbdsqzss-waveshare-16332.html
  2. IMU: Adafruit to koszt rzędu 180 zł, więc wybrałem coś tańszego a też wyglądającego dobrze - DFrobot Gravity 10DOF AHRS - https://botland.com.pl/pl/czujniki-9dof-imu/13155-dfrobot-gravity-10dof-ahrs-3-osiowy-akcelerometr-zyroskop-i-magnetometr.html
  3.  Bluetooth: Moduł Bluetooth 4.0 BLE - HM-10 - https://botland.com.pl/pl/moduly-bluetooth/8591-modul-bluetooth-40-ble-hm-10-33v5v.html

Co sądzicie o tych modułach?

Kolejne moje pytania:

  • Moduły 1. i 3. komunikują się za pomocą kanałów RX, TX a 2. za pomocą I2C. Czy jest to możliwe do zrealizowania, aby to wszystko ze sobą spójnie działało?
  • Czy wymagane jest oddzielne zasilanie dla tych modułów niż to z Arduino? Z kursu nauczyłem się, że piny nie mają zbyt dużej obciążalności prądowej. Te wszystkie moduły w sumie pobór prądu miałyby 36 mA.

Na chwilę obecną mam podłączony sterownik silnika Mostek H L293D, dwa czujniki ultradźwiękowe HC-SR04 i zostały mi tylko wolne piny 0, 1, 12, 13 oraz A5-A0.

Link do komentarza
Share on other sites

Zależy czego użyjesz jako mózgu. Arduino UNO ma tylko jeden UART, a software-owy działa tak sobie, szczególnie jeśli w tym samym czasie robisz jeszcze inne rzeczy. Prawdopodobnie będziesz chciał użyć czegoś mocniejszego, tym bardziej, że obliczenia też są dość skomplikowane.

Nie będziesz zasilać tych modułów z nóżek GPIO, tylko z zasilających — nie przez mikrokontroler, tylko bezpośrednio z regulatora napięcia. Zależy od płytki, ale zazwyczaj do 200-300mA powinny dawać radę.

Co do IMU, to on jest drogi z konkretnego powodu — bo ma w sobie mikrokontroler, który robi większość obliczeń potrzebnych do integracji sygnałów za ciebie. Z drugiej strony, jak masz się uczyć, to może rzeczywiście lepiej to zrobić samemu.

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

39 minut temu, deshipu napisał:

Zależy czego użyjesz jako mózgu.

Do projektu używam Arduino UNO.

Czyli dobrze rozumiem, że jeden UART = jeden moduł?

 

41 minut temu, deshipu napisał:

Co do IMU, to on jest drogi z konkretnego powodu — bo ma w sobie mikrokontroler, który robi większość obliczeń potrzebnych do integracji sygnałów za ciebie.

Jak pisałem wyżej, chcę skorzystać z gotowego układu, z tym że firmy DFrobot a nie Adafruit.

Link do komentarza
Share on other sites

Hm, tylko że od wzięcia gołej płytki z czujnikami położenia/orientacji do zrobienia systemu AHRS jest bardzo długa droga. Tak długa, że spokojnie można stracić z oczu cel główny, jakim było zrobienie pojazdu czy czegoś tam. To przecież (nie piszę tego do Ciebie, deshipu - wiem, że wiesz) nie jest dodanie i pomnożenie trzech liczb a całkiem zaawansowane cyfrowe przetwarzanie sygnałów, estymacje optymalne i kupa czasu na zrozumienie sporej dawki nietrywialnej matematyki. To procentuje - w dłuższej perspektywie na pewno tak, ale na początek sugerowałbym jednak wzięcie gotowego IMU oddającego kwateriony czy układ AHR i skupienie się na integracji gotowych klocków. A skoro kolega ma problemy z odróżnianiem zasilania od pinów sygnałowych, to i tak ogrom pracy przed nim..

EDIT: Tak, zwykle jeden UART -> jeden moduł, ale już w przypadku I2C czy SPI tak nie jest. Być może warto poszukać modułu GPS na I2C i za wszelką cenę zosatwić sobie UART do debugowania kodu. Bez możliwości podglądania stanu programu nie masz co zaczynać.

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

1 godzinę temu, deshipu napisał:

A ja bym naprawdę poważnie zastanowił się nad tym UNO. Istnieje wiele płytek, które można używać z Arduino, które znacznie lepiej nadają się do takiego nietrywialnego zadania.

Jestem otwarty na propozycje. Nie mam w tym doświadczenia i chętnie przyjmę każdą poradę.

Link do komentarza
Share on other sites

Z tego co pamiętam, to proponowaliśmy tu już na przykład Raspberry Pi, ale jeśli koniecznie chcesz to robić w Arduino, to jakaś płytka z ESP32 powinna zadziałać znacznie lepiej. Nie tylko masz wifi i bluetooth, więc nie potrzebujesz dodatkowego modułu, to jeszcze masz 3 UARTy, znacznie więcej pamięci i znacznie większą prędkość. A cena może nawet być mniejsza niż z przedożonym UNO.

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

(edytowany)

Ten projekt ma dość duży priorytet, dlatego zależy mi aby zrobić to na podstawie tego co już się nauczyłem tj. Arduino. W przyszłości jak ogarnę Raspberry czy STM to zrobię to na innej platformie. 

W takim razie poczytam o ESP32 i poszukam jakiejś ciekawej płytki.

EDIT:

Znalazłem dwie takie płytki, tylko nie wiem czym one się różnią i który z nich będzie ok.

  1. https://botland.com.pl/pl/moduly-wifi/8893-esp32-wifi-bt-42-platforma-z-modulem-esp-wroom-32-zgodny-z-esp32-devkit.html
  2. https://botland.com.pl/pl/moduly-wifi/8306-esp32-devkitc-32d-wifi-bt-42-platforma-z-modulem-esp-wroom-32d.html
Edytowano przez Stark
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.