EMAR Mini: Kompakter Open-Source-Notfallhilfe-Roboter
EMAR Mini ist eine verkleinerte Version des EMAR Open-Source-Notfallroboters, entwickelt um medizinisches Personal während der COVID-19-Pandemie zu unterstützen. Basierend auf Raspberry Pi 4 integriert er Intel RealSense-Kameras, Neural-Compute-Hardware und Servomotoren für Echtzeit-Objekterkennung, Tiefensensing und Fernsteuerung.
Diese Anleitung führt durch jeden Schritt der EMAR-Mini-Einrichtung, von Hardwaremontage bis sicherer Softwarekonfiguration.
Sicherheitshinweis
Immer Vorsicht beim Umgang mit Elektronik. Wir übernehmen keine Verantwortung für Hardwareschäden oder Personenschäden aus diesem Tutorial. Nutzung auf eigenes Risiko.
Voraussetzungen
HIAS Server
Vor Beginn sicherstellen, dass ein voll funktionsfähiger HIAS Server installiert ist. HIAS-Installationsanleitung befolgen.
STLs für 3D-Druck
EMAR Mini Gehäuse und Chassis mit STL-Dateien aus STLs For 3D Printing Anleitung drucken.
Raspberry Pi OS Lite
Raspberry Pi OS Lite (Buster) Image von Raspberry Pi OS Downloadseite herunterladen, entpacken, auf 64-GB-SD-Karte flashen. Nach Boot:
sudo apt-get update && sudo apt-get upgrade sudo raspi-config
Konfigurationstool nutzen für Dateisystemerweiterung, Tastatureinstellungen, Netzwerkverbindung.
Installationsübersicht
Installationsprozess umfasst:
- Hardwaremontage
- Gerätesicherheit härten
- Python-Abhängigkeiten installieren
- HIAS Server konfigurieren
- Intel RealSense & OpenVINO Setup
- Servo- & Halsmontage
Gerätesicherheit
Raspberry Pi absichern ist essenziell. Schritte unten für dedizierten Remote-User und SSH-Key-Auth.
Remote-User
Neuen User mit sudo-Rechten anlegen:
sudo adduser YourUsername usermod -aG sudo YourUsername
Via SSH im neuen Account anmelden:
ssh [email protected]
SSH-Zugang
SSH-Key-Paar auf lokaler Maschine (nicht auf Pi) generieren:
ssh-keygen
Public Key auf Pi kopieren:
ssh-copy-id [email protected]
Passwortlosen Login testen:
ssh [email protected]
Passwortauthentifizierung deaktivieren via /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config # Zeile ändern: #PasswordAuthentication yes PasswordAuthentication no
SSH neu starten:
sudo systemctl restart ssh
UFW Firewall
Uncomplicated Firewall aktivieren & konfigurieren:
sudo ufw enable sudo ufw allow 22 sudo ufw allow OpenSSH sudo ufw status
Erwartete Ausgabe:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 22 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 22 (v6) ALLOW Anywhere (v6)
Fail2Ban
Fail2Ban installieren & für UFW konfigurieren:
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
Output sollte enthalten:
Shutdown successful Server readyStatus |- Number of jail: 1 `- Jail list: sshd
Python-Abhängigkeiten
sudo apt install python3-pip sudo pip3 install geolocation paho-mqtt psutil numpy requests zmq
EMAR-Gerät in HIAS anlegen
Im HIAS Server zu Robotics > EMAR > Create navigieren. Gerät konfigurieren: passenden iotJumpWay-Standort wählen, Namen vergeben, Pi-IP und MAC-Adresse eintragen. Echtzeit-Objekterkennung & Tiefen-Einstellungen auf Default lassen, falls keine Custom-Ports nötig.
HIAS Server Proxy
NGINX-Proxy anpassen, um Traffic an Pi zu routen. /etc/nginx/sites-available/default bearbeiten:
sudo nano /etc/nginx/sites-available/default
EMAR-Block finden, Platzhalter-IP durch Pi-Adresse ersetzen:
location ~* ^/Robotics/EMAR/Live/(.*)$ { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/tass/htpasswd; proxy_pass https://###.###.#.##:8282/$1; }
NGINX neu laden:
sudo systemctl reload nginx
Geräteeinstellungen aktualisieren
HIAS-UI-Credentials nutzen, um confs.json auf Pi zu editieren, Ports & Hostnames an Config anpassen:
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
RealSense SDK auf Pi installieren. Kamera während Installation getrennt lassen.
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
Library-Pfad zu ~/.bashrc hinzufügen:
echo 'export PYTHONPATH=$PYTHONPATH:/usr/local/lib' >> ~/.bashrc source ~/.bashrc
Gerät verifizieren:
rs-enumerate-devices python3 -c "import pyrealsense; print('PyRealsense loaded')"
Intel® Distribution of OpenVINO™ Toolkit
OpenVINO auf Pi installieren:
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
NCS2-Abhängigkeiten installieren:
sudo usermod -a -G users "$(whoami)" cd sh openvino/install_dependencies/install_NCS_udev_rules.sh
Hals verbinden
Finalen Servo durch Oberseite von Body-Middle.stl führen und sichern. Servoarm in Halsbasis schrauben und Servo verbinden. Ggf. wenig Kleber für Stabilität.
Quelle: EMAR Mini – Emergency Assistance Robot
Herstellungsprozess
- Arduino-Roboter mit Raspberry Pi bauen: Schritt-für-Schritt-Anleitung
- Intelligenten Roboter mit Bridge Shield bauen – Raspberry Pi & Arduino Integration
- DIY Wall-E-inspirierter Raspberry Pi CD-Box-Roboter
- ANDY – Der vielseitige humanoide Roboter
- Rolling Alarm Robot: Intelligentes, mobiles Wecksystem mit Raspberry Pi und Google Kalender
- Einen motorisierten Minecraft-Creeper-Roboter mit Arduino bauen
- JQR Vierbein-Roboter: DIY-Laufroboter für autonome Navigation & Rettung
- Archimedes: Der emotionserkennende KI-Roboter-Eule
- Nox: DIY SLAM-fähiger Hauswander-Roboter mit ROS
- WLAN-gesteuerter Raspberry Pi Roboter mit Python bauen – Schritt-für-Schritt