×

EMAR迷你紧急救援机器人的设置和安装

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-16

张龙祥

分享资料个

描述

 

pYYBAGOX1iCALnOcAAD7AO13THA119.png
 

以下指南将引导您完成EMAR 迷你紧急救援机器人的设置和安装

Raspberry Pi 4 包含 EMAR Mini 软件并为英特尔硬件提供动力。

免责声明

使用电子产品时,您应该始终非常小心!对于因全部或部分使用本教程而对硬件或您自己造成的任何损害,我们概不负责。使用本教程需要您自担风险,并采取措施确保您自己的安全。

V1 所需硬件

  • 1 个树莓派 4
  • 1 个英特尔® 实感™ D415
  • 1 个英特尔® 神经计算棒 2
  • 1 个面包板
  • 4 x Tower Pro SG90 伺服系统
  • 跳线

先决条件

HIAS 服务器

该系统需要一个功能齐全的HIAS 服务器在继续本教程之前,请按照HIAS 服务器安装指南设置您的 HIAS 服务器。

用于 3D 打印的 STL

对于本教程,您需要已经打印了您的 EMAR Mini。按照STLs For 3D Printing指南完成该项目的 3D 打印部分。

树莓派操作系统精简版

在本教程中,我们将使用 Raspberry Pi OS Lite (Buster)。首先从树莓派OS下载页面下载镜像,解压镜像文件,写入SDK卡。在我们的项目中,我们使用了 64GB SD 卡。

完成此操作后,将其插入 Raspberry Pi 4,登录后,使用以下命令更新您的设备,然后打开 Raspberry Pi 配置应用程序。您需要扩展文件系统、设置键盘首选项并将 RPI4 连接到网络。

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

安装

现在您需要安装 EMAR Mini 硬件、软件和依赖项。

设备安全

首先,您将加强设备的安全性。

远程用户

您将创建一个新用户来远程访问您的服务器。使用以下命令为您的机器设置新用户。按照提供的说明进行操作,并确保使用安全密码。

sudo adduser YourUsername

现在授予用户 sudo 权限:

usermod -aG sudo YourUsername

现在打开一个新终端并使用您设置的新凭据登录到您的服务器。

ssh YourNewUser@YourServerIP

SSH 访问

现在让我们加强服务器安全。使用以下命令设置您的公钥和私钥。确保在您的开发机器上执行此步骤,而不是在您的服务器上。

提示

  • 回车确认默认文件。
  • 按两次回车跳过密码(可选,您可以根据需要使用密码)。
ssh-keygen

你应该最终得到这样的屏幕:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/genisys/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/genisys/.ssh/id_rsa.
Your public key has been saved in /home/genisys/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:5BYJMomxATmanduT3/d1CPKaFm+pGEIqpJJ5Z3zXCPM genisys@genisyslprt
The key's randomart image is:
+---[RSA 2048]----+
|.oooo..          |
|o .o.o . .       |
|.+..    +        |
|o o    o .       |
|  .o .+ S . .    |
| =..+o = o.o . . |
|= o =oo.E .o..o .|
|.. + ..o.ooo+. . |
|        .o++.    |
+----[SHA256]-----+

现在您要将密钥复制到服务器:

ssh-copy-id YourNewUser@YourServerIP

输入新用户帐户的密码后,您的密钥将保存在服务器上。现在尝试在新终端中再次登录服务器,您应该直接登录而无需输入密码。

ssh YourNewUser@YourServerIP

最后,您将关闭登录密码验证。使用以下命令编辑 ssh 配置。

sudo nano /etc/ssh/sshd_config

更改以下内容:

#PasswordAuthentication yes

至:

PasswordAuthentication no

然后重启ssh:

sudo systemctl restart ssh

如果您使用 ssh 执行上述步骤,请保持当前终端连接。打开一个新终端,尝试登录到您的服务器。如果您可以登录,则上述步骤成功。

本教程的其余部分假设您已登录到您的设备。从您的开发机器上,使用 ssh 连接到您的设备,或者如果直接在机器上工作,则打开您的本地终端。

ssh YourUser@YourServerIP

UFW防火墙

现在您将设置防火墙:

sudo ufw enable
sudo ufw disable

现在打开所需的端口,这些端口将在您的服务器上打开,但不对外开放:

sudo ufw allow 22
sudo ufw allow OpenSSH

最后启动并检查状态:

sudo ufw enable
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 通过扫描服务器日志和查找异常活动增加了额外的安全层。Fail2Ban 默认配置为与 IPTables 一起使用,因此我们将进行一些重新配置以使其与我们的防火墙 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 "[Definition]" | 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 insert 1 deny from  to any" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo "  actionunban = ufw delete 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

您应该看到以下内容:

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

Python 依赖项

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

在 HIAS 中创建 EMAR 设备

 
poYBAGOX1iWAcPT-AAEzYVgT5MY224.png
 

