EMAR Mini : Robot d'assistance d'urgence compact et open-source
EMAR Mini est une version réduite du robot d'urgence open-source EMAR, conçue pour aider les professionnels de santé pendant la pandémie de COVID-19. Basé sur un Raspberry Pi 4, il intègre des caméras Intel RealSense, du matériel de calcul neuronal, et des servomoteurs pour offrir détection d'objets en temps réel, détection de profondeur, et contrôle à distance.
Ce guide vous accompagne à chaque étape de la mise en place de l'EMAR Mini, de l'assemblage matériel à la configuration logicielle sécurisée.
Avertissement de sécurité
Faites toujours preuve de prudence lors de la manipulation d'électronique. Nous n'acceptons aucune responsabilité pour tout dommage matériel ou blessure personnelle résultant de ce tutoriel. Utilisez les instructions à vos propres risques.
Prérequis
Serveur HIAS
Avant de commencer, assurez-vous d'avoir un serveur HIAS pleinement fonctionnel installé. Suivez le guide d'installation HIAS pour configurer le serveur.
STLs pour impression 3D
Imprimez le boîtier et le châssis EMAR Mini avec les fichiers STL fournis dans le guide STLs For 3D Printing.
Raspberry Pi OS Lite
Téléchargez l'image Raspberry Pi OS Lite (Buster) depuis la page de téléchargement Raspberry Pi OS, extrayez le fichier, et flashez-le sur une carte SD 64 Go. Après démarrage, exécutez :
sudo apt-get update && sudo apt-get upgrade sudo raspi-config Utilisez l'outil de configuration pour étendre le système de fichiers, régler les préférences clavier, et connecter à votre réseau.
Aperçu de l'installation
Le processus d'installation inclut :
- Assemblage matériel
- Durcissement de la sécurité de l'appareil
- Installation des dépendances Python
- Configuration du serveur HIAS
- Configuration Intel RealSense et OpenVINO
- Assemblage des servos et du cou
Sécurité de l'appareil
Sécuriser le Raspberry Pi est essentiel. Suivez les étapes ci-dessous pour créer un utilisateur distant dédié et activer l'authentification par clé SSH.
Utilisateur distant
Créez un nouvel utilisateur avec privilèges sudo :
sudo adduser YourUsername usermod -aG sudo YourUsername Connectez-vous au nouveau compte via SSH :
ssh [email protected] Accès SSH
Générez une paire de clés SSH sur votre machine locale (pas sur le Pi) :
ssh-keygen Copiez la clé publique sur le Pi :
ssh-copy-id [email protected] Testez la connexion sans mot de passe :
ssh [email protected] Désactivez l'authentification par mot de passe en éditant /etc/ssh/sshd_config :
sudo nano /etc/ssh/sshd_config # Changez la ligne suivante : #PasswordAuthentication yes PasswordAuthentication no Redémarrez SSH :
sudo systemctl restart ssh Pare-feu UFW
Activez et configurez le pare-feu Uncomplicated Firewall :
sudo ufw enable sudo ufw allow 22 sudo ufw allow OpenSSH sudo ufw status Sortie attendue :
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 22 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 22 (v6) ALLOW Anywhere (v6) Fail2Ban
Installez et configurez Fail2Ban pour fonctionner avec 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 sudo tee -a /etc/fail2ban/action.d/ufw.conf <<EOF [Definition] enabled = true actionstart = actionstop = actioncheck = actionban = ufw insert 1 deny from <ip> to any actionunban = ufw delete deny from <ip> to any EOF sudo sed -i "s#banaction = iptables-multiport#banaction = ufw#g" /etc/fail2ban/jail.local sudo fail2ban-client restart sudo fail2ban-client status La sortie doit inclure :
Shutdown successful Server readyStatus |- Number of jail: 1 `- Jail list: sshd Dépendances Python
sudo apt install python3-pip sudo pip3 install geolocation paho-mqtt psutil numpy requests zmq Créer un dispositif EMAR dans HIAS
Dans votre serveur HIAS, allez à Robotique > EMAR > Créer. Configurez le dispositif en sélectionnant l'emplacement iotJumpWay approprié, en assignant un nom, et en entrant l'IP et l'adresse MAC du Pi. Laissez les paramètres de détection d'objets temps réel et de profondeur par défaut sauf si des ports personnalisés sont requis.
Proxy serveur HIAS
Ajustez le proxy NGINX pour router le trafic vers le Pi. Éditez /etc/nginx/sites-available/default :
sudo nano /etc/nginx/sites-available/default Localisez le bloc EMAR et remplacez l'IP placeholder par l'adresse de votre Pi :
location ~* ^/Robotics/EMAR/Live/(.*)$ { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/tass/htpasswd; proxy_pass https://###.###.#.##:8282/$1; } Rechargez NGINX :
sudo systemctl reload nginx Mettre à jour les paramètres du dispositif
Utilisez les identifiants de l'interface HIAS pour éditer confs.json sur le Pi, en assurant que ports et noms d'hôte correspondent à votre 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": [ "background", "aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor" ], "inScaleFactor": 0.007843, "meanVal": 127.53, "size": 300, "threshold": 0.6, "xml": "Model/MobileNetSSD_deploy.xml" } } Intel® RealSense™ D415
Installez le SDK RealSense sur le Pi. Assurez-vous que la caméra est déconnectée pendant l'installation.
wget https://github.com/IntelRealSense/librealsense/raw/master/scripts/libuvc_installation.sh chmod +x libuvc_installation.sh sed -i "s/cmake ../ -DFORCE_LIBUVC=true -DCMAKE_BUILD_TYPE=release/cmake ../ -DFORCE_LIBUVC=true -DCMAKE_BUILD_TYPE=release DBUILD_PYTHON_BINDINGS=bool:true/" libuvc_installation.sh ./libuvc_installation.sh Ajoutez le chemin de la bibliothèque à ~/.bashrc :
echo 'export PYTHONPATH=$PYTHONPATH:/usr/local/lib' >> ~/.bashrc source ~/.bashrc Vérifiez le dispositif :
rs-enumerate-devices python3 -c "import pyrealsense; print('PyRealsense loaded')" Intel® Distribution of OpenVINO™ Toolkit
Suivez ces étapes pour installer OpenVINO sur le Pi :
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 mv l_openvino_toolkit_runtime_raspbian_p_2020.1.023 openvino echo 'source ~/openvino/bin/setupvars.sh' >> ~/.bashrc source ~/.bashrc Intel® Neural Compute Stick 2
Installez les dépendances NCS2 :
sudo usermod -a -G users "$(whoami)" cd sh openvino/install_dependencies/install_NCS_udev_rules.sh Connecter le cou
Attachez le servo final par le haut de Body-Middle.stl et fixez-le. Vissez le bras du servo dans la base du cou et connectez le servo. Utilisez une petite quantité d'adhésif si nécessaire pour maintenir la stabilité.
Source : EMAR Mini – Robot d'assistance d'urgence
Processus de fabrication
- Construire un robot Arduino piloté par Raspberry Pi – Guide pas à pas
- Construire un robot intelligent avec le Bridge Shield – Intégration Raspberry Pi & Arduino
- Robot DIY inspiré de Wall‑E : Raspberry Pi dans une boîte de CD recyclée
- ANDY – Le robot humanoïde polyvalent
- Robot réveil roulant : Système mobile intelligent piloté par Raspberry Pi et Google Calendar
- Construire un robot Creeper motorisé Minecraft avec Arduino
- JQR Quadrupède Autonome : Robot à pattes DIY pour navigation et secours autonomes
- Archimède : Le hibou robotique IA à détection d'émotions
- Nox : Robot domestique SLAM DIY propulsé par ROS