Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

EMAR Mini: Компактный открытый робот экстренной помощи для борьбы с COVID-19

Введение

EMAR Mini — уменьшенная версия открытого робота экстренной помощи EMAR, созданная для поддержки медицинских работников во время пандемии COVID-19. Построен на Raspberry Pi 4, интегрирует камеры Intel RealSense, нейронные ускорители и сервоприводы для детекции объектов в реальном времени, глубинного зрения и удалённого управления.

Это руководство ведёт через все этапы настройки EMAR Mini: от сборки железа до безопасной конфигурации софта.

Предупреждение безопасности

Всегда соблюдайте осторожность при работе с электроникой. Мы не несём ответственности за повреждения оборудования или травмы, возникшие при следовании этому руководству. Используйте инструкции на свой страх и риск.

Предварительные требования

Сервер HIAS

Перед началом убедитесь, что у вас развёрнут полностью функциональный сервер HIAS. Следуйте руководству по установке HIAS.

STL-файлы для 3D-печати

Распечатайте корпус и шасси EMAR Mini, используя STL-файлы из руководства STLs For 3D Printing.

Raspberry Pi OS Lite

Скачайте образ Raspberry Pi OS Lite (Buster) со страницы загрузки Raspberry Pi OS, распакуйте и запишите на SD-карту 64 ГБ. После загрузки выполните:

sudo apt-get update && sudo apt-get upgrade
sudo raspi-config

Используйте утилиту настройки для расширения файловой системы, установки клавиатуры и подключения к сети.

Обзор установки

Процесс включает:

Безопасность устройства

Защита Raspberry Pi критична. Следуйте шагам ниже для создания выделенного удалённого пользователя и включения SSH-ключей.

Удалённый пользователь

Создайте нового пользователя с правами sudo:

sudo adduser YourUsername
usermod -aG sudo YourUsername

Зайдите под новой учётной записью по SSH:

ssh [email protected]

SSH-доступ

Сгенерируйте пару SSH-ключей на локальной машине (не на Pi):

ssh-keygen

Скопируйте публичный ключ на Pi:

ssh-copy-id [email protected]

Проверьте беспарольный вход:

ssh [email protected]

Отключите парольную аутентификацию, отредактировав /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config
# Измените строку:
#PasswordAuthentication yes
PasswordAuthentication no

Перезапустите SSH:

sudo systemctl restart ssh

Межсетевой экран UFW

Включите и настройте Uncomplicated Firewall:

sudo ufw enable
sudo ufw allow 22
sudo ufw allow OpenSSH
sudo ufw status

Ожидаемый вывод:

Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
22 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)

Fail2Ban

Установите и настройте Fail2Ban для работы с 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

Вывод должен содержать:

Shutdown successful
Server ready
Status
|- Number of jail: 1
`- Jail list: sshd

Python-зависимости

sudo apt install python3-pip
sudo pip3 install geolocation paho-mqtt psutil numpy requests zmq

Создание устройства EMAR в HIAS

В интерфейсе HIAS Server перейдите в Robotics > EMAR > Create. Настройте устройство: выберите подходящее местоположение iotJumpWay, задайте имя, введите IP и MAC-адрес Pi. Настройки Real-Time Object Detection & Depth оставьте по умолчанию, если не нужны кастомные порты.

Прокси HIAS Server

Скорректируйте NGINX-прокси для маршрутизации трафика на Pi. Отредактируйте /etc/nginx/sites-available/default:

sudo nano /etc/nginx/sites-available/default

Найдите блок EMAR и замените IP-заглушку на адрес вашего Pi:

location ~* ^/Robotics/EMAR/Live/(.*)$ {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/tass/htpasswd;
    proxy_pass https://###.###.#.##:8282/$1;
}

Перезагрузите NGINX:

sudo systemctl reload nginx

Обновление настроек устройства

Используя учётные данные из UI HIAS, отредактируйте confs.json на Pi, чтобы порты и хостнеймы соответствовали вашей конфигурации:

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 на Pi. Камера должна быть отключена во время установки.

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

Добавьте путь к библиотеке в ~/.bashrc:

echo 'export PYTHONPATH=$PYTHONPATH:/usr/local/lib' >> ~/.bashrc
source ~/.bashrc

Проверьте устройство:

rs-enumerate-devices
python3 -c "import pyrealsense; print('PyRealsense loaded')"

Intel® Distribution of OpenVINO™ Toolkit

Шаги установки OpenVINO на 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

Установка зависимостей NCS2:

sudo usermod -a -G users "$(whoami)"
cd
sh openvino/install_dependencies/install_NCS_udev_rules.sh

Подключение шеи

Установите последний сервопривод через верхнюю часть Body-Middle.stl и зафиксируйте. Прикрутите рычаг сервы к базе шеи и подключите сервопривод. При необходимости используйте немного клея для стабильности.

Источник: EMAR Mini – Emergency Assistance Robot

Производственный процесс

  1. Создание робота на Arduino и Raspberry Pi: пошаговое руководство
  2. Создание умного робота с Bridge Shield — интеграция Raspberry Pi и Arduino
  3. DIY робот в стиле Wall‑E на Raspberry Pi из коробки от CD
  4. ANDY — многоцелевой гуманоидный робот
  5. Робот-будильник на колесах: умная мобильная система пробуждения на Raspberry Pi и Google Calendar
  6. Создание моторизированного робота-крипера Minecraft на Arduino
  7. JQR Четвероногий автономный робот: DIY шагающий робот для автономной навигации и спасения
  8. Archimedes: Робот-совица с ИИ для распознавания эмоций
  9. Nox: Самостоятельно собранный робот с SLAM на базе ROS для перемещения по дому
  10. Построение Wi-Fi-управляемого робота на Raspberry Pi с Python — пошаговое руководство