산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

EMAR Mini – 긴급 지원 로봇

EAR Mini는 COVID-19 대유행 중에 의사를 지원하는 오픈 소스 응급 로봇 도우미인 EAR의 미니어처 버전입니다.

다음 가이드는 EMAR Mini 긴급 지원 로봇을 설정하고 설치하는 과정을 안내합니다.

Raspberry Pi 4는 EMER Mini 소프트웨어를 포함하고 Intel 하드웨어에 전원을 공급합니다.

면책 조항

전자 제품을 다룰 때는 항상 매우 조심해야 합니다! 우리는 이 튜토리얼의 전체 또는 부분 사용으로 인해 하드웨어 또는 사용자 자신에게 발생한 손상에 대해 책임을 지지 않습니다. 이 튜토리얼을 사용하는 것은 자신의 책임이며 안전을 위한 조치를 취하십시오.

V1 필수 하드웨어

<울>
  • 1 x 라즈베리 파이 4
  • Intel® RealSense™ D415 1개
  • 1 x Intel® Neural Compute Stick 2
  • 1 x 브레드보드
  • 4 x Tower Pro SG90 서보
  • 점퍼 와이어
  • 전제 조건

    HIAS 서버

    이 시스템에는 제대로 작동하는 HIAS 서버가 필요합니다. 이 가이드를 계속 진행하기 전에 HIAS 서버 설치 가이드에 따라 HIAS 서버를 설정하세요.

    3D 인쇄용 STL

    이 튜토리얼의 경우 EMER Mini를 이미 인쇄해야 합니다. 3D 프린팅을 위한 STL 가이드에 따라 이 프로젝트의 3D 프린팅 부분을 완료하세요.

    라즈베리 파이 OS 라이트

    이 튜토리얼에서는 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 액세스

    이제 서버 보안을 강화합시다. 다음 명령을 사용하여 공개 및 개인 키를 설정하십시오. 개발 머신에서 이 단계를 수행해야 합니다. 안 됩니다. 서버에 있습니다.

    <울>
  • Enter 키를 눌러 기본 파일을 확인하세요.
  • Enter를 두 번 눌러 비밀번호를 건너뜁니다(선택 사항, 원하는 경우 비밀번호를 사용할 수 있음).
  • 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 [이메일 보호됨] 

    UFW 방화벽

    이제 방화벽을 설정합니다.

    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은 서버 로그를 스캔하고 비정상적인 활동을 찾아 추가 보안 계층을 추가합니다. 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에서 EMER 장치 만들기

    HIAS 서버로 이동하여 Robotics->EMAR->Create로 이동합니다. . 기기에서 설정에서 원하는 iotJumpWay 위치 및 영역, EAR 장치 이름, Raspberry Pi의 IP 및 MAC 주소를 선택합니다. 실시간 물체 감지 및 깊이 설정은 기본 설정으로 둘 수 있습니다. 포트와 디렉터리 이름을 수정하는 경우 HIAS 서버 프록시를 업데이트할 때 이를 변경해야 합니다. 아래 설정.

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

    인텔® RealSense™ D415

    이제 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에 대해 올바르게 설정되었습니다.

    OpenVINO™ 툴킷의 인텔® 배포

    다시 한 번 공식 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 

    인텔® 뉴럴 컴퓨트 스틱 2

    다시 PyImageSearch 가이드에 제공된 지침을 사용하여 Raspberry Pi에 NCS2를 설치합니다.

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

    넥 연결

    먼저 Body-Middle.stl 상단을 통해 최종 서보를 밀어 넣습니다. 그리고 제자리에 조입니다. 다음으로 목의 바닥에 서보 암을 나사로 고정하고 서보에 부착합니다. 이 부분을 안전하게 유지하려면 접착제가 필요할 수 있습니다.

    출처:EMER Mini – 긴급 지원 로봇


    제조공정

    1. Arduino+Raspberry Pi 로봇 플랫폼을 만드는 방법
    2. Raspberry Pi 및 Bridge Shield를 사용하는 로봇
    3. 라즈베리 파이 CD 상자 로봇
    4. ANDY:다목적 "인간형" 로봇
    5. 구르는 알람 로봇
    6. Minecraft 크리퍼 로봇 제작
    7. JQR 4족 자율 로봇
    8. 아르키메데스:AI 로봇 올빼미
    9. Nox – A House Wandering Robot(ROS)
    10. 라즈베리 파이를 사용하는 Wi-Fi 제어 로봇