제조공정
EAR Mini는 COVID-19 대유행 중에 의사를 지원하는 오픈 소스 응급 로봇 도우미인 EAR의 미니어처 버전입니다.
그림>다음 가이드는 EMAR Mini 긴급 지원 로봇을 설정하고 설치하는 과정을 안내합니다.
Raspberry Pi 4는 EMER Mini 소프트웨어를 포함하고 Intel 하드웨어에 전원을 공급합니다.
면책 조항
전자 제품을 다룰 때는 항상 매우 조심해야 합니다! 우리는 이 튜토리얼의 전체 또는 부분 사용으로 인해 하드웨어 또는 사용자 자신에게 발생한 손상에 대해 책임을 지지 않습니다. 이 튜토리얼을 사용하는 것은 자신의 책임이며 안전을 위한 조치를 취하십시오.
V1 필수 하드웨어
<울>이 시스템에는 제대로 작동하는 HIAS 서버가 필요합니다. 이 가이드를 계속 진행하기 전에 HIAS 서버 설치 가이드에 따라 HIAS 서버를 설정하세요.
이 튜토리얼의 경우 EMER Mini를 이미 인쇄해야 합니다. 3D 프린팅을 위한 STL 가이드에 따라 이 프로젝트의 3D 프린팅 부분을 완료하세요.
이 튜토리얼에서는 Raspberry Pi OS Lite(Buster)를 사용합니다. 먼저 Raspberry Pi OS 다운로드 페이지에서 이미지를 다운로드하고 이미지 파일을 추출하여 SDK 카드에 씁니다. 우리 프로젝트에서는 64GB SD 카드를 사용했습니다.
이 작업을 완료했으면 Raspberry Pi 4에 삽입하고 로그인하면 다음 명령을 사용하여 장치를 업데이트한 다음 Raspberry Pi 구성 애플리케이션을 엽니다. 파일 시스템을 확장하고 키보드 기본 설정을 설정하고 RPI4를 네트워크에 연결해야 합니다.
sudo apt-get 업데이트 &&sudo apt-get 업그레이드
sudo raspi-config
이제 EMER Mini 하드웨어, 소프트웨어 및 종속성을 설치해야 합니다.
먼저 기기 보안을 강화합니다.
서버에 원격으로 액세스하기 위한 새 사용자를 만듭니다. 다음 명령을 사용하여 컴퓨터에 대한 새 사용자를 설정합니다. 제공된 지침을 따르고 안전한 암호를 사용하는지 확인하십시오.
sudo adduser 사용자 이름
이제 사용자에게 sudo 권한을 부여합니다.
usermod -aG sudo YourUsername
이제 새 터미널을 열고 설정한 새 자격 증명을 사용하여 서버에 로그인하십시오.
ssh [이메일 보호됨]
이제 서버 보안을 강화합시다. 다음 명령을 사용하여 공개 및 개인 키를 설정하십시오. 개발 머신에서 이 단계를 수행해야 합니다. 안 됩니다. 서버에 있습니다.
ssh-keygen
다음과 같은 화면이 표시되어야 합니다.
공개/비공개 rsa 키 쌍 생성.
키를 저장할 파일 입력(/home/genisys/.ssh/id_rsa):
암호를 입력하십시오(암호가 없으면 비어 있음):
같은 암호를 다시 입력하십시오:
귀하의 ID는 /home/genisys/.ssh/id_rsa에 저장되었습니다.
공개 키는 다음에 저장되었습니다. /home/genisys/.ssh/id_rsa.pub.
키 지문은 다음과 같습니다.
SHA256:5BYJMomxATmanduT3/d1CPKaFm+pGEIqpJJ5Z3zXCPM [이메일 보호됨]
키의 randomart 이미지:
+---[RSA 2048]----+
|.oooo.. |
|o .oo . . |
|.+.. + |
|o o o . |
| .o .+ S . . |
| =..+o =o.o . . |
|=o =oo.E .o..o .|
|.. + ..o.ooo+. . |
| .오++. |
+----[SHA256]-----+
이제 서버에 키를 복사합니다.
ssh-copy-id [이메일 보호됨]
새 사용자 계정의 비밀번호를 입력하면 키가 서버에 저장됩니다. 이제 새 터미널에서 서버에 다시 로그인을 시도하십시오. 비밀번호를 입력하지 않고 바로 로그인해야 합니다.
ssh [이메일 보호됨]
마지막으로 로그인을 위한 비밀번호 인증을 끕니다. 다음 명령을 사용하여 ssh 구성을 편집합니다.
sudo nano /etc/ssh/sshd_config
다음을 변경하십시오.
#PasswordAuthentication 예
받는 사람:
비밀번호 인증 번호
그런 다음 ssh를 다시 시작하십시오.
sudo systemctl ssh 재시작
ssh를 사용하여 위 단계를 수행하는 경우 현재 터미널을 연결된 상태로 유지하세요. 새 터미널을 열고 서버에 로그인을 시도하십시오. 로그인할 수 있으면 위의 단계가 성공한 것입니다.
이 튜토리얼의 나머지 부분에서는 사용자가 장치에 로그인했다고 가정합니다. 개발 컴퓨터에서 ssh를 사용하여 장치에 연결하거나 컴퓨터에서 직접 작업하는 경우 로컬 터미널을 엽니다.
ssh [이메일 보호됨]
이제 방화벽을 설정합니다.
sudo ufw 활성화
sudo ufw 비활성화
이제 필요한 포트를 열면 다음 포트가 서버에서 열리지만 외부 세계에는 열리지 않습니다.
sudo ufw 허용 22
sudo ufw 허용 OpenSSH
마지막으로 시작하고 상태를 확인하십시오.
sudo ufw 활성화
sudo ufw 상태
다음이 표시되어야 합니다.
상태:활성
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
22 ALLOW Anywhere
OpenSSH(v6) ALLOW Anywhere(v6)
22(v6) ALLOW Anywhere(v6)
Fail2Ban은 서버 로그를 스캔하고 비정상적인 활동을 찾아 추가 보안 계층을 추가합니다. Fail2Ban은 기본적으로 IPTable과 함께 작동하도록 구성되어 있으므로 방화벽 UFW와 함께 작동하도록 일부 재구성을 수행합니다.
sudo apt install fail2ban
sudo mv /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo rm /etc/ fail2ban/action.d/ufw.conf
sudo 터치 /etc/fail2ban/action.d/ufw.conf
에코 "[정의]" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo "활성화됨 =true" | sudo 티 -a /etc/fail2ban/action.d/ufw.conf
에코 " actionstart =" | sudo 티 -a /etc/fail2ban/action.d/ufw.conf
에코 " actionstop =" | sudo 티 -a /etc/fail2ban/action.d/ufw.conf
에코 " actioncheck =" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo " actionban =ufw 삽입 1
에서 모든 것으로 거부" | sudo tee -a /etc/fail2ban/action.d/ufw.conf
echo " actionunban =ufw 삭제
에서 모든 항목으로 거부" | sudo 티 -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 상태코드>
다음이 표시되어야 합니다.
종료 성공
서버 readyStatus
|- 감옥 수:1
`- 감옥 목록:sshd
sudo apt install python3-pip
sudo pip3 설치 지리적 위치
sudo pip3 install paho-mqtt
sudo pip3 install psutil
sudo pip3 설치 numpy
sudo pip3 설치 요청
sudo pip3 install zmq
HIAS 서버로 이동하여 Robotics->EMAR->Create로 이동합니다. . 기기에서 설정에서 원하는 iotJumpWay 위치 및 영역, EAR 장치 이름, Raspberry Pi의 IP 및 MAC 주소를 선택합니다. 실시간 물체 감지 및 깊이 설정은 기본 설정으로 둘 수 있습니다. 포트와 디렉터리 이름을 수정하는 경우 HIAS 서버 프록시를 업데이트할 때 이를 변경해야 합니다. 아래 설정.
proxy_pass 트래픽을 Raspberry Pi로 올바르게 리디렉션할 수 있습니다.
이렇게 하려면 NGINX 구성을 편집해야 합니다. HIAS 서버에서 다음 명령을 사용하여 Nano로 파일을 편집하십시오.
sudo nano /etc/nginx/sites-available/default
파일 상단에 EMER/EMAR Mini의 프록시를 제어하는 설정이 있습니다. 변경해야 합니다. ###.###.#.## 라즈베리 파이의 IP 주소로.
HIAS EAR UI에서 스트림 포트, 스트림 디렉토리 또는 소켓 포트 설정을 변경한 경우 여기에서도 업데이트해야 합니다.
위치 ~* ^/Robotics/EMAR/Live/(.*)$ {
auth_basic "제한됨";
auth_basic_user_file /etc/nginx /tass/htpasswd;
proxy_pass http://###.###.#.##:8282/$1;
}
구성을 저장하고 종료했으면 NGINX 서버를 다시 로드해야 합니다.
sudo systemctl nginx 다시 로드
이제 HIAS UI에 제공된 자격 증명을 사용하여 장치 설정을 업데이트해야 합니다. 스트림 포트 및 소켓 포트 설정을 변경한 경우 이 구성 파일에서도 업데이트해야 합니다.
sudo nano confs.json{
"iotJumpWay":{
"호스트":"",
"포트":8883 ,
"ip":"localhost",
"lid":0,
"zid":0,
"did":0,
"dn" :"",
"un":"",
"pw":""
},
"EMAR":{
"ip":""
},
"리얼센스":{
"서버":{
"포트":8282
},
"소켓":{
"포트":8383
}
},
"MobileNetSSD":{
"bin":"모델/MobileNetSSD_deploy.bin",
"클래스" :[
"배경",
"비행기",
"자전거",
"새",
"보트",
"병",
"버스",
"자동차",
"고양이",
"의자",
"소",
"식탁",
"개",
"말",
"오토바이",
"사람",
"화분",
"양",
"소파",
"기차",
"tvmonitor"
],
"inScaleFactor":0.007843,
"meanVal":127.53,
" 크기":300,
"임계값":0.6,
"xml":"모델/MobileNetSSD_deploy.xml"
}
}
이제 Intel® RealSense™ D415용 소프트웨어를 설치하겠습니다.
REALSENSE가 꽂혀 있지 않은지 확인
Raspberry Pi 3, Raspberry Pi 4 및 여러 OS에 Realsense를 설치하기 위한 Intel의 여러 자습서를 성공적으로 따르지 않은 후 마침내 LibUVC 백엔드 설치 방향을 안내받았습니다. 우리 프로젝트에서 이 작업을 수행하려면 다운로드한 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=릴리스 DBUILD_PYTHON_BINDINGS=bool:true
그러면 PyRealsense를 실행하는 데 필요한 Python 바인딩이 설치됩니다. . 이제 계속:
chmod +x ./libuvc_installation.sh
./libuvc_installation.sh
마지막으로 bashrc를 엽니다. 파일
sudo nano ~/.bashrc
그리고 저장하고 닫기 전에 파일 끝에 다음을 추가하세요.
PYTHONPATH=$PYTHONPATH:/usr/local/lib
내보내기
이제 Realsense를 Raspberry Pi에 연결하고 다음을 사용하여 테스트하여 장치가 인식되고 성공적으로 열리는지 확인할 수 있습니다.
rs-enumerate-devices
마지막으로 PyRealsense가 작동하는지 테스트하기 위해 다음을 수행합니다.
python3
pyrealsense 가져오기
exit()
pyrealsense 가져오기에서 오류가 발생하지 않는 경우 , 모든 것이 Realsense에 대해 올바르게 설정되었습니다.
다시 한 번 공식 Intel 튜토리얼은 어떤 식으로든 실패했지만 마침내 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
타르 -xf l_openvino_toolkit_runtime_raspbian_p_2020.1.023.tgz
MV l_openvino_toolkit_runtime_raspbian_p_2020.1.023 openvino
나노 ~ / .bashrc에 코드>
이제 저장하고 닫기 전에 bashrc 파일의 맨 아래에 다음 줄을 추가하세요.
소스 ~/openvino/bin/setupvars.sh
다시 PyImageSearch 가이드에 제공된 지침을 사용하여 Raspberry Pi에 NCS2를 설치합니다.
sudo usermod -a -G 사용자 "$(whoami)"
cd
sh openvino/install_dependencies/install_NCS_udev_rules.sh
먼저 Body-Middle.stl 상단을 통해 최종 서보를 밀어 넣습니다. 그리고 제자리에 조입니다. 다음으로 목의 바닥에 서보 암을 나사로 고정하고 서보에 부착합니다. 이 부분을 안전하게 유지하려면 접착제가 필요할 수 있습니다.
출처:EMER Mini – 긴급 지원 로봇
제조공정
이 튜토리얼에서는 어떤 방향으로든 움직일 수 있는 Arduino Mecanum Wheels 로봇을 만드는 방법을 배울 것입니다. 로봇의 이러한 독특한 이동성은 메카넘 휠(Mecanum Wheels)이라는 특수한 유형의 바퀴를 사용하여 이루어집니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 개요 저는 실제로 이 휠을 디자인하고 3D로 인쇄했습니다. 구매 비용이 조금 비쌀 수 있기 때문입니다. 그것들은 아주 잘 작동하고 나는 이 로봇 플랫폼을 운전하는 것이 매우 재미있다고 말해야 합니다. NRF24L01
이 튜토리얼에서는 Arduino hexapod를 구축하는 방법을 보여줍니다. 이름에서 알 수 있듯이 헥사포드에는 6개의 다리가 있지만 그 외에도 꼬리 또는 복부, 머리, 안테나, 하악 및 기능적인 눈도 있습니다. 이 모든 것이 헥사포드를 개미처럼 보이게 하므로 Arduino Ant Robot이라고도 부를 수 있습니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 개요 로봇을 제어하기 위해 맞춤형 Android 애플리케이션을 만들었습니다. 앱에는 4개의 버튼이 있어 로봇에게 전진 또는 후진, 좌회전 또는 우