Skocz do zawartości

Pomocna odpowiedź

Witam wszystkich bardzo serdecznie!

Choć od dawna śledzę tą stronę to dopiero teraz znalazłem chwilę czasu i odwagi do napisania pierwszego posta.

Pragnę zaprezentować kolegom robota o nazwie AWM-01 jest on wynikiem mojej pracy magisterskiej pt. "Programowanie robota mobilnego". Broniłem się prawie dwa lata temu:) Studiowałem informatykę i do piątego roku nie wiedziałem dokładnie co to jest rezystor i dlatego pisanie tej pracy oraz tworzenie robota było fantastyczna przygodą.

Ogólny zarys:

Bardzo chciałem zbudować robota uniwersalnego za pomocą którego mógłby testować różne algorytmy. Nie wiedziałem dokładnie co ostatecznie będzie mi potrzebne dlatego taki robot wydawał się optymalnym rozwiązaniem. Ponadto chciałem aby robot miał możliwie prostą ale i zwartą konstrukcję. Po przekopaniu całego forum doszedłem do następujących wniosków:

1. Modułowa konstrukcja

2. Możliwość rozbudowy o dodatkowe shieldy

3. Łatwa i tania wymiana uszkodzonego elementu

4. Duży wachlarz możliwości

5. Komunikacja z komputerem za pomocą bluetootha

6. Pilot na podczerwień

7. Pomiar poziomu akumulatora

Specyfikacja techniczna

Robot ma kształt koła o średnicy 91 mm. Sercem robota jest arduino NANO. Podwozie zostało wykonane z płyty PCB – 1,5 mm grubości, która pełni jednocześnie rolę płyty głównej. Płytka została wytrawiona w domowych warunkach metodą termotransferową. Koła mają średnicą 32 mm i są napędzane silnikami firmy Pololu z przekładnią 1 : 100. Silniki są przykręcone do płyty głównej za pomocą dwóch aluminiowych mocowań, pomiędzy silnikami, a płytą główną robota są umieszczone podkładki o grubości 1,5 mm wykonane z płyty PCB - podwyższają one całego robota – co umożliwia zamontowanie na jego spodzie akumulatora. Z przodu zostało zamontowane mikro serwo modelarskie. Na środku jest złącze umożliwiające wpięcie arduino, natomiast z tyłu robota znajduje się mostek H – w tym przypadku jest to układ L293, moduł Bluetooth, oraz odbiornik podczerwieni. Od spodu jest zamontowana płytka na akumulator- jest ona przykręcona za pomocą śrubek M3, a rolę dystansów pełnią tulejki. Do każdego silnika jest zamontowany enkoder odbiciowy. Uzyskałem w ten sposób rozdzielczość ok. 10 impulsów na milimetr przy jeździe prosto oraz ok. 6,5 impulsów na jeden stopień podczas obrotu względem własnej osi – jak się potem okazało parametry te są wystarczające. Wykorzystany w tym robocie akumulator to dwu celowy akumulator li-poli o pojemności 250

mah firmy Dualsky – Po pełnym naładowaniu wystarcza on na ok. 15 minut ciągłej pracy robota.

Użyty w robocie czujnik odległości to HC-SR04, ale na płycie głównej jest też złącze dla analogowego czujnika firmy sharp. Do komunikacji z komputerem wykorzystałem układ btm222. Robotem można sterować za pomocą pilota na podczerwień.

W ramach pracy magisterskiej udało mi się zrealizować:

1. Budowa robota i pilota do sterowania.

2. Oprogramowanie pilota – powstały dwie wersje programu (Assembler i C++ Atmel Studio).

3. Oprogramowanie robota – sterowanie pilotem (Arduino IDE C++).

4. Program do sterowania robotem z komputera – ( Visual Studio .NET C#) Wizualizacja przebytej drogi przez robota oraz odczytów z czujnika odległości. Za pomocą programu można wyznaczyć ścieżkę jaką ma podążać robot.

5. Implementacja algorytmu bug-2 który w sprzyjających warunkach umożliwia robotowi dotarcie do wyznaczonego punku przy jednoczesnym omijaniu przeszkód a następnie powrót do punktu startowego. (Arduino IDE C++).

Z przodu pod spodem robot ma dodatkowe złącze na płytkę z czujnikami odbiciowymi - niestety z braku czasu nigdy nie powstała.

Poniżej zamieszczam kilka zdjęć samego robota.

Pilot ma trzy przyciski ( cztery kombinacje), dwie diody IR, diodę informującą o zasilaniu oraz diodę wskazującą pracę programu. uC Attiny13.

Przykładowy "tor przeszkód" dla robota.

Przykładowa mapa zapisana przez robota. Fioletowa linia - droga przebyta przez robota. Pomarańczowe kropki - odkryte przeszkody.

DSC_0924.thumb.JPG.119b049686309ac9874ffcb4e54e1a91.JPG

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Konstrukcja bardzo ładna. Prosta, ale każdy szczegół starannie wykonany. Porównywałeś działanie algorytmu bug2 dla różnych ułożeń przeszkód? Masz może z tego jakieś filmiki?

Udostępnij ten post


Link to post
Share on other sites

Tak, próbowałem z różnym ustawieniem przeszkód. Niestety jednak nie bardzo mi to wychodziło. Czujnik ultradźwiękowy kiepsko sobie radzi z takimi przeszkodami, a i program nie był może wystarczająco dopracowany. Na potrzeby prezentacji działania programu zdecydowałem się na proste przeszkody (zaplanowane tak aby czujnik zawsze dobrze je widział) i proste polecenia dla robota ( jazda prosto oraz obrót wokół własnej osi).

Na filmie widać jak robot objeżdża dwie przeszkody które są w linii prostej pomiędzy punktem startowym i końcowym (punkty są zaznaczone na stole za pomocą taśmy). Do robota współrzędne punktu końcowego są przesłane z komputera a punkt startowy to zawsze (0,0).

Ponieważ miałem problemy czujnikami postanowiłem na sztywno napisać kilka metod np. omijanie narożnika przeszkody, jazda prosto wzdłuż przeszkody do wykrycia narożnika, obrót w stronę zadanego punktu. Potem program sterujący wywołuje w zależności od odczytów z czujników określoną metodę/akcję. Wynik może nie jest imponujący ale satysfakcja jest ogromna! Z wielką chęcią rozwiną bym tego robota ale boje się że go zniszczę więc zbieram pieniądze na nowego podobnego a ten pozostanie działającą pamiątką po studiach.

__________

Komentarz dodany przez: Treker

Poprawiłem osadzenie filmu 🙂

Udostępnij ten post


Link to post
Share on other sites

A mógłbyś jeszcze pokazać screen z programu z wygenerowaną trasą jaką przejechał z odometrii? Muszę przyznać, że robocik mi się bardzo podoba i na nim będę się w przyszłości wzorował.

Udostępnij ten post


Link to post
Share on other sites

Program do komunikacji z robotem. Niestety nie mogę znaleźć screena z mapą. Program jest ustawiony tak że po rozłączeniu z robotem automatycznie zapisuje mapę do bmp(screen poniżej).

Mapa

Przeszkoda na mapie. To screen z pierwszych prób.

Robot od spodu. Enkodery, kulka podporowa, mocowanie silników, port do modułów rozszerzających.

Półka na akumulator.

Udostępnij ten post


Link to post
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...