Skip to main content
The ROS 2 SDK is a work in progress. Commands, launch files and interfaces can change between releases.
The examples package ships Python scripts that call into ROS 2 services and topics. Use them as starting points for automated tests or operator tooling. The scripts call their services relative to their own node name, so remap them onto peaq_core_node when you run them.

create_identity.py

The script sets request.name, a field IdentityCreate does not have, so it exits with an AttributeError before calling the service. Create the identity with ros2 service call as shown in Identity instead.

send_store_add_data.py

  • Stores a fixed telemetry sample under TELEMETRY_ROBOT_001 in FAST mode, with no prompts
  • Calls /peaq_core_node/storage/add directly, not the storage bridge, and does not retry
  • Reads the key back after two seconds
Embed the client class (StorageClient) in your own scripts as a starting point for storage service calls.

emit_intent.py

Publishes structured Event messages to peaq/events without a humanoid adapter:
  • Provides menus for locomotion, posture, and gesture intents
  • Publishes events onto peaq/events so subscribers can observe the payloads

user_quickstart.py

The script sets IdentityCreate.Request.name, a field the service does not have, so it exits with an AttributeError at identity creation before reaching storage or access control. Use the per-service examples instead: send_store_add_data.py above for storage, and the service calls in Identity and Access Control.

Utilities

  • inspect_sdk.py: prints the method signatures of the SDK access and identity calls
  • print_wallet_addr.py: prints the address of the keystore at /root/.peaq_robot/wallet.json (the path is hardcoded; edit PATH in the script for any other keystore)
  • retry_failed_storage.py: replays failed storage submissions recorded by the storage bridge, and lives in the repository-root scripts/ directory (python3 scripts/retry_failed_storage.py)
Run each script with python3 from the repository; they are not registered as ros2 run executables. All scripts expect the workspace to be sourced and the relevant nodes running. Combine them with the example launches to exercise complete robotics pipelines without writing additional code.