Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

EMAR Mini - Robô de Assistência de Emergência


EMAR Mini é uma versão em miniatura do EMAR, um assistente de robô de emergência de código-fonte aberto para auxiliar os médicos durante a pandemia de COVID-19.

O guia a seguir o guiará pela configuração e instalação do EMAR Mini Emergency Assistance Robot.

O Raspberry Pi 4 abriga o software EMAR Mini e alimenta o hardware Intel.

ISENÇÃO DE RESPONSABILIDADE

Você deve sempre ter muito cuidado ao trabalhar com eletrônicos! Não aceitaremos responsabilidade por quaisquer danos causados ​​ao hardware ou a você mesmo através do uso total ou parcial deste tutorial. Use este tutorial por sua própria conta e risco e tome medidas para garantir sua segurança.

Hardware necessário V1

Pré-requisitos

Servidor HIAS


Este sistema requer um servidor HIAS em pleno funcionamento. Siga o guia de instalação do servidor HIAS para configurar seu servidor HIAS antes de continuar com este tutorial.

STLs para impressão 3D


Para este tutorial, você precisará já ter impresso seu EMAR Mini. Siga o guia STLs para impressão 3D para concluir a parte de impressão 3D deste projeto.

Raspberry Pi OS Lite


Neste tutorial, usaremos o Raspberry Pi OS Lite (Buster). Em primeiro lugar, baixe a imagem da página de download do Raspberry Pi OS, extraia o arquivo de imagem e grave-o em um cartão SDK. Em nosso projeto, usamos um cartão SD de 64GB.

Depois de fazer isso, insira-o em seu Raspberry Pi 4, quando você estiver logado, use o seguinte comando para atualizar seu dispositivo e, em seguida, abra o aplicativo de configuração Raspberry Pi. Você precisa expandir seu sistema de arquivos, configurar suas preferências de teclado e conectar seu RPI4 à sua rede.
  sudo apt-get update &&sudo apt-get upgrade 
sudo raspi-config

Instalação


Agora você precisa instalar o hardware, software e dependências do EMAR Mini.

Segurança do dispositivo


Primeiro, você fortalecerá a segurança do seu dispositivo.

Usuário remoto


Você criará um novo usuário para acessar seu servidor remotamente. Use os comandos a seguir para configurar um novo usuário para sua máquina. Siga as instruções fornecidas e certifique-se de usar uma senha segura.
  sudo adduser YourUsername  

Agora conceda privilégios de sudo ao usuário:
  usermod -aG sudo YourUsername  

Agora abra um novo terminal e faça login em seu servidor usando as novas credenciais que você configurou.
  ssh [email protected]  

Acesso SSH


Agora vamos reforçar a segurança do servidor. Use o seguinte comando para configurar suas chaves públicas e privadas. Certifique-se de realizar esta etapa em sua máquina de desenvolvimento, não no seu servidor.

Dicas

  ssh-keygen  

Você deve acabar com uma tela como esta:
  Gerando par de chaves rsa pública / privada. 
Digite o arquivo para salvar a chave (/home/genisys/.ssh/id_rsa):
Digite a frase-senha (vazio para nenhuma frase-senha):
Digite a mesma frase-senha novamente:
Sua identificação foi salva em /home/genisys/.ssh/id_rsa.
Sua chave pública foi salva em /home/genisys/.ssh/id_rsa.pub.
A impressão digital da chave é:
SHA256:5BYJMomxATmanduT3 / d1CPKaFm + pGEIqpJJ5Z3zXCPM [email protegido]
A imagem randomart da chave é:
+ --- [RSA 2048] ---- +
| .oooo .. |
| o .oo. . |
|. + .. + |
| o o o. |
| .o. + S. . |
| =.. + o =o.o. . |
| =o =oo.E .o..o. |
| .. + ..o.ooo +. . |
| .o ++. |
+ ---- [SHA256] ----- +

Agora você vai copiar sua chave para o servidor:
  ssh-copy-id [email protected]  

Depois de inserir sua senha para a nova conta de usuário, sua chave será salva no servidor. Agora tente fazer o login no servidor novamente em um novo terminal, você deve fazer o login imediatamente, sem ter que digitar uma senha.
  ssh [email protected]  

Por fim, você desativará a autenticação de senha para login. Use o seguinte comando para editar a configuração ssh.
  sudo nano / etc / ssh / sshd_config  

Altere o seguinte:
  #PasswordAuthentication yes  

Para:
  PasswordAuthentication no  

Em seguida, reinicie o ssh:
  sudo systemctl restart ssh  

