Table des matières:
- Étape 1: Pièces nécessaires
- Étape 2: Configuration des fichiers et de la caméra
- Étape 3: Tests initiaux de Roomba
- Étape 4: Exemple de code MATLAB
Vidéo: Roomba assistant l'astronaute : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Ce projet est réalisé en utilisant le Raspberry Pi 3 à bord de l'iRobot Create Version 2. MATLAB est utilisé pour programmer le robot pour qu'il suive des instructions spécifiques à l'aide de ses capteurs et de sa caméra. Les capteurs et les caméras sont utilisés pour effectuer des tâches spécifiques qui suivraient un astronaute et lui donneraient la possibilité de communiquer avec sa base d'origine en cas de problème.
Étape 1: Pièces nécessaires
1. iRobot Créer la version 2
L'iRobot Create est la partie la plus essentielle de ce projet car il est programmable et peut être une excellente représentation pour un rover réel qui suit les astronautes et les assiste à l'avenir
2. Framboise Pi 3
Le Raspberry Pi était le programmable utilisé pour ce projet. Le code est conçu pour le Pi et la version du Pi jointe est la 3 (modèle B). D'autres cartes programmables telles que arduino sont utilisables, cependant, arduino et la plupart des autres cartes nécessiteront un codage différent de celui décrit dans une autre étape
3. Module de caméra Raspberry Pi
La seule connexion étrangère au Raspberry Pi nécessaire pour ce projet est le module de caméra. Le module caméra fait partie intégrante de ce projet, car le roomba n'effectuera des tâches qu'en fonction de ce qu'il voit dans la caméra
4. MATLAB 2018a
La deuxième version la plus récente de MATLAB, 2018a, a été utilisée pour le codage impliqué dans cette configuration. Il est probable que de nombreuses autres versions de MATLAB fonctionneront avec cela puisque la programmation roomba existe depuis un certain temps
Étape 2: Configuration des fichiers et de la caméra
1. Connexions Raspberry Pi et caméra au roomba
- Le Pi peut se connecter à l'iRobot directement avec un micro USB. C'est tout ce dont il a besoin pour être prêt à l'emploi. Cependant, il est recommandé de le placer solidement sur le roomba, comme le montrent les images tout au long de la présentation jusqu'à présent.
- La caméra a une connexion directe au Raspberry Pi et il est fortement recommandé d'acheter ou de fabriquer quelque chose afin de maintenir la caméra directement en place. La caméra ne sert à rien si elle ne peut pas être maintenue en place pour montrer ce que voit le roomba.
2. Fichiers
- Après avoir tout configuré et connecté, assurez-vous que le robot est réinitialisé et prêt à fonctionner en maintenant les boutons "Spot" et "Dock" enfoncés pendant 10 secondes ensemble.
- C'est là que MATLAB est d'abord nécessaire. Les fichiers du roomba doivent d'abord être installés et tout ce qui est nécessaire pour que ces fichiers soient exécutés est le code fourni sur ce lien:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Étape 3: Tests initiaux de Roomba
De nombreux contrôles initiaux doivent être effectués sur le roomba pour s'assurer qu'il fonctionne.
1. Assurez-vous d'être connecté au même réseau Wi-Fi que le roomba. Sans cela, vous ne vous connecterez jamais via MATLAB.
2. Découvrez à quel numéro votre roomba est attribué afin de pouvoir vous connecter spécifiquement au roomba que vous avez choisi. Par exemple, si le numéro de votre roomba est 30, vous vous y connecterez en tapant roomba(30) dans la fenêtre de commande de MATLAB.
3. Le roomba peut être contrôlé via des structures dans MATLAB. Par exemple, si vous définissez votre code pour roomba(30) sur la variable 'r', le robot peut être avancé avec la commande r.moveDistance(0.2, 0.1).
4. Il existe de nombreuses commandes différentes qui peuvent être communiquées au roomba et celles-ci peuvent être vues en tapant « doc roomba » dans la fenêtre de commande.
5. Les capteurs pour les lectures de lumière, de bosse et de falaise peuvent tous être lus à l'aide des commandes vues dans « doc roomba », mais un moyen d'avoir un menu constant et soigné pour voir les données du capteur peut être vu en utilisant « r.testSensors '.
6. Après avoir testé tout cela, le logiciel de collecte d'images du robot peut être utilisé pour lire et voir les photos prises. Le code de base pour cela serait img = r.getImage et imshow(img);.
7. Les valeurs RVB de l'image peuvent être trouvées avec les codes red_mean = Mean(mean(img(:,:, 1)));
green_mean = moyenne(mean(img(:,:, 2))); et blue_mean=mean(mean(img(:,:, 3)));.
Étape 4: Exemple de code MATLAB
À ce stade, vous êtes maintenant prêt à utiliser les capteurs et le logiciel de prise d'images pour créer votre propre tour sur un prototype de Mars Rover à assistance humaine. Notre exemple est de suivre l'astronaute en suivant la couleur blanche et en se déplaçant vers elle. Le robot émettra un bip si ses capteurs lisent des valeurs élevées afin que l'astronaute puisse réinitialiser le robot s'il est coincé ou aller le ramasser et le réinitialiser s'il est coincé sur une falaise. Cependant, il ne lit ces erreurs que tant qu'il voit du blanc. Sans pouvoir voir la couleur blanche, le robot entrera en mode erreur. Il est programmé pour renvoyer deux types d'e-mails différents à la base d'origine en fonction de ce qu'il voit. S'il voit la couleur de la peau de l'astronaute, ce n'est évidemment pas bon, il alertera donc la base d'origine si l'astronaute a la peau visible avec un dysfonctionnement de la combinaison. L'autre message est préparé si l'astronaute disparaît simplement de la vue. S'il n'y a pas de blanc ou de couleur de peau pour les caméras, le robot se retournera et enverra un autre e-mail, mais différent. Les images où le roomba ne peut pas voir l'astronaute seront envoyées avec le message dans les e-mails. Le code de notre projet est présenté ci-dessous:
pour i=1:1:.1:3 img=r.getImage; image(img) red_mean = moyenne(mean(img(:,:, 1))); green_mean = moyenne(mean(img(:,:, 2))); blue_mean = moyenne(mean(img(:,:, 3))); if red_mean > 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.left>0 || bump.front>0 r.bip() r.bip() r.bip() r.stop elseif cliff.left<10 || cliff.leftFront<10 || cliff.rightFront<10 || cliff.right700 || light.leftFront>700 || light.leftCenter>700 || light.rightCenter>700 || light.rightAvant>700 || light.right>700 r.beep() r.beep() r.beep() r.beep() r.beep() r.stop else pour 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 %couleur de la peau (doit être ajustée en fonction de la couleur de la peau de l'astronaute) r.beep(); r.bip(); r.bip(); mail = '[email protected]'; % envoie un e-mail indiquant que la combinaison est désactivée psswd = 'yeah'; hôte = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_sujet = 'sujet'; m_text = 'test'; setpref('Internet', 'E_mail', courrier); setpref('Internet', 'SMTP_Server', hôte); setpref('Internet', 'SMTP_Nom d'utilisateur', courrier); setpref('Internet', 'Mot de passe_SMTP', psswd); props = java.lang. System.getProperties; props.setProperty('mail.smtp.user', mail); props.setProperty('mail.smtp.host', hôte); 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, 'Aide !', 'L'uniforme des astronautes est éteint !', img); fin si red_mean 135 || green_mean 135 || blue_mean 135 pour j = 1:2 % si le blanc ne peut pas être trouvé par le robot r.turnAngle(360) mail = '[email protected]'; psswd = 'oui'; hôte = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_sujet = 'sujet'; m_text = 'test'; setpref('Internet', 'E_mail', courrier); setpref('Internet', 'SMTP_Server', hôte); setpref('Internet', 'SMTP_Nom d'utilisateur', courrier); setpref('Internet', 'Mot de passe_SMTP', psswd); props = java.lang. System.getProperties; props.setProperty('mail.smtp.user', mail); props.setProperty('mail.smtp.host', hôte); 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, 'Aide !', 'L'astronaute est introuvable !', img); r.stop fin fin fin
De toute évidence, c'est compliqué ici, mais il devrait s'améliorer une fois copié. Les mots de passe et les e-mails pour cela doivent être fournis par ceux qui font ce projet évidemment.
Cependant, notre exemple n'est qu'une des nombreuses façons de s'amuser avec ce robot pour qu'il convienne à tout le monde. Il y a beaucoup de choses différentes à faire, que vous pouvez adapter à vous-même.
Conseillé:
WLED (sur ESP8266) + IFTTT + Google Assistant : 5 étapes
WLED (sur ESP8266) + IFTTT + Google Assistant : Ce didacticiel vous permettra de commencer à utiliser IFTTT et Google Assistant pour WLED sur un ESP8266. Pour configurer votre WLED & ESP8266, suivez ce guide sur tynick : https://tynick.com/blog/11-03-2019/getting-started… Criez à Aircookie pour un si bon logiciel
Assistant météo DIY : 6 étapes
Assistant météo DIY : la dernière fois que j'ai utilisé ESP32 pour créer une station de diffusion météo, qui peut diffuser la météo actuelle. Si vous êtes intéressé, vous pouvez vérifier la précédente instructable. Maintenant, je veux faire une version améliorée, que je désignerai une ville pour vérifier le we
Matrice LED contrôlée par Google Assistant ! : 7 étapes (avec photos)
Matrice LED contrôlée par Google Assistant ! : Dans ce didacticiel, je vais vous montrer comment créer une matrice LED contrôlée par Google Assistant que vous pouvez contrôler n'importe où à l'aide d'un smartphone, alors commençons
Cosmo Clock - Change de couleur à chaque fois qu'un astronaute entre dans l'espace : 8 étapes (avec photos)
Cosmo Clock - Change de couleur à chaque fois qu'un astronaute entre dans l'espace : Salut ! Êtes-vous un passionné d'espace? Si oui alors hi-fi ! J'aime l'espace et l'astronomie. Évidemment, je ne suis pas un astronaute pour aller là-haut et regarder de plus près l'univers. Mais chaque fois que je découvre qu'une personne de la terre a voyagé vers le ciel, je suis inspiré
De Roomba à Rover en 5 étapes seulement ! : 5 étapes
De Roomba à Rover en 5 étapes seulement ! : Les robots Roomba sont un moyen amusant et facile de plonger vos orteils dans le monde de la robotique. Dans ce Instructable, nous allons détailler comment convertir un simple Roomba en un rover contrôlable qui analyse simultanément son environnement.Parts List1.) MATLAB2.) Roomb