File size: 2,744 Bytes
b0356b6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# rSkill manifest — find-object (kind: playbook)
#
# A symbolic S2 *decision procedure* the Reasoner reads (not a neural policy):
# locate a named object, falling back to bounded commonsense active search and
# finally human handoff. Composes existing read-only + actuating reasoner tools;
# carries no weights and never actuates directly (every motion it triggers is an
# ExecuteRskill → Action chunk → C++ safety kernel).

schema_version: "0.1"
name: "OpenRAL/rskill-playbook-find_object"
version: "0.1.0"
license: "apache-2.0"
role: "s2"
kind: "playbook"

# Embodiment-agnostic — a playbook is gated by capabilities_required, not by a
# specific embodiment. Declared explicitly with the "any" wildcard (never an
# empty list, which the manifest validator rejects).
embodiment_tags: ["any"]

# Real RobotCapabilities flag: locating an object requires a camera. The loader's
# capability gate (openral_rskill.loader.check_capability_flags) raises
# ROSCapabilityMismatch on any robot that does not declare `has_vision: true`,
# or on an unknown flag name — so only real capability fields belong here. The
# navigation / container-opening the SOP performs is gated at runtime by the
# composed tools' own requirements, not by this playbook's flags.
capabilities_required:
  has_vision: true

# A playbook actuates nothing itself.
actuators_required: []

# Required field; pinned to 1 like the perception kinds (no Action rows).
chunk_size: 1

# S2 planning budget (~0.2 Hz tick). CI enforces on the reference host.
latency_budget:
  per_chunk_ms: 5000.0

description: >
  S2 decision procedure: locate a named object, falling back to bounded
  commonsense active search and finally human handoff. Composes recall_object,
  resolve_place, locate_in_view and NAVIGATE/OPEN skills.

# RSkillAction.PLAN — registry/discovery metadata only (a playbook is role s2,
# never an ExecuteSkill dispatch verb).
actions:
  - "plan"

objects:
  - "open-vocabulary object"
scenes:
  - "kitchen"
  - "indoor"

# Provenance citation (a playbook has no weights / upstream model repo, so a
# citation is still required for publish-readiness — CLAUDE.md §6.4). The
# The authoring decision record is private (OpenRAL/management); this points at
# the public stub that explains where it lives.
paper_url: "https://github.com/OpenRAL/openral/blob/master/docs/decisions.md"

# The playbook decision-procedure contract.
playbook:
  trigger: "the goal names a physical object whose location is not given"
  body_uri: "./PLAYBOOK.md"
  composes_tools:
    - "recall_object"
    - "resolve_place"
    - "locate_in_view"
    - "execute_rskill"
    - "memory_search"
  done_predicate: "the target object is confirmed in view at a known pose"
  max_steps: 12