menu

하늘소프트 EmVision

EmVision 시작하기

EmVision에서 개발 시작하기

필요한 장치 및 케이블

  • EmVision 개발 플랫폼 본체
  • HDMI 포트를 지원하는 모니터와 HDMI 케이블
  • USB 연결을 지원하는 키보드와 마우스
  • 전원공급장치 및 전원 케이블
  • 네트워크 케이블(UTP 케이블) *

안드로이드 스마트폰을 사용하는 경우 USB 테더링을 이용해서 네트워크 접속이 가능합니다.

주변 장치 연결하기

EmVision 포트 인터페이스 EmVision 전원부

  1. ETH 포트에 공유기와 연결되어 있는 UTP 케이블을 연결합니다.
  2. HDMI 포트에 모니터와 HDMI 케이블을 연결합니다.
  3. USB 포트에 키보드와 마우스를 연결합니다.
  4. 장치와 연결한 모니터의 전원을 켭니다.
  5. 전원 케이블을 PWR 포트에 연결합니다.

EmVision은 전원 케이블을 연결하는 즉시 냉각팬이 동작하면서 부팅을 시작합니다. 만약 전원 케이블을 연결했는데 부팅이 시작되지 않는 경우 다음 조치를 시도해 볼 수 있습니다.

  1. 전원이 정격전력(약 25W)을 안정적으로 공급하고 있는지 확인합니다.
  2. 전원 케이블을 분리한 후 10초 정도 기다린 후 전원 케이블을 다시 연결합니다.

EmVision 초기화면

EmVision 초기화면

부팅 완료 후 보이는 모니터 화면입니다. 여기서부터는 Ubuntu 20.04와 동일한 방식으로 사용하실 수 있습니다.

Jetson Stats 실행

Jetson Stats 실행과정 Jetson Stats 화면

터미널에서 jtop을 실행하면 Jetson Stats가 실행됩니다. Jetson Stats는 키보드 및 마우스를 사용하여 제어할 수 있습니다. Jetson Stats는 EmVision의 CPU, GPU, 메모리, 전력 소비 등의 상태를 실시간으로 모니터링할 수 있는 도구입니다. 또한, CTRL 탭을 선택하여 팬 사용 정책 및 전력 모드 설정을 수행할 수 있습니다.

개발용 PC와 연결해서 원격 개발 시작하기

필요한 장치

  • 개발용 PC
  • 네트워크로 연결한 EmVision
    • 공유기를 이용해 내부 네트워크에 연결
    • Micro USB 케이블을 이용해서 개발용 PC와 연결

개발용 PC에서 SSH 접속하기

EmVision 상부

  • EmVision을 내부 네트워크에 연결한 경우 상단 LCD에 표시되는 IP 주소를 이용해서 개발용 PC에서 SSH 접속
  • EmVision을 Micro USB 케이블을 이용해서 연결하는 경우 개발용 PC와 연결한 후 외장디스크를 인식하면 개발용 PC에서 192.168.551.1로 접속
  • 개발용 PC에서 터미널을 열고 다음 명령어를 입력
1
2
3
4
# 내부 네트워크에 연결한 경우
ssh hanul@192.168.XXX.XXX
# Micro USB 케이블을 이용해서 연결한 경우
ssh hanul@192.168.55.1
  • 비밀번호는 hanul로 입력

VNC 사용하기

VNC를 이용하면 개발용 PC에서 EmVision의 화면을 볼 수 있습니다. EmVision은 리소스 절약을 위해 HDMI이 없는 경우 GUI 환경을 실행하지 않습니다. 따라서 HDMI로 모니터를 연결하지 않은 경우 VNC를 연결하면 NVIDIA 로고만 표시됩니다.

HDMI에 모니터를 연결한 경우에는 다음 명령어를 입력해서 VNC를 실행합니다.

1
2
3
4
5
# VNC 서버인 vino의 기본 설정
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
# vino-server 실행
DISPLAY=:0 /usr/lib/vino/vino-server

HDMI에 모니터를 연결하지 않은 경우는 TigerVNC를 이용해서 VNC 서버를 실행합니다.

TigerVNC를 이용해서 VNC를 사용하는 방법은 추후 업데이트 예정입니다. 기존 VINO 서버에 디스플레이를 직접 할당하는 방법에 비해 훨씬 간단하며 모니터가 없는 경우에도 VNC를 사용할 수 있는 TigerVNC의 일반적인 사용법을 소개할 예정입니다.

데모 앱 실행하기

추론 파이프라인 데모 앱 실행하기

Python3를 이용해서 사전에 설치되어있는 Jetson Inference의 데모를 실행하는 파이프라인을 제공합니다. 각 파이프라인은 GStreamer의 NVIDIA 플러그인을 활용하여 영상을 제어하며, TensorRT를 이용하여 모델 추론을 수행합니다.

1
2
cd ~/jetson-Demos
python3 app.py

