{"schema":"dvidia.piper-recovery-protocol/v0.4","profile":"piper-rigid-block-task-v0.1","scope":"Paired authored PiPER recovery pilot, privileged native state and synthetic rigid blocks. No learned policy, sensor pipeline, calibrated contact, shoe competence or physical robot qualification.","physical_robot_ready":false,"learned_policy":false,"cohort":"confirmation","seed":941827,"scenes":[{"id":"friction080-mass040-layout00","layout_index":0,"stratum":"nominal","friction":0.8,"mass_kg":0.04,"seed":941827,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.3037608560719228,-0.03405242046629815,0.082],"target_position_m":[0.34503256651819053,0.0786886996481104,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.8,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction080-mass040-layout01","layout_index":1,"stratum":"nominal","friction":0.8,"mass_kg":0.04,"seed":941828,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29656340121595687,-0.026020093537794303,0.082],"target_position_m":[0.35176100234748053,0.08266685830625982,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.8,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction080-mass060-layout00","layout_index":0,"stratum":"nominal","friction":0.8,"mass_kg":0.06,"seed":941829,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.3037608560719228,-0.03405242046629815,0.082],"target_position_m":[0.34503256651819053,0.0786886996481104,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.8,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction080-mass060-layout01","layout_index":1,"stratum":"nominal","friction":0.8,"mass_kg":0.06,"seed":941830,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29656340121595687,-0.026020093537794303,0.082],"target_position_m":[0.35176100234748053,0.08266685830625982,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.8,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction055-mass040-layout00","layout_index":0,"stratum":"moderate_friction","friction":0.55,"mass_kg":0.04,"seed":941831,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.3037608560719228,-0.03405242046629815,0.082],"target_position_m":[0.34503256651819053,0.0786886996481104,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.55,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction055-mass040-layout01","layout_index":1,"stratum":"moderate_friction","friction":0.55,"mass_kg":0.04,"seed":941832,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29656340121595687,-0.026020093537794303,0.082],"target_position_m":[0.35176100234748053,0.08266685830625982,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.55,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction055-mass060-layout00","layout_index":0,"stratum":"moderate_friction","friction":0.55,"mass_kg":0.06,"seed":941833,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.3037608560719228,-0.03405242046629815,0.082],"target_position_m":[0.34503256651819053,0.0786886996481104,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.55,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction055-mass060-layout01","layout_index":1,"stratum":"moderate_friction","friction":0.55,"mass_kg":0.06,"seed":941834,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29656340121595687,-0.026020093537794303,0.082],"target_position_m":[0.35176100234748053,0.08266685830625982,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.55,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction015-mass040-layout00","layout_index":0,"stratum":"low_friction","friction":0.15,"mass_kg":0.04,"seed":941835,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.3037608560719228,-0.03405242046629815,0.082],"target_position_m":[0.34503256651819053,0.0786886996481104,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.15,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction015-mass040-layout01","layout_index":1,"stratum":"low_friction","friction":0.15,"mass_kg":0.04,"seed":941836,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29656340121595687,-0.026020093537794303,0.082],"target_position_m":[0.35176100234748053,0.08266685830625982,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.15,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction015-mass060-layout00","layout_index":0,"stratum":"low_friction","friction":0.15,"mass_kg":0.06,"seed":941837,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.3037608560719228,-0.03405242046629815,0.082],"target_position_m":[0.34503256651819053,0.0786886996481104,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.15,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction015-mass060-layout01","layout_index":1,"stratum":"low_friction","friction":0.15,"mass_kg":0.06,"seed":941838,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29656340121595687,-0.026020093537794303,0.082],"target_position_m":[0.35176100234748053,0.08266685830625982,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.15,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}}],"variants":["history_placement","history_open_jaw","recovery_carry_placement","recovery_carry_open_jaw","recovery_placement","recovery_open_jaw","hold"],"planned_attempts":84,"contract":{"profile":"piper-rigid-block-task-v0.1","scope":"Authored PiPER rigid-block contact pilot with privileged native state. Pinned upstream servos/inertias/collision proxies/gravity compensation, synthetic commands and uncalibrated contact. No learned skill, camera sensing, shoe manipulation or physical robot qualification.","physical_robot_ready":false,"arm_joint_order":["joint1","joint2","joint3","joint4","joint5","joint6"],"actions":{"joint_targets_rad":"six native position-servo targets in radians","gripper_position_m":"one native single-finger slide target in metres [0,.035]; 0 closed/.035 open; not measured full gap"},"gripper_joints":["joint7","joint8"],"independent_gripper_commands":1,"tcp":"authored site in link6 at local [0,0,.12003] near the distal finger-box centers; not hardware calibrated","object":"free rigid block with native gravity, no weld/equality/mocap or post-reset pose writes","contact":"stock native finger collision boxes; object priority1 authors pair friction explicitly","servo_gains":"unchanged upstream PiPER position servos and force caps; upstream robot gravcomp=1 retained","collision_support_exemption":"fixed base capsule may contact floor; moving robot/table/floor or block/nonfinger contacts are critical","observations":"privileged joint/object/TCP/contact state; no deployable sensor pipeline","success":"valid native physics, sustained bilateral table-free lift and retained carry to supported destination, then actual released/settled destination dwell and retreat","carry_contact_loss_tolerance_seconds":0.04,"contact_force_threshold_n":0.01,"simulation_asset_license":"MIT"},"contact_contract":{"schema":"dvidia.piper-contact-memory/v0.3","parameters":{"history_window_s":0.12,"minimum_history_s":0.1,"trend_rate_m_s":0.025,"trend_displacement_m":0.0025,"minimum_straightness":0.7,"trend_samples":2,"loss_samples":2,"slowdown_joint_delta_scale":0.35,"slowdown_duration_s":0.12,"hold_minimum_s":0.12,"hold_timeout_s":0.8,"settled_rate_m_s":0.008,"settled_displacement_m":0.0015,"settled_dwell_s":0.1,"resumed_joint_delta_scale":0.45,"maximum_reassessments":2},"acquisition":{"schema":"dvidia.piper-grip-guard/v1","parameters":{"probe_height_m":0.01,"probe_speed_m_s":0.02,"probe_min_object_rise_m":0.006,"qualification_dwell_s":0.1,"relative_drift_limit_m":0.003,"monitor_min_probe_motion_m":0.003,"consecutive_alarm_samples":2,"probe_timeout_s":1.4,"close_timeout_s":1.4,"retry_open_timeout_s":1.2,"retry_recenter_timeout_s":1.5,"retry_clearance_m":0.012,"max_retries":1},"observations":"grip check uses causal current privileged TCP/object pose and bilateral native contacts at 20 ms; no mass/friction or scorer input; downstream original motion policy remains unchanged and uses the existing lift outcome flag","qualification":"slow 10 mm probe; object rises at least 6 mm, both pads retain contact, support is absent and TCP-local drift <=3 mm for 100 ms","alarm":"two consecutive snapshots with relative drift, bilateral-contact loss or supported object failing to follow a moving probe; bounded closure/probe timeouts","recovery":"hold measured six joint targets first; only supported objects may be opened/recentered/retried, at most once; support loss stops closed","stop":"requested measured joint targets; native rate limiting and inertia may continue motion, which is recorded","duration":"original fixed episode timeout including every probe/retry/abort holding command","scope":"authored simulator controller, not a sensor implementation, hardware safety controller or learned policy"},"observations":"causal recorded privileged TCP/object poses and native contact/normal force snapshots; no material, mass, future observation or outcome input to the contact check","history":"inclusive past 120 ms of TCP-local object offset; unknown before 100 ms span; displacement is endpoint Euclidean distance, rate is displacement/span, slope is least-squares vector rate, straightness is displacement/summed consecutive path","trend":"rate >=25 mm/s, displacement >=2.5 mm and straightness >=0.7 for two snapshots; two bilateral-contact-loss snapshots independently request closed hold","slowdown":"scale original requested joint-position delta from measured joints by 0.35 for 120 ms, then hold measured joints closed; actual native speed is measured separately","reassessment":"minimum 120 ms hold; known window displacement and maximum pairwise excursion <=1.5 mm and rate <=8 mm/s, loaded bilateral contacts throughout, no table support and object rise >=6 mm sustained for 100 ms; timeout 800 ms, at most two holds","resume":"causally refresh original teacher held offset to current TCP-local object offset and scale requested joint deltas by 0.45 until supported arrival; subsequent persistent slip may hold again within the budget","probe_only":"identical acquisition and retry; removes postqualification carry monitoring only","stop":"measured joint-position requests with jaw closed; inertia and native target rate limits may continue physical motion","duration":"unchanged fixed episode budget including probe, retry, slowdown, hold and abort; no force/gain/dynamics/scorer change","scope":"authored simulator controller with privileged observations; no learned memory, material inference, sensor latency, hardware safety or task qualification claim"},"acquisition_contract":{"schema":"dvidia.piper-grip-guard/v1","parameters":{"probe_height_m":0.01,"probe_speed_m_s":0.02,"probe_min_object_rise_m":0.006,"qualification_dwell_s":0.1,"relative_drift_limit_m":0.003,"monitor_min_probe_motion_m":0.003,"consecutive_alarm_samples":2,"probe_timeout_s":1.4,"close_timeout_s":1.4,"retry_open_timeout_s":1.2,"retry_recenter_timeout_s":1.5,"retry_clearance_m":0.012,"max_retries":1},"observations":"grip check uses causal current privileged TCP/object pose and bilateral native contacts at 20 ms; no mass/friction or scorer input; downstream original motion policy remains unchanged and uses the existing lift outcome flag","qualification":"slow 10 mm probe; object rises at least 6 mm, both pads retain contact, support is absent and TCP-local drift <=3 mm for 100 ms","alarm":"two consecutive snapshots with relative drift, bilateral-contact loss or supported object failing to follow a moving probe; bounded closure/probe timeouts","recovery":"hold measured six joint targets first; only supported objects may be opened/recentered/retried, at most once; support loss stops closed","stop":"requested measured joint targets; native rate limiting and inertia may continue motion, which is recorded","duration":"original fixed episode timeout including every probe/retry/abort holding command","scope":"authored simulator controller, not a sensor implementation, hardware safety controller or learned policy"},"evaluation_contract":{"schema":"dvidia.piper-recovery-sampled-evaluation/v0.4","contact":{"schema":"dvidia.piper-contact-sampled-evaluation/v0.3","following":{"schema":"dvidia.piper-grip-sampled-evaluation/v1","following_rise_m":0.01,"following_dwell_s":0.1,"qualification_lookahead_s":0.6,"local_offset_drift_limit_m":0.008,"post_alarm_window_s":0.1,"scope":"Independent recorded 20ms boundary proxies, not recomputed native physics or classifier accuracy. Following requires table-free object rise and stable TCP-local object offset, without controller predicates. Unresolved decisions and absent opportunities remain explicit. Alarm delays use simulator timestamps; wall computation is reported separately. Post-alarm path includes native servo motion while holding."},"motion_window_s":0.1,"settled_window_s":0.1,"settled_tcp_speed_limit_m_s":0.01,"minimum_settled_object_rise_m":0.006,"scope":"Independent recorded 20ms boundaries, not detector accuracy or physics recomputation. Motion windows retain actual native movement after commands, not instantaneous arrest. Settled, resumed and completed are separate; no observed true-slip opportunity is not a perfect score."},"comparison":"Completion and valid denominator first; completion time deltas only in paired common successes. Unsuccessful acquisitions retain bounded terminal decisions and the full original 20-second episode. Recovery duration includes unresolved holds; sampled motion is not a physical speed guarantee.","scope":"Recorded 20ms boundaries, not true-slip labels, independent physical truth or real-time sensor latency."},"implementation_sha256":{"piper_task.py":"589d6e4a4466bbda92ec6617508b3e06b635c237d0229399e44e301300cdeef5","piper_task_benchmark.py":"d1294fac93bb42a26a654c6fd0950718e528cbf3cd96ffcd53118da0a1646776","robot_profiles.py":"fb90782a6a9979e282182118ae0e3e29d00f101255cc57378dd3f692672bb13d","robot_profiles.lock.json":"4b2ee2ca675aceb2f826983cb3082a3e08e9aa0ff419b23078abcff08ebcc6fe","reference_task.py":"bbc768ccc202b8dd41cbd235b206e6478806ce47c1f30ae15dc662c0c1edcc3e","reference_sim.py":"c1201d22eb13dd07a236ee63cc4ba68e129f6067e8db61ed41af2d820eb5e3b8","reference_replay.py":"f73731434d55bac150db16c7205d341a70b95ce13e582e7a23d11dee31b27a19","piper_grip_guard.py":"90895566cad8d5a3c158a14d3165fa1866cb3d7a4a3eecac3ca0ca8ab3e88dfb","piper_grip_benchmark.py":"7ab72a8cbe77d4db96d3fa45087571e3e1d64f40fe92b6f37032936701f318e1","piper_contact_memory.py":"f608d6647046f6fa02d8ad5e87fad10853837520a6a0fae2043c7ad260a06c4c","piper_contact_benchmark.py":"6ebd44c3704cda8679335f988df0dcc7817b3f8da314b7a4fe8b3939215728bb","piper_contact_recovery.py":"81058659b332f4d1233fb88d9e3d84fd935f5a9fe9d418b040a4a536b5291f6c","piper_recovery_benchmark.py":"081ec18d90c91fe910c957ab3485444cfe2376ef7277be92823806c7c0e290bd"},"native_command_units":["rad","rad","rad","rad","rad","rad","m"],"simulation_asset_license":"MIT","layout_offset_limit_m":0.005,"timing_boundary":"Attempt wall includes asset verification, compilation, settling, authored planning/IK, physics, contact scoring and recorded state construction. Protocol/report/trace disk serialization, rendering, training, physical sensing, transport and actuation are excluded. Control computation windows are not sensor-to-actuator reaction times.","comparison":"Identical native mechanics, initial state and full twenty-second duration per scene. Frozen v0.3 history versus v0.4 carry-only with old acquisition versus full v0.4 recovery. Each placement has its own complete arm-tape/open-jaw control, plus a shared initial-arm hold. The carry-only ablation isolates carry changes from the bounded acquisition decision. Every attempted failure, invalid result and unresolved recovery remains in the denominator.","split_note":"Synthetic declared confirmation does not prove unseen scenes or physical reliability. Controller/evaluation parameters and sources are frozen before any native attempt.","recovery_contract":{"schema":"dvidia.piper-contact-recovery/v0.4","parameters":{"acquisition_window_s":0.12,"acquisition_minimum_span_s":0.1,"acquisition_jaw_excursion_m":0.0005,"acquisition_normal_excursion_n":0.05,"restoration_dwell_s":0.1,"restoration_ramp_s":0.3},"prior_contact_contract":{"schema":"dvidia.piper-contact-memory/v0.3","parameters":{"history_window_s":0.12,"minimum_history_s":0.1,"trend_rate_m_s":0.025,"trend_displacement_m":0.0025,"minimum_straightness":0.7,"trend_samples":2,"loss_samples":2,"slowdown_joint_delta_scale":0.35,"slowdown_duration_s":0.12,"hold_minimum_s":0.12,"hold_timeout_s":0.8,"settled_rate_m_s":0.008,"settled_displacement_m":0.0015,"settled_dwell_s":0.1,"resumed_joint_delta_scale":0.45,"maximum_reassessments":2},"acquisition":{"schema":"dvidia.piper-grip-guard/v1","parameters":{"probe_height_m":0.01,"probe_speed_m_s":0.02,"probe_min_object_rise_m":0.006,"qualification_dwell_s":0.1,"relative_drift_limit_m":0.003,"monitor_min_probe_motion_m":0.003,"consecutive_alarm_samples":2,"probe_timeout_s":1.4,"close_timeout_s":1.4,"retry_open_timeout_s":1.2,"retry_recenter_timeout_s":1.5,"retry_clearance_m":0.012,"max_retries":1},"observations":"grip check uses causal current privileged TCP/object pose and bilateral native contacts at 20 ms; no mass/friction or scorer input; downstream original motion policy remains unchanged and uses the existing lift outcome flag","qualification":"slow 10 mm probe; object rises at least 6 mm, both pads retain contact, support is absent and TCP-local drift <=3 mm for 100 ms","alarm":"two consecutive snapshots with relative drift, bilateral-contact loss or supported object failing to follow a moving probe; bounded closure/probe timeouts","recovery":"hold measured six joint targets first; only supported objects may be opened/recentered/retried, at most once; support loss stops closed","stop":"requested measured joint targets; native rate limiting and inertia may continue motion, which is recorded","duration":"original fixed episode timeout including every probe/retry/abort holding command","scope":"authored simulator controller, not a sensor implementation, hardware safety controller or learned policy"},"observations":"causal recorded privileged TCP/object poses and native contact/normal force snapshots; no material, mass, future observation or outcome input to the contact check","history":"inclusive past 120 ms of TCP-local object offset; unknown before 100 ms span; displacement is endpoint Euclidean distance, rate is displacement/span, slope is least-squares vector rate, straightness is displacement/summed consecutive path","trend":"rate >=25 mm/s, displacement >=2.5 mm and straightness >=0.7 for two snapshots; two bilateral-contact-loss snapshots independently request closed hold","slowdown":"scale original requested joint-position delta from measured joints by 0.35 for 120 ms, then hold measured joints closed; actual native speed is measured separately","reassessment":"minimum 120 ms hold; known window displacement and maximum pairwise excursion <=1.5 mm and rate <=8 mm/s, loaded bilateral contacts throughout, no table support and object rise >=6 mm sustained for 100 ms; timeout 800 ms, at most two holds","resume":"causally refresh original teacher held offset to current TCP-local object offset and scale requested joint deltas by 0.45 until supported arrival; subsequent persistent slip may hold again within the budget","probe_only":"identical acquisition and retry; removes postqualification carry monitoring only","stop":"measured joint-position requests with jaw closed; inertia and native target rate limits may continue physical motion","duration":"unchanged fixed episode budget including probe, retry, slowdown, hold and abort; no force/gain/dynamics/scorer change","scope":"authored simulator controller with privileged observations; no learned memory, material inference, sensor latency, hardware safety or task qualification claim"},"acquisition":{"schema":"dvidia.piper-grip-guard/v1","parameters":{"probe_height_m":0.01,"probe_speed_m_s":0.02,"probe_min_object_rise_m":0.006,"qualification_dwell_s":0.1,"relative_drift_limit_m":0.003,"monitor_min_probe_motion_m":0.003,"consecutive_alarm_samples":2,"probe_timeout_s":1.4,"close_timeout_s":1.4,"retry_open_timeout_s":1.2,"retry_recenter_timeout_s":1.5,"retry_clearance_m":0.012,"max_retries":1},"observations":"grip check uses causal current privileged TCP/object pose and bilateral native contacts at 20 ms; no mass/friction or scorer input; downstream original motion policy remains unchanged and uses the existing lift outcome flag","qualification":"slow 10 mm probe; object rises at least 6 mm, both pads retain contact, support is absent and TCP-local drift <=3 mm for 100 ms","alarm":"two consecutive snapshots with relative drift, bilateral-contact loss or supported object failing to follow a moving probe; bounded closure/probe timeouts","recovery":"hold measured six joint targets first; only supported objects may be opened/recentered/retried, at most once; support loss stops closed","stop":"requested measured joint targets; native rate limiting and inertia may continue motion, which is recorded","duration":"original fixed episode timeout including every probe/retry/abort holding command","scope":"authored simulator controller, not a sensor implementation, hardware safety controller or learned policy"},"refusal":"full recovery mode only: original two-observation supported object-not-following alarm plus at least 100 ms of bilateral loaded supported contact, closed requests, jaw excursion <=0.5 mm and each pad normal force excursion <=0.05 N; hold closed and refuse the unchanged retry","refusal_scope":"an unchanged grasp did not follow its probe; no mass/friction input or conclusion that a different grasp is impossible","carry_only":"recovery_carry retains exact v0.3 acquisition and supported retry; only carry speed restoration changes","restoration":"after the unchanged v0.3 settling hold, resume at 0.45 joint-delta scale; the same relative settling evidence must persist for 100 ms before scale increases linearly toward 1 over 300 ms of additional stable observed time; pause the increase while evidence is unstable and reset on a new hold","evidence":"known relative history, displacement and maximum excursion <=1.5 mm, rate <=8 mm/s, all samples loaded bilateral and unsupported, object rise >=6 mm; unchanged v0.3 trend/contact-loss responses remain active throughout","duration":"fixed 20-second episode includes refusal holding and every recovery; no force, gain, model, scorer, or instantaneous velocity writes","scope":"authored controller using privileged simulation observations; no learned model, sensor latency, material inference or hardware qualification"}}
