[isaacsim.hsb.bridge] Holoscan Sensor Bridge#
Version: 1.0.1
Extension: {{ extension_version }} |
Documentation Generated: Jun 05, 2026 |
Overview#
The isaacsim.hsb.bridge extension provides OmniGraph nodes that use the Holoscan Sensor Bridge (HSB) emulator to stream camera frames from Isaac Sim to external receivers with low latency.
Nodes#
HSB Camera Helper (HSBCameraHelper)#
The easiest way to stream a camera. Given a render product, it automatically wires the full pipeline (RGB conversion → CSI packing → HSB send) using Replicator writers registered by the extension.
Input |
Type |
Description |
|---|---|---|
|
token |
Render product to stream |
|
token |
|
|
string |
HSB target IP. Default: |
|
token |
|
|
uint |
Data plane ID |
|
uint |
Sensor ID |
|
bool |
Use system clock instead of simulation time |
|
bool |
Reset simulation timestamp on stop |
Typical setup: Add an OnPlaybackTick node and an Isaac Create Render Product node. Connect their execution ports in order, then connect Isaac Create Render Product.outputs:renderProductPath to HSBCameraHelper.inputs:renderProductPath. Configure type, ipAddress, and dataPlaneType on the helper to match your receiver.
RGB to VB1940 (RGBToVB1940)#
Converts an RGB(A) image to a VB1940 CSI frame entirely on the GPU (CUDA). Outputs a 1D byte buffer ready to pass to HSB Send. Used internally by the Replicator writers wired by HSB Camera Helper, but can also be placed manually in a graph.
Input |
Type |
Description |
|---|---|---|
|
uchar[] (cpu) |
RGB(A) pixel data (optional if |
|
uint64 |
Pointer to raw image data on GPU or CPU |
|
int |
CUDA device for |
|
uint |
Byte size of |
|
uint |
Image dimensions in pixels |
|
token |
|
|
token |
|
Output |
Type |
Description |
|---|---|---|
|
uchar[] (cpu) |
VB1940 CSI frame: 1 leading embedded line + image lines + 2 trailing embedded lines |
HSB Send (HSBSend)#
Sends a 1D byte buffer to an HSB receiver. The send is dispatched asynchronously via carb::tasking so the OmniGraph thread returns immediately; the previous frame’s send is drained at the start of the next frame.
Input |
Type |
Description |
|---|---|---|
|
uchar[] (cpu) |
Buffer to send (connect from |
|
string |
HSB target IP. Default: |
|
string |
|
|
uint |
Data plane ID |
|
uint |
Sensor ID |
|
double |
Timestamp in seconds |
Payload modes#
Mode |
|
|
Frame format |
|---|---|---|---|
VB1940 CSI Linux |
|
|
RAW10 4p5b, 8-byte line align |
VB1940 CSI over COE |
|
|
RAW10 4p5b, 8-byte line align |
VB1940 CSI COE |
|
|
RAW10 3p4b, 64-byte line align |
Note: The
linux_coeplayers expect the same 4p5b frame as the RoCE player. Usingvb1940_csi_coe(3p4b) with a Linux COE player causes “Ignoring contents for a packet” because the frame size exceeds the player’s buffer.
Enable Extension#
The extension can be enabled (if not already) in one of the following ways:
Define the next entry as an application argument from a terminal.
APP_SCRIPT.(sh|bat) --enable isaacsim.hsb.bridge
Define the next entry under [dependencies] in an experience (.kit) file or an extension configuration (extension.toml) file.
[dependencies]
"isaacsim.hsb.bridge" = {}
Open the Window > Extensions menu in a running application instance and search for isaacsim.hsb.bridge.
Then, toggle the enable control button if it is not already active.