Se você estiver usando ssh para fazer as etapas acima, mantenha seu terminal atual conectado. Abra um novo terminal e tente fazer o login no seu servidor. Se você puder fazer o login, as etapas acima foram bem-sucedidas.

O restante deste tutorial assume que você está conectado ao seu dispositivo. Na máquina de desenvolvimento, conecte-se ao dispositivo usando ssh ou abra o terminal local se estiver trabalhando diretamente na máquina.
  ssh [email protected]  

Firewall UFW


Agora você vai configurar seu firewall:
  sudo ufw enable 
sudo ufw disable

Agora abra as portas necessárias, essas portas estarão abertas em seu servidor, mas não estão abertas para o mundo externo:
  sudo ufw allow 22 
sudo ufw allow OpenSSH

Por fim, comece e verifique o status:
  sudo ufw enable 
sudo ufw status

Você deve ver o seguinte:
  Status:ativo 
Para ação de
- ------ ----
OpenSSH ALLOW Anywhere
22 PERMITIR em qualquer lugar
OpenSSH (v6) PERMITIR em qualquer lugar (v6)
22 (v6) PERMITIR em qualquer lugar (v6)

Fail2Ban


O Fail2Ban adiciona uma camada adicional de segurança, varrendo os logs do servidor e procurando por atividades não naturais. O Fail2Ban está configurado para funcionar com IPTables por padrão, então faremos algumas reconfigurações para fazê-lo funcionar com nosso firewall, 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 "[Definição]" | 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 inserir 1 negar de para qualquer" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo "actionunban =ufw deletar 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

Você deve ver o seguinte:
  Desligamento bem-sucedido 
