EMAR Mini: Robot Compacto de Asistencia en Emergencias Open‑Source
EMAR Mini es una versión reducida del robot de emergencias open‑source EMAR, diseñada para ayudar a profesionales sanitarios durante la pandemia COVID‑19. Construida sobre Raspberry Pi 4, integra cámaras Intel RealSense, hardware de cómputo neuronal y servomotores para detección de objetos en tiempo real, sensado de profundidad y control remoto.
Esta guía recorre cada paso de configuración del EMAR Mini, desde montaje hardware hasta configuración segura de software.
Aviso de Seguridad
Ten siempre precaución al manipular electrónica. No aceptamos responsabilidad por daños hardware o lesiones personales resultantes de este tutorial. Usa las instrucciones bajo tu propio riesgo.
Prerrequisitos
Servidor HIAS
Antes de empezar, asegúrate de tener un servidor HIAS totalmente funcional instalado. Sigue la guía de instalación de HIAS para configurar el servidor.
STLs para Impresión 3D
Imprime la carcasa y chasis del EMAR Mini usando los archivos STL provistos en la guía STLs For 3D Printing.
Raspberry Pi OS Lite
Descarga la imagen Raspberry Pi OS Lite (Buster) desde la página de descargas de Raspberry Pi OS, extrae el archivo y fláshealo en tarjeta SD de 64 GB. Tras arrancar, ejecuta:
sudo apt-get update && sudo apt-get upgrade
sudo raspi-config
Usa la herramienta de configuración para expandir sistema de archivos, ajustar preferencias de teclado y conectar a tu red.
Resumen de Instalación
El proceso incluye:
- Montaje hardware
- Endurecimiento de seguridad del dispositivo
- Instalación de dependencias Python
- Configuración servidor HIAS
- Configuración Intel RealSense y OpenVINO
- Montaje de servos y cuello
Seguridad del Dispositivo
Proteger la Raspberry Pi es esencial. Sigue los pasos para crear usuario remoto dedicado y habilitar autenticación SSH por clave.
Usuario Remoto
Crea nuevo usuario con privilegios sudo:
sudo adduser TuUsuario
usermod -aG sudo TuUsuario
Inicia sesión en la nueva cuenta vía SSH:
ssh [email protected]
Acceso SSH
Genera par de claves SSH en tu máquina local (no en la Pi):
ssh-keygen
Copia la clave pública a la Pi:
ssh-copy-id [email protected]
Prueba login sin contraseña:
ssh [email protected]
Deshabilita autenticación por contraseña editando /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
# Cambia la línea:
#PasswordAuthentication yes
PasswordAuthentication no
Reinicia SSH:
sudo systemctl restart ssh
Firewall UFW
Habilita y configura Uncomplicated Firewall:
sudo ufw enable
sudo ufw allow 22
sudo ufw allow OpenSSH
sudo ufw status
Salida esperada:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
22 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
Fail2Ban
Instala y configura Fail2Ban para trabajar con 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 salida debe incluir:
Shutdown successful
Server ready
Status
|- Number of jail: 1
`- Jail list: sshd
Dependencias Python
sudo apt install python3-pip
sudo pip3 install geolocation paho-mqtt psutil numpy requests zmq
Crear Dispositivo EMAR en HIAS
En tu Servidor HIAS, navega a Robotics > EMAR > Create. Configura el dispositivo seleccionando ubicación iotJumpWay apropiada, asignando nombre e introduciendo IP y MAC de la Pi. Deja ajustes de Detección de Objetos en Tiempo Real y Profundidad por defecto salvo que requieras puertos personalizados.
Proxy Servidor HIAS
Ajusta el proxy NGINX para enrutar tráfico a la Pi. Edita /etc/nginx/sites-available/default:
sudo nano /etc/nginx/sites-available/default
Localiza el bloque EMAR y sustituye la IP placeholder por la de tu Pi:
location ~* ^/Robotics/EMAR/Live/(.*)$ {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/tass/htpasswd;
proxy_pass https://###.###.#.##:8282/$1;
}
Recarga NGINX:
sudo systemctl reload nginx
Actualizar Configuración del Dispositivo
Usa las credenciales de la UI de HIAS para editar confs.json en la Pi, asegurando que puertos y hostnames coincidan:
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
Instala el SDK RealSense en la Pi. Asegúrate de que la cámara esté desconectada durante la instalación.
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
Añade ruta de librería a ~/.bashrc:
echo 'export PYTHONPATH=$PYTHONPATH:/usr/local/lib' >> ~/.bashrc
source ~/.bashrc
Verifica el dispositivo:
rs-enumerate-devices
python3 -c "import pyrealsense; print('PyRealsense loaded')"
Intel® Distribution of OpenVINO™ Toolkit
Sigue estos pasos para instalar OpenVINO en la 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
Instala dependencias NCS2:
sudo usermod -a -G users "$(whoami)"
cd
sh openvino/install_dependencies/install_NCS_udev_rules.sh
Conectar el Cuello
Acopla el servo final a través de la parte superior de Body-Middle.stl y fíjalo. Atornilla el brazo del servo a la base del cuello y conecta el servo. Usa poco adhesivo si hace falta para mantener estabilidad.
Fuente: EMAR Mini – Emergency Assistance Robot
Proceso de manufactura
- Construcción de un robot con Arduino y Raspberry Pi: Guía paso a paso
- Construye un robot inteligente con Bridge Shield – Integración Raspberry Pi y Arduino
- Robot DIY inspirado en Wall‑E con Raspberry Pi y caja de CD
- ANDY – El robot humanoide multipropósito
- Robot Despertador Rodante: Sistema Inteligente y Móvil de Despertar con Raspberry Pi y Google Calendar
- Construye un Robot Creeper de Minecraft Motorizado con Arduino
- JQR Robot Cuadrúpedo Autónomo: Robot de Patas DIY para Navegación y Rescate Autónomos
- Arquímedes: El Búho Robot Sensor de Emociones con IA
- Nox: Robot Errante Doméstico con SLAM Habilitado por ROS
- Construye un Robot Raspberry Pi Controlado por Wi‑Fi con Python – Guía Paso a Paso
- Construye un Robot de Visión Artificial Controlado por Voz en Windows 10 IoT Core