Skocz do zawarto艣ci
Kubeck

Drewniak - robot mobilny pokonuj膮cy labirynt

Pomocna odpowied藕

Napisano (edytowany)

Witam serdecznie 馃

Chcia艂bym przedstawi膰 Pa艅stwu robota mobilnego, o wdzi臋cznej nazwie "Drewniak". Praca ta zosta艂a wykonana na potrzeby projektu "Roboty Mobilne" na Politechnice Opolskiej. Poni偶ej kr贸tka prezentacja robota na filmie, w dalszej cz臋艣ci szczeg贸艂owy opis.

1. Cel projektu.

Celem projektu by艂o stworzenie robota mobilnego zdolnego do pokonania labiryntu. Postawione wymagania przed realizacj膮 projektu to:

  • ca艂kowita autonomiczno艣膰 robota,
  • brak mo偶liwo艣ci wp艂ywu na trajektori臋 podczas jazdy robota,
  • pokonanie labiryntu w obie strony w czasie poni偶ej dw贸ch minut.

Zakres prac koniecznych do wykonania w celu realizacji projektu obejmuje:

  • zaprojektowanie konstrukcji mechanicznej oraz elektronicznej,
  • budowa robota,
  • stworzenie oprogramowania robota,
  • wykonanie test贸w potwierdzaj膮cych poprawno艣膰 dzia艂ania konstrukcji.

Na poni偶szym rysunku przedstawiono zwymiarowany schemat labiryntu, kt贸ry musi zosta膰 pokonany przez projektowanego robota.

obraz.thumb.png.685bdda3869d0be56c0a5d4571a96a0a.png

2. Budowa uk艂adu mechanicznego, nap臋dy

Do stworzenia platformy jezdnej robota zdecydowano si臋 na u偶ycie materia艂贸w drewnianych. Podwozie wykonane zosta艂o z p艂yty pil艣niowej oraz przymocowanych do nich drewnianych listew. Rzeczywiste wymiary platformy jezdnej robota to: 18 cm d艂ugo艣ci, 12 cm szeroko艣ci, oraz 5,5 cm wysoko艣ci, mierz膮c od pod艂o偶a do platformy podwozia.

Robot nap臋dzamy jest dwoma silnikami DC o nast臋puj膮cych parametrach:

  • napi臋cie zasilania od 5 V do 7 V,
  • pob贸r pr膮du w stanie 鈥瀊ez obci膮偶enia鈥 oko艂o 180 mA,
  • pr臋dko艣膰 obrotowa za przek艂adni膮: ok. 80 obr/min,
  • moment obrotowy za przek艂adni膮: ok. 0,5 kg*cm (0,049 Nm).

Dodatkowo, kompletny zesp贸艂 nap臋dowy wyposa偶ony jest w przek艂adni臋 o prze艂o偶eniu 48:1, a tak偶e ko艂a wykonane z materia艂贸w sztucznych o 艣rednicy 65 mm oraz szeroko艣ci 26 mm. Ostatnim elementem zestawu nap臋dowego robota jest prototypowe ko艂o samonastawne, stworzone z zestawu klock贸w 鈥濴ego鈥, zapewniaj膮ce trzeci punkt podparcia robota. Na poni偶szych rysunkach ukazano podwozie robota wraz z przymocowanymi nap臋dami.

obraz.thumb.png.f5e08753ae0c8495cb1ede6344be94a9.pngobraz.thumb.png.e1f7cc7c3023179837515c38eed69a9b.pngobraz.thumb.png.8c26b74564ffe49bc694148ae79fd955.png

3. Budowa uk艂adu elektronicznego

3.1. Uk艂ad zasilania

Na uk艂ad zasilania konstrukcji robota sk艂adaj膮 si臋 cztery ogniwa litowo-jonowe, pozyskane ze starej baterii laptopa. Pojemno艣膰 jednego ogniwa wynosi 2200 mAh. Ogniwa po艂膮czono r贸wnolegle. Uzyskano w ten spos贸b 藕r贸d艂o zasilania o napi臋ciu r贸wnym od 3 do 4,2 V, w zale偶no艣ci od stanu na艂adowania ogniw, oraz pojemno艣ci ponad 8000 mAh. W celu zabezpieczenia ogniw przed nadmiernym roz艂adowaniem oraz mo偶liwo艣ci ich 艂adowania, zastosowano uk艂ad 艂adowarki akumulator贸w jedno-celowych z zabezpieczeniem o oznaczeniu TP4056. Napi臋cie 艂adowania ogniw wynosi 4,2 V, maksymalny pr膮d 艂adowania to 1000 mA. Zabezpieczenie przed roz艂adowaniem ogniw poni偶ej napi臋cia r贸wnego 2,5 V, oraz przed poborem pr膮du ponad 3 A. Zastosowane rozwi膮zanie pozwala na ci膮g艂e pobieranie pr膮du r贸wnego 3 A przez niespe艂na 3 godziny, bez uwzgl臋dniania strat.

