Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

EMAR Mini – Noodhulprobot

EMAR Mini is een miniatuurversie van EMAR, een open-source Emergency Robot Assistant om artsen te helpen tijdens de COVID-19-pandemie.

De volgende gids helpt u bij het instellen en installeren van de EMAR Mini Emergency Assistance Robot.

De Raspberry Pi 4 bevat de EMAR Mini-software en voedt de Intel-hardware.

DISCLAIMER

Je moet altijd heel voorzichtig zijn als je met elektronica werkt! Wij aanvaarden geen verantwoordelijkheid voor enige schade aan hardware of uzelf door volledig of gedeeltelijk gebruik van deze tutorial. Gebruik deze tutorial op eigen risico en neem maatregelen om je eigen veiligheid te garanderen.

V1 Vereiste hardware

  • 1 x Raspberry Pi 4
  • 1 x Intel® RealSense™ D415
  • 1 x Intel® Neural Compute Stick 2
  • 1 x Breadboard
  • 4 x Tower Pro SG90 servo's
  • Jumperdraden

Vereisten

HIAS-server

Dit systeem vereist een volledig functionerende HIAS-server. Volg de installatiehandleiding voor de HIAS-server om uw HIAS-server in te stellen voordat u doorgaat met deze zelfstudie.

STL's voor 3D-printen

Voor deze tutorial moet je je EMAR Mini al geprint hebben. Volg de STLs For 3D Printing-gids om het 3D-printgedeelte van dit project te voltooien.

Raspberry Pi OS Lite

In deze tutorial zullen we Raspberry Pi OS Lite (Buster) gebruiken. Download eerst de afbeelding van de downloadpagina van Raspberry Pi OS, pak het afbeeldingsbestand uit en schrijf het naar een SDK-kaart. In ons project hebben we een SD-kaart van 64 GB gebruikt.

Zodra u dit hebt gedaan, plaatst u deze in uw Raspberry Pi 4, gebruikt u, wanneer u bent ingelogd, de volgende opdracht om uw apparaat bij te werken en opent u vervolgens de Raspberry Pi-configuratietoepassing. U moet uw bestandssysteem uitbreiden, uw toetsenbordvoorkeuren instellen en uw RPI4 verbinden met uw netwerk.

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

Installatie

Nu moet u de EMAR Mini hardware, software en afhankelijkheden installeren.

Apparaatbeveiliging

Eerst versterk je de beveiliging van je apparaat.

Gebruiker op afstand

U maakt een nieuwe gebruiker aan om op afstand toegang te krijgen tot uw server. Gebruik de volgende opdrachten om een ​​nieuwe gebruiker voor uw machine in te stellen. Volg de gegeven instructies en zorg ervoor dat u een veilig wachtwoord gebruikt.

sudo adduser YourUsername 

Verleen nu sudo-privileges aan de gebruiker:

usermod -aG sudo Uwgebruikersnaam 

Open nu een nieuwe terminal en log in op uw server met de nieuwe inloggegevens die u hebt ingesteld.

ssh [email protected] 

SSH-toegang

Laten we nu de serverbeveiliging versterken. Gebruik de volgende opdracht om uw openbare en privésleutels in te stellen. Zorg ervoor dat u deze stap uitvoert op uw ontwikkelmachine, niet op uw server.

Tips

  • Druk op enter om het standaardbestand te bevestigen.
  • Druk tweemaal op enter om het wachtwoord over te slaan (Optioneel, u kunt desgewenst een wachtwoord gebruiken).
ssh-keygen 

Je zou een scherm als dit moeten krijgen:

Publiek/privé rsa-sleutelpaar genereren.
Voer het bestand in waarin de sleutel moet worden opgeslagen (/home/genisys/.ssh/id_rsa):
Voer wachtwoordzin in (leeg voor geen wachtwoordzin):
Voer dezelfde wachtwoordzin opnieuw in:
Uw identificatie is opgeslagen in /home/genisys/.ssh/id_rsa.
Uw openbare sleutel is opgeslagen in /home/genisys/.ssh/id_rsa.pub.
De vingerafdruk van de sleutel is:
SHA256:5BYJMomxATmanduT3/d1CPKaFm+pGEIqpJJ5Z3zXCPM [email protected]
De willekeurige afbeelding van de sleutel is:
+---[RSA 2048]----+
|.oooo.. |
|o .oo . . |
|.+.. + |
|o o o . |
| .o .+ S . . |
| =..+o =o.o . . |
|=o =oo.E .o..o .|
|.. + ..o.ooo+. . |
| .o++. |
+----[SHA256]-----+

