Skip to main content

Crate isaac_sim_bridge

Crate isaac_sim_bridge 

Source
Expand description

cxx::bridge core for the Isaac Sim Rust SDK.

Exposes a process-wide consumer registry and producer registry that adapters (dora, rerun, custom) plug into. The bridge cdylib entry points (forward_*, poll_cmd_vel) are gated behind the cdylib feature so the rlib path compiles on any machine without Isaac Sim installed.

Structs§

CameraDepth
Type-level marker for the per-pixel depth (metres, float32) camera channel.
CameraDepthMeta
C++-compatible metadata structs shared across the cxx::bridge boundary. Fields are named after physical quantities and need no further prose.
CameraInfo
Type-level marker for the camera-info (calibration metadata) channel.
CameraInfoFrame
One camera-info dispatch. Bundles the matrix and distortion slices alongside the small CameraInfoMeta so consumer callbacks don’t have to thread eight separate parameters.
CameraInfoMeta
C++-compatible metadata structs shared across the cxx::bridge boundary. Fields are named after physical quantities and need no further prose.
CameraRgb
Type-level marker for the RGB camera sensor channel.
CameraRgbMeta
C++-compatible metadata structs shared across the cxx::bridge boundary. Fields are named after physical quantities and need no further prose.
CmdVel
C++-compatible metadata structs shared across the cxx::bridge boundary. Fields are named after physical quantities and need no further prose.
CmdVelChannel
Type-level marker for the cmd_vel articulation channel.
Imu
Type-level marker for the IMU sensor channel. One sample per dispatch carries linear acceleration, angular velocity, and orientation packed into ImuMeta — no variable-sized payload.
ImuMeta
C++-compatible metadata structs shared across the cxx::bridge boundary. Fields are named after physical quantities and need no further prose.
LidarFlatScan
Type-level marker for the 2D RTX LiDAR FlatScan sensor channel.
LidarFlatScanMeta
C++-compatible metadata structs shared across the cxx::bridge boundary. Fields are named after physical quantities and need no further prose.
LidarPointCloud
Type-level marker for the 3D RTX LiDAR PointCloud sensor channel.
LidarPointCloudMeta
C++-compatible metadata structs shared across the cxx::bridge boundary. Fields are named after physical quantities and need no further prose.
Odometry
Type-level marker for the chassis odometry channel. One sample per dispatch carries position, orientation, and body-frame velocities packed into OdometryMeta — no variable-sized payload.
OdometryMeta
C++-compatible metadata structs shared across the cxx::bridge boundary. Fields are named after physical quantities and need no further prose.
ProducerRegistry
Per-target_id registry of producer slots. Each cmd_vel-shaped sensor (or controller target) gets its own keyed slot so multiple targets can co-exist and the C++ poll path looks up by target_id.
ProducerSlot
Lock-free single-slot store for a “latest-wins” producer.
SourceFilter
Filter for the per-source routing key adapters use to demultiplex dispatches from multiple sensors of the same type.

Traits§

Sensor
Type-level identifier for a sensor domain.

Functions§

camera_depth_consumer_count
Number of currently registered depth camera consumers.
camera_info_consumer_count
Number of currently registered camera-info consumers.
camera_rgb_consumer_count
Number of currently registered RGB camera consumers.
cmd_vel_consumer_count
Number of registered cmd_vel observers (adapters watching the actuation stream).
cmd_vel_producer_count
Number of distinct articulation targets that have registered a producer slot.
dispatch_camera_depth
Fan out a single depth camera frame to all registered consumers.
dispatch_camera_info
Fan out a single camera-info frame to all registered consumers.
dispatch_camera_rgb
Fan out a single RGB camera frame to all registered consumers.
dispatch_imu
Fan out a single IMU frame to all registered consumers.
dispatch_lidar_flatscan
Fan out a single LidarFlatScan frame to all registered consumers. Called by forward_lidar_flatscan after logging; also callable directly from tests or synthetic sources that bypass the C++ bridge path.
dispatch_lidar_pointcloud
Fan out a single LidarPointCloud frame to all registered consumers.
dispatch_odometry
Fan out a single odometry frame to all registered consumers.
imu_consumer_count
Number of currently registered IMU consumers.
lidar_flatscan_consumer_count
Number of currently registered LidarFlatScan consumers.
lidar_pointcloud_consumer_count
Number of currently registered LidarPointCloud consumers.
odometry_consumer_count
Number of currently registered odometry consumers.
peek_cmd_vel
Rust-friendly variant of poll_cmd_vel for tests + adapter inspection. Returns Some(CmdVel) when a producer is registered and has published at least once; None otherwise.
register_camera_depth_consumer
Register a callback to receive every depth camera frame the bridge dispatches. The closure runs on the bridge thread; keep it bounded.
register_camera_info_consumer
Register a callback to receive every camera-info frame the bridge dispatches. The closure runs on the bridge thread; keep it bounded.
register_camera_rgb_consumer
Register a callback to receive every RGB camera frame the bridge dispatches. The closure runs on the bridge thread; keep it bounded.
register_cmd_vel_consumer
Register a consumer that observes every Twist published into any cmd_vel producer slot. The closure receives (target_id, &CmdVel) — filter on target_id if you only care about one articulation.
register_cmd_vel_producer
Register (or fetch) a cmd_vel producer for target_id (typically the articulation prim path). Multiple writers can hold their own Arc to the slot — last publish wins.
register_imu_consumer
Register a callback to receive every IMU frame the bridge dispatches. The closure runs on the bridge thread; keep it bounded.
register_lidar_flatscan_consumer
Register a callback to receive every LidarFlatScan frame the bridge dispatches. The closure runs on the bridge thread; keep it bounded. Registrations accumulate for the lifetime of the process — there is no unregister; drop the adapter runner to stop receiving frames.
register_lidar_pointcloud_consumer
Register a callback to receive every LidarPointCloud frame the bridge dispatches. The closure runs on the bridge thread; keep it bounded.
register_odometry_consumer
Register a callback to receive every chassis odometry frame the bridge dispatches. The closure runs on the bridge thread; keep it bounded.