Aby podnie艣膰 napi臋cie zasilania do poziomu napi臋cia r贸wnego 7 V (maksymalne napi臋cie zasilania zastosowanych silnik贸w), u偶yto regulowanej przetwornicy impulsowej Step-Up o oznaczeniu XL6009E1. Jej napi臋cie wej艣ciowe wynosi od 3 do 30 V, natomiast mo偶liwe do regulacji napi臋cie wyj艣ciowe od 5 do 35 V. Maksymalny pr膮d wyj艣ciowy r贸wna si臋 3 A, a sprawno艣膰 uk艂adu zawiera si臋 na poziomie 80-94%. Napi臋cie wyj艣ciowe z przetwornicy zosta艂o doprowadzone do sterownika silnik贸w oraz uk艂adu z mikroprocesorem.

obraz.thumb.png.f5d1b3b3157ceffd4660bde7485c2387.png

3.2. Sterownik silnik贸w

W celu precyzyjnej kontroli pr臋dko艣ci oraz kierunku obrotu silnik贸w nap臋dowych, zastosowano dwukana艂owy sterownik silnik贸w pr膮du sta艂ego o oznaczeniu L298N. Pozwala on na pob贸r pr膮du maksymalnego przez silniki do 2 A na kana艂, przy maksymalnym napi臋ciu zasilania r贸wnym 12 V. Sterownik posiada wbudowany regulator napi臋cia 5 V, do zasilania cz臋艣ci logicznej.

obraz.thumb.png.485d4d996b46e0124073e1980d763934.png

3.3. Czujniki odleg艂o艣ci

Aby mo偶liwe by艂o okre艣lenie po艂o偶enia robota mobilnego, zdecydowano si臋 na wykorzystanie dw贸ch analogowych czujnik贸w odleg艂o艣ci firmy Sharp. Pierwszy z nich, o oznaczeniu GP2Y0A41SK0F i zakresie pracy od 4 do 30 cm, zosta艂 umieszczony na prawym boku platformy jezdnej, pozwalaj膮c tym samym na okre艣lenie jej odleg艂o艣ci od prawej 艣ciany. Drugi czujnik, o oznaczeniu GP2Y0A21YK0F i zakresie pracy od 10 do 80 cm, zosta艂 umieszczony na przodzie platformy jezdnej. Jego zadaniem jest wykrywanie przeszkody w postaci 艣ciany przez robotem
w momencie, gdy tunel zakr臋ca w lewo pod k膮tem wi臋kszym b膮d藕 r贸wnym 90 stopni. Czujniki zasilane s膮 napi臋ciem z zakresu od 4,5 do 5,5 V, ich 艣redni pob贸r pr膮du to 30 mA. Wyj艣ciem jest sygna艂 analogowy, kt贸rego warto艣膰 zale偶na jest od odleg艂o艣ci pomi臋dzy wykrytym obiektem a sensorem. Im obiekt znajduje si臋 bli偶ej, tym napi臋cie na wyj艣ciu jest wy偶sze.

obraz.thumb.png.a56b42944c7746ad2778c610025d55c6.png

3.4. Mikrokontroler steruj膮cy

Jako jednostk臋 steruj膮c膮 uk艂adem wybrano mikrokontroler AVR Atmega328 w obudowie do monta偶u przewlekanego DIP. Jest to o艣miobitowy mikrokontroler, posiadaj膮cy 23 programowalne uk艂ady wej艣cia-wyj艣cia. Oferuje on 32 KB programowalnej pami臋ci Flash, 1 KB pami臋ci EEPROM, a tak偶e 2 KB pami臋ci SRAM, natomiast maksymalna cz臋stotliwo艣膰 taktowania wynosi 20 MHz przy u偶yciu zewn臋trznego rezonatora kwarcowego lub 8 MHz przy u偶yciu wbudowanego.

Na potrzeby projektu stworzono p艂ytk臋 PCB metoda termotransferu, zawieraj膮c膮 opisywany mikrokontroler, wraz z niezb臋dnymi do jego poprawnej pracy elementami, tj. stabilizator napi臋cia 5 V,
kondensatory i rezystory filtruj膮ce zasilanie, rezonator kwarcowy o cz臋stotliwo艣ci 16 MHz, dwie kontrolne diody LED, z艂膮cza na modu艂 Bluetooth, z艂膮cza na czujniki odleg艂o艣ci, z艂膮cza do wyprowadze艅 sterownika silnika.