Nu ga je je sleutel naar de server kopiëren:

ssh-copy-id [email protected] 

Nadat u uw wachtwoord voor het nieuwe gebruikersaccount hebt ingevoerd, wordt uw sleutel op de server opgeslagen. Probeer nu opnieuw in te loggen op de server in een nieuwe terminal, u moet meteen inloggen zonder een wachtwoord in te voeren.

ssh [email protected] 

Ten slotte schakelt u wachtwoordverificatie voor inloggen uit. Gebruik de volgende opdracht om de ssh-configuratie te bewerken.

sudo nano /etc/ssh/sshd_config 

Wijzig het volgende:

#PasswordAuthentication ja 

Aan:

PasswordAuthentication no 

Herstart dan ssh:

sudo systemctl herstart ssh 

Als je ssh gebruikt om de bovenstaande stappen uit te voeren, houd dan je huidige terminal aangesloten. Open een nieuwe terminal, probeer in te loggen op uw server. Als u kunt inloggen, zijn de bovenstaande stappen succesvol geweest.

In de rest van deze tutorial wordt ervan uitgegaan dat je bent ingelogd op je apparaat. Maak vanaf uw ontwikkelmachine verbinding met uw apparaat via ssh of open uw lokale terminal als u rechtstreeks op de machine werkt.

ssh [email protected] 

UFW-firewall

Nu ga je je firewall instellen:

sudo ufw inschakelen
sudo ufw uitschakelen

Open nu de vereiste poorten, deze poorten staan ​​open op uw server, maar zijn niet open voor de buitenwereld:

sudo ufw allow 22
sudo ufw allow OpenSSH

Start ten slotte en controleer de status:

sudo ufw inschakelen
sudo ufw-status

Je zou het volgende moeten zien:

Status:actief
To actie Van
-- ------ ----
OpenSSH ALLOW Anywhere
22 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)

Fail2Ban

Fail2Ban voegt een extra beveiligingslaag toe door serverlogboeken te scannen en te zoeken naar ongebruikelijke activiteiten. Fail2Ban is standaard geconfigureerd om met IPTables te werken, dus we zullen wat herconfiguratie doen om het te laten werken met onze 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 "[Definitie]" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo " ingeschakeld =waar" | 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 voeg 1 weigering in van naar willekeurig" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo " actionunban =ufw verwijderen weigeren van naar willekeurig" | 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 herstart
sudo fail2ban-client status

Je zou het volgende moeten zien:

