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)
| File | Size | Uploaded | |
|---|---|---|---|
| hex_dora_node_camera-0.0.1a5.tar.gz | 11.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|