시작하기 (스마트 블레이즈)#
Smart Blaze 카메라의 초기 설정 및 IP 구성에 대한 자세한 내용은 ‘카메라 설치(Blaze) ’ 항목을 참조하십시오.
정보
이 문서 전체에서 다음을 ${cameraip} 다음에서 설정한 IP 주소를 사용하여 pylon IP Configurator. 편의를 위해 다음 줄을 ~/.bashrc 컴퓨터에 있는 파일 (IP 주소를 실제 IP 주소로 변경하세요):
이를 통해 이 항목에 있는 명령어를 수정할 필요 없이 터미널에 바로 복사하여 붙여넣을 수 있습니다. 이 줄을 추가한 후 설정 파일을 다시 불러오는 것을 잊지 마세요:
카메라 설정 및 IP 구성#
Smart Blaze VM 웹 인터페이스에 접속하기#
Smart Blaze에는 Debian Trixie를 기반으로 한 기본 가상 머신이 함께 제공됩니다.
Smart Blaze VM Control 웹 인터페이스를 사용하여 VM을 제어하고 상태를 확인할 수 있습니다. 웹 인터페이스에 접속하려면 터미널에 다음 명령어를 입력하십시오:
그러면 기본 웹 브라우저가 실행되고 Smart Blaze VM Control 로그인 웹 인터페이스가 표시됩니다. 기본 비밀번호를 입력하여 로그인하십시오. 기본 비밀번호는 카메라에 부착된 라벨에서 확인할 수 있습니다. 보안상의 이유로, Basler는 첫 로그인 후 비밀번호를 변경할 것을 권장합니다. 비밀번호를 변경하려면 웹 인터페이스에서 ‘비밀번호 변경’ 버튼을 클릭하십시오.
현재 비밀번호를 입력하면 Smart Blaze VM Control 웹 인터페이스가 표시됩니다:

