EMAR Mini: Robô Compacto Open Source de Assistência Emergencial
EMAR Mini é versão reduzida do robô de emergência open source EMAR, projetado para auxiliar profissionais de saúde durante a pandemia COVID-19. Construído sobre Raspberry Pi 4, integra câmeras Intel RealSense, hardware de computação neural e servomotores para entregar detecção de objetos em tempo real, sensoriamento de profundidade e controle remoto.
Este guia orienta cada passo da configuração do EMAR Mini, da montagem de hardware à configuração segura de software.
Aviso de Segurança
Sempre tenha cautela ao manusear eletrônicos. Não aceitamos responsabilidade por danos a hardware ou lesões pessoais resultantes deste tutorial. Use as instruções por sua conta e risco.
Pré-requisitos
Servidor HIAS
Antes de começar, garanta que você tem um servidor HIAS totalmente funcional instalado. Siga o guia de instalação HIAS para configurar o servidor.
STLs para Impressão 3D
Imprima o case e chassi do EMAR Mini usando arquivos STL fornecidos no guia STLs For 3D Printing.
Raspberry Pi OS Lite
Baixe a imagem Raspberry Pi OS Lite (Buster) da página de download do Raspberry Pi OS, extraia o arquivo e grave num cartão SD 64 GB. Após boot, execute:
sudo apt-get update && sudo apt-get upgrade sudo raspi-config Use a ferramenta de configuração para expandir filesystem, definir preferências de teclado e conectar à sua rede.
Visão Geral da Instalação
O processo de instalação inclui:
- Montagem de hardware
- Hardening de segurança do dispositivo
- Instalação de dependências Python
- Configuração do servidor HIAS
- Configuração Intel RealSense e OpenVINO
- Montagem de servo e pescoço
Segurança do Dispositivo
Proteger o Raspberry Pi é essencial. Siga os passos abaixo para criar usuário remoto dedicado e habilitar autenticação SSH por chave.
Usuário Remoto
Crie novo usuário com privilégios sudo:
sudo adduser SeuUsuario usermod -aG sudo SeuUsuario Faça login na nova conta via SSH:
ssh [email protected] Acesso SSH
Gere par de chaves SSH na sua máquina local (não no Pi):
ssh-keygen Copie a chave pública para o Pi:
ssh-copy-id [email protected] Teste login sem senha:
ssh [email protected] Desative autenticação por senha editando /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config # Altere a linha: #PasswordAuthentication yes PasswordAuthentication no Reinicie SSH:
sudo systemctl restart ssh Firewall UFW
Habilite e configure Uncomplicated Firewall:
sudo ufw enable sudo ufw allow 22 sudo ufw allow OpenSSH sudo ufw status Saída esperada:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 22 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 22 (v6) ALLOW Anywhere (v6) Fail2Ban
Instale e configure Fail2Ban para trabalhar com 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 Saída deve incluir:
Shutdown successful Server readyStatus |- Number of jail: 1 `- Jail list: sshd Dependências Python
sudo apt install python3-pip sudo pip3 install geolocation paho-mqtt psutil numpy requests zmq Criar Dispositivo EMAR no HIAS
No seu Servidor HIAS, navegue para Robotics > EMAR > Create. Configure o dispositivo selecionando localização iotJumpWay apropriada, atribuindo nome, e inserindo IP e endereço MAC do Pi. Deixe configurações de Detecção de Objetos em Tempo Real & Profundidade no padrão a menos que portas customizadas sejam necessárias.
Proxy do Servidor HIAS
Ajuste proxy NGINX para rotear tráfego ao Pi. Edite /etc/nginx/sites-available/default:
sudo nano /etc/nginx/sites-available/default Localize bloco EMAR e substitua IP placeholder pelo endereço do seu Pi:
location ~* ^/Robotics/EMAR/Live/(.*)$ { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/tass/htpasswd; proxy_pass https://###.###.#.##:8282/$1; } Recarregue NGINX:
sudo systemctl reload nginx Atualizar Configurações do Dispositivo
Use credenciais da UI HIAS para editar confs.json no Pi, garantindo que portas e hostnames correspondam à sua configuração:
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
Instale SDK RealSense no Pi. Garanta que a câmera esteja desconectada durante instalação.
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 Adicione caminho da biblioteca a ~/.bashrc:
echo 'export PYTHONPATH=$PYTHONPATH:/usr/local/lib' >> ~/.bashrc source ~/.bashrc Verifique o dispositivo:
rs-enumerate-devices python3 -c "import pyrealsense; print('PyRealsense loaded')" Intel® Distribution of OpenVINO™ Toolkit
Siga estes passos para instalar OpenVINO no 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
Instale dependências NCS2:
sudo usermod -a -G users "$(whoami)" cd sh openvino/install_dependencies/install_NCS_udev_rules.sh Conectar o Pescoço
Prenda o servo final através do topo do Body-Middle.stl e fixe. Parafuse o braço do servo na base do pescoço e conecte o servo. Use pequena quantidade de adesivo se necessário para manter estabilidade.
Fonte: EMAR Mini – Emergency Assistance Robot
Processo de manufatura
- Construindo um Robô com Arduino e Raspberry Pi: Guia Passo a Passo
- Construa um Robô Inteligente com a Bridge Shield – Integração Raspberry Pi e Arduino
- Robô DIY Inspirado no Wall‑E com Caixa de CD e Raspberry Pi
- ANDY – O Robô Humanoide Multipropósito
- Robô Alarme Rolante: Sistema Móvel Inteligente de Despertar com Raspberry Pi e Google Calendar
- Construa um Robô Creeper Motorizado do Minecraft com Arduino
- JQR Quadrúpede Autônomo: Robô de Pernas DIY para Navegação e Resgate Autônomos
- Arquimedes: O Robô Coruja Sensor de Emoções com IA
- Nox: Robô Doméstico Autônomo com SLAM, ROS, Raspberry Pi e Arduino
- Construa Robô Raspberry Pi Controlado por Wi-Fi com Python – Guia Passo a Passo