Server readyStatus
| - Número de prisão:1
`- Lista de prisão:sshd

Dependências Python

  sudo apt install python3-pip 
sudo pip3 install geolocalização
sudo pip3 install paho-mqtt
sudo pip3 install psutil
sudo pip3 install numpy
sudo pip3 install solicitações
sudo pip3 install zmq

Criar dispositivo EMAR em HIAS


Vá para o servidor HIAS e navegue até Robótica-> EMAR-> Criar . No dispositivo configurações, selecione a localização e zona iotJumpWay desejada, um nome para o seu dispositivo EMAR, o endereço IP e MAC do seu Raspberry Pi. A detecção e profundidade de objetos em tempo real as configurações podem ser deixadas com as configurações padrão. Se você modificar as portas e o nome do diretório, precisará alterá-los ao atualizar o Servidor Proxy HIAS configurações abaixo.

Proxy de servidor HIAS


Você precisa atualizar as configurações de proxy do servidor HIAS para que o proxy_pass pode redirecionar corretamente o tráfego para o Raspberry Pi.

Para fazer isso, você precisa editar a configuração do NGINX. Use o seguinte comando em seu servidor HIAS para editar o arquivo com o Nano:
  sudo nano / etc / nginx / sites-available / default  

No início do arquivo, você encontrará as configurações que controlam o proxy para EMAR / EMAR Mini. Você precisa alterar ###. ###. #. ## para o endereço IP do seu Raspberry Pi.

Se você alterou as configurações de Stream Port, Stream Directory ou Socket Port na IU do HIAS EMAR, será necessário atualizá-los aqui também.
  location ~ * ^ / Robotics / EMAR / Live /(.*)$ {
auth_basic "Restricted";
auth_basic_user_file / etc / nginx / tass / htpasswd;
proxy_pass http://###.###.#.##:8282 / $ 1;
}

Depois de salvar e sair da configuração, você precisa recarregar o servidor NGINX:
  sudo systemctl reload nginx  

Atualizar configurações do dispositivo


Agora você precisa atualizar as configurações do dispositivo usando as credenciais fornecidas na IU do HIAS. Se você alterou as configurações de Porta de fluxo e Porta de soquete, também deve atualizá-las neste arquivo de configuração.
  sudo nano confs.json {
"iotJumpWay":{
"host":"",
"porta":8883 ,
"ip":"localhost",
"lid":0,
"zid":0,
"did":0,
"dn" :"",
"un":"",
"pw":""
},
"EMAR":{
"ip":""
},
"Realsense":{
"servidor":{
"porta":8282
},
"soquete":{
"porta":8383
}
},
"MobileNetSSD":{
"bin":"Model / MobileNetSSD_deploy.bin",
"classes" :[
"fundo",
"avião",
"bicicleta",
"pássaro",
"barco",
"garrafa",
"ônibus",
"carro",
"gato",
"cadeira",
"vaca",
"mesa de jantar",
"cachorro",
"cavalo",
"motocicleta",
"pessoa",
"planta em vaso",
"ovelha",
"sofá",
"trem",
"tvmonitor"
],
"inScaleFactor":0,007843,
"meanVal":127,53,
" tamanho ":300,
" limite ":0,6,
" xml ":" Model / MobileNetSSD_deploy.xml "
}
}

Intel® RealSense ™ D415


Agora vamos instalar o software para o Intel® RealSense ™ D415.

VERIFIQUE SE SEU REALSENSE NÃO ESTÁ LIGADO

Depois de seguir sem sucesso uma série de tutoriais da Intel para instalar o Realsense em um Raspberry Pi 3 e Raspberry Pi 4 e vários sistemas operacionais, fui finalmente apontado na direção da instalação de back-end do LibUVC. Para fazer isso funcionar em nosso projeto, você precisa modificar o libuvc_installation.sh baixado arquivo e execute uma etapa extra.

De acordo com o guia, baixe o arquivo primeiro com:
  wget https://github.com/IntelRealSense/librealsense/raw/master/scripts/libuvc_installation.sh  

Em seguida, modifique:
  cmake ../ -DFORCE_LIBUVC =true -DCMAKE_BUILD_TYPE =release  

Para:
  cmake ../ -DFORCE_LIBUVC =true -DCMAKE_BUILD_TYPE =release DBUILD_PYTHON_BINDINGS =bool:true  

Isso instalará os vínculos Python de que precisamos para executar o PyRealsense . Agora continue com:
  chmod + x ./libuvc_installation.sh 
./libuvc_installation.sh

E, finalmente, abra seu bashrc Arquivo
  sudo nano ~ / .bashrc  

E adicione o seguinte ao final do arquivo antes de salvar e fechar.
  export PYTHONPATH =$ PYTHONPATH:/ usr / local / lib  

Agora você pode conectar seu Realsense ao Raspberry Pi e testar usando o seguinte para verificar se seu dispositivo é reconhecido e abre com sucesso:
  rs-enumerate-devices  

E, finalmente, o seguinte para testar se o PyRealsense está funcionando:
  python3 
import pyrealsense
exit ()

Se você não obtiver nenhum erro de import pyrealsense , tudo está configurado corretamente para o seu Realsense.

Distribuição Intel® do OpenVINO ™ Toolkit


Novamente os tutoriais oficiais da Intel falharam de uma forma ou de outra, finalmente encontrei um tutorial muito bom sobre PyImageSearch. O guia a seguir usa as partes relevantes para o nosso projeto e permite que você configure rapidamente o OpenVINO em seu Raspberry 4.
  sudo apt-get install essencial para compilação cmake descompacte 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_pash_p_2020.1.023.tgz
tar -xf l_openvino_toolkit_runtime_raspbian_p_2020.1.023.tgz
mv l_openvino_pash20 aberto / open_pash20 / open_pash202_openvino2_openvino2_openvino202.023 open.023 / open_bian_topenvino20.1.023.1.023 mv l_openvino_topenvino_vino2> nbian. / code>

Agora adicione a seguinte linha ao final do seu arquivo bashrc antes de salvar e fechar.
  source ~ / openvino / bin / setupvars.sh  

Intel® Neural Compute Stick 2


Novamente, usamos as instruções fornecidas no tutorial PyImageSearch para instalar o NCS2 no Raspberry Pi.
  sudo usermod -a -G users "$ (whoami)" 
cd
sh openvino / install_dependencies / install_NCS_udev_rules.sh

Conecte o pescoço


Em primeiro lugar, empurre seu servo final pela parte superior de Body-Middle.stl e aparafuse-o no lugar. Em seguida, aparafuse o braço do servo na parte inferior do pescoço e prenda ao servo. Você pode precisar de um pouco de cola para manter esta parte segura.

Fonte:EMAR Mini - Robô de Assistência de Emergência

Processo de manufatura

  1. Como fazer uma plataforma de robô Arduino + Raspberry Pi
  2. Robô usando Raspberry Pi e Bridge Shield
  3. Robô da caixa de CD do Raspberry Pi
  4. ANDY:Um robô “humanóide” multifuncional
  5. Robô de alarme rotativo
  6. Crie um Minecraft Creeper Robot
  7. Robô autônomo quadrúpede JQR
  8. Arquimedes:A coruja robô AI
  9. Nox - A House Wandering Robot (ROS)
  10. Robô controlado por Wi-Fi usando Raspberry Pi