Lirealsense2 Python

sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
6 là một tập hợp các ràng buộc Python cho thư viện
sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
7 của Intel. Cần chạy các ví dụ mã cho biết cách sử dụng trình bao bọc Python của LibRealSense

Bộ hướng dẫn này là tổng hợp của cả READMEs tại đây. Xây dựng LibRealSense từ nguồn

Cả hai README đều không đưa ra một bộ hướng dẫn đầy đủ để làm theo; . Do đó, tôi đã viết hướng dẫn này chủ yếu để bản thân tham khảo trong tương lai, nhưng cũng với hy vọng rằng nó có thể tiết kiệm thời gian của một số người khác. Các lệnh này đã được thử nghiệm để hoạt động trên Jetson NX chạy Ubuntu 18. 04 và sử dụng Python 3. 6. 9

Hướng dẫn này cung cấp một bộ hướng dẫn hoàn chỉnh để cài đặt

sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
7 và các liên kết của nó trên Jetson NX

điều kiện tiên quyết

Trước tiên, bạn nên ngắt kết nối Máy ảnh RealSense của mình nếu nó được kết nối, vì tập lệnh bash

sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
9 yêu cầu máy ảnh của bạn bị ngắt kết nối

Hướng dẫn

Bây giờ

sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
7 và
sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
6 sẽ được cài đặt trên máy tính của bạn. Để kiểm tra điều này, hãy tải xuống một tệp Python ví dụ (e. g. ví dụ trình xem opencv. py) và chạy nó với
dmesg

[  245.117583] usb 2-1: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[  245.138470] usb 2-1: New USB device found, idVendor=8086, idProduct=0b07, bcdDevice=50.ce
[  245.138485] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  245.138499] usb 2-1: Product: Intel(R) RealSense(TM) Depth Camera 435 
[  245.138511] usb 2-1: Manufacturer: Intel(R) RealSense(TM) Depth Camera 435 
[  245.138523] usb 2-1: SerialNumber: 020223022670
[  245.178153] uvcvideo: Unknown video format 00000050-0000-0010-8000-00aa00389b71
[  245.178354] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)
[  245.182825] input: Intel(R) RealSense(TM) Depth Ca as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb2/2-1/2-1:1.0/input/input0
[  245.183250] uvcvideo: Unknown video format 36315752-1a66-a242-9065-d01814a8ef8a
[  245.183265] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)
[  245.187161] usbcore: registered new interface driver uvcvideo
[  245.187169] USB Video Class driver (1.1.1)
[  250.017248] usb 2-1: USB disconnect, device number 2
[  250.297627] usb 2-1: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
[  250.322570] usb 2-1: New USB device found, idVendor=8086, idProduct=0b07, bcdDevice=50.ce
[  250.322588] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  250.322603] usb 2-1: Product: Intel(R) RealSense(TM) Depth Camera 435 
[  250.322617] usb 2-1: Manufacturer: Intel(R) RealSense(TM) Depth Camera 435 
[  250.322630] usb 2-1: SerialNumber: 020223022670
[  250.328686] uvcvideo: Unknown video format 00000050-0000-0010-8000-00aa00389b71
[  250.328907] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)
[  250.335195] input: Intel(R) RealSense(TM) Depth Ca as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb2/2-1/2-1:1.0/input/input1
[  250.336253] uvcvideo: Unknown video format 36315752-1a66-a242-9065-d01814a8ef8a
[  250.336268] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)
2. Bạn sẽ thấy một cửa sổ có cả RGBA và đầu ra độ sâu

tiện ích mở rộng trong tương lai

Tôi hiện đang cố gắng tạo Dockerfile dựa trên bộ hướng dẫn này. Hãy cho tôi biết nếu hướng dẫn không phù hợp với bạn bằng cách gửi email cho tôi theo địa chỉ

dmesg

[  245.117583] usb 2-1: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[  245.138470] usb 2-1: New USB device found, idVendor=8086, idProduct=0b07, bcdDevice=50.ce
[  245.138485] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  245.138499] usb 2-1: Product: Intel(R) RealSense(TM) Depth Camera 435 
[  245.138511] usb 2-1: Manufacturer: Intel(R) RealSense(TM) Depth Camera 435 
[  245.138523] usb 2-1: SerialNumber: 020223022670
[  245.178153] uvcvideo: Unknown video format 00000050-0000-0010-8000-00aa00389b71
[  245.178354] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)
[  245.182825] input: Intel(R) RealSense(TM) Depth Ca as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb2/2-1/2-1:1.0/input/input0
[  245.183250] uvcvideo: Unknown video format 36315752-1a66-a242-9065-d01814a8ef8a
[  245.183265] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)
[  245.187161] usbcore: registered new interface driver uvcvideo
[  245.187169] USB Video Class driver (1.1.1)
[  250.017248] usb 2-1: USB disconnect, device number 2
[  250.297627] usb 2-1: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
[  250.322570] usb 2-1: New USB device found, idVendor=8086, idProduct=0b07, bcdDevice=50.ce
[  250.322588] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  250.322603] usb 2-1: Product: Intel(R) RealSense(TM) Depth Camera 435 
[  250.322617] usb 2-1: Manufacturer: Intel(R) RealSense(TM) Depth Camera 435 
[  250.322630] usb 2-1: SerialNumber: 020223022670
[  250.328686] uvcvideo: Unknown video format 00000050-0000-0010-8000-00aa00389b71
[  250.328907] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)
[  250.335195] input: Intel(R) RealSense(TM) Depth Ca as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb2/2-1/2-1:1.0/input/input1
[  250.336253] uvcvideo: Unknown video format 36315752-1a66-a242-9065-d01814a8ef8a
[  250.336268] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)
3