前往您的 HIAS 服务器并导航至Robotics->EMAR->Create 设备设置中,选择所需的 iotJumpWay 位置和区域、EMAR 设备的名称、Raspberry Pi 的 IP 和 MAC 地址。实时对象检测和深度设置可以保留默认设置。如果您修改端口和目录名称,则在更新下面的HIAS 服务器代理设置时需要更改这些。

HIAS 服务器代理

您需要更新 HIAS 服务器代理设置,以便proxy_pass可以正确地将流量重定向到您的 Raspberry Pi。

为此,您需要编辑 NGINX 配置。在您的 HIAS 服务器上使用以下命令使用 Nano 编辑文件:

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

在文件的顶部,您将找到控制 EMAR/EMAR Mini 代理的设置。您需要将###.###.#.##更改为您的 Raspberry Pi 的 IP 地址。

如果您在 HIAS EMAR UI 中更改了 Stream Port、Stream Directory 或 Socket Port 设置,您还需要在此处更新这些设置。

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

保存并退出配置后,您需要重新加载 NGINX 服务器:

sudo systemctl reload nginx

更新设备设置

现在您需要使用 HIAS UI 中提供的凭据更新设备设置。如果您更改了 Stream Port 和 Socket Port 设置,您还应该在此配置文件中更新它们。

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"
    }
}

英特尔® 实感™ D415

 
poYBAGOX1luAHevkAAg3yKSSqMI498.jpg
 

现在我们将为英特尔® 实感™ D415 安装软件。

确保您的真实感未插入

在按照英特尔的一些教程在 Raspberry Pi 3 和 Raspberry Pi 4 和多个操作系统上安装 Realsense 失败后,我终于被指向了LibUVC-backend 安装的方向为了使我们的项目能够正常工作,您需要修改下载的libuvc_installation.sh文件并执行额外的步骤。

根据指南,首先下载文件:

wget https://github.com/IntelRealSense/librealsense/raw/master/scripts/libuvc_installation.sh

然后修改:

cmake ../ -DFORCE_LIBUVC=true -DCMAKE_BUILD_TYPE=release

至:

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

这将安装我们运行PyRealsense所需的 Python 绑定现在继续:

chmod +x ./libuvc_installation.sh
./libuvc_installation.sh

最后打开你的bashrc文件

sudo nano ~/.bashrc

并在保存和关闭之前将以下内容添加到文件末尾。

export PYTHONPATH=$PYTHONPATH:/usr/local/lib

您现在可以将 Realsense 插入 Raspberry Pi 并使用以下命令进行测试,以检查您的设备是否被识别并成功打开:

rs-enumerate-devices

最后是以下测试 PyRealsense 是否正常工作:

python3
import pyrealsense
exit()

如果您没有从import pyrealsense中得到任何错误,那么您的 Realsense 的一切设置都是正确的。

英特尔® OpenVINO™ 工具套件分发版

英特尔官方教程再次以某种方式失败,我终于在PyImageSearch上遇到了一个非常好的教程以下指南使用与我们项目相关的部分,并允许您在 Raspberry 4 上快速设置 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
nano ~/.bashrc

现在在保存和关闭之前将以下行添加到 bashrc 文件的底部。

source ~/openvino/bin/setupvars.sh

英特尔® 神经计算棒 2

我们再次使用PyImageSearch教程中提供的说明在 Raspberry Pi 上安装 NCS2。

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

连接脖子

 
pYYBAGOX1oyAJZq0AAkzzsHTsLA878.jpg
 

首先,将您的最终伺服器推入Body-Middle.stl的顶部并将其拧入到位。接下来将伺服臂拧到颈部底部并连接到伺服器上。您可能需要一些胶水来保持这部分的安全。

组装头部

 
pYYBAGOX1rCACKiyAAUSUdj1G24947.jpg
 

接下来让我们组装头部、Face.stl Head-Back.stlCamera-Cover.stl 在脸上你会看到 3 个孔。使用这些孔将脸部拧到后脑勺上,然后将相机盖放在脸部的大方形孔上。

 
poYBAGOX1ueAfpJ4AAe07z6FcWM712.jpg
 

将头部连接到颈部

 
poYBAGOX1y6AE2MFAAiyX9X1KRU373.jpg
 

现在您需要使用颈部侧面的两个螺钉来固定头部。首先拧紧螺钉,使其穿过另一侧,然后将头部放在颈部内并继续拧紧直到头部连接。

树莓派 4 支架

 
pYYBAGOfvWaAYBeAAASncUzVEXs317.jpg
 

现在我们将设置您的 Raspberry Pi 4 支架,使 Raspberry Pi 在 EMAR Mini 内保持直立位置。

相关文件为RPI4-Base.stlRPI4-Stand.stl 首先将支架滑入底座。

 
poYBAGOfvX-AC8RmAASOlMyr45I875.jpg
 