VM이 실행 중일 때, 상태 정보에는 kvm_machine.service가 로드되어 활성 상태임을 나타내야 합니다. 정보 영역에는 “Active: active (running)”이라는 문자열이 표시되어야 합니다.
기본 VM을 처음 사용하기 전에, 표시되는 메시지 대화 상자에서 수동으로 시작을 확인해야 합니다.
VM에 IP 주소 할당하기#
기본적으로 VM은 DHCP 을 통해 IP 주소를 획득하려고 시도합니다. 카메라가 컴퓨터에 직접 연결되어 있고 DHCP 서버를 사용할 수 없는 경우, 이 작업은 실패합니다. 이 경우 Smart Blaze VM Control 웹 인터페이스를 사용하여 고정 IP 주소를 수동으로 설정하십시오.
-
수동 IP 주소 구성을 위해 IP 주소 입력 필드에 IP 주소를 입력할 때는 다음 형식을 사용하십시오.
a.b.c.d/maskbits
마지막에 오는 마스크 비트 값은 서브넷 마스크에서 설정된 비트 수를 정의합니다. 예:
192.168.1.127/24를 입력하면 VM에 다음 구성이 적용됩니다.
IP 주소: 192.168.1.127
서브넷 마스크: 255.255.255.0 -
수동 IP 설정을 위해 주 및 보조 도메인 네임 서버(DNS)를 다음 형식에 따라 입력하거나 비워 두십시오:
a.b.c.d - 게이트웨이를 다음 형식으로 입력하거나 비워 두십시오:
a.b.c.d
이 필드를 비워 두면 DHCP 에서 제공하는 게이트웨이가 사용됩니다. 값을 입력하면 해당 게이트웨이가 수동 IP 구성에 사용됩니다.
DHCP 설정을 위한 현재 IP 주소 표시#
DHCP 이 정상적으로 설정되어 있다면, 가상 머신은 DHCP 서버로부터 자동으로 IP 주소를 할당받습니다. 할당된 IP 주소를 확인하려면 다음과 같은 몇 가지 방법이 있습니다:
Smart Blaze VM Control 웹 인터페이스 사용 (권장)#
VM에 qemu-guest-agent 패키지가 설치되어 있으면, Smart Blaze VM Control 웹 인터페이스에서 VM의 현재 IP 주소를 자동으로 표시할 수 있습니다. qemu-guest-agent는 게스트 VM 내에서 실행되는 보조 데몬으로, 네트워크 구성을 비롯한 게스트 VM에 대한 정보를 호스트 시스템에 제공합니다.
정보
가상 머신(VM)에 qemu-guest-agent가 설치되어 실행 중이라면, Smart Blaze VM Control 웹 인터페이스를 통해 IP 주소를 확인할 수 있습니다. 에이전트가 설치되어 있지 않은 경우, 웹 인터페이스는 가상 머신이 네트워크를 통해 Blaze 호스트 시스템과 통신할 때에만 가상 머신의 현재 IP 주소를 가져올 수 있습니다.
qemu-guest-agent 패키지는 VM 빌드 과정에서 설치되도록 구성되어 있습니다. 이는 blazevm.xml 파일에 명시되어 있습니다. 이 파일은 기본 설치 디렉터리인 /opt/pylon/share/pylon/Samples/blaze/smartblaze/vm/elbe/blazevm.xml에서 확인할 수 있습니다.
사용자 정의 VM 이미지를 구축하는 경우, 구성 파일의 패키지 목록에 qemu-guest-agent가 포함되어 있는지 확인하십시오.
에이전트가 설치되고 실행되면, Smart Blaze VM Control 웹 인터페이스의 상태 정보 영역에 해당 VM의 현재 IP 주소가 자동으로 표시됩니다.
라우터 설정 확인#
가상 머신(VM)에 어떤 IP 주소가 할당되었는지 확인하는 또 다른 방법은 라우터의 ‘ DHCP ’ 클라이언트 목록이나 설정 인터페이스를 확인하는 것입니다.
Telnet을 통해 VM 부팅 콘솔에 연결하기#
qemu-guest-agent가 설치되어 있지 않거나 직접 접속을 원할 경우, VM의 부팅 콘솔에 연결하십시오. 이를 활성화하려면 웹 인터페이스에서 ‘시리얼 콘솔 텔넷 포트 활성화’ 확인란이 선택되어 있는지 확인하십시오. 그런 다음 텔넷을 통해 콘솔에 접속할 수 있습니다:
사용자 이름으로 로그인하세요 root 그리고 카메라 라벨에 인쇄된 비밀번호입니다. 다음 명령어를 입력하여 IP 주소를 확인하십시오:
출력 결과는 다음과 비슷하게 표시됩니다(실제 IP 주소는 다를 수 있습니다):
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 3e:41:20:7e:d2:ba brd ff:ff:ff:ff:ff:ff
inet 192.168.1.127/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
SSH를 통해 가상 머신에 연결하기#
정보
다음과 마찬가지로 ${cameraip} 변수, ${vmip} 이 문서 전체에서 카메라에서 실행 중인 VM의 IP 주소를 가리키는 데 사용될 것입니다. 다음 줄을 ~/.bashrc 편의를 위해 파일을 작성하세요(IP 주소는 상황에 맞게 조정하세요):
VM의 IP 주소를 확인한 후에는 사용자 이름을 사용하여 SSH를 통해 해당 VM에 연결할 수 있습니다. root 그리고 카메라 라벨에 인쇄된 비밀번호:
다음 명령을 실행할 수 있습니다. htop 가상 머신 내에서 어떤 프로그램이 실행 중인지 확인하려면 다음 명령어를 입력하세요:
$ htop
0[| 0.7%] Tasks: 15, 2 thr, 66 kthr; 1 running
1[| 0.6%] Load average: 0.00 0.00 0.00
2[| 2.0%] Uptime: 17:37:58
3[| 0.6%]
Mem[||||||| 71.5M/5.79G]
Swp[ 0K/0K]
[Main] [I/O]
PID USER PRI NI VIRT RES SHR S CPU%-MEM% TIME+ Command
643 root 20 0 4740 3156 2428 R 2.6 0.1 0:00.16 htop -M
1 root 20 0 164M 11032 8308 S 0.0 0.2 1:06.60 /sbin/init
141 root 20 0 33368 10308 9300 S 0.0 0.2 0:01.34 /lib/systemd/systemd-journal
162 root 20 0 24824 5752 4108 S 0.0 0.1 0:01.34 /lib/systemd/systemd-udevd
163 systemd-ti 20 0 90448 6804 5924 S 0.0 0.1 1:44.70 /lib/systemd/systemd-timesyn
179 systemd-ti 20 0 90448 6804 5924 S 0.0 0.1 0:58.75 /lib/systemd/systemd-timesyn
193 avahi 20 0 7224 3172 2820 S 0.0 0.1 0:00.13 avahi-daemon: running [Blaze
194 messagebus 20 0 8304 3436 3000 S 0.0 0.1 0:00.24 /usr/bin/dbus-daemon --syste
198 root 20 0 16876 6852 5940 S 0.0 0.1 0:01.25 /lib/systemd/systemd-logind
200 avahi 20 0 7116 308 0 S 0.0 0.0 0:00.00 avahi-daemon: chroot helper
203 root 20 0 2640 764 688 S 0.0 0.0 0:00.00 /sbin/agetty -o -p -- \u --n
205 root 20 0 2684 812 736 S 0.0 0.0 0:00.01 /sbin/agetty -o -p -- \u --k
208 root 20 0 16280 8776 7488 S 0.0 0.1 0:00.09 sshd: /usr/sbin/sshd -D [lis
F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit
보다 안전하고 편리한 접속을 위해 인증용 키 쌍을 설정하세요. 아직 ~/.ssh/id_rsa 컴퓨터에서 다음 단계를 따라 키 쌍을 생성할 수 있습니다:
-
다음 명령을 실행하고 모든 확인 메시지를 확인하십시오:
-
공개 키를 VM에 복사하세요.
마지막으로 루트 비밀번호를 한 번 더 입력하여 확인해야 합니다.
이제 매번 비밀번호를 입력하지 않아도 이 컴퓨터에서 가상 머신에 연결할 수 있습니다.
이 인증 방식을 사용하면 다음을 통해 VM으로 파일을 전송할 수도 있습니다. scp 도구. 더 효율적인 대안은 rsync 가상 머신에 이미 설치되어 있는 유틸리티.
Smart Blaze VM용 소프트웨어 개발#
Smart Blaze VM용 소프트웨어를 개발하기 위해 Smart Blaze SDK는 두 가지 크로스 개발 환경 옵션을 제공합니다:
- ELBE SDK: ELBE(Embedded Linux Build Environment)에는 크로스 개발 툴체인과 대상 루트 파일 시스템에 필요한 모든 개발 패키지가 포함되어 있습니다.
- Docker 컨테이너: 크로스 개발 툴체인과 필요한 모든 패키지가 포함되어 있습니다.
C++ 샘플: 건물 화재#
pylon Supplementary Package for blaze 에는 Basler pylon SDK를 사용하여 카메라를 제어하는 방법을 보여주는 여러 C++ 예제가 포함되어 있습니다.
아직 설치하지 않으셨다면, 개발용 컴퓨터에 최신 pylon SDK와 Linux 용 pylon Supplementary Package for blaze 를 설치하십시오. 이 패키지들은 Basler 웹사이트에서 다운로드할 수 있습니다.
다음 빌드 환경 중에서 선택할 수 있습니다:
ELBE SDK를 사용하여 샘플 빌드하기#
아직 수행하지 않으셨다면, ‘ELBE SDK를 사용한 크로스 빌딩’ 섹션에 설명된 대로 ELBE SDK를 생성하고 설치하십시오.
샘플을 빌드하고 카메라 VM으로 복사하려면 다음 명령어를 실행하십시오:
cp -r /opt/pylon/share/pylon/Samples/blaze/cpp ./blaze_samples
cd blaze_samples
. /opt/elbe-sdk-aarch64-linux-gnu-BlazeVM-1.2/environment-setup-elbe-aarch64-linux-gnu-BlazeVM-1.2
# Adjust the path for the CMake toolchain file from the Smart blaze SDK as needed.
export CMAKE_TOOLCHAIN_FILE=/opt/pylon/share/pylon/Samples/blaze/smartblaze/vm/elbe/cross-toolchain.cmake/cross-toolchain.cmake
cmake -B build .
cmake --build build -j$(nproc)
ssh root@${vmip} mkdir -p samples
scp $(find build/ -type f -executable | egrep -w -v "ColorAndDepth|CMakeFiles") root@${vmip}:samples
Docker 컨테이너를 사용하여 샘플 구축하기#
아직 만들지 않으셨다면, 다음을 생성하십시오. dockerDo 아래에 설명된 별칭 Docker 컨테이너에서 명령어 실행하기.
샘플을 빌드하고 카메라 VM으로 복사하려면 다음 명령을 실행하십시오. 컨테이너에는 이미 환경 변수가 정의되어 있습니다. CMAKE_TOOLCHAIN_FILE, 이는 CMake가 ARM64 크로스 컴파일러 툴체인을 사용하도록 지시합니다.
dockerDo cp -r /opt/pylon/share/pylon/Samples/blaze/cpp ./blaze_samples
cd blaze_samples
dockerDo cmake -B build .
dockerDo cmake --build build -j$(nproc)
ssh root@${vmip} mkdir -p samples
scp $(find build/ -type f -executable | egrep -w -v "ColorAndDepth|CMakeFiles") root@${vmip}:samples
Blaze C++ 예제 실행하기#
첫 번째 샘플은 발견되는 첫 번째 Blaze 카메라를 열고, 10프레임을 캡처한 다음, 몇 가지 픽셀 값을 출력합니다. 샘플을 실행하려면:
-
VM에 SSH 셸을 엽니다:
-
해당 셸에서 샘플을 실행하세요.
다음과 유사한 출력이 표시되어야 합니다:root@BlazeCustomerVM:~# ./samples/FirstSample Connected to camera Basler blaze-102S (40560199) User-defined name: Serial Number: 40560199 x= 11.9 y= 27.4 z=1753.7 intensity=51091 confidence=25577 x= 11.9 y= 27.4 z=1754.9 intensity=51006 confidence=25471 x= 11.9 y= 27.4 z=1755.7 intensity=51011 confidence=25478 x= 11.9 y= 27.4 z=1756.5 intensity=50728 confidence=25126 x= 11.9 y= 27.4 z=1757.1 intensity=50965 confidence=25420 x= 11.9 y= 27.5 z=1757.7 intensity=50963 confidence=25417 x= 11.9 y= 27.5 z=1758.3 intensity=50963 confidence=25417 x= 11.9 y= 27.5 z=1758.9 intensity=50859 confidence=25289 x= 11.9 y= 27.5 z=1759.5 intensity=50820 confidence=25240 x= 11.9 y= 27.5 z=1760.1 intensity=50803 confidence=25219 Press Enter to exit.
대화형 SSH 셸을 열지 않고 샘플을 직접 실행하려면 다음을 설정해야 합니다. GENICAM_GENTL64_PATH 환경 변수:
네트워크 전달#
카메라를 컴퓨터에 직접 연결하면 카메라 내의 가상 머신(VM)은 인터넷에 연결되지 않습니다. 가상 머신에서 인터넷 접속이 필요한 경우(예를 들어, 다음 명령어를 사용하여 데비안 아카이브에서 추가 패키지를 설치하려는 경우 apt-get), 컴퓨터에서 NAT 전달 규칙을 설정해야 합니다:
function setIptables() {
echo "iptables: $@"
if ! sudo iptables -C "$@"; then
sudo iptables -A "$@";
fi
}
DEVICE_WITH_CAMERA=eth0 # The network device on your PC to which the camera is connected
DEVICE_WITH_INTERNET=eth1 # The network device on your PC which provides the internet connection
OWN_IP=192.168.1.2 # Your PC's IP address on $DEVICE_WITH_CAMERA
VM_NET_PREFIX=24
setIptables FORWARD -s ${vmip} -o $DEVICE_WITH_INTERNET -i $DEVICE_WITH_CAMERA -j ACCEPT
setIptables FORWARD -i $DEVICE_WITH_INTERNET -d ${vmip} -m state --state RELATED,ESTABLISHED -j ACCEPT
setIptables POSTROUTING -t nat -o $DEVICE_WITH_INTERNET -j MASQUERADE
ssh root@${vmip} ip r add default via $OWN_IP dev eth0
ssh root@${vmip} bash -c "'echo nameserver 8.8.8.8 >> /etc/resolv.conf'"
이러한 설정을 적용하면 추가 패키지를 설치할 수 있을 것입니다:
ssh root@${vmip} apt-get update
ssh root@${vmip} apt-get install chocolate-doom
ssh -X root@${vmip} /usr/games/chocolate-doom
X11 포워딩#
일부 프로그래밍 예제에서는 OpenCV 시각화 창을 사용하여 카메라로 촬영한 이미지를 표시합니다. 개발 과정에서 촬영하거나 처리한 이미지를 시각화하는 것은 매우 유용합니다. 이는 성능 저하를 감수하고 X11 포워딩을 통해 구현할 수 있습니다. X11 포워딩을 사용하면 가상 머신에서 실행 중인 애플리케이션이 로컬 머신의 화면에 그래픽 사용자 인터페이스를 표시할 수 있습니다.
X11 전달을 활성화하려면:
-
다음 명령을 사용하여
-X또는-YSSH를 통해 연결할 때의 옵션: -
이미지 창을 여는 샘플을 실행해 보세요:
컴퓨터 화면에 카메라에서 전송된 그레이스케일 심도 이미지가 표시된 창이 열릴 것입니다.
정보
터미널에서 다음과 유사한 오류 메시지가 표시될 수 있습니다.
이는 X11 전달에 추가적인 시간이 소요되어 캡처 루프의 속도가 느려지고, 그 결과 프레임이 누락되기 때문입니다. 프레임 속도를 낮게 설정하면 이러한 현상을 방지할 수 있습니다.
프레임 속도를 낮추는 방법은 ‘프레임 속도 제어’를 참조하십시오.
X11 전달 중에도 프레임 드롭의 위험 없이 작동하는 또 다른 방식은, 현재 프레임의 처리가 완료된 후에만 다음 프레임이 트리거되도록 소프트웨어 트리거 기능을 사용하는 것입니다. 이 경우 애플리케이션이 다음 프레임을 요청하기 전에 잠시 대기하기 때문에 프레임 속도가 낮아집니다.
Blaze Python 예제 실행하기#
파이썬 예제 코드에서는 OpenCV 또는 Open3D를 사용합니다. 파이썬 예제 코드를 실행하려면:
-
X11 전달이 활성화된 SSH 셸을 엽니다:
-
해당 셸 내에서 sample 디렉토리로 이동합니다:
-
샘플을 실행해 보세요. 다음과 유사한 출력 결과와 OpenCV 또는 Open3D 시각화 창이 표시되어야 합니다:
Using device blaze-102S OperatingMode: LongRange FastMode: False FilterSpatial: True FilterTemporal: True FilterStrength: 220 OutlierRemoval: True ConfidenceThreshold: 320 GammaCorrection: True Min. Depth [mm]: 0 Max. Depth [mm]: 9990 To exit, press ESC in one of the image windows$ python3 ShowPointCloud/show_point_cloud.py Using device blaze-102S [Open3D DEBUG] GLFW init. To exit, press ESC in one of the image windows. To save a point cloud as .pcd file, press S in one of the image windows. [Open3D DEBUG] Add geometry and update bounding box to [(-1565.8367, -1279.5530, 0.0000) - (1694.7946, 50.7543, 2803.0823)] [Open3D DEBUG] Global colormap init.