Robot tự điều hướng cần mô hình môi trường xung quanh. Đối với điều này, một số cảm biến hình ảnh có thể được sử dụng. Sau bài viết trước về tổng quan cảm biến hình ảnh, tôi quyết định sử dụng máy ảnh Intel Real Sense D435. Máy ảnh độ sâu RGB này có thể cung cấp hình ảnh âm thanh nổi và dữ liệu đám mây điểm, có hệ số nhỏ và được nhà sản xuất hỗ trợ tích cực để cung cấp hỗ trợ cho hệ điều hành rô-bốt

Hãy bắt đầu lại từ đầu và xem khả năng của SDK của nó. Bài viết này hướng dẫn cách cài đặt RealSense SDK và hiển thị các Chương trình Python mẫu mà máy ảnh có thể được sử dụng để tạo và biến đổi ảnh

Bối cảnh kỹ thuật của bài viết này là Ubuntu Server 20. 04 LTS và Lirealsense v2. 45. 0. Các bước trong bài viết này phải tương thích với các hệ thống Linux dựa trên Debian khác và các phiên bản SDK trong tương lai

Bài viết này ban đầu xuất hiện tại blog của tôi admantium. com

Cài đặt RealSense SDK

Để cài đặt Intel Real Sense SDK, có hai tùy chọn. Cài đặt từ đầu hoặc sử dụng các gói Debian dựng sẵn. Chúng tôi sẽ sử dụng phương pháp sau vì nó đơn giản hóa đáng kể việc cài đặt tổng thể. Nếu bạn muốn sử dụng các tính năng mới nhất của SDK, hãy xem bài viết trước của tôi để biết giải thích chi tiết từng bước về quá trình biên dịch và cài đặt thủ công

Chúng tôi sẽ làm theo tài liệu chính thức cho librealsense

Trước tiên, chúng tôi cần một kho lưu trữ bổ sung cho các nguồn gói hệ điều hành của chúng tôi và khóa GPG thích hợp của nó

sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo focal main" -u

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Sau đó, cập nhật các gói cục bộ

apt-get update

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Cuối cùng, chúng ta có thể cài đặt lib biên dịch sẵn

sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Nếu mọi việc suôn sẻ, hãy kết nối máy ảnh, tốt nhất là với USB3. 0 và chạy lệnh sau

dmesg

[  245.117583] usb 2-1: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[  245.138470] usb 2-1: New USB device found, idVendor=8086, idProduct=0b07, bcdDevice=50.ce
[  245.138485] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  245.138499] usb 2-1: Product: Intel(R) RealSense(TM) Depth Camera 435 
[  245.138511] usb 2-1: Manufacturer: Intel(R) RealSense(TM) Depth Camera 435 
[  245.138523] usb 2-1: SerialNumber: 020223022670
[  245.178153] uvcvideo: Unknown video format 00000050-0000-0010-8000-00aa00389b71
[  245.178354] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)
[  245.182825] input: Intel(R) RealSense(TM) Depth Ca as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb2/2-1/2-1:1.0/input/input0
[  245.183250] uvcvideo: Unknown video format 36315752-1a66-a242-9065-d01814a8ef8a
[  245.183265] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)
[  245.187161] usbcore: registered new interface driver uvcvideo
[  245.187169] USB Video Class driver (1.1.1)
[  250.017248] usb 2-1: USB disconnect, device number 2
[  250.297627] usb 2-1: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
[  250.322570] usb 2-1: New USB device found, idVendor=8086, idProduct=0b07, bcdDevice=50.ce
[  250.322588] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  250.322603] usb 2-1: Product: Intel(R) RealSense(TM) Depth Camera 435 
[  250.322617] usb 2-1: Manufacturer: Intel(R) RealSense(TM) Depth Camera 435 
[  250.322630] usb 2-1: SerialNumber: 020223022670
[  250.328686] uvcvideo: Unknown video format 00000050-0000-0010-8000-00aa00389b71
[  250.328907] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)
[  250.335195] input: Intel(R) RealSense(TM) Depth Ca as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb2/2-1/2-1:1.0/input/input1
[  250.336253] uvcvideo: Unknown video format 36315752-1a66-a242-9065-d01814a8ef8a
[  250.336268] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435  (8086:0b07)

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Bây giờ chúng ta có thể bắt đầu một trong những công cụ tích hợp để xem thư viện có hoạt động không. Đơn giản nhất là hiển thị tất cả các thiết bị được kết nối