obraz.thumb.png.ee14d20e67afd71750091bc3ad09c45d.png

4. Oprogramowanie mikrokontrolera

Program steruj膮cy mikrokontrolerem napisany zosta艂 w j臋zyku C++ z u偶yciem 艣rodowiska Arduino. Nast臋pnie, po jego skompilowaniu, wgrano wsad do pami臋ci mikroprocesora. U偶ycie 艣rodowiska Arduino pozwoli艂o na 艂atwiejsze zaprojektowanie oprogramowania z racji dost臋pno艣ci wielu bibliotek, kt贸re w 艂atwy spos贸b mo偶na zaimportowa膰 do projektu. Dzia艂anie programu mo偶na zobrazowa膰 za pomoc膮 poni偶szego schematu blokowego.

obraz.thumb.png.fb28299ef1834dd986c52b50f21b48d2.png

W kodzie programu, na samym pocz膮tku zadeklarowano odpowiednie pliki nag艂贸wkowe, zdefiniowano sta艂e oraz zmienne globalne, kt贸re wykorzystywane s膮 podczas dzia艂ania oprogramowania. Zadeklarowano r贸wnie偶 obiekt FastPID, odpowiedzialny za u偶ycie biblioteki regulatora PID. W funkcji setup() znalaz艂y si臋 inicjalizacje kolejnych modu艂贸w mikrokontrolera, tj. modu艂u ADC, mierz膮cego analogowe napi臋cie, oraz modu艂u PWM, pozwalaj膮cego wygenerowa膰 sygna艂 o zmiennym wype艂nieniu. Ustalono r贸wnie偶 stany na pinach wyj艣ciowych oraz zainicjalizowano modu艂 obs艂uguj膮cy komunikacj臋 szeregow膮 UART, w celu przesy艂ania podstawowych informacji o pracy mikrokontrolera. W funkcji loop(), czyli w g艂贸wnej p臋tli programu, na samym pocz膮tku algorytmu sprawdzany jest czas, w celu odmierzenia 25 milisekund, za pomoc膮 wbudowanej funkcji millis(). Nast臋pnie, po jego up艂ywie, dokonuje si臋 odczyt warto艣ci analogowej napi臋cia z czujnik贸w Sharp. Wyznaczana jest odleg艂o艣膰 w milimetrach dla czujnika umiejscowionego z prawej strony robota, za pomoc膮 w艂asnej funkcji. Kolejno obliczany jest uchyb, a nast臋pnie dane przekazywane s膮 do funkcji regulatora PID. W kolejnej cz臋艣ci funkcji loop() sprawdzane jest, czy przed robotem nie ma przeszkody w postaci 艣ciany. Odleg艂o艣膰 z przodu robota nie zosta艂a przeliczona na jednostki miary, a jedynie ustalono pewn膮 sta艂膮 鈥瀏ranic臋鈥, po kt贸rej przekroczeniu platforma jezdna skr臋ca maksymalnie w lewo. Je艣li 鈥瀏ranica鈥 nie zosta艂a przekroczona, wykonuje si臋 regulacja za pomoc膮 PID. Dodatkowo zadeklarowano przesy艂anie podstawowych informacji, m.in. warto艣ci z obu modu艂贸w ADC, wyznaczonej odleg艂o艣ci, uchybu, za pomoc膮 interfejsu UART, w celu kontrolowania dzia艂ania programu mikrokontrolera. Wlutowane w p艂ytk臋 diody r贸wnie偶 sygnalizuj膮 w odpowiedni spos贸b o poprawnym dzia艂aniu programu.

Program mikrokontrolera nie mo偶e si臋 zako艅czy膰. Dzia艂a nieprzerwanie, a偶 do zaniku zasilania. Dzi臋ki takiemu rozwi膮zaniu, robot jest w pe艂ni autonomiczny.

5. Wnioski

Celem projektu by艂o stworzenie robota mobilnego zdolnego do pokonania labiryntu bez ingerencji u偶ytkownika w tor jazdy, podczas jego pokonywania. Cel ten zosta艂 osi膮gni臋ty, jednak podczas pracy natkni臋to si臋 na kilka problem贸w. Przede wszystkim u偶yte silniki nap臋dowe okaza艂y si臋 by膰 艣redniej jako艣ci. Po ustawieniu identycznego wype艂nienia dla sygna艂u PWM dla obu silnik贸w, ich pr臋dko艣ci obrotowe znacznie si臋 r贸偶ni艂y. Jednak zastosowanie regulatora PID pozwoli艂o na odpowiednie kontrolowanie toru jazdy platformy robota mobilnego.

