Spisu treści:
- Krok 1: Potrzebne części
- Krok 2: Konfiguracja plików i aparatu
- Krok 3: Wstępne testowanie robota Roomba
- Krok 4: Przykładowy kod MATLAB
Wideo: Robot Roomba ze wspomaganiem astronautów: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Ten projekt jest realizowany przy użyciu Raspberry Pi 3 na pokładzie iRobot Create Version 2. MATLAB służy do programowania robota, aby wykonywał określone instrukcje za pomocą czujników i kamery. Czujniki i kamery są wykorzystywane do wykonywania określonych zadań, które podążałyby za astronautą i zapewniały mu możliwość komunikowania się z jego bazą domową, jeśli coś pójdzie nie tak.
Krok 1: Potrzebne części
1. iRobot Utwórz wersję 2
iRobot Create jest najważniejszą częścią tego projektu, ponieważ jest programowalny i może być świetną reprezentacją rzeczywistego łazika, który śledzi astronautów i pomaga im w przyszłości
2. Raspberry Pi 3
Raspberry Pi było programowalne używane w tym projekcie. Kod jest przeznaczony dla Pi, a dołączona wersja Pi to 3 (model B). Inne programowalne płytki, takie jak arduino, są użyteczne, jednak arduino i większość innych płyt będzie wymagało innego kodowania niż opisano w innym kroku
3. Moduł kamery Raspberry Pi
Jedynym zewnętrznym połączeniem z Raspberry Pi potrzebnym do tego projektu jest moduł kamery. Moduł kamery jest integralną częścią tego projektu, ponieważ roomba będzie wykonywał zadania tylko na podstawie tego, co widzi w kamerze
4. MATLAB 2018a
Druga najnowsza wersja MATLAB, 2018a, została użyta do kodowania związanego z tą konfiguracją. Jest prawdopodobne, że wiele innych wersji MATLAB będzie z tym współpracować, ponieważ programowanie roomba istnieje od jakiegoś czasu
Krok 2: Konfiguracja plików i aparatu
1. Połączenia Raspberry Pi i kamery z Roomba
- Pi może łączyć się z iRobotem bezpośrednio przez micro USB. To wszystko, czego potrzebuje, aby być gotowym do użycia. Jednak zaleca się bezpieczne umieszczenie go na Roombie, tak jak pokazano na zdjęciach w całej prezentacji.
- Kamera ma bezpośrednie połączenie z Raspberry Pi i zdecydowanie zaleca się zakup lub wykonanie czegoś, aby trzymać kamerę bezpośrednio w górze. Kamera nie ma sensu, jeśli nie można jej przytrzymać, aby pokazać, co widzi robot roomba.
2. Pliki
- Po skonfigurowaniu i podłączeniu wszystkiego, upewnij się, że robot jest zresetowany i gotowy do pracy, przytrzymując jednocześnie przyciski „Spot” i „Dock” przez 10 sekund.
- Tu właśnie potrzebny jest MATLAB. Pliki dla Roomby muszą być najpierw zainstalowane, a wszystko, co jest potrzebne do ich uruchomienia, to kod podany pod tym linkiem:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Krok 3: Wstępne testowanie robota Roomba
Aby upewnić się, że robot Roomba działa, należy przeprowadzić wiele wstępnych kontroli.
1. Upewnij się, że masz połączenie z tą samą siecią Wi-Fi co robot Roomba. Bez tego nigdy nie połączysz się przez MATLAB.
2. Dowiedz się, do jakiego numeru jest przypisany Twój Roomba, aby móc połączyć się z wybraną przez Ciebie Roombą. Na przykład, jeśli numer twojego roomba to 30, możesz połączyć się z nim, wpisując roomba(30) w oknie poleceń w MATLAB.
3. Roomba może być sterowana za pomocą struktur w MATLAB. Na przykład, jeśli ustawisz swój kod dla roomba(30) na zmienną 'r', robot może zostać przesunięty do przodu za pomocą polecenia r.moveDistance(0.2, 0.1).
4. Istnieje wiele różnych poleceń, które można przekazać do Roomba i można je zobaczyć, wpisując „doc roomba” w oknie poleceń.
5. Czujniki odczytów światła, nierówności i klifu można odczytać za pomocą poleceń widocznych w „doc roomba”, ale sposobem na posiadanie stałego, uporządkowanego menu, aby zobaczyć dane z czujników, można zobaczyć za pomocą „r.testSensors „.
6. Po przetestowaniu tego wszystkiego oprogramowanie robota do zbierania obrazów można wykorzystać do odczytywania i oglądania zrobionych zdjęć. Podstawowy kod to img = r.getImage i imshow(img);.
7. Wartości RGB obrazu można znaleźć za pomocą kodów red_mean = mean(mean(img(:,:, 1)));
zielona_średnia = średnia(średnia(img(:,:, 2))); i blue_mean=średnia(średnia(img(:,:,3)));.
Krok 4: Przykładowy kod MATLAB
W tym momencie jesteś już gotowy, aby wykorzystać czujniki i oprogramowanie do robienia zdjęć, aby stworzyć własny obrót łazika marsjańskiego prototypu wspomaganego przez człowieka. Naszym przykładem jest podążanie za astronautą, śledząc biały kolor i zbliżając się do niego. Robot wyda sygnał dźwiękowy, jeśli jego czujniki odczytują wysokie wartości, aby astronauta mógł zresetować robota, jeśli utknie, lub podnieść go i zresetować, jeśli utknie na klifie. Jednak odczytuje te błędy tylko tak długo, jak widzi kolor biały. Bez możliwości zobaczenia koloru białego robot przejdzie w tryb błędu. Jest zaprogramowany do wysyłania dwóch różnych rodzajów wiadomości e-mail z powrotem do bazy domowej, w zależności od tego, co widzi. Jeśli zobaczy kolor skóry astronauty, to oczywiście nie jest dobre, więc zaalarmuje bazę domową, jeśli astronauta ma skórę z wadliwym kombinezonem. Druga wiadomość jest przygotowywana, jeśli astronauta po prostu zniknie z pola widzenia. Jeśli dla kamer nie widać bieli ani koloru skóry, robot obróci się i wyśle inny, ale inny e-mail. Obrazy, na których robot Roomba nie widzi astronauty, zostaną wysłane wraz z wiadomością w e-mailach. Poniżej znajduje się kod naszego projektu:
dla i=1:.1:3 img=r.getImage; image(img) red_mean = średnia(mean(img(:,:, 1))); zielona_średnia = średnia(średnia(img(:,:, 2))); niebieska_średnia = średnia(średnia(img(:,:, 3))); jeśli czerwona_średnia > 110 && czerwona_średnia 110 && niebieska_średnia 110 && zielona_średnia0 || bump.left>0 || bump.front>0 r.bip() r.bip() r.bip() r.stop elseif cliff.left<10 || klif.lewyPrzód<10 || cliff.rightFront<10 || klif.right700 || jasny.lewyPrzód>700 || light.leftCenter>700 || light.rightCenter>700 || light.rightFront>700 || light.right>700 r.beep() r.beep() r.beep() r.beep() r.beep() r.stop inaczej dla i=1:2 r.moveDistance(0.2, 0.1) r. setDriveVelocity(.3,.2) r.stop end end end end if green_mean <35 && blue_mean<35 %Pokazany kolor skóry (należy dostosować do koloru skóry astronauty) r.beep(); r.bip(); r.bip(); poczta = 'wypeł[email protected]'; %wysyła wiadomość e-mail pokazującą, że garnitur jest wyłączony psswd = 'tak'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_temat = 'temat'; m_text = 'test'; setpref('Internet', 'E_mail', poczta); setpref('Internet', 'Serwer_SMTP', host); setpref('Internet', 'SMTP_Nazwa_użytkownika', poczta); setpref('Internet', 'SMTP_Hasło', psswd); rekwizyty = java.lang. System.getProperties; props.setProperty('poczta.smtp.użytkownik', poczta); props.setProperty('poczta.smtp.host', host); props.setProperty('poczta.smtp.port', port); props.setProperty('mail.smtp.starttls.enable', 'prawda'); props.setProperty('mail.smtp.debug', 'prawda'); props.setProperty('mail.smtp.auth', 'prawda'); props.setProperty('mail.smtp.socketFactory.port', port); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.fallback', 'false'); sendmail(emailto, 'Pomoc!', 'Mundur astronauty jest wyłączony!', img); koniec, jeśli red_mean 135 || zielona_średnia 135 || blue_mean 135 for j = 1:2 %jeśli robot nie może znaleźć białego r.turnAngle(360) mail = '[email protected]'; psswd = 'tak'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_temat = 'temat'; m_text = 'test'; setpref('Internet', 'E_mail', poczta); setpref('Internet', 'Serwer_SMTP', host); setpref('Internet', 'SMTP_Nazwa_użytkownika', poczta); setpref('Internet', 'SMTP_Hasło', psswd); rekwizyty = java.lang. System.getProperties; props.setProperty('poczta.smtp.użytkownik', poczta); props.setProperty('poczta.smtp.host', host); props.setProperty('poczta.smtp.port', port); props.setProperty('mail.smtp.starttls.enable', 'prawda'); props.setProperty('mail.smtp.debug', 'prawda'); props.setProperty('mail.smtp.auth', 'prawda'); props.setProperty('mail.smtp.socketFactory.port', port); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.fallback', 'false'); sendmail(emailto, 'Pomoc!', 'Nie można znaleźć astronauty!', img); r.stop koniec koniec koniec
Oczywiście jest tu bałagan, ale po skopiowaniu powinien się wzmocnić. Hasła i e-maile w tym celu mają oczywiście dostarczyć ci, którzy wykonują ten projekt.
Jednak nasz przykład to tylko jeden z wielu sposobów na zabawę z tym robotem, aby był odpowiedni dla wszystkich. Jest wiele różnych rzeczy do zrobienia, które możesz dopasować do siebie.
Zalecana:
Stacja pogodowa ze wspomaganiem satelitarnym: 5 kroków
Stacja pogodowa wspomagana satelitą: Ten projekt jest przeznaczony dla osób, które chcą zbierać własne dane pogodowe. Może mierzyć prędkość i kierunek wiatru, temperaturę i wilgotność powietrza. Jest również w stanie nasłuchiwać satelitów pogodowych krążących wokół Ziemi raz na 100 minut. będę
Projekt Mars Roomba UTK: 4 kroki
Projekt Mars Roomba UTK: OŚWIADCZENIE: TO DZIAŁA TYLKO JEŚLI ROOMBA JEST KONFIGUROWANA W BARDZO SZCZEGÓLNY SPOSÓB, TA INSTRUKCJA ZOSTAŁA STWORZONA I PRZEZNACZONA DO UŻYWANIA PRZEZ STUDENTÓW I WYDZIAŁÓW NA UNIWERSYTECIE TENESSEE Ten kod służy do konfigurowania robota Roomba do lokalnego działania napisane i s
Roomba Explorer: 4 kroki
Roomba Explorer: Wykorzystując MATLAB i robota Create2 firmy iRobot, ten projekt zbada różne obszary nieznanej lokalizacji. Zastosowaliśmy czujniki robota, aby pomóc manewrować niebezpiecznym terenem. Pobierając zdjęcia i przekaz wideo z Raspberry Pi, które
Localino śledzi robota Roomba IRobot, mapuje środowisko i umożliwia sterowanie.: 4 kroki
Localino śledzi robota Roomba IRobot, odwzorowuje środowisko i umożliwia sterowanie.: Ta instrukcja wyjaśnia procedurę śledzenia i sterowania robotem Roomba iRobot w pomieszczeniu za pomocą systemu lokalizacyjnego Localino, mostka WiFi-UART i aplikacji komputerowej. Szczegółowy opis tego instruktażu, wyjaśniający kontrolę HIL
ROOMBA Driven by ARDUINO YUN Via Wifi App by STEFANO DALL'OLIO: 4 kroki (ze zdjęciami)
ROOMBA Driven by ARDUINO YUN Via Wifi App by STEFANO DALL'OLIO: Dzięki temu przewodnikowi udostępniam kod, aby połączyć ARDUINO YUN z Roombą w celu prowadzenia Roomby przez Wi-Fi. Kod i aplikacja są w pełni stworzone i opracowane przeze mnie Stefano Dall” Olio.Mój Roomba to Roomba 620, ale możesz użyć tego samego kodu dla innego Roomba