rs-enumerate-devices 
Device info: 
    Name                          :  Intel RealSense D435
    Serial Number                 :  018322070534
    Firmware Version              :  05.12.14.50
    Recommended Firmware Version  :  05.12.15.50
    Physical Port                 :  2-1-5
    Debug Op Code                 :  15
    Advanced Mode                 :  YES
    Product Id                    :  0B07
    Camera Locked                 :  YES
    Usb Type Descriptor           :  3.2
    Product Line                  :  D400
    Asic Serial Number            :  020223022670
    Firmware Update Id            :  020223022670

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Khi thiết bị mà bạn đã cài đặt SDK cũng có môi trường đồ họa, bạn cũng có thể thực thi

apt-get update
9

Lirealsense2 Python

Cấu hình hệ thống bổ sung

Khi SDK được cài đặt và các công cụ trợ giúp librealsense đang hoạt động, chúng ta chỉ cần thực hiện thêm một vài bước để thiết lập toàn bộ hệ thống

A. Thêm đường dẫn cài đặt SDK lirealsense - mặc định là

sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
0 - vào biến môi trường
sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
1

________số 8

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

B. Cài đặt các thư viện bổ sung sau để các ví dụ hoạt động. Numpy là một thư viện dành cho máy tính khoa học và OpenCV cung cấp một số thuật toán thị giác máy tính

python3 -m pip install opencv-python numpy

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

C. Trong tất cả các tập lệnh Python, hãy nhập thư viện như sau (như được đề xuất trong vấn đề Github

apt-get update
0

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Bây giờ chúng ta có thể viết Python Script để sử dụng máy ảnh trực tiếp

Ví dụ từng bước để xử lý ảnh

Để bắt đầu, chúng ta hãy xem ví dụ chính thức từng bước

Phần đầu tiên của ví dụ này nhập các ràng buộc SDK

sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
2 và hai thư viện Python
sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
3 và
sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
4

apt-get update
4

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Sau đó, hai đối tượng từ

sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev
2 được tạo. Xác định các thông số và khả năng khác nhau của camera được kết nối, Đối tượng đại diện cho cấu hình tổng thể và chuỗi các mô-đun thị giác máy tính được áp dụng cho luồng hình ảnh liên tục mà camera tạo ra

apt-get update
6

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Sau đó, mã ví dụ sẽ xác định các đặc điểm khác nhau của thiết bị được kết nối và thăm dò một loại thiết bị cụ thể. Điều này xảy ra vì các ví dụ sẽ hỗ trợ nhiều loại thiết bị, nhưng bạn có thể bỏ qua chúng trong các ví dụ của riêng mình nếu bạn làm việc với một kiểu máy cụ thể

apt-get update
0

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Khi cấu hình kết thúc, chúng ta có thể bắt đầu đường ống

apt-get update
1

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Và sau đó sử dụng thư viện OpenCV để xử lý luồng hình ảnh theo một số bước

A. Lắp ráp và hình ảnh trong đó có khung màu và khung độ sâu

apt-get update
2

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

B. Hình ảnh sau đó được chuyển đổi thành một đại diện mảng

apt-get update
3

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

C. . và tới bản đồ pixel 8 bit

apt-get update
4

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

D. Trước khi sử dụng biểu diễn hình ảnh, kiểm tra độ chính xác được thực hiện để đảm bảo các khung màu và độ sâu có cùng độ phân giải - nếu không, chúng sẽ được áp dụng ngay lập tức

apt-get update
5

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

E. Khi biểu diễn hình ảnh đã sẵn sàng, chúng ta có thể sử dụng các chức năng OpenCV khác như lưu hình ảnh

apt-get update
6

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

F. . hoặc thậm chí mở một cửa sổ đồ họa hiển thị luồng camera

apt-get update
7

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

  1. Bước cuối cùng trong ví dụ là đóng đối tượng đường ống

    apt-get update
    
    8

Để tạo ấn tượng cho bạn, đây là một ví dụ về hình ảnh được lưu trữ

Lirealsense2 Python

và đây là cửa sổ đồ họa với luồng video trực tiếp

Lirealsense2 Python

Phần kết luận

SDK Lirealsense cung cấp các liên kết Python để định cấu hình máy ảnh Realsense được kết nối và bắt đầu truyền phát hình ảnh. Theo ví dụ chính thức, luồng này có thể được xử lý bằng thư viện Python Numpy và OpenCV. Chúng tôi đã học được từ ví dụ chính thức các bước cần thiết. a) Tạo các đối tượng Python đại diện cho cấu hình của thiết bị, b) tạo một đối tượng Python đại diện cho quy trình xử lý hình ảnh, c) căn chỉnh dữ liệu độ sâu và màu sắc, d) chuyển đổi hình ảnh thành biểu diễn mảng và e) sử dụng các hàm tiện ích OpenCV để lưu hình ảnh hoặc mở cửa sổ đồ họa để hiển thị luồng video trực tiếp

Từ đây, làm thế nào để tiếp tục một mình? . Để thực sự thành thạo nó, bạn cũng cần đầu tư thời gian để tìm hiểu về OpenCV, ví dụ từ hướng dẫn bằng văn bản này hoặc khóa học video chính thức