Skocz do zawartości

Robot zapamiętujący trasę.


retip94

Pomocna odpowiedź

Witam wszystkich 🙂

Od jakiegoś czasu próbuję zabrać się za skonstruowanie robota, którego najpierw byśmy prowadzili jakimś pilotem/padem. On zapamiętałby trasę i się jej później trzymał.

Chcę żeby działał w różnych warunkach, więc raczej enkodery odpadają. Pomyślałem o połączeniu akcelerometru z żyroskopem. Wiem, że obliczanie drogi z przyspieszenia generuję błąd, ale póki co nie potrzebuje żeby poruszał się z jakimiś dużymi prędkościami, więc może błąd nie będzie aż tak problematyczny.

Ewentualnie jakieś połączenie tych 2 opcji, ale to później. Na razie chciałbym zacząć jakoś to tworzenie mapy przejazdu z akcelerometru i żyroskopu i zobaczyć jak to będzie się sprawowało.

Jednak kompletnie nie wiem czego się chwycić(od czego zacząć). Może mnie jakoś naprowadzicie?

Link do komentarza
Share on other sites

Moim zadaniem rzucasz się na głęboką wodę. Wszystko zależy od przeznaczenia robota - czy ma pracować na powietrzu czy tylko w domu, jaką dokładność chcesz osiągnąć, ale ja bym to zrobił tak, że jeśli środowiskiem pracy robota byłaby przestrzeń otwarta to GPS po złapaniu odpowiedniej ilości satelit byłby bardzo dobrym rozwiązaniem - proste odczytywanie ramek i zapisywanie trasy. Powrót po waypoint i masz osiągnięty cel. Dokładność pewnie nie będzie największa ale na większej przestrzeni jak znalazł. Jeśli interesowałaby mnie przestrzeń zamknięta, gdzie GPS by się nie sprawdził, dążyłbym do zastosowania enkoderów.

Zastosowanie akcelerometru i żyroskopu to nie najlepszy pomysł, szczególnie gdy robot ma być używany w terenie. Jeżdżąc po nierównościach dostaniesz zakłócenia, które będziesz musiał wyeliminować. Dodatkowo nałożą się drgania konstrukcji, które podobnie jak w kopterach, będą przeszkadzać.

Jeśli dalej chcesz iść w kierunku acc+gyro to musisz przede wszystkim napisać algorytm, który pobierając dane z acc i gyro da Ci kierunek i wartość przyspieszenia. Stosując wzory fizyczne z uwzględnieniem pomiarów czasu, otrzymasz drogę jaką pokonasz. Przyjmując start jako położenie (0,0), mając kąt oraz długość, możesz wyznaczyć współrzędne kolejnego punktu.

Dodatkowy ciekawy link, który może Ci się przydać:

http://www.instructables.com/id/Accelerometer-Gyro-Tutorial/?ALLSTEPS

Link do komentarza
Share on other sites

To może inaczej: skoro od jakiegoś czasu próbujesz się zabrać, to napisz co już wiesz. Przecież niemożliwe, że nic.

