EMAR Mini – Robot d'assistance d'urgence
EMAR Mini est une version miniature d'EMAR, un assistant de robot d'urgence open source pour aider les médecins pendant la pandémie de COVID-19.
Le guide suivant vous guidera tout au long de la configuration et de l'installation du mini-robot d'assistance d'urgence EMAR.
Le Raspberry Pi 4 héberge le logiciel EMAR Mini et alimente le matériel Intel.
AVIS DE NON-RESPONSABILITÉ
Vous devez toujours être très prudent lorsque vous travaillez avec de l'électronique ! Nous n'accepterons aucune responsabilité pour les dommages causés au matériel ou à vous-même du fait de l'utilisation totale ou partielle de ce didacticiel. Utilisez ce didacticiel à vos risques et périls et prenez des mesures pour assurer votre propre sécurité.
Matériel requis V1
- 1 x Raspberry Pi 4
- 1 x Intel® RealSense™ D415
- 1 x Intel® Neural Compute Stick 2
- 1 x planche à pain
- 4 servos Tower Pro SG90
- Cavaliers
Prérequis
Serveur HIAS
Ce système nécessite un serveur HIAS entièrement fonctionnel. Suivez le guide d'installation du serveur HIAS pour configurer votre serveur HIAS avant de poursuivre ce didacticiel.
STL pour l'impression 3D
Pour ce tutoriel, vous devrez avoir déjà imprimé votre EMAR Mini. Suivez le guide STL pour l'impression 3D pour terminer la partie impression 3D de ce projet.
Raspberry Pi OS Lite
Dans ce tutoriel, nous utiliserons Raspberry Pi OS Lite (Buster). Tout d'abord, téléchargez l'image à partir de la page de téléchargement du système d'exploitation Raspberry Pi, extrayez le fichier image et écrivez-le sur une carte SDK. Dans notre projet, nous avons utilisé une carte SD de 64 Go.
Une fois cela fait, insérez-le dans votre Raspberry Pi 4, une fois connecté, utilisez la commande suivante pour mettre à jour votre appareil puis ouvrez l'application de configuration Raspberry Pi. Vous devez étendre votre système de fichiers, configurer vos préférences de clavier et connecter votre RPI4 à votre réseau.
sudo apt-get update &&sudo apt-get upgrade
sudo raspi-config
Installation
Vous devez maintenant installer le matériel, le logiciel et les dépendances EMAR Mini.
Sécurité des appareils
Vous allez d'abord renforcer la sécurité de votre appareil.
Utilisateur distant
Vous allez créer un nouvel utilisateur pour accéder à votre serveur à distance. Utilisez les commandes suivantes pour configurer un nouvel utilisateur pour votre machine. Suivez les instructions fournies et assurez-vous d'utiliser un mot de passe sécurisé.
sudo adduser Votre nom d'utilisateur
Accordez maintenant les privilèges sudo à l'utilisateur :
usermod -aG sudo YourUsername
Ouvrez maintenant un nouveau terminal et connectez-vous à votre serveur en utilisant les nouvelles informations d'identification que vous avez configurées.
ssh [email protected]
Accès SSH
Renforçons maintenant la sécurité du serveur. Utilisez la commande suivante pour configurer vos clés publiques et privées. Assurez-vous d'effectuer cette étape sur votre machine de développement, pas sur votre serveur.
Conseils
- Appuyez sur Entrée pour confirmer le fichier par défaut.
- Appuyez deux fois sur Entrée pour ignorer le mot de passe (facultatif, vous pouvez utiliser un mot de passe si vous le souhaitez).
ssh-keygen
Vous devriez vous retrouver avec un écran comme celui-ci :
Génération d'une paire de clés rsa publique/privée.
Entrez le fichier dans lequel enregistrer la clé (/home/genisys/.ssh/id_rsa) :
Entrez la phrase secrète (vide pour aucune phrase secrète) :
Entrez à nouveau la même phrase secrète :
Votre identification a été enregistrée dans /home/genisys/.ssh/id_rsa.
Votre clé publique a été enregistrée dans /home/genisys/.ssh/id_rsa.pub.
L'empreinte digitale de la clé est :
SHA256:5BYJMomxATmanduT3/d1CPKaFm+pGEIqpJJ5Z3zXCPM [email protected]
L'image aléatoire de la clé est :
+---[RSA 2048]----+
|.oooo.. |
|o .oo . . |
|.+.. + |
|o o o . |
| .o .+ S . . |
| =..+o =o.o . . |
|=o =oo.E .o..o .|
|.. + ..o.ooo+. . |
| .o++. |
+----[SHA256]-----+
Vous allez maintenant copier votre clé sur le serveur :
ssh-copy-id [email protected]
Une fois que vous aurez entré votre mot de passe pour le nouveau compte utilisateur, votre clé sera enregistrée sur le serveur. Essayez maintenant de vous reconnecter au serveur dans un nouveau terminal, vous devez vous connecter directement sans avoir à saisir de mot de passe.
ssh [email protected]
Enfin, vous désactiverez l'authentification par mot de passe pour la connexion. Utilisez la commande suivante pour modifier la configuration ssh.
sudo nano /etc/ssh/sshd_config
Modifiez les éléments suivants :
#PasswordAuthentication oui
À :
PasswordAuthentication no
Puis redémarrez ssh :
sudo systemctl restart ssh
Si vous utilisez ssh pour effectuer les étapes ci-dessus, gardez votre terminal actuel connecté. Ouvrez un nouveau terminal, essayez de vous connecter à votre serveur. Si vous pouvez vous connecter, les étapes ci-dessus ont réussi.
Le reste de ce didacticiel suppose que vous êtes connecté à votre appareil. Depuis votre machine de développement, connectez-vous à votre appareil en utilisant ssh ou ouvrez votre terminal local si vous travaillez directement sur la machine.
ssh [email protected]
Pare-feu UFW
Vous allez maintenant configurer votre pare-feu :
sudo ufw activé
sudo ufw désactivé
Ouvrez maintenant les ports requis, ces ports seront ouverts sur votre serveur, mais ne sont pas ouverts au monde extérieur :
sudo ufw autoriser 22
sudo ufw autoriser OpenSSH
Lancez enfin et vérifiez le statut :
sudo ufw activer
sudo ufw status
Vous devriez voir ce qui suit :
Statut :actif
Vers l'action depuis
-- ------ ----
OpenSSH ALLOW Anywhere
22 AUTORISER n'importe où
OpenSSH (v6) AUTORISER n'importe où (v6)
22 (v6) AUTORISER n'importe où (v6)
Fail2Ban
Fail2Ban ajoute une couche de sécurité supplémentaire en analysant les journaux du serveur et en recherchant les activités inhabituelles. Fail2Ban est configuré pour fonctionner avec IPTables par défaut, nous allons donc procéder à une reconfiguration pour le faire fonctionner avec notre pare-feu, UFW.
sudo apt install fail2ban
sudo mv /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo rm /etc/ fail2ban/action.d/ufw.conf
sudo touch /etc/fail2ban/action.d/ufw.conf
echo "[Définition]" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo " enabled =true" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo " actionstart =" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo " actionstop =" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo " actioncheck =" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo " actionban =ufw insert 1 deny from
to any" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo " actionunban =ufw delete deny from
to any" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
sudo nano /etc/fail2ban/action.d/ufw.conf
sudo sed -i -- "s#banaction =iptables -multiport#banaction =ufw#g" /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
sudo fail2ban-client restart
sudo fail2ban-client status
Vous devriez voir ce qui suit :
Arrêt réussi
Statut serveur prêt
|- Nombre de prison :1
`- Liste de prison :sshd
Dépendances Python
sudo apt install python3-pip
sudo pip3 install la géolocalisation
sudo pip3 install paho-mqtt
sudo pip3 install psutil
sudo pip3 install numpy
demandes d'installation sudo pip3
sudo pip3 install zmq
Créer un appareil EMAR dans HIAS
Dirigez-vous vers votre serveur HIAS et accédez à Robotique->EMAR->Créer . Dans l'Appareil paramètres, sélectionnez l'emplacement et la zone iotJumpWay souhaités, un nom pour votre appareil EMAR, l'adresse IP et MAC de votre Raspberry Pi. La Détection et profondeur d'objets en temps réel les paramètres peuvent être laissés avec les paramètres par défaut. Si vous modifiez les ports et le nom du répertoire, vous devez les modifier lors de la mise à jour du proxy du serveur HIAS paramètres ci-dessous.
Proxy serveur HIAS
Vous devez mettre à jour les paramètres du proxy du serveur HIAS afin que le proxy_pass peut correctement rediriger le trafic vers votre Raspberry Pi.
Pour ce faire, vous devez modifier la configuration NGINX. Utilisez la commande suivante sur votre serveur HIAS pour modifier le fichier avec Nano :
sudo nano /etc/nginx/sites-available/default
Vers le haut du fichier, vous trouverez les paramètres qui contrôlent le proxy pour EMAR/EMAR Mini. Vous devez modifier ###.###.#.## à l'adresse IP de votre Raspberry Pi.
Si vous avez modifié les paramètres du port de flux, du répertoire de flux ou du port de socket dans l'interface utilisateur HIAS EMAR, vous devez également les mettre à jour ici.
emplacement ~* ^/Robotics/EMAR/Live/(.*)$ {
auth_basic "Restricted" ;
auth_basic_user_file /etc/nginx /tass/htpasswd;
proxy_pass http://###.###.#.##:8282/$1;
}
Une fois que vous avez enregistré et quitté la configuration, vous devez recharger le serveur NGINX :
sudo systemctl reload nginx
Mettre à jour les paramètres de l'appareil
Vous devez maintenant mettre à jour les paramètres de l'appareil à l'aide des informations d'identification fournies dans l'interface utilisateur HIAS. Si vous avez modifié les paramètres du port de flux et du port de socket, vous devez également les mettre à jour dans ce fichier de configuration.
sudo nano confs.json{
"iotJumpWay":{
"host":"",
"port":8883 ,
"ip":"localhost",
"lid":0,
"zid":0,
"did":0,
"dn" :"",
"un":"",
"pw":""
},
"EMAR":{
"ip":""
},
"Realsense":{
"server":{
"port":8282
},
"socket":{
"port":8383
}
},
"MobileNetSSD":{
"bin":"Model/MobileNetSSD_deploy.bin",
"classes" :[
"arrière-plan",
"avion",
"vélo",
"oiseau",
"bateau",
"bouteille",
"bus",
"voiture",
"chat",
"chaise",
"vache",
"table à manger",
"chien",
"cheval",
"moto",
"personne",
"plante en pot",
"mouton",
"sofa",
"train",
"tvmonitor"
],
"inScaleFactor":0.007843,
"meanVal":127.53,
" size":300,
"threshold":0.6,
"xml":"Model/MobileNetSSD_deploy.xml"
}
}
Intel® RealSense™ D415
Nous allons maintenant installer le logiciel pour Intel® RealSense™ D415.
ASSUREZ-VOUS QUE VOTRE REALSENSE N'EST PAS BRANCHÉ
Après avoir suivi sans succès un certain nombre de didacticiels d'Intel pour installer Realsense sur un Raspberry Pi 3 et Raspberry Pi 4 et plusieurs systèmes d'exploitation, j'ai finalement été dirigé vers l'installation du backend LibUVC. Pour que cela fonctionne pour notre projet, vous devez modifier le fichier libuvc_installation.sh téléchargé. fichier et effectuez une étape supplémentaire.
Conformément au guide, téléchargez d'abord le fichier avec :
wget https://github.com/IntelRealSense/librealsense/raw/master/scripts/libuvc_installation.sh
Puis modifiez :
cmake ../ -DFORCE_LIBUVC=true -DCMAKE_BUILD_TYPE=release
À :
cmake ../ -DFORCE_LIBUVC=true -DCMAKE_BUILD_TYPE=release DBUILD_PYTHON_BINDINGS=bool:true
Cela installera les liaisons Python dont nous avons besoin pour exécuter PyRealsense . Continuez maintenant avec :
chmod +x ./libuvc_installation.sh
./libuvc_installation.sh
Et enfin, ouvrez votre bashrc fichier
sudo nano ~/.bashrc
Et ajoutez ce qui suit à la fin du fichier avant d'enregistrer et de fermer.
exporter PYTHONPATH=$PYTHONPATH:/usr/local/lib
Vous pouvez maintenant brancher votre Realsense au Raspberry Pi et tester en utilisant ce qui suit pour vérifier si votre appareil est reconnu et s'ouvre avec succès :
rs-enumerate-devices
Et enfin ce qui suit pour tester que PyRealsense fonctionne :
python3
importer pyrealsense
exit()
Si vous n'obtenez aucune erreur d'import pyrealsense , tout est configuré correctement pour votre Realsense.
Distribution Intel® de la boîte à outils OpenVINO™
Encore une fois les tutoriels officiels d'Intel ont échoué d'une manière ou d'une autre, je suis finalement tombé sur un très bon tutoriel sur PyImageSearch. Le guide suivant utilise les pièces pertinentes pour notre projet et vous permet de configurer rapidement OpenVINO sur votre Raspberry 4.
sudo apt-get install build-essential cmake unzip pkg-config
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libcanberra-gtk*
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3-dev
cd
wget https:// download.01.org/opencv/2020/openvinotoolkit/2020.1/l_openvino_toolkit_runtime_raspbian_p_2020.1.023.tgz
tar -xf l_openvino_toolkit_runtime_raspbian_p_2020.1.023.tgz
open20.1.023.tgz. /code>
Ajoutez maintenant la ligne suivante au bas de votre fichier bashrc avant d'enregistrer et de fermer.
source ~/openvino/bin/setupvars.sh
Intel® Neural Compute Stick 2
Encore une fois, nous utilisons les instructions fournies dans le tutoriel PyImageSearch pour installer NCS2 sur le Raspberry Pi.
sudo usermod -a -G users "$(whoami)"
cd
sh openvino/install_dependencies/install_NCS_udev_rules.sh
Connectez le cou
Tout d'abord, poussez votre dernier servo par le haut de Body-Middle.stl et vissez-le en place. Vissez ensuite le bras du servo au bas du cou et fixez-le au servo. Vous aurez peut-être besoin de colle pour sécuriser cette partie.
Source :EMAR Mini – Robot d'Assistance d'Urgence
Processus de fabrication
- Comment créer une plate-forme robotique Arduino+Raspberry Pi
- Robot utilisant Raspberry Pi &Bridge Shield
- Robot boîtier CD Raspberry Pi
- ANDY :un robot « humanoïde » polyvalent
- Robot d'alarme roulante
- Créer un robot Minecraft Creeper
- Robot autonome quadrupède JQR
- Archimedes :The AI Robot Owl
- Nox – Un robot errant dans la maison (ROS)