Inhaltsverzeichnis:
- Schritt 1: Benötigte Teile
- Schritt 2: Dateien und Kamerakonfiguration
- Schritt 3: Erste Roomba-Tests
- Schritt 4: Beispiel-MATLAB-Code
Video: Roomba mit Astronautenunterstützung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Dieses Projekt wird unter Verwendung des Raspberry Pi 3 an Bord des iRobot Create Version 2 erstellt. MATLAB wird verwendet, um den Roboter so zu programmieren, dass er bestimmten Anweisungen mit seinen Sensoren und seiner Kamera folgt. Die Sensoren und Kameras werden verwendet, um bestimmte Aufgaben auszuführen, die einem Astronauten folgen und ihm die Möglichkeit geben, mit seiner Heimatbasis zu kommunizieren, wenn etwas schief geht.
Schritt 1: Benötigte Teile
1. iRobot Version 2 erstellen
Der iRobot Create ist der wichtigste Teil dieses Projekts, da er programmierbar ist und eine großartige Darstellung für einen echten Rover sein kann, der Astronauten folgt und sie in Zukunft unterstützt
2. Raspberry Pi 3
Der Raspberry Pi war das programmierbare, das für dieses Projekt verwendet wurde. Der Code ist für den Pi konzipiert und die angehängte Version des Pi ist die 3 (Modell B). Andere programmierbare Boards wie Arduino sind verwendbar, jedoch erfordern Arduino und die meisten anderen Boards eine andere Codierung als in einem anderen Schritt beschrieben
3. Raspberry Pi Kameramodul
Die einzige externe Verbindung zum Raspberry Pi, die für dieses Projekt benötigt wird, ist das Kameramodul. Das Kameramodul ist der integrale Bestandteil dieses Projekts, da der roomba nur Aufgaben ausführt, die auf dem basieren, was er in der Kamera sieht
4. MATLAB 2018a
Für die Codierung dieses Setups wurde die zweitaktuellste Version von MATLAB, 2018a, verwendet. Es ist wahrscheinlich, dass viele andere Versionen von MATLAB damit funktionieren, da es die Roomba-Programmierung schon eine Weile gibt
Schritt 2: Dateien und Kamerakonfiguration
1. Raspberry Pi- und Kameraverbindungen zum Roomba
- Der Pi kann über einen Micro-USB direkt mit dem iRobot verbunden werden. Das ist alles, was es braucht, um einsatzbereit zu sein. Es wird jedoch empfohlen, es sicher auf dem Roomba zu platzieren, wie es in den Bildern während der bisherigen Präsentation gezeigt wird.
- Die Kamera hat eine direkte Verbindung zum Raspberry Pi und es wird dringend empfohlen, etwas zu kaufen oder anzufertigen, um die Kamera direkt oben zu halten. Die Kamera hat keinen wirklichen Sinn, wenn sie nicht an Ort und Stelle gehalten werden kann, um zu zeigen, was der Roomba sieht.
2. Dateien
- Nachdem Sie alles eingerichtet und angeschlossen haben, stellen Sie sicher, dass der Roboter zurückgesetzt und einsatzbereit ist, indem Sie die Tasten "Spot" und "Dock" 10 Sekunden lang gleichzeitig gedrückt halten.
- Hier wird zuerst MATLAB benötigt. Die Dateien für den roomba müssen zuerst installiert werden und alles, was für die Ausführung dieser Dateien benötigt wird, ist der unter diesem Link bereitgestellte Code:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Schritt 3: Erste Roomba-Tests
Es müssen viele anfängliche Prüfungen am Roomba durchgeführt werden, um sicherzustellen, dass er funktioniert.
1. Stellen Sie sicher, dass Sie mit demselben WLAN-Netzwerk wie der roomba verbunden sind. Ohne dies werden Sie nie eine Verbindung über MATLAB herstellen.
2. Finden Sie heraus, welcher Nummer Ihr Roomba zugewiesen ist, damit Sie sich gezielt mit dem von Ihnen gewählten Roomba verbinden können. Wenn die Nummer Ihres Roomba beispielsweise 30 ist, würden Sie sich mit ihm verbinden, indem Sie roomba(30) in das Befehlsfenster in MATLAB eingeben.
3. Der Roomba kann über Structs in MATLAB gesteuert werden. Wenn Sie beispielsweise Ihren Code für roomba(30) auf die Variable 'r' setzen, kann der Roboter mit dem Befehl r.moveDistance(0.2, 0.1) vorwärts bewegt werden.
4. Es gibt viele verschiedene Befehle, die dem roomba mitgeteilt werden können und diese können durch Eingabe von 'doc roomba' in das Befehlsfenster angezeigt werden.
5. Die Sensoren für Licht-, Stoß- und Klippenmessungen können alle mit den Befehlen in 'doc roomba' gelesen werden, aber eine Möglichkeit, ein konstantes, übersichtliches Menü zum Anzeigen der Sensordaten zu haben, kann mit 'r.testSensors. angezeigt werden '.
6. Nachdem dies alles getestet wurde, kann die Bilderfassungssoftware des Roboters verwendet werden, um aufgenommene Bilder zu lesen und anzuzeigen. Der grundlegende Code dafür wäre img = r.getImage und imshow(img);.
7. RGB-Werte des Bildes können mit den Codes red_mean = mean(mean(img(:,:, 1)));
green_mean = mean(mean(img(:,:, 2))); und blue_mean=mean(mean(img(:,:, 3)));.
Schritt 4: Beispiel-MATLAB-Code
An diesem Punkt sind Sie jetzt bereit, die Sensoren und die Bildaufnahmesoftware zu verwenden, um Ihren eigenen Dreh auf einem menschlich unterstützenden Prototypen des Mars Rover zu erstellen. Unser Beispiel ist, dem Astronauten zu folgen, indem wir die Farbe Weiß verfolgen und sich darauf zubewegen. Der Roboter gibt einen Piepton ab, wenn seine Sensoren hohe Werte anzeigen, sodass der Astronaut den Roboter zurücksetzen kann, wenn er feststeckt, oder ihn aufheben und zurücksetzen kann, wenn er auf einer Klippe feststeckt. Es liest diese Fehler jedoch nur, solange es weiß sieht. Ohne die Farbe Weiß sehen zu können, wechselt der Roboter in den Fehlermodus. Es ist so programmiert, dass es zwei verschiedene Arten von E-Mails an die Heimatbasis zurücksendet, je nachdem, was es sieht. Wenn es die Hautfarbe des Astronauten sieht, ist das offensichtlich nicht gut, daher wird die Heimatbasis benachrichtigt, wenn der Astronaut Haut mit einer Anzugsfehlfunktion aufweist. Die andere Nachricht ist vorbereitet, wenn der Astronaut einfach aus dem Blickfeld verschwindet. Wenn für die Kameras kein Weiß oder keine Hautfarbe angezeigt wird, dreht sich der Roboter herum und sendet eine andere, aber andere E-Mail. Die Bilder, bei denen der Roomba den Astronauten nicht sehen kann, werden zusammen mit der Nachricht in den E-Mails gesendet. Der Code für unser Projekt ist unten dargestellt:
für i=1:.1:3 img=r.getImage; image(img) red_mean = mean(mean(img(:,:, 1))); green_mean = mean(mean(img(:,:, 2))); blue_mean = mean(mean(img(:,:, 3))); if red_mean > 110 && red_mean 110 && blue_mean 110 && green_mean0 || stoß.links>0 || Bump.front>0 r.beep() r.beep() r.beep() r.stop elseif cliff.left<10 || cliff.leftFront<10 || cliff.rightFront<10 || cliff.right700 || Licht.linksVorn>700 || Licht.linksMitte>700 || Licht.rechtsMitte>700 || Licht.rechtsVorne>700 || light.right>700 r.beep() r.beep() r.beep() r.beep() r.beep() r.stop else für i=1:2 r.moveDistance(0.2, 0.1) r. setDriveVelocity(.3,.2) r.stop end end end if green_mean <35 && blue_mean<35 %Hautfarbe wird angezeigt (muss an die Hautfarbe des Astronauten angepasst werden) r.beep(); r.beep(); r.beep(); mail = '[email protected]'; %sendet eine E-Mail, die zeigt, dass der Anzug aus ist psswd = 'ja'; host = 'smtp.gmail.com'; Port = '465'; emailto = '[email protected]'; m_Betreff = 'Betreff'; m_text = 'test'; setpref('Internet', 'E_Mail', Mail); setpref('Internet', 'SMTP_Server', Host); setpref('Internet', 'SMTP_Benutzername', mail); setpref('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty('mail.smtp.user', mail); props.setProperty('mail.smtp.host', host); props.setProperty('mail.smtp.port', port); props.setProperty('mail.smtp.starttls.enable', 'true'); props.setProperty('mail.smtp.debug', 'true'); props.setProperty('mail.smtp.auth', 'true'); 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, 'Hilfe!', 'Die Astronautenuniform ist aus!', img); end if red_mean 135 || green_mean 135 || blue_mean 135 for j = 1:2 %wenn Weiß vom Roboter nicht gefunden werden kann r.turnAngle(360) mail = '[email protected]'; psswd = 'ja'; host = 'smtp.gmail.com'; Port = '465'; emailto = '[email protected]'; m_Betreff = 'Betreff'; m_text = 'test'; setpref('Internet', 'E_Mail', Mail); setpref('Internet', 'SMTP_Server', Host); setpref('Internet', 'SMTP_Benutzername', mail); setpref('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty('mail.smtp.user', mail); props.setProperty('mail.smtp.host', host); props.setProperty('mail.smtp.port', port); props.setProperty('mail.smtp.starttls.enable', 'true'); props.setProperty('mail.smtp.debug', 'true'); props.setProperty('mail.smtp.auth', 'true'); 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, 'Hilfe!', 'Der Astronaut kann nicht gefunden werden!', img); r.stop ende ende ende
Offensichtlich ist es hier chaotisch, aber es sollte nach dem Kopieren poliert werden. Passwörter und E-Mails dafür sind selbstverständlich von den Projektbeteiligten mitzubringen.
Unser Beispiel ist jedoch nur eine von vielen Möglichkeiten, mit diesem Roboter herumzuspielen, damit er für alle geeignet ist. Es gibt viele verschiedene Dinge zu tun, die Sie sich selbst anpassen können.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
DIY Circuit Activity Board mit Büroklammern - HERSTELLER - STEM: 3 Schritte (mit Bildern)
DIY Circuit Activity Board mit Büroklammern | HERSTELLER | STEM: Mit diesem Projekt können Sie den Weg des elektrischen Stroms ändern, um durch verschiedene Sensoren zu laufen. Mit diesem Design können Sie zwischen dem Aufleuchten einer blauen LED oder dem Aktivieren eines Summers wechseln. Sie haben auch die Wahl, einen lichtabhängigen Widerstand mit
Roomba-Projekt: 5 Schritte (mit Bildern)
Roomba-Projekt: Dieses instructable wurde in Erfüllung der Projektanforderung des Makecourse an der University of South Florida (www.makecourse.com) erstellt. Dieses instructable deckt alle notwendigen Schritte und Komponenten ab, die zum Zusammenbau meines Roomba-Projekts erforderlich sind