Skip to main content

Module configuration

Module configuration 

Source
Expand description

§Configuration

§Runtime environment variables

ExecutorConfig::from_env() reads these at startup:

VariableDescriptionDefault
ROS_DOMAIN_IDROS 2 domain ID0
ZENOH_LOCATORRouter address (tcp/…, udp/…, or tls/…)tcp/127.0.0.1:7447
ZENOH_MODESession mode: client or peerclient
ZENOH_TLS_ROOT_CA_CERTIFICATEPath to CA certificate (PEM)
ZENOH_TLS_ROOT_CA_CERTIFICATE_BASE64Base64-encoded CA cert (bare-metal)

§Buffer tuning (build-time)

Set these environment variables before cargo build. After changing a value, run cargo clean -p zpico-sys (or xrce-sys) to force a rebuild.

Zenoh backend (ZPICO_*):

VariableDescriptionPosixEmbedded
ZPICO_FRAG_MAX_SIZEMax reassembled message size655362048
ZPICO_BATCH_UNICAST_SIZEMax unicast batch before fragmentation655361024
ZPICO_BATCH_MULTICAST_SIZEMax multicast batch size81921024
ZPICO_SUBSCRIBER_BUFFER_SIZEPer-subscriber buffer in zenoh shim10241024
ZPICO_SERVICE_BUFFER_SIZEPer-service-server buffer in zenoh shim10241024

XRCE-DDS backend (XRCE_*):

VariableDescriptionPosixEmbedded
XRCE_TRANSPORT_MTUTransport MTU (also sizes stream buffers)4096512
XRCE_BUFFER_SIZEPer-entity static buffer size10241024
XRCE_STREAM_HISTORYReliable stream history depth (>= 2)44

Core (NROS_*, C API only):

VariableDescriptionDefault
NROS_EXECUTOR_MAX_HANDLESMax handles in C API executor16
NROS_MAX_SUBSCRIPTIONSMax subscriptions8
NROS_MAX_TIMERSMax timers8
NROS_MAX_SERVICESMax services4
NROS_MESSAGE_BUFFER_SIZEMax buffer for subscription/service data4096
NROS_MAX_PARAMETERSMax parameters in parameter server32

Example — increase zenoh defrag to 128 KB for large point clouds:

ZPICO_FRAG_MAX_SIZE=131072 cargo build --features rmw-zenoh,platform-posix