Jetson 추론 데모 앱 실행 화면

버튼을 눌러 각 파이프라인을 수행할 수 있습니다.

  • actionnet : 행동 분류 모델
  • backgroundnet : 배경 제거 모델
  • depthnet : 깊이 인식 모델
  • detectnet : 객체 탐지 모델
  • imagenet : 이미지 분류 모델
  • posenet : 포즈 인식 모델
  • segnet : 시맨틱 세그멘테이션 모델

온라인 예제 활용하기

하늘소프트는 EmVision에서 시험을 완료한 예제를 오픈소스로 제공합니다.

LED 디스플레이에 표시하는 내용 변경하기

LED 디스플레이의 화면에 출력되는 내용을 직접 변경하는 예제입니다. 아래 내용을 다루고 있습니다.

  • 디스플레이에 한글을 출력하는 방법
  • 출력 내용에 애니메이션 효과를 주는 방법
  • 터미널 명령어의 출력 결과를 디스플레이에 표시하는 방법

Jetson Inference 데모

EmVision에서 Jetson Inference의 데모 애플리케이션을 실행하는 예제입니다. 아래 내용을 다루고 있습니다.

  • PyQt5를 사용하여 GUI 애플리케이션을 만드는 방법
  • 터미널 출력을 GUI에 표시하는 방법
  • Jetson Inference의 종류와 실행 방법

시작하기 단계의 문제 해결

HDMI 모니터에 화면이 나타나지 않을 때

  • 전원을 연결했을 때 냉각팬이 작동하는 소리가 들리는지 확인합니다.
    • 부팅이 되지 않은 상태에서는 냉각팬이 작동하지 않습니다.
    • 부팅이 되지 않을 때 항목을 참고하여 문제를 해결합니다.
  • 전원을 연결한 후 시간이 경과한 상태에서 HDMI케이블을 연결한 경우
    • 모니터에 따라 부팅 후에는 HDMI연결을 인식하지 못하는 경우가 있습니다.
    • HDMI케이블을 연결한 후 전원을 껐다가 다시 켜서 확인합니다.

부팅이 되지 않을 때

  • 전력이 부족한 경우
    • 보조배터리 등을 이용해 전원을 공급하는 경우 보조배터리가 PD출력을 지원해야 합니다.
    • 일반 5V/2A 충전기나 전원장치를 사용하는 경우 전력이 부족하여 부팅이 되지 않을 수 있습니다.
  • 부팅 후 VNC 화면이 NVIDIA 로고에서 멈춘 경우
    • 모니터를 연결하지 않은 상태에서는 VNC로 출력하는 DISPLAY=:0이 정의되지 않습니다.
  • 연결한 모니터에서 화면이 NVIDIA 로고에서 멈춘 경우
    • 많은 경우 gnome-session이 실행되기 전에 오류가 발생했거나 사용자가 gnome을 시작하지 않도록 설정한 경우입니다.
    • ssh 접속을 통해 dmesg 명령어를 실행하여 부팅 시의 오류 메시지를 확인합니다.

SSH 접속이 되지 않을 때

  • known_hosts 파일 관련
    • 동일한 IP로 다른 장비를 사용하는 경우 known_hosts 파일에 기존의 IP와 관련된 정보가 저장되어 있어 접속이 되지 않을 수 있습니다.
    • 이 경우 보안관련 경고 메시지가 출력되며 접속이 되지 않습니다.
    • {유저}/.ssh/known_hosts 파일을 삭제하거나 수정하여 문제를 해결할 수 있습니다.
  • 네트워크 환경 관련
    • 동일한 네트워크에 연결되어 있는지 확인합니다.
    • 표시되는 IP주소가 192.168.0.XXX라고 하더라도 다른 게이트웨이(공유기)에 연결되어 있을 수 있습니다.
  • USB 연결을 통해 SSH 연결을 시도하는 경우
    • USB 연결 후 L4T-README 드라이브가 새로 생성되었는지 확인합니다.
      • L4T-README 드라이브가 생성되지 않은 경우 USB 연결이 제대로 되지 않았거나 부팅때 문제가 발생한 것입니다.\
    • ssh hanul@192.168.55.1 명령어의 IP와 유저이름을 다시 한 번 확인합니다.
  • WIFI 연결을 지원하는 HOST PC와 USB 연결을 시도할 경우 알려진 DHCP 할당 오류가 있습니다
    • 네트워크 설정에서 Remote NDIS Compatible Device를 가진 이더넷 장치를 찾아 어뎁터 옵션을 확인합니다.
    • 네트워킹 속성의 Internet Protocol Version 4 (TCP/IPv4)의 속성을 편집합니다.
    • 수동 IP 사용 설정을 선택한 뒤 IP 주소를 192.168.55.100, 서브넷 마스크를 255.255.255.0으로 설정합니다.
    • 이후 ssh 접속을 시도합니다.