Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

hex_dora_node_camera

Dora nodes for capturing and viewing camera images. Supports multiple camera backends including USB cameras, Intel RealSense, Berxel depth cameras, and a dummy camera for testing.

Nodes

Node Description Inputs Outputs
hex-dora-node-usb USB camera capture (V4L2) tick color
hex-dora-node-realsense Intel RealSense depth camera capture tick color, depth
hex-dora-node-berxel Berxel depth camera capture tick color, depth
hex-dora-node-dummy Dummy camera for testing (generates synthetic frames) tick color
hex-dora-node-test-usb OpenCV window viewer for USB color stream tick, color -
hex-dora-node-test-realsense OpenCV window viewer for RealSense color/depth streams tick, color, depth -
hex-dora-node-test-berxel OpenCV window viewer for Berxel color/depth streams tick, color, depth -
hex-dora-node-test-dummy OpenCV window viewer for dummy color stream with optional timestamp overlay tick, color -

Installation

# Base (includes usb, dummy, and test nodes)
pip install hex_dora_node_camera

# With Berxel support
pip install hex_dora_node_camera[berxel]

# With RealSense support
pip install hex_dora_node_camera[realsense]

# All backends
pip install hex_dora_node_camera[all]

YAML Examples

USB Camera

nodes:
  - id: cam_usb
    build: pip install hex_dora_node_camera
    path: hex-dora-node-usb
    inputs:
      tick: dora/timer/millis/2
    outputs:
      - color
    env:
      NODE_NAME: cam_usb
      # base
      FRAME_RATE: 30
      HEIGHT: 480
      WIDTH: 640
      CAM_BUFFER_SIZE: 8
      SEN_TS: True
      # usb
      CAM_PATH: /dev/video0
      EXPOSURE: 0
      TEMPERATURE: 0
      # encoding
      COLOR_ENCODING: mjpg # bgr8 or mjpg

  - id: test_usb
    build: pip install hex_dora_node_camera
    path: hex-dora-node-test-usb
    inputs:
      tick: dora/timer/millis/2
      color: cam_usb/color
    env:
      NODE_NAME: test_usb

Intel RealSense

nodes:
  - id: cam_realsense
    build: pip install hex_dora_node_camera[realsense]
    path: hex-dora-node-realsense
    inputs:
      tick: dora/timer/millis/2
    outputs:
      - color
      - depth
    env:
      NODE_NAME: cam_realsense
      # base
      FRAME_RATE: 30
      HEIGHT: 480
      WIDTH: 640
      CAM_BUFFER_SIZE: 8
      SEN_TS: True
      # realsense
      SERIAL_NUMBER: b021222071077
      # encoding
      COLOR_ENCODING: bgr8 # bgr8 or mjpg
      DEPTH_ENCODING: uint16 # uint16 or png

  - id: test_realsense
    build: pip install hex_dora_node_camera
    path: hex-dora-node-test-realsense
    inputs:
      tick: dora/timer/millis/2
      color: cam_realsense/color
      depth: cam_realsense/depth
    env:
      NODE_NAME: test_realsense

Berxel Depth Camera

nodes:
  - id: cam_berxel
    build: pip install hex_dora_node_camera[berxel]
    path: hex-dora-node-berxel
    inputs:
      tick: dora/timer/millis/2
    outputs:
      - color
      - depth
    env:
      NODE_NAME: cam_berxel
      # base
      FRAME_RATE: 30
      HEIGHT: 400
      WIDTH: 640
      CAM_BUFFER_SIZE: 8
      SEN_TS: True
      # berxel
      SERIAL_NUMBER: bP050HYX5410E1A001
      EXPOSURE: 10000
      GAIN: 100
      # encoding
      COLOR_ENCODING: bgr8 # bgr8 or mjpg
      DEPTH_ENCODING: uint16 # uint16 or mjpg

  - id: test_berxel
    build: pip install hex_dora_node_camera
    path: hex-dora-node-test-berxel
    inputs:
      tick: dora/timer/millis/2
      color: cam_berxel/color
      depth: cam_berxel/depth
    env:
      NODE_NAME: test_berxel

Dummy Camera (Testing)