Zacznij od zbudowania w ogóle jeżdżącej platformy. Dwa kółka, kulka podporowa i do tego elektronika. Może to być przecież gotowe, zmotoryzowane podwozie z jakiegoś sklepu robotycznego. Na początek jakiś procesor i dwa mostki do sterowania silnikami. Żadnych enkoderów, czujników itp dodatków - takich schematów tu jest pełno. Jak już nauczysz się pisać proste programy typu "ok. 1 metr do przodu a potem w prawo 90° i znów prosto" dobuduj odbiornik zdalnego sterowania - może być podczerwony, bo pilota masz pewnie na szafce obok telewizora. Naucz się odbierać kody i je interpretować podpinając do tego co już masz. Będziesz miał zdalnie sterowaną platformę. Ja już opanujesz jednoczesne odbieranie komend oraz "analogowe" sterowanie mostkami (przyda się w zakrętach o dowolnym promieniu) i będziesz szalał po pokoju, zacznij myśleć o czujnikach. Na początek coś prostego typu natężenie światła lub odległość. Wykorzystaj te informacje do prób jazdy autonomicznej po pokoju. Gdy będziesz miał kod nierozbijający się o ściany będzie znaczyło, że umiesz zrobić pętlę sterowania nadążnego i robota, który spełnia jakiś cel. Czytaj o czujnikach bezwładnościowych. Kup i podłącz akcelerometr + żyroskop, to dziś jeden scalak. Będziesz musiał nauczyć się gadać z nimi po szynie I2C. Wtedy możesz stworzyć kod, który z jednej strony będzie jechał wg komend zdalnego sterowania, ale jednocześnie będzie wyznaczał własne położenie z sensorów. Po zrobieniu rundki i powrocie do puntu startu odczytasz wyliczone położenie np. z LCD i zdziwisz się różnicą. Zaczniesz uczyć się o skalowaniu, błędach, dryftach, mocowaniu czujników, wygaszaniu drgań mechanicznych, filtracji sygnałów, uśrednianiu itp. Dopiero gdy położenie wyliczane z jednostki inercyjnej będzie w miarę zgodne z tym rzeczywistym, będziesz gotowy do zapamiętywania trasy i jej powtarzania. Powodzenia, bo to długa ale chyba ciekawa droga.

Link do komentarza
Share on other sites

@camsonic

Dziękuje za odpowiedź, spróbuje zastosować się do twoich wskazówek z kątami.

Robot ma chodzić w zamkniętych przestrzeniach, więc GPS odpada. Co do tych trudniejszych warunków, to żadnych nierówności tam nie będzie, tylko czasami śliska nawierzchnia.

@marek1707

Robota sterowanego pilotem mam już za sobą. Bawiłem się już troszkę żyroskopem i akcelerometrem, ale dopiero teraz zacznę próbować wyznaczyć dzięki nim przemieszczenie.

Dzięki za odpowiedź 🙂

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 to trochę nie rozumiem Twoich dziecinnych pytań. Jeżeli rozumiesz czym jest akcelerometr i już go używałeś, to jaki masz problem z przeliczeniem jego wskazań na prędkość a potem na przemieszczenie? Przecież to fizyka z podstawówki. A jeśli to rozumiesz, to musisz mieć świadomość całej masy problemów jakie stwarza nawigacja inercyjna, bo podwójne całkowanie bezlitośnie nawarstwia każdy błąd. A błędy tego typu czujników nie biorą się raczej z dużych prędkości.

Rozumiesz, nie znając Cię staram się odpowiadać na poziomie zadawanych pytań - dlatego czasem warto się przedstawić.

Link do komentarza
Share on other sites

Po prostu wcześniej moja krótka zabawa z akcelerometrem polegała na samym odczytywaniu wartości, nie skupiałem się na orientacji wektora przyspieszenia.

Jeżeli rzeczywiście tak bardzo zwracacie uwagę na generowany błąd, to muszę jeszcze raz przemyśleć całą sprawę, czy w ogóle zagłębiać się w ten akcelerometr.

Kiedyś się natknąłem na robota, który pilnował trasy tylko za pomocą dalmierzy ultradźwiękowych i żyroskopu(dalmierze były nakierowane prostopadle do kierunku jazdy)Pomieszczenie było dość wąskie, co umożliwiało takie rozwiązanie. W moim wypadku prawdopodobnie też by się sprawdził. On również działał tak, że pierwszy przejazd robiono za pomocą pilota, a dalej już jeździł sam. Jednak znowu nie do końca rozumiem jak to ma zapisać, a później odtworzyć ten przejazd.

Link do komentarza
Share on other sites

Jednak znowu nie do końca rozumiem jak to ma zapisać, a później odtworzyć ten przejazd.

Rozwiązań jest kilka, ważne żebyś umiał je zarejestrować i odtworzyć - czy będą to punkty XY (tak jak ja Ci to opisałem), czy np. ilość obrotów kół, czy właśnie pomiary od przeszkód. Oczywiście nie zniechęcam Cię do Twojej koncepcji jednak zaznaczam, że może być trudna do realizacji 🙂

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.