Skip to main content
The peaqOS ROS 2 packages live in peaqnetwork/peaq-robotics-ros2.

Prerequisites

Workspace build

The Docker image ships with ROS 2 Humble, IPFS (Kubo), and Python deps preinstalled.

Unified config

The node reads from a single peaq_robot.yaml. Start from the example and fill in placeholders:

peaq_os block

For agung testnet addresses see Install → Agung testnet contracts.

Environment overrides

The same overrides recognized by the Python SDK and JS SDK work here. Useful when you pin contract addresses externally:

Run the node

Confirm services are registered:
Run the node in the background and tail logs:
If multiple ROS 2 environments share a host, isolate them with ROS_DOMAIN_ID to prevent service collisions.

Production checklist

  • Use a local peaq_robot.yaml; do not commit machine , faucet codes, or RPC tokens.
  • Keep peaq_os.wallet_registry.path on encrypted robot storage when possible. Permissions 0600.
  • Use a reliable peaq EVM and monitor rate limits.
  • Record pre/post balances for any production bridge or event-spend test.
  • Fund Base ETH on the before attempting Base → peaq .
  • Pin peaqOS contract addresses to the values in Install unless deployment docs change.

Troubleshooting

The workspace expects peaq-os-sdk>=0.0.2. Install it inside the same Python env that runs ros2:
Verify with python3 -c "import peaq_os_sdk; print(peaq_os_sdk.__version__)".
Quote EVM addresses and large integers in ros2 service call payloads:
peaq_os.contracts.machine_nft_adapter is required only when bridging from peaq. Set it in peaq_robot.yaml or export MACHINE_NFT_ADAPTER_ADDRESS. Agung has no LayerZero DVN routes — test bridging on peaq mainnet ↔ Base mainnet only.
Continue to the full service reference.