nodes:
  - id: cam_dummy
    build: pip install hex_dora_node_camera
    path: hex-dora-node-dummy
    inputs:
      tick: dora/timer/millis/2
    outputs:
      - color
    env:
      NODE_NAME: cam_dummy
      # base
      FRAME_RATE: 30
      HEIGHT: 480
      WIDTH: 640
      CAM_BUFFER_SIZE: 8
      SEN_TS: True
      # encoding
      COLOR_ENCODING: bgr8 # bgr8 or mjpg

  - id: test_dummy
    build: pip install hex_dora_node_camera
    path: hex-dora-node-test-dummy
    inputs:
      tick: dora/timer/millis/2
      color: cam_dummy/color
    env:
      NODE_NAME: test_dummy
      SHOW_COLOR_TS: True

Inputs

Camera Nodes (usb / realsense / berxel / dummy)

Input Type Description
tick dora/timer/millis/* Timer tick to trigger frame capture

Test Nodes (test-usb / test-dummy)

Input Type Description
tick dora/timer/millis/* Timer tick to refresh display
color Arrow array Color image from a camera node

Test Nodes (test-realsense / test-berxel)

Input Type Description
tick dora/timer/millis/* Timer tick to refresh display
color Arrow array Color image from a camera node
depth Arrow array Depth image from a depth camera node

Outputs

color

Arrow array containing the color image.

color_data: UInt8Array  # pa.array(img.ravel()) or pa.array(jpeg_bytes)
metadata = {
    "width": int,       # e.g. 640
    "height": int,      # e.g. 480
    "encoding": str,    # "bgr8" or "mjpg"
    "primitive": "image",
}

depth

Arrow array containing the depth image (only for realsense and berxel).

depth_data: UInt16Array  # pa.array(depth.ravel()) or pa.array(png_bytes)
metadata = {
    "width": int,       # e.g. 640
    "height": int,      # e.g. 480
    "encoding": str,    # "uint16", "png" (realsense) or "mjpg" (berxel)
    "primitive": "image",
}

Environment Variables

Common (all camera nodes)

Variable Type Default Description
NODE_NAME str "" Dora node name
FRAME_RATE int 30 Camera frame rate
HEIGHT int 480 (400 for berxel) Image height in pixels
WIDTH int 640 Image width in pixels
CAM_BUFFER_SIZE int 8 Camera internal buffer size
SEN_TS bool True Use sensor timestamp
COLOR_ENCODING str bgr8 Color encoding: bgr8 or mjpg

USB Camera

Variable Type Default Description
CAM_PATH str /dev/video0 V4L2 device path
EXPOSURE int 100 Camera exposure value (0 = auto)
TEMPERATURE int 4000 White balance temperature (0 = auto)

Intel RealSense

Variable Type Default Description
SERIAL_NUMBER str (required) Device serial number (prefix with b)
DEPTH_ENCODING str uint16 Depth encoding: uint16 or png

Berxel

Variable Type Default Description
SERIAL_NUMBER str (required) Device serial number (prefix with b)
EXPOSURE int 10000 Camera exposure value
GAIN int 100 Camera gain value
DEPTH_ENCODING str uint16 Depth encoding: uint16 or mjpg

Test Dummy

Variable Type Default Description
NODE_NAME str "" Dora node name
SHOW_COLOR_TS bool False Overlay timestamp text on color image

License

This project is licensed under Apache-2.0.

Metadata

Release files for hex-dora-node-camera 0.0.1a5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hex-dora-node-camera 0.0.1a5
File Size Uploaded
hex_dora_node_camera-0.0.1a5.tar.gz 11.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hex-dora-node-camera 0.0.1a5
File Interpreter ABI Platform
hex_dora_node_camera-0.0.1a5-py3-none-any.whl Python 3 none any Details

Total release size: 27.3 kB

Release files / hex_dora_node_camera-0.0.1a5.tar.gz

Download URL hex_dora_node_camera-0.0.1a5.tar.gz
Size 11.6 kB
Tags Source
SHA-256 checksum
How to use checksums
baad97c32a95e21b0c2d10202715bec06114fa2f5c0bbaa860d4c28c5e2778f9
BLAKE2b-256 checksum
How to use checksums
1779eb7cbb7d1913e8feeff35238b6bdfd9cf0598af31db1803821b292c5975f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release files / hex_dora_node_camera-0.0.1a5-py3-none-any.whl

Download URL hex_dora_node_camera-0.0.1a5-py3-none-any.whl
Size 15.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
43422e8ec8cd9c30eadbf4e519f621237e7fa77b03d59f880c1fc86921378276
BLAKE2b-256 checksum
How to use checksums
baa9772d5c8ba4116c3b78a3d121c8e6b468d40f35931dcfbd5bbb13555b768b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page