以下指南将引导您完成EMAR 迷你紧急救援机器人的设置和安装。
Raspberry Pi 4 包含 EMAR Mini 软件并为英特尔硬件提供动力。
免责声明
使用电子产品时,您应该始终非常小心!对于因全部或部分使用本教程而对硬件或您自己造成的任何损害,我们概不负责。使用本教程需要您自担风险,并采取措施确保您自己的安全。
V1 所需硬件
该系统需要一个功能齐全的HIAS 服务器。在继续本教程之前,请按照HIAS 服务器安装指南设置您的 HIAS 服务器。
对于本教程,您需要已经打印了您的 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-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
现在您将设置防火墙:
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 默认配置为与 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
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 服务器并导航至Robotics->EMAR->Create 。在设备设置中,选择所需的 iotJumpWay 位置和区域、EMAR 设备的名称、Raspberry Pi 的 IP 和 MAC 地址。实时对象检测和深度设置可以保留默认设置。如果您修改端口和目录名称,则在更新下面的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 安装软件。
确保您的真实感未插入
在按照英特尔的一些教程在 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 的一切设置都是正确的。
英特尔官方教程再次以某种方式失败,我终于在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
我们再次使用PyImageSearch教程中提供的说明在 Raspberry Pi 上安装 NCS2。
sudo usermod -a -G users "$(whoami)"
cd
sh openvino/install_dependencies/install_NCS_udev_rules.sh
首先,将您的最终伺服器推入Body-Middle.stl的顶部并将其拧入到位。接下来将伺服臂拧到颈部底部并连接到伺服器上。您可能需要一些胶水来保持这部分的安全。
接下来让我们组装头部、Face.stl 、Head-Back.stl和Camera-Cover.stl 。在脸上你会看到 3 个孔。使用这些孔将脸部拧到后脑勺上,然后将相机盖放在脸部的大方形孔上。
现在您需要使用颈部侧面的两个螺钉来固定头部。首先拧紧螺钉,使其穿过另一侧,然后将头部放在颈部内并继续拧紧直到头部连接。
现在我们将设置您的 Raspberry Pi 4 支架,使 Raspberry Pi 在 EMAR Mini 内保持直立位置。
相关文件为RPI4-Base.stl和RPI4-Stand.stl 。首先将支架滑入底座。
现在将您的 Raspberry Pi 4 拧到支架上,端口朝上。
我们将在电路中使用面包板。第一步是从 Raspberry Pi 4 的 PWM 引脚连接电线。使用 Raspberry Pi 引脚图,将 GPIO 18、13 和 12 连接到面包板。
舵机的 PWM 信号线是橙色的,在上图中,我们使用橙色公头->公头跳线将 PWM 引脚连接到面包板。
还要从 5v 电源引脚添加一根红线,从地线添加一根黑线。但不要连接它们。
现在将您的神经计算棒 2 插入 Raspberry Pi 上的顶部 USB3。
在Body-Bottom.stl的底部,您将看到两个用于将 Raspberry Pi 4 支架连接到 EMAR Mini 内部的螺钉孔。
首先拧入螺钉,直到它们刚好穿过另一侧,这将更容易拧入支架。然后将机身底部翻转到侧面并拧入 Raspberry Pi 4 支架。
将底部向右转,将面包板放在身体顶部。
EMAR Mini 的手臂有两个部分,Arm-Section-1.stl和Arm-Section-2.stl 。
使用您的一个伺服器将第二个臂部分连接到第一个部分,然后使用第二个伺服器将第一个臂部分连接到身体,然后将电线通过孔送入身体内部。
现在您将三个伺服器连接到面包板。将主体翻转到侧面并将其放置在靠近主体底部的位置,以便电线可以到达您留在顶部的面包板。
接下来,我们使用红色公头->公头跳线将伺服电源线连接到面包板上的电源轨,公头->公头棕色线将伺服地线连接到面包板上的地轨。
现在我们将 PWM 信号线(橙色)连接到面包板。您需要通过以下方式连接它们。
接下来将 Raspberry Pi 4 的红色电源线连接到面包板上的电源轨,然后将接地线连接到接地轨。
现在您需要将面包板轻轻地放在 EMAR 的主体内,就在底部的 Raspberry Pi 前面。如果您在将面包板放入内部时使身体活跃起来,这样做会更容易。
接下来,将来自 Realsense 摄像头的 USB C 型导线穿过颈部后部的孔插入机身,将其拉过并将其连接到 Raspberry Pi 上的第二个 USB3 端口。
现在将 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条评论
快来发表一下你的评论吧 !