Afsluiten succesvol
Server readyStatus
|- Aantal jails:1
`- Jail list:sshd

Python-afhankelijkheden

sudo apt install python3-pip
sudo pip3 install geolocatie
sudo pip3 install paho-mqtt
sudo pip3 install psutil
sudo pip3 install numpy
sudo pip3 installatieverzoeken
sudo pip3 install zmq

Maak EMAR-apparaat in HIAS

Ga naar je HIAS-server en navigeer naar Robotics->EMAR->Maken . In het Apparaat instellingen, selecteer je gewenste iotJumpWay-locatie en -zone, een naam voor je EMAR-apparaat, het IP- en MAC-adres van je Raspberry Pi. De Realtime objectdetectie en diepte instellingen kunnen met de standaardinstellingen worden gelaten. Als u de poorten en de directorynaam wijzigt, moet u deze wijzigen bij het updaten van de HIAS-serverproxy onderstaande instellingen.

HIAS-serverproxy

U moet de HIAS Server Proxy-instellingen updaten zodat de proxy_pass kan het verkeer correct omleiden naar uw Raspberry Pi.

Om dit te doen, moet u de NGINX-configuratie bewerken. Gebruik de volgende opdracht op uw HIAS-server om het bestand met Nano te bewerken:

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

Naar de bovenkant van het bestand vindt u de instellingen die de proxy voor EMAR/EMAR Mini regelen. Je moet ###.###.#.## . wijzigen naar het IP-adres van uw Raspberry Pi.

Als u de instellingen voor Stream Port, Stream Directory of Socket Port in de HIAS EMAR-gebruikersinterface heeft gewijzigd, moet u deze hier ook bijwerken.

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

Nadat u de configuratie hebt opgeslagen en verlaten, moet u de NGINX-server opnieuw laden:

sudo systemctl herlaad nginx 

Apparaatinstellingen bijwerken

Nu moet u de apparaatinstellingen bijwerken met de inloggegevens in de HIAS-gebruikersinterface. Als u de instellingen voor Stream Port en Socket Port heeft gewijzigd, moet u deze ook bijwerken in dit configuratiebestand.

sudo nano confs.json{
"iotJumpWay":{
"host":"",
"port":8883 ,
"ip":"localhost",
"lid":0,
"zid":0,
"did":0,
"dn" :"",
"un":"",
"pw":""
},
"EMAR":{
"ip":""
},
"Realsense":{
"server":{
"poort":8282
},
"socket":{
"poort":8383
}
},
"MobileNetSSD":{
"bin":"Model/MobileNetSSD_deploy.bin",
"klassen" :[
"achtergrond",
"vliegtuig",
"fiets",
"vogel",
"boot",
"fles",
"bus",
"auto",
"kat",
"stoel",
"koe",
"eettafel",
"hond",
"paard",
"motor",
"persoon",
"potplant",
"schaap",
"bank",
"trein",
"tvmonitor"
],
"inScaleFactor":0.007843,
"meanVal":127.53,
" size":300,
"threshold":0.6,
"xml":"Model/MobileNetSSD_deploy.xml"
}
}

Intel® RealSense™ D415

Nu gaan we de software voor de Intel® RealSense™ D415 installeren.

ZORG ERVOOR DAT UW REALSENSE NIET IS AANGESLOTEN

Na tevergeefs een aantal Intel-tutorials te hebben gevolgd om Realsense op een Raspberry Pi 3 en Raspberry Pi 4 en meerdere besturingssystemen te installeren, werd ik eindelijk in de richting van de LibUVC-backend-installatie gewezen. Om dit voor ons project te laten werken, moet u de gedownloade libuvc_installation.sh wijzigen bestand en voer een extra stap uit.

Download het bestand volgens de handleiding eerst met:

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

Wijzig vervolgens:

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

Aan:

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

Hiermee worden de Python-bindingen geïnstalleerd die we nodig hebben om PyRealsense . uit te voeren . Ga nu verder met:

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

En open tot slot je bashrc bestand

sudo nano ~/.bashrc 

En voeg het volgende toe aan het einde van het bestand voordat u het opslaat en sluit.

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

U kunt nu uw Realsense aansluiten op de Raspberry Pi en testen door het volgende te gebruiken om te controleren of uw apparaat wordt herkend en succesvol wordt geopend:

rs-enumerate-devices 

En tot slot het volgende om te testen of PyRealsense werkt:

python3
import pyralsense
exit()

Als je geen fouten krijgt van import pyralsense , alles is correct ingesteld voor uw Realsense.

Intel®-distributie van OpenVINO™ Toolkit

Opnieuw faalden de officiële Intel-tutorials op de een of andere manier, ik kwam eindelijk een zeer goede tutorial tegen over PyImageSearch. De volgende gids gebruikt de onderdelen die relevant zijn voor ons project en stelt je in staat OpenVINO snel op je Raspberry 4 in te stellen.

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_opentime_nl. /code>

Voeg nu de volgende regel toe aan de onderkant van je bashrc-bestand voordat je het opslaat en sluit.

bron ~/openvino/bin/setupvars.sh 

Intel® Neural Compute Stick 2

We gebruiken opnieuw de instructies in de PyImageSearch-tutorial om NCS2 op de Raspberry Pi te installeren.

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

Verbind de nek

Duw eerst je laatste servo door de bovenkant van Body-Middle.stl en schroef deze op zijn plaats. Schroef vervolgens de servo-arm aan de onderkant van de nek en bevestig deze aan de servo. Je hebt misschien wat lijm nodig om dit onderdeel goed vast te zetten.

Bron:EMAR Mini – Noodhulprobot


Productieproces

  1. Hoe maak je een Arduino+Raspberry Pi-robotplatform
  2. Robot die Raspberry Pi &Bridge Shield gebruikt
  3. Raspberry Pi CD Box Robot
  4. ANDY:een multifunctionele "humanoïde" robot
  5. Rollende alarmrobot
  6. Maak een Minecraft Creeper Robot
  7. JQR Quadruped Autonomous Robot
  8. Archimedes:The AI ​​Robot Owl
  9. Nox – A House Wandering Robot (ROS)
  10. Wifi-gestuurde robot met Raspberry Pi
  11. Open CV Robot