现在将您的 Raspberry Pi 4 拧到支架上,端口朝上。

 
poYBAGOfvZSAaGpNAAZlGjEtLZw776.jpg
 

树莓派 4 引脚分配

资源

 
pYYBAGN6wiOATJGnAAKH1CTGtt8572.png
 

面包板

 
pYYBAGOfvbeAeZzIAAh784uu3D0687.jpg
 

我们将在电路中使用面包板。第一步是从 Raspberry Pi 4 的 PWM 引脚连接电线。使用 Raspberry Pi 引脚图,将 GPIO 18、13 和 12 连接到面包板。

舵机的 PWM 信号线是橙色的,在上图中,我们使用橙色公头->公头跳线将 PWM 引脚连接到面包板。

还要从 5v 电源引脚添加一根红线,从地线添加一根黑线。但不要连接它们。

添加英特尔® 神经计算棒 2

 
poYBAGOf1WCAVt4TAAjEZZ2nVGE841.jpg
 

现在将您的神经计算棒 2 插入 Raspberry Pi 上的顶部 USB3。

将 Raspberry Pi 4 支架连接到 EMAR Mini

Body-Bottom.stl的底部,您将看到两个用于将 Raspberry Pi 4 支架连接到 EMAR Mini 内部的螺钉孔。

 
pYYBAGOf1Y6AEsVgAAddJMBkKa4737.jpg
 

首先拧入螺钉,直到它们刚好穿过另一侧,这将更容易拧入支架。然后将机身底部翻转到侧面并拧入 Raspberry Pi 4 支架。

 
poYBAGOf1c6ANdWxAAoKCQsIH2Q173.jpg
 

将底部向右转,将面包板放在身体顶部。

连接手臂部分

 
pYYBAGOf1eGAWVGQAAX_Wjwdaec374.jpg
 

EMAR Mini 的手臂有两个部分,Arm-Section-1.stlArm-Section-2.stl

使用您的一个伺服器将第二个臂部分连接到第一个部分,然后使用第二个伺服器将第一个臂部分连接到身体,然后将电线通过孔送入身体内部。

将伺服线连接到面包板

 
pYYBAGOf1imAA-xzAA2fvbcKrOM433.jpg
 

现在您将三个伺服器连接到面包板。将主体翻转到侧面并将其放置在靠近主体底部的位置,以便电线可以到达您留在顶部的面包板。

接下来,我们使用红色公头->公头跳线将伺服电源线连接到面包板上的电源轨,公头->公头棕色线将伺服地线连接到面包板上的地轨。

现在我们将 PWM 信号线(橙色)连接到面包板。您需要通过以下方式连接它们。

  • 头部伺服 -> GPIO 18
  • 第一臂部分伺服 -> GPIO 12
  • 第二臂部分伺服 -> GPIO 13

接下来将 Raspberry Pi 4 的红色电源线连接到面包板上的电源轨,然后将接地线连接到接地轨。

安装面包板

 
poYBAGOf1nSAWYvfAA1vSERJATo750.jpg
 

现在您需要将面包板轻轻地放在 EMAR 的主体内,就在底部的 Raspberry Pi 前面。如果您在将面包板放入内部时使身体活跃起来,这样做会更容易。

安装实感摄像头

 
poYBAGOf1riAfg9xAAts3qBN-28952.jpg
 

接下来,将来自 Realsense 摄像头的 USB C 型导线穿过颈部后部的孔插入机身,将其拉过并将其连接到 Raspberry Pi 上的第二个 USB3 端口。

整理起来

 
pYYBAGOf1wKAQg7XAAuzK7wlBMA592.jpg
 

现在将 USB C 型电源线插入 Raspberry Pi,但暂时不要插入电源。

完成后,您需要将中间主体连接到底部主体。要非常小心,确保不要将任何电线从 Raspberry Pi 或面包板上拉出,并确保 Realsense 的 USB 电缆安装在机身顶部,否则可能会导致您无法能够移动头部。

最后将 Realsense 摄像头推入面部前部的孔中,并确保其牢固。在这个版本中,头部尺寸计算错误,可以将相机楔入头部,但我们正在为 V2 设计更大的头部设计。使用前确保相机牢固地嵌入头部。

继续

现在您可以继续返回RPI4教程以完成设置。

贡献

Peter Moss Acute COVID-19 AI 研究项目鼓励并欢迎来自 Github 的代码贡献、错误修复和增强功能。

请阅读CONTRIBUTING文档以获取有关分叉存储库和提交拉取请求的完整指南。您还可以在此页面上找到有关您的行为准则的信息。

贡献者

版本控制

您使用 SemVer 进行版本控制。有关可用版本,请参阅版本

执照

这个项目是在MIT 许可下获得许可的- 有关详细信息,请参阅LICENSE文件。

错误/问题

您使用repo 问题来跟踪与使用此项目相关的错误和一般请求。有关如何提交错误、功能请求和建议的更多信息,请参阅CONTRIBUTING 。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !