Dora Node for using Hex Camera
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hex_dora_node_camera-0.0.1a5.tar.gz.
File metadata
- Download URL: hex_dora_node_camera-0.0.1a5.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
baad97c32a95e21b0c2d10202715bec06114fa2f5c0bbaa860d4c28c5e2778f9
|
|
| MD5 |
3eafe17e711fb01f941c883ba6ba1a51
|
|
| BLAKE2b-256 |
1779eb7cbb7d1913e8feeff35238b6bdfd9cf0598af31db1803821b292c5975f
|
File details
Details for the file hex_dora_node_camera-0.0.1a5-py3-none-any.whl.
File metadata
- Download URL: hex_dora_node_camera-0.0.1a5-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43422e8ec8cd9c30eadbf4e519f621237e7fa77b03d59f880c1fc86921378276
|
|
| MD5 |
cfedeaa29f08064693504a1e38cff3c4
|
|
| BLAKE2b-256 |
baa9772d5c8ba4116c3b78a3d121c8e6b468d40f35931dcfbd5bbb13555b768b
|