工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

EMAR Mini:Raspberry Pi 4搭載のコンパクト緊急支援オープンソースロボット

EMAR Miniは、COVID-19パンデミック中に医療従事者を支援するために設計された、EMARオープンソース緊急ロボットの小型版。Raspberry Pi 4ベースで、Intel RealSenseカメラ、ニューラルコンピュートハードウェア、サーボモーターを統合し、リアルタイム物体検出、深度センシング、リモート制御を実現します。

このガイドでは、ハードウェア組み立てからセキュアなソフトウェア設定まで、EMAR Miniセットアップの全手順を解説します。

安全上の注意

電子機器取り扱い時は常に注意してください。本チュートリアルによるハードウェア損傷や人身傷害について責任を負いません。自己責任で実施してください。

前提条件

HIASサーバー

開始前に、完全に機能するHIASサーバーがインストール済みであることを確認。HIASインストールガイドに従ってサーバーを構築してください。

3Dプリント用STLファイル

3Dプリント用STLガイドにあるSTLファイルでEMAR Miniのケースとシャーシを出力。

Raspberry Pi OS Lite

Raspberry Pi OSダウンロードページからRaspberry Pi OS Lite(Buster)イメージをダウンロード、解凍し、64GB SDカードに書き込み。起動後以下を実行:

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 

HIASでEMARデバイス作成

HIASサーバーでRobotics > EMAR > Createへ進み、適切なiotJumpWayロケーション選択、名前割り当て、PiのIPとMACアドレス入力。リアルタイム物体検出と深度設定はカスタムポート不要ならデフォルトのまま。

HIASサーバープロキシ

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 

デバイス設定更新

HIAS UIの認証情報を用いてPi上のconfs.jsonを編集し、ポートとホスト名が設定と一致するよう調整:

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

PiにRealSense SDKをインストール。インストール中はカメラを接続しないでください。

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

PiへのOpenVINOインストール手順:

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 – 緊急支援ロボット

製造プロセス

  1. Raspberry Pi と Arduino を連携させてロボットを自作:ステップバイステップガイド
  2. Bridge Shield でスマートロボットを構築:Raspberry Pi と Arduino の統合
  3. DIY Wall-E 風 Raspberry Pi CD ボックスロボット
  4. ANDY – 多目的ヒューマノイドロボット
  5. ローリングアラームロボット:Raspberry Pi と Google カレンダーで動くスマートモバイル目覚ましシステム
  6. Arduinoで作るモーター駆動のマインクラフト クリーパー ロボット
  7. JQR四足歩行自律ロボット:自律ナビゲーションと救助向けDIY脚式ロボット
  8. アーキメデス:感情センシングAIロボットフクロウ
  9. Nox:ROS搭載のSLAM対応家庭巡回ロボット
  10. Pythonで作るWi-Fi制御Raspberry Piロボット - ステップバイステップガイド
  11. Windows 10 IoT Coreで音声制御コンピュータビジョンロボットを構築