Core peaq-robotics-ros2 runtime for OpenClaw. Start/stop ROS 2 nodes and call DID, storage, and access-control services. Use when requests are about running an existing peaq ROS2 workspace (not installing/building or sending funds).
Use this skill when a machine already has a working peaq-robotics-ros2 workspace and you want OpenClaw to run core ROS 2 nodes and call peaq services:
To keep this skill low-risk and easier to approve in registries, core excludes:
If you need install/bootstrap/funding automation, use the companion admin skill (peaq-robotics-admin).
Before using core commands, make sure these are already true:
ros2 works.peaq-robotics-ros2 workspace is already present and built.PEAQ_ROS2_ROOT points to that repo.PEAQ_ROS2_CONFIG_YAML, or<PEAQ_ROS2_ROOT>/peaq_ros2_examples/config/peaq_robot.yaml).Do the repo clone/build/config steps manually outside this skill using upstream peaq-robotics-ros2 docs, then set env for OpenClaw runtime:
export PEAQ_ROS2_ROOT="$HOME/peaq-robotics-ros2"
# optional
export PEAQ_ROS2_CONFIG_YAML="$HOME/peaq-robotics-ros2/peaq_ros2_examples/config/peaq_robot.yaml"
Tell them to create their own wrapper with only required setup and explicit config:
#!/usr/bin/env bash
set -euo pipefail
ros2 run peaq_ros2_core core_node --ros-args -p config.yaml_path:="$PEAQ_ROS2_CONFIG_YAML"
They can then run this directly, or still use this skill's commands for service calls.
Node lifecycle:
{baseDir}/scripts/peaq_ros2.sh core-start{baseDir}/scripts/peaq_ros2.sh core-configure{baseDir}/scripts/peaq_ros2.sh core-activate{baseDir}/scripts/peaq_ros2.sh core-stopIdentity:
{baseDir}/scripts/peaq_ros2.sh did-create{baseDir}/scripts/peaq_ros2.sh did-create '{"type":"robot"}'{baseDir}/scripts/peaq_ros2.sh did-create @/path/to/file.json{baseDir}/scripts/peaq_ros2.sh did-readStorage:
{baseDir}/scripts/peaq_ros2.sh store-add sensor_data '{"temp":25.5}' FAST{baseDir}/scripts/peaq_ros2.sh store-read sensor_dataAccess control:
{baseDir}/scripts/peaq_ros2.sh access-create-role operator 'Robot operator'{baseDir}/scripts/peaq_ros2.sh access-create-permission move_robot{baseDir}/scripts/peaq_ros2.sh access-assign-permission move_robot operator{baseDir}/scripts/peaq_ros2.sh access-grant-role operator did:peaq:<address>Identity card helpers:
{baseDir}/scripts/peaq_ros2.sh identity-card-json [name] [roles_csv] [endpoints_json] [metadata_json]{baseDir}/scripts/peaq_ros2.sh identity-card-did-create [name] [roles_csv] [endpoints_json] [metadata_json]{baseDir}/scripts/peaq_ros2.sh identity-card-did-readFunding request (message template only, no transfer):
{baseDir}/scripts/peaq_ros2.sh fund-request [amount] [reason]@/path/file.json inputs are restricted to built-in roots:
PEAQ_ROS2_ROOT.peaq_robotros2 service call (no shell YAML interpolation).agent_state, then read it back."operator, create permission move_robot, assign it, and show the response."For full service names and fields, see:
references/peaq_ros2_services.md