Parametry regulatora PID zosta艂y dobrane podczas przeprowadzanych test贸w. Wzmocnienie cz艂onu proporcjonalnego ustalono na warto艣膰 1.30, wzmocnienie cz艂onu r贸偶niczkuj膮cego na warto艣膰 2.15, natomiast wzmocnienie cz艂onu ca艂kuj膮cego na warto艣膰 0. W konstrukcji tego typu, gdzie zachodzi potrzeba szybkiego dzia艂ania regulatora, cz艂on ca艂kuj膮cy m贸g艂by wprowadzi膰 niechciane op贸藕nienie w uk艂adzie regulacji.

Robot pokonuje labirynt w czasie nieca艂ych 30 sekund, co jest bardzo dobrym wynikiem. Stworzenie w艂asnej konstrukcji, uk艂adu elektronicznego oraz oprogramowania wymaga艂o du偶ego nak艂adu pracy, jednak ko艅cowy efekt daje wiele satysfakcji.

Ostateczna forma robota mobilnego zosta艂a przedstawiona na poni偶szym rysunku.

obraz.thumb.png.2ef9f0dca36eb9411aef17f22e79d58c.png

Projekt i wykonanie: Jakub Kinder / Politechnika Opolska 2019.

Wszelkie prawa zastrze偶one! Kopiowanie, powielanie i wykorzystywanie zdj臋膰 bez pisemnej zgody autora zabronione!

Edytowano przez Kubeck
Poprawi艂em formatowanie.
  • Lubi臋! 1

Udost臋pnij ten post


Link to post
Share on other sites

@Kubeck, witam na forum 馃槈 Widz臋, 偶e to Twoje pierwsze kroki na Forbocie, oto najwa偶niejsze informacje na start:

  • Chcesz przywita膰 si臋 z innymi cz艂onkami naszej spo艂eczno艣ci? Skorzystaj z tematu powitania u偶ytkownik贸w.
  • Opis najciekawszych funkcji, kt贸re u艂atwiaj膮 korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzie膰?
  • Poszczeg贸lne posty mo偶esz ocenia膰 (pozytywnie i negatywnie) za pomoc膮 reakcji - ikona serca w prawym dolnym rogu ka偶dej wiadomo艣ci.
8 godzin temu, Kubeck napisa艂:

Chcia艂bym przedstawi膰 Pa艅stwu robota mobilnego, o wdzi臋cznej nazwie "Drewniak". Praca ta zosta艂a wykonana na potrzeby projektu "Roboty Mobilne" na Politechnice Opolskiej. Poni偶ej kr贸tka prezentacja robota na filmie, w dalszej cz臋艣ci szczeg贸艂owy opis.

W艂a艣nie zaakceptowa艂em Tw贸j opis, mo偶esz go teraz zg艂osi膰 do akcji rabatowej umieszczaj膮c link w temacie zbiorczym. Dzi臋kuj臋 za przedstawienie ciekawego projektu, zach臋cam do prezentowania kolejnych DIY oraz aktywno艣ci na naszym forum 馃檪

Udost臋pnij ten post


Link to post
Share on other sites
(edytowany)

Super ta platforma jedzie szkoda tylko, 偶e to nie jest labirynt, a jedynie droga z ostrymi zakr臋tami.

Mo偶e teraz pokusisz si臋 o takie rozwi膮zanie - zobacz.

Edytowano przez Belferek

Udost臋pnij ten post


Link to post
Share on other sites

No tak, mo偶e lepszym okre艣leniem by艂oby "tor". Dzi臋ki za ciekaw膮 propozycj臋, pomy艣l臋 nad tym tematem :)聽

Udost臋pnij ten post


Link to post
Share on other sites

Fajny projekt:-), ale prosz臋 zmie艅 tytu艂. Nie znam s艂owa "pokonywuj膮cy"...

pzdr聽

Udost臋pnij ten post


Link to post
Share on other sites

@Kubeck, gratuluj臋 projektu. Je艣li faktycznie b臋dziesz chcia艂 p贸j艣膰 dalej w kierunku rozwi膮zywania labirynt贸w (jak by艂o powiedziane wy偶ej) to koniecznie sprawd藕 ten artyku艂:聽Roboty MicroMouse 鈥 5 metod przeszukiwania labiryntu. Na pewno u艂atwi to start z budow膮 Micromouse 馃槈

Udost臋pnij ten post


Link to post
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臋 禄

×