diff --git a/README.md b/README.md index 42cfad2..03b6476 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,13 @@ A serial-chain manipulator stack written **from scratch in Rust** — no ROS, no MoveIt, no kinematics library, no off-the-shelf planner. -**Evidence index (simulation; sampled where collision claims are involved; no hardware validation):** randomized evaluation [protocol](docs/randomized_eval_protocol.md) / [report](docs/randomized_eval_results.md) / [queries](docs/randomized_eval_queries.csv) / [planning](docs/randomized_eval_planning.csv) / [tracking](docs/randomized_eval_tracking.csv) · [multi-scene report](docs/multi_query_results.md) · [planning CSV](docs/multi_query_planning.csv) · [tracking CSV](docs/multi_query_tracking.csv) · attached payload [protocol](docs/attached_payload_protocol.md) / [results](docs/attached_payload_results.md) · [robustness report](docs/robustness_results.md) · [main CI](https://github.com/Dylan-Gallagher/arm-lab/actions/workflows/ci.yml?query=branch%3Amain) · [citation](CITATION.cff) +**Evidence index (simulation; sampled where collision claims are involved; no hardware validation):** randomized evaluation [protocol](docs/randomized_eval_protocol.md) / [report](docs/randomized_eval_results.md) / [queries](docs/randomized_eval_queries.csv) / [planning](docs/randomized_eval_planning.csv) / [tracking](docs/randomized_eval_tracking.csv) · [multi-scene report](docs/multi_query_results.md) · [planning CSV](docs/multi_query_planning.csv) · [tracking CSV](docs/multi_query_tracking.csv) · attached payload [protocol](docs/attached_payload_protocol.md) / [results](docs/attached_payload_results.md) · corner-stop [protocol](docs/corner_stop_protocol.md) / [results](docs/corner_stop_results.md) · [robustness report](docs/robustness_results.md) · [main CI](https://github.com/Dylan-Gallagher/arm-lab/actions/workflows/ci.yml?query=branch%3Amain) · [citation](CITATION.cff) -![Demo 3 — UR5e pick-and-place around a pillar. IK, RRT-Connect, scalar S-curve time law, PD + velocity feedforward](docs/demo3.gif) +![Demo 3 — UR5e pick-and-place around a pillar. IK, RRT-Connect, corner-stop S-curves, PD + velocity feedforward](docs/demo3.gif) -The kinematic chain (offsets, joint axes, limits, end-effector site) is **extracted from the compiled MuJoCo model** — never hand-entered as DH parameters — so the geometry used by the algorithms is guaranteed identical to the one the physics simulates. Forward kinematics, geometric Jacobians, damped-least-squares inverse kinematics, RRT-Connect with shortcutting, and a rest-to-rest 7-phase scalar S-curve are implemented in this repo. Robot collision checks call `mj_collision` on interpolated joint-space states; Demo 3 additionally uses explicit, pair-scoped `mj_geomDistance` queries for an EE-attached cube proxy. The independent `k` + `urdf-rs` stack is used **only inside the test suite** as a cross-check of FK. +The kinematic chain (offsets, joint axes, limits, end-effector site) is **extracted from the compiled MuJoCo model** — never hand-entered as DH parameters — so the geometry used by the algorithms is guaranteed identical to the one the physics simulates. Forward kinematics, geometric Jacobians, damped-least-squares inverse kinematics, RRT-Connect with shortcutting, and rest-to-rest 7-phase S-curves on every shortcut edge are implemented in this repo. Robot collision checks call `mj_collision` on interpolated joint-space states; Demo 3 additionally uses explicit, pair-scoped `mj_geomDistance` queries for an EE-attached cube proxy. The independent `k` + `urdf-rs` stack is used **only inside the test suite** as a cross-check of FK. -Demo 3 (above): IK solves pick and place poses; the joint-space straight line between them violates both the robot predicate and the attached cube's 5 mm pillar margin. Fixed-seed RRT-Connect finds a 6-waypoint sampled-clear carry in **5.4–7.8 ms** across two repeated headless runs; the path coordinate is timed with an S-curve and tracked to **0.0067 rad** worst error. Polyline corners are not blended, so the joint trajectory is not globally jerk-limited. The cube is a mocap weld (scripted attach, not contact-rich grasping). Demo 2 (pillar dodge, no object) is in [`docs/demo2.gif`](docs/demo2.gif). Demo 1 (IK target sequence) is in [`docs/demo1.gif`](docs/demo1.gif). +Demo 3 (above): IK solves pick and place poses; the joint-space straight line between them violates both the robot predicate and the attached cube's 5 mm pillar margin. Fixed-seed RRT-Connect finds a 6-waypoint sampled-clear carry in **5.4–5.6 ms** across two repeated headless runs; per-edge S-curves execute the carry in **5.13 s** with **0.0022 rad** worst tracking error. Every shortcut corner is a full stop, making position, velocity, and acceleration continuous while keeping joint jerk bounded almost everywhere. The motion is not geometrically blended or time-optimal. The cube is a mocap weld (scripted attach, not contact-rich grasping). Demo 2 (pillar dodge, no object) is in [`docs/demo2.gif`](docs/demo2.gif). Demo 1 (IK target sequence) is in [`docs/demo1.gif`](docs/demo1.gif). ## Numbers (measured, reproducible via `cargo test`) @@ -25,12 +25,12 @@ Demo 3 (above): IK solves pick and place poses; the joint-space straight line be | RRT-Connect, cluttered UR5e (pillar on the pan sweep), 11 seeds | **median 6.7 ms** (min 3.2, max 13.4) | | Same query: tree size → shortcut | 64 nodes → **3 waypoints** | | Planner determinism | identical path given identical seed | -| Demo 2 scalar S-curve time law (seed `20260816`, v≤0.55 a≤1.8 j≤8) | **1751 samples, 3.50 s**, peak joint \|qd\| 0.550 rad/s | -| Demo 2 tracking (PD + vel FF + gravity compensation) | worst 0.0046 rad · final goal 0.0002 rad | +| Demo 2 corner-stop S-curve time law (seed `20260816`, v≤0.55 a≤1.8 j≤8) | **1919 samples, 3.836 s**, peak joint \|qd\| 0.550 rad/s | +| Demo 2 tracking (PD + vel FF + gravity compensation) | worst 0.0020 rad · final goal 0.0002 rad | | Timed-trajectory determinism | identical `q(t)` given identical seed + limits | | Demo 3 attached-cube carry (pick→place, seed `20260816`) | **6 waypoints, 47 sampled states**, 0/47 payload-margin violations | | Demo 3 sampled minimum cube/environment distance (5 mm threshold) | **11.849 mm** vs pillar | -| Demo 3 tracking (full pick-and-place, representative headless run) | worst 0.0067 rad | +| Demo 3 tracking (full pick-and-place, two repeated headless runs) | worst 0.0022 rad | The 1 s median planning-time exit criterion is met by two orders of magnitude. The IK stress test samples targets from valid random joint configurations; the 2.2% non-converged slice is reported without assigning an untested cause. The solver honors limits by construction (clamped every iteration, asserted in tests). @@ -50,13 +50,13 @@ The [pre-result protocol](docs/attached_payload_protocol.md) and [result/limitat `multi_query_bench` adds nine fixed scene-query fixtures (three per shipped MJCF scene, six unique joint-pair definitions) while retaining the original declared numeric tracking thresholds. Selected joint pairs are deliberately repeated across scenes to isolate geometry effects. Across five fixed planner seeds per fixture, all **30/30 direct-free** and **15/15 obstructed** trials succeeded. Executed states are checked after every settling, path, and hold step with a threshold of exactly 0.0 m; a case passes only with zero sampled robot contacts whose signed distance is negative. This is a sampled penetration gate, not a positive-clearance certificate. -Position PD meets the numeric gates in **0/18** tracking cases. Desired-velocity feedforward meets the numeric gates in **14/18** cases and passes the full zero-penetration gate in **13/18**. The four sampled-penetration cases are all the retained `reverse_cross_workspace` negative: 25--72 path steps depending on plant/controller, with 0.050--0.079 mm maximum actual penetration; settling and hold remain penetration-free. The generated [report](docs/multi_query_results.md), [45-row planning CSV](docs/multi_query_planning.csv), and [36-row tracking CSV](docs/multi_query_tracking.csv) retain every outcome and include exact joint vectors, seeds, trajectory metrics, per-phase penetration counts/depths and contact identities, pass criteria, and claim boundaries. The fixtures are hand-designed and deterministic, not a sampled task distribution; the results do not estimate hardware or workspace-wide success probability. +Position PD meets the numeric gates in **0/18** tracking cases. Desired-velocity feedforward meets the numeric gates in **14/18** cases and passes the full zero-penetration gate in **13/18**. The four sampled-penetration cases are all the retained `reverse_cross_workspace` negative: 18--54 path steps depending on plant/controller, with 0.030--0.079 mm maximum actual penetration; settling and hold remain penetration-free. The generated [report](docs/multi_query_results.md), [45-row planning CSV](docs/multi_query_planning.csv), and [36-row tracking CSV](docs/multi_query_tracking.csv) retain every outcome and include exact joint vectors, seeds, trajectory metrics, per-phase penetration counts/depths and contact identities, pass criteria, and claim boundaries. The fixtures are hand-designed and deterministic, not a sampled task distribution; the results do not estimate hardware or workspace-wide success probability. ## Predeclared randomized extension (simulation) `randomized_eval` follows a [protocol committed before the evaluator and result-bearing runs](https://github.com/Dylan-Gallagher/arm-lab/commit/4320e40b6bf701d56e8e518597a9b0626d0205ec). It retains the first 100 accepted joint-space query pairs from a frozen generator in each of the three scenes (300 total), conditional only on collision-free endpoints and at least 0.75 rad separation. It does not select on direct-path or planner outcome. Only **83/300** queries have a sampled-clear straight interpolant. The unchanged canonical RRT-Connect configuration solves **138/300** (46.0%, 95% Wilson 40.4--51.7%) and recovers 55 of 217 blocked-direct pairs; all 162 unconnected outcomes remain in the raw artifacts. Five paired seeds on every blocked query produce 271/1,085 successes with the default 0.05 goal bias and 270/1,085 with goal bias removed, showing no material aggregate gain from that field in this frozen sample. -Both nominal controllers replay every successful canonical trajectory. Position PD meets the numeric gates in **0/138** cases. Velocity feedforward meets them in **104/138** (75.4%, 95% Wilson 67.6--81.8%) and passes the added zero-sampled-penetration gate in **90/138** (65.2%, 95% Wilson 57.0--72.7%). Thirty-seven of 276 controller replays contain sampled penetration, with 3.2225 mm maximum depth; these failures are retained rather than hidden. See the pre-result [protocol](docs/randomized_eval_protocol.md), generated [report](docs/randomized_eval_results.md), and complete [query](docs/randomized_eval_queries.csv), [planning](docs/randomized_eval_planning.csv), and [tracking](docs/randomized_eval_tracking.csv) CSVs. The generator is uniform in compiled joint limits under the stated conditions, not uniform in Cartesian workspace or representative of real tasks; collision checks remain discrete and all evidence is simulation-only. +Both nominal controllers replay every successful canonical trajectory. Position PD meets the numeric gates in **0/138** cases. Velocity feedforward meets them in **104/138** (75.4%, 95% Wilson 67.6--81.8%) and passes the added zero-sampled-penetration gate in **90/138** (65.2%, 95% Wilson 57.0--72.7%). Thirty-seven of 276 controller replays contain sampled penetration, with 3.2141 mm maximum depth; these failures are retained rather than hidden. See the pre-result [protocol](docs/randomized_eval_protocol.md), generated [report](docs/randomized_eval_results.md), and complete [query](docs/randomized_eval_queries.csv), [planning](docs/randomized_eval_planning.csv), and [tracking](docs/randomized_eval_tracking.csv) CSVs. The generator is uniform in compiled joint limits under the stated conditions, not uniform in Cartesian workspace or representative of real tasks; collision checks remain discrete and all evidence is simulation-only. ## Layout @@ -117,15 +117,15 @@ Requirements: Rust stable, a C++ toolchain, and (for `--render`) `ffmpeg` on PAT - **Collision filter.** Only contacts that involve a robot collision geom (`contype ≠ 0`, attached to a chain body, not the world) count. Floor-vs-pillar contacts are ignored; parent–child pairs are already excluded by MuJoCo. Visual meshes never participate. - **Pair-scoped attached load.** `AttachedBoxCollisionChecker` solves the mocap-body pose so the compiled proxy geom equals `T_world_EE * T_EE_proxy`, including nonzero geom-local offsets. It queries only constructor-validated environment names and rejects signed distances `< 0.005 m` in Demo 3. Robot and place-pad geoms are excluded from this scope; no global positive robot threshold is applied. - **Deterministic.** Restart sampling, RRT sampling, and random shortcutting all use the in-repo RNG with a fixed seed. The timed trajectory is bit-stable given the same seed and limits (CI golden test). -- **Scalar S-curve time law.** A rest-to-rest 7-phase bang-bang-jerk profile times the scalar path length `s ∈ [0, L]`. Per-joint `(v, a, j)` limits are converted to path-space limits by the steepest `|dqᵢ/ds|` on the polyline, so no joint exceeds its bound within an edge. Polyline tangent discontinuities are not blended: joint velocity can jump at a corner, so the complete joint trajectory is not globally acceleration- or jerk-bounded. -- **Physics-side servo.** The demos apply the exact MuJoCo bias force as gravity/Coriolis feedforward. Position actuators are commanded as a PD tracker with velocity feedforward: `ctrl = q_des + (kv/kp)·qd_des` yields `τ = kp(q_des − q) + kv(qd_des − qd)`. Worst joint-space tracking is 0.0046 rad (Demo 2) and 0.0067 rad in the representative attached-load Demo 3 run. +- **Per-edge corner-stop S-curve time law.** Every nonzero shortcut edge gets an independent rest-to-rest 7-phase bang-bang-jerk profile. Per-joint `(v, a, j)` limits are converted using that edge's constant tangent; rounding duration up to the 2 ms simulator grid only slows the curve. Interior waypoints are sampled once at zero velocity and acceleration, so position, velocity, and acceleration are continuous and joint jerk remains bounded almost everywhere. Jerk can jump between finite values; the motion is deliberately full-stop rather than geometrically blended or time-optimal. +- **Physics-side servo.** The demos apply the exact MuJoCo bias force as gravity/Coriolis feedforward. Position actuators are commanded as a PD tracker with velocity feedforward: `ctrl = q_des + (kv/kp)·qd_des` yields `τ = kp(q_des − q) + kv(qd_des − qd)`. Worst joint-space tracking is 0.0020 rad (Demo 2) and 0.0022 rad across two repeated attached-load Demo 3 runs. - **Scripted grasp.** Demo 3 welds a mocap cube to the EE after the pick descend and parks it on the place pad after the place descend. During carry, that same compiled box is a 5 mm pair-scoped planning proxy against floor, table, and pillar. This remains a kinematics/planning demo, not contact-rich grasping: it does not model slip, fingers, compliance, grasp uncertainty, continuous swept volume, calibration error, or cube-versus-robot self-contact. ## Roadmap - [x] Demo 1: FK + DLS IK, Rerun telemetry, offscreen-rendered GIF - [x] RRT-Connect with MuJoCo collision checks and shortcutting (Demo 2) -- [x] Jerk-bounded scalar S-curve time law; joint-space PD + velocity feedforward +- [x] Position/velocity/acceleration-continuous corner-stop S-curve time law with almost-everywhere jerk bounds; joint-space PD + velocity feedforward - [x] Pick-and-place with obstacle dodging; benchmark tables - [x] Reproducible controller robustness matrix with raw CSV and explicit sim-only limits - [x] Multi-scene, multi-query planning and tracking extension with raw CSVs diff --git a/crates/arm-lab-demo/src/bin/demo2.rs b/crates/arm-lab-demo/src/bin/demo2.rs index d1e0158..899998b 100644 --- a/crates/arm-lab-demo/src/bin/demo2.rs +++ b/crates/arm-lab-demo/src/bin/demo2.rs @@ -2,7 +2,7 @@ //! //! Joint-space RRT-Connect plans a collision-free path for the UR5e around a //! pillar that blocks the straight-line interpolant from home to a panned -//! goal. The path is shortcut, densified, timed with a jerk-bounded scalar S-curve, +//! goal. The shortcut edges are timed with rest-to-rest, jerk-bounded S-curves //! and tracked with a gravity-compensated PD servo (velocity feedforward //! through the Menagerie position actuators). //! @@ -101,7 +101,7 @@ fn main() { a_max: 1.8, j_max: 8.0, }; - let traj = time_parameterize(&plan.path, &limits, dt); + let traj = time_parameterize(&plan.waypoints, &limits, dt); println!( "[demo2] S-curve: {:.2} s · {} samples @ dt={dt} · limits v≤{} a≤{} j≤{}", traj.duration, diff --git a/crates/arm-lab-demo/src/bin/demo3.rs b/crates/arm-lab-demo/src/bin/demo3.rs index d9576bf..fbcaff9 100644 --- a/crates/arm-lab-demo/src/bin/demo3.rs +++ b/crates/arm-lab-demo/src/bin/demo3.rs @@ -2,7 +2,7 @@ //! //! IK solves grasp poses, RRT-Connect carries the cube around a pillar that //! blocks the joint-space interpolant, a pair-scoped attached-box proxy checks -//! the carried cube against the environment, a jerk-bounded scalar S-curve +//! the carried cube against the environment, jerk-bounded corner-stop S-curves //! times every segment, and a mocap weld stands in for a gripper (scripted //! attach, not contact-rich grasping). //! @@ -334,7 +334,7 @@ fn go_with_collision( "{name}: planner failed ({:?})", plan.status ); - let traj = time_parameterize(&plan.path, &ctx.limits, ctx.dt); + let traj = time_parameterize(&plan.waypoints, &ctx.limits, ctx.dt); println!( "[demo3] {name}: plan {plan_ms:.1} ms · {} waypoints · S-curve {:.2} s", plan.waypoints.len(), diff --git a/crates/arm-lab-demo/src/bin/multi_query_bench.rs b/crates/arm-lab-demo/src/bin/multi_query_bench.rs index e3a810d..ea2f7af 100644 --- a/crates/arm-lab-demo/src/bin/multi_query_bench.rs +++ b/crates/arm-lab-demo/src/bin/multi_query_bench.rs @@ -359,7 +359,7 @@ fn main() { seed ); let trajectory = - time_parameterize(&plan.path, &LIMITS, nominal_model.opt().timestep); + time_parameterize(&plan.waypoints, &LIMITS, nominal_model.opt().timestep); if seed == CANONICAL_SEED { canonical_trajectory = Some(trajectory.clone()); } @@ -1032,7 +1032,7 @@ fn render_artifacts(planning: &[PlanningRow], tracking: &[TrackingRow]) -> Artif - Only position PD and its desired-velocity-feedforward variant are compared here. This extension does not show that nominal-bias or integral-residual results generalize across queries.\n\ - The combined plant is one deterministic condition: 1 kg payload at 0.10 m, 80% actuator gains, +1 Nms/rad joint damping, 10 ms command latency, and a 10 Nm / 120 ms shoulder-lift pulse at 45% of each trajectory. It is not a randomized uncertainty distribution.\n\ - Planner collision checks remain discrete at 0.05 rad in joint-space L2 and use MuJoCo's emitted-contact set. The repository's positive contact threshold filters emitted candidates; with these zero-margin geoms it does not establish positive geometric clearance. Planner behavior is retained, but no 1-mm-clearance claim is made.\n\ - - The execution gate checks signed distance `< 0` at each 2-ms simulation state in settle, path, and hold. It detects sampled penetration, not positive-distance near misses or continuous swept-volume collision between samples. Polyline corners remain unblended, so the scalar time law does not certify global acceleration or jerk.\n\ + - The execution gate checks signed distance `< 0` at each 2-ms simulation state in settle, path, and hold. It detects sampled penetration, not positive-distance near misses or continuous swept-volume collision between samples. Each shortcut edge uses a rest-to-rest S-curve, making position, velocity, and acceleration continuous at full-stop corners while keeping jerk bounded almost everywhere; this is not geometric corner blending or a time-optimal parameterization.\n\ - There is no sensor noise, contact-rich grasping, hardware experiment, or sim-to-real guarantee.\n\n\ ## Reproduce\n\n\ ```bash\n\ diff --git a/crates/arm-lab-demo/src/bin/randomized_eval.rs b/crates/arm-lab-demo/src/bin/randomized_eval.rs index 8ae54ff..9ddfc72 100644 --- a/crates/arm-lab-demo/src/bin/randomized_eval.rs +++ b/crates/arm-lab-demo/src/bin/randomized_eval.rs @@ -268,7 +268,7 @@ fn main() { { canonical_trajectory = Some(( seed, - time_parameterize(&plan.path, &LIMITS, model.opt().timestep), + time_parameterize(&plan.waypoints, &LIMITS, model.opt().timestep), )); } planning.push(PlanningRow { @@ -1028,6 +1028,7 @@ fn render_report( - Wilson intervals describe repeated draws from this declared conditional generator only. The generator, scenes, and robot model remain fixed.\n\ - Direct and RRT collision checks sample joint-space edges at 0.05-rad L2 spacing and use the existing MuJoCo emitted-contact predicate. They do not certify continuous collision avoidance or positive clearance.\n\ - Tracking uses one canonical successful path per accepted query, the nominal plant only, and sampled `dist < 0` execution checks at 2-ms states. Planning failures receive no tracking replay and remain visible in the denominator.\n\ + - Trajectories use a rest-to-rest S-curve on every shortcut edge. Full-stop corners make joint position, velocity, and acceleration continuous and keep jerk bounded almost everywhere, but they are not geometric blends or time-optimal trajectories.\n\ - The goal-bias comparison changes one planner field; it is an ablation, not a comparison with an independent planning implementation.\n\ - There is no randomized plant uncertainty, sensing, localization, grasping, payload, hardware, or sim-to-real evidence in this extension.\n\n\ ## Reproduce\n\n\ diff --git a/crates/arm-lab-demo/src/bin/robustness_bench.rs b/crates/arm-lab-demo/src/bin/robustness_bench.rs index ce47b8b..b88d71a 100644 --- a/crates/arm-lab-demo/src/bin/robustness_bench.rs +++ b/crates/arm-lab-demo/src/bin/robustness_bench.rs @@ -1,8 +1,8 @@ //! Deterministic simulation-side robustness envelope for the UR5e tracker. //! -//! The same collision-free path and jerk-bounded scalar time law are replayed against -//! payload, actuator, damping, command-latency, and disturbance shifts. The -//! model-based controllers only receive bias forces from the unperturbed +//! The same collision-free path and per-edge corner-stop S-curves are replayed +//! against payload, actuator, damping, command-latency, and disturbance shifts. +//! The model-based controllers only receive bias forces from the unperturbed //! nominal model, so perturbed runs do not leak the changed plant parameters //! into the controller. //! @@ -255,7 +255,7 @@ fn benchmark_trajectory(model: &MjModel, chain: &Chain) -> Trajectory { ); assert_eq!(plan.status, PlanStatus::Success, "benchmark plan failed"); time_parameterize( - &plan.path, + &plan.waypoints, &TrajLimits { v_max: 0.55, a_max: 1.8, @@ -569,7 +569,7 @@ fn write_artifacts(rows: &[Metrics], trajectory: &Trajectory) { let mut markdown = format!( "# UR5e controller robustness envelope (simulation)\n\n\ - Deterministic MuJoCo stress test over a {:.2} s, {}-sample collision-free RRT-Connect path timed by the in-repo scalar S-curve. Polyline corners are not blended, so the complete joint trajectory is not globally acceleration- or jerk-bounded. **This is simulation evidence, not hardware validation or a sim-to-real guarantee.**\n\n\ + Deterministic MuJoCo stress test over a {:.2} s, {}-sample collision-free RRT-Connect path timed by the in-repo per-edge S-curves. Every shortcut corner is a full stop: joint position, velocity, and acceleration are continuous, and jerk is bounded almost everywhere, although jerk may jump between finite values and the path is not geometrically blended or time-optimal. **This is simulation evidence, not hardware validation or a sim-to-real guarantee.**\n\n\ Pass threshold (declared in code): RMS joint error <= {:.2} rad, maximum joint error <= {:.2} rad, and final joint error <= {:.2} rad. Controller bias forces always come from the unchanged nominal model; perturbed plant parameters are not exposed to the controller.\n\n\ | Scenario | Controller | RMS joint (rad) | Max joint (rad) | Final (rad) | Max EE pos (m) | Peak force/limit | Saturated steps | Result |\n\ |---|---|---:|---:|---:|---:|---:|---:|:---:|\n", diff --git a/crates/arm-lab/src/lib.rs b/crates/arm-lab/src/lib.rs index ec80cd0..cd18916 100644 --- a/crates/arm-lab/src/lib.rs +++ b/crates/arm-lab/src/lib.rs @@ -4,9 +4,9 @@ //! //! This crate is deliberately *not* a wrapper around a kinematics or planning //! library. The core algorithms — forward kinematics, geometric Jacobians, -//! damped least-squares inverse kinematics, RRT-Connect, and jerk-limited -//! time-parameterization — are implemented here directly. External crates are -//! used only at the edges: +//! damped least-squares inverse kinematics, RRT-Connect, and full-stop S-curve +//! time-parameterization with almost-everywhere jerk bounds — are implemented +//! here directly. External crates are used only at the edges: //! //! - [`mujoco_rs::MjModel`] supplies the robot description: the chain is //! *extracted* from MuJoCo's compiled model (body offsets, joint axes, diff --git a/crates/arm-lab/src/traj.rs b/crates/arm-lab/src/traj.rs index c65a9b0..38c75c5 100644 --- a/crates/arm-lab/src/traj.rs +++ b/crates/arm-lab/src/traj.rs @@ -1,18 +1,16 @@ //! Jerk-limited time-parameterization of joint-space paths, from scratch. //! //! A rest-to-rest **7-phase S-curve** (bang-bang jerk: trapezoidal -//! acceleration) parameterizes the scalar path length `s ∈ [0, L]` of a -//! polyline. Joint motion is the polyline's tangent times `(ṡ, s̈)`. -//! Along each edge the tangent is constant, so joint jerk equals path jerk -//! times the tangent; at the polyline's corners the tangent is discontinuous -//! and a single sample can show an acceleration spike. The planner's -//! shortcutting keeps the number of corners small (typically one or two). +//! acceleration) parameterizes every nonzero edge of a joint-space polyline. +//! Every interior waypoint is a full stop, so position, velocity, and +//! acceleration are continuous even when the polyline tangent changes. Jerk +//! is bounded almost everywhere; it can have finite one-sided jumps at phase +//! and waypoint boundaries, where the classical derivative need not exist. //! -//! Limits are specified per joint. Path-space `(v, a, j)` limits are the -//! tightest joint limit divided by that joint's peak `|dqᵢ/ds|` on the path, -//! so no joint exceeds its bound along an edge. - -use crate::plan::path_length; +//! Limits are specified per joint. Each edge's path-space `(v, a, j)` limits +//! are the tightest joint limit divided by `|dqᵢ/ds|` on that edge. Edge +//! durations are rounded up to the fixed sample interval by slowing their +//! S-curves, which can only reduce all three derivatives. /// Per-joint kinematic limits. One value is used for every joint; the path /// converter then tightens the scalar profile against the steepest joint. @@ -42,6 +40,7 @@ pub struct Trajectory { pub q: Vec>, pub qd: Vec>, pub qdd: Vec>, + pub qddd: Vec>, } impl Trajectory { @@ -54,58 +53,90 @@ impl Trajectory { } } -/// Time-parameterize a joint-space polyline with a rest-to-rest S-curve. +/// Time-parameterize a joint-space polyline with a rest-to-rest S-curve on +/// every nonzero edge. +/// +/// Interior waypoints are full stops. Callers should therefore pass geometric +/// shortcut waypoints rather than collision-check densification samples. pub fn time_parameterize(path: &[Vec], limits: &TrajLimits, dt: f64) -> Trajectory { assert!(dt > 0.0, "dt must be positive"); assert!(!path.is_empty(), "path must not be empty"); let n = path[0].len(); assert!(path.iter().all(|q| q.len() == n), "ragged path"); - let length = path_length(path); - if length < 1e-12 { + if path.windows(2).all(|w| l2(&w[0], &w[1]) < 1e-12) { return stationary(path[0].clone(), dt); } - let slope = max_slope(path); - let mut v_s = f64::INFINITY; - let mut a_s = f64::INFINITY; - let mut j_s = f64::INFINITY; - for s in &slope { - if *s < 1e-12 { + let mut t = Vec::new(); + let mut q = Vec::new(); + let mut qd = Vec::new(); + let mut qdd = Vec::new(); + let mut qddd = Vec::new(); + let mut elapsed_steps = 0usize; + let mut have_edge = false; + + for edge in path.windows(2) { + let length = l2(&edge[0], &edge[1]); + if length < 1e-12 { continue; } - v_s = v_s.min(limits.v_max / s); - a_s = a_s.min(limits.a_max / s); - j_s = j_s.min(limits.j_max / s); + let tangent: Vec = edge[0] + .iter() + .zip(edge[1].iter()) + .map(|(a, b)| (b - a) / length) + .collect(); + let (v_s, a_s, j_s) = scalar_limits(&tangent, limits); + let curve = SCurve1d::rest_to_rest(length, v_s, a_s, j_s); + let edge_steps = ((curve.duration / dt).ceil() as usize).max(1); + let aligned_duration = edge_steps as f64 * dt; + let time_scale = aligned_duration / curve.duration; + + let first_step = usize::from(have_edge); + for edge_step in first_step..=edge_steps { + let curve_t = (edge_step as f64 * dt / time_scale).min(curve.duration); + let motion = curve.at(curve_t); + let mut qk: Vec = edge[0] + .iter() + .zip(tangent.iter()) + .map(|(start, direction)| start + direction * motion.s) + .collect(); + if edge_step == edge_steps { + qk.clone_from(&edge[1]); + } + t.push((elapsed_steps + edge_step) as f64 * dt); + q.push(qk); + qd.push( + tangent + .iter() + .map(|direction| direction * motion.v / time_scale) + .collect(), + ); + qdd.push( + tangent + .iter() + .map(|direction| direction * motion.a / time_scale.powi(2)) + .collect(), + ); + qddd.push( + tangent + .iter() + .map(|direction| direction * motion.j / time_scale.powi(3)) + .collect(), + ); + } + elapsed_steps += edge_steps; + have_edge = true; } - assert!( - v_s.is_finite() && a_s.is_finite() && j_s.is_finite(), - "path has no moving joint" - ); - let curve = SCurve1d::rest_to_rest(length, v_s, a_s, j_s); - let poly = Polyline::new(path); - let n_steps = (curve.duration / dt).ceil() as usize; - let mut t = Vec::with_capacity(n_steps + 1); - let mut q = Vec::with_capacity(n_steps + 1); - let mut qd = Vec::with_capacity(n_steps + 1); - let mut qdd = Vec::with_capacity(n_steps + 1); - for k in 0..=n_steps { - let tk = (k as f64 * dt).min(curve.duration); - let m = curve.at(tk); - let (qk, tang) = poly.at(m.s); - t.push(tk); - q.push(qk); - qd.push(tang.iter().map(|d| d * m.v).collect()); - qdd.push(tang.iter().map(|d| d * m.a).collect()); - } Trajectory { dt, - duration: curve.duration, + duration: elapsed_steps as f64 * dt, t, q, qd, qdd, + qddd, } } @@ -118,22 +149,24 @@ fn stationary(q0: Vec, dt: f64) -> Trajectory { q: vec![q0], qd: vec![vec![0.0; n]], qdd: vec![vec![0.0; n]], + qddd: vec![vec![0.0; n]], } } -fn max_slope(path: &[Vec]) -> Vec { - let n = path[0].len(); - let mut m = vec![0.0; n]; - for w in path.windows(2) { - let len = l2(&w[0], &w[1]); - if len < 1e-15 { - continue; - } - for (i, slot) in m.iter_mut().enumerate() { - *slot = f64::max(*slot, (w[1][i] - w[0][i]).abs() / len); +fn scalar_limits(tangent: &[f64], limits: &TrajLimits) -> (f64, f64, f64) { + let mut scalar = (f64::INFINITY, f64::INFINITY, f64::INFINITY); + for slope in tangent.iter().map(|value| value.abs()) { + if slope >= 1e-12 { + scalar.0 = scalar.0.min(limits.v_max / slope); + scalar.1 = scalar.1.min(limits.a_max / slope); + scalar.2 = scalar.2.min(limits.j_max / slope); } } - m + assert!( + scalar.0.is_finite() && scalar.1.is_finite() && scalar.2.is_finite(), + "edge has no moving joint" + ); + scalar } fn l2(a: &[f64], b: &[f64]) -> f64 { @@ -144,52 +177,6 @@ fn l2(a: &[f64], b: &[f64]) -> f64 { .sqrt() } -struct Polyline { - pts: Vec>, - cum: Vec, -} - -impl Polyline { - fn new(path: &[Vec]) -> Self { - let mut cum = vec![0.0; path.len()]; - for i in 1..path.len() { - cum[i] = cum[i - 1] + l2(&path[i - 1], &path[i]); - } - Self { - pts: path.to_vec(), - cum, - } - } - - fn at(&self, s: f64) -> (Vec, Vec) { - let s_max = *self.cum.last().unwrap_or(&0.0); - let s = s.clamp(0.0, s_max); - let n = self.pts[0].len(); - if s_max < 1e-15 { - return (self.pts[0].clone(), vec![0.0; n]); - } - let last = self.pts.len() - 1; - for i in 0..last { - if s <= self.cum[i + 1] + 1e-15 || i + 1 == last { - let seg = self.cum[i + 1] - self.cum[i]; - if seg < 1e-15 { - return (self.pts[i + 1].clone(), vec![0.0; n]); - } - let tau = ((s - self.cum[i]) / seg).clamp(0.0, 1.0); - let mut q = vec![0.0; n]; - let mut tang = vec![0.0; n]; - for k in 0..n { - let d = self.pts[i + 1][k] - self.pts[i][k]; - q[k] = self.pts[i][k] + tau * d; - tang[k] = d / seg; - } - return (q, tang); - } - } - (self.pts[last].clone(), vec![0.0; n]) - } -} - /// 1D rest-to-rest jerk-limited profile. #[derive(Debug, Clone)] pub struct SCurve1d { @@ -269,6 +256,14 @@ impl SCurve1d { }; } let t = t.clamp(0.0, self.duration); + if t >= self.duration { + return Motion1d { + s: self.distance, + v: 0.0, + a: 0.0, + j: 0.0, + }; + } let mut s = 0.0; let mut v = 0.0; let mut a = 0.0; diff --git a/crates/arm-lab/tests/traj.rs b/crates/arm-lab/tests/traj.rs index 59ed047..c1a4858 100644 --- a/crates/arm-lab/tests/traj.rs +++ b/crates/arm-lab/tests/traj.rs @@ -50,16 +50,21 @@ fn parameterize_straight_line_respects_joint_limits() { let mut max_v = 0.0f64; let mut max_a = 0.0f64; - for (qd, qdd) in traj.qd.iter().zip(traj.qdd.iter()) { + let mut max_j = 0.0f64; + for ((qd, qdd), qddd) in traj.qd.iter().zip(traj.qdd.iter()).zip(traj.qddd.iter()) { for &v in qd { max_v = max_v.max(v.abs()); } for &a in qdd { max_a = max_a.max(a.abs()); } + for &j in qddd { + max_j = max_j.max(j.abs()); + } } assert!(max_v <= limits.v_max + 1e-6, "v {max_v}"); assert!(max_a <= limits.a_max + 1e-5, "a {max_a}"); + assert!(max_j <= limits.j_max + 1e-5, "j {max_j}"); assert!(traj.duration > 1.0 / 0.6); // at least D/vmax } @@ -72,6 +77,80 @@ fn parameterize_is_deterministic() { assert_eq!(a.duration, b.duration); assert_eq!(a.q, b.q); assert_eq!(a.qd, b.qd); + assert_eq!(a.qdd, b.qdd); + assert_eq!(a.qddd, b.qddd); + for pair in a.t.windows(2) { + assert!((pair[1] - pair[0] - a.dt).abs() < 1e-12); + } + assert_eq!(a.t.last().copied(), Some(a.duration)); +} + +#[test] +fn corner_stops_are_continuous_and_globally_bounded() { + let corner = vec![0.6, -0.2, 0.3]; + let path = vec![vec![0.0, 0.0, 0.0], corner.clone(), vec![0.15, 0.75, -0.1]]; + let limits = TrajLimits { + v_max: 0.7, + a_max: 1.9, + j_max: 7.5, + }; + let dt = 0.003; + let traj = time_parameterize(&path, &limits, dt); + let corner_indices: Vec = traj + .q + .iter() + .enumerate() + .filter_map(|(index, q)| (q == &corner).then_some(index)) + .collect(); + assert_eq!(corner_indices.len(), 1, "corner must be sampled once"); + let corner_index = corner_indices[0]; + assert!(corner_index > 0 && corner_index + 1 < traj.len()); + assert!(traj.qd[corner_index].iter().all(|value| *value == 0.0)); + assert!(traj.qdd[corner_index].iter().all(|value| *value == 0.0)); + + for sample in 0..traj.len() { + for joint in 0..path[0].len() { + assert!(traj.qd[sample][joint].abs() <= limits.v_max + 1e-10); + assert!(traj.qdd[sample][joint].abs() <= limits.a_max + 1e-10); + assert!(traj.qddd[sample][joint].abs() <= limits.j_max + 1e-10); + } + } + for sample in 1..traj.len() { + for joint in 0..path[0].len() { + let sampled_acceleration = (traj.qd[sample][joint] - traj.qd[sample - 1][joint]) / dt; + let sampled_jerk = (traj.qdd[sample][joint] - traj.qdd[sample - 1][joint]) / dt; + assert!(sampled_acceleration.abs() <= limits.a_max + 1e-8); + assert!(sampled_jerk.abs() <= limits.j_max + 1e-8); + } + } +} + +#[test] +fn duplicate_waypoints_do_not_create_duplicate_samples() { + let corner = vec![0.3, 0.0]; + let path = vec![ + vec![0.0, 0.0], + vec![0.0, 0.0], + corner.clone(), + corner.clone(), + vec![0.3, 0.2], + ]; + let traj = time_parameterize(&path, &TrajLimits::default(), 0.004); + assert_eq!(traj.q.iter().filter(|q| *q == &corner).count(), 1); + assert_eq!(traj.q.first(), Some(&path[0])); + assert_eq!(traj.q.last(), path.last()); + assert_eq!(traj.t.len(), traj.q.len()); + assert_eq!(traj.q.len(), traj.qd.len()); + assert_eq!(traj.q.len(), traj.qdd.len()); + assert_eq!(traj.q.len(), traj.qddd.len()); + + let stationary = time_parameterize( + &[vec![1.0, -2.0], vec![1.0, -2.0], vec![1.0, -2.0]], + &TrajLimits::default(), + 0.004, + ); + assert_eq!(stationary.len(), 1); + assert_eq!(stationary.duration, 0.0); } #[test] @@ -101,13 +180,13 @@ fn demo2_seed_golden_trajectory() { a_max: 1.8, j_max: 8.0, }; - let traj = time_parameterize(&plan.path, &limits, 0.002); - let again = time_parameterize(&plan.path, &limits, 0.002); + let traj = time_parameterize(&plan.waypoints, &limits, 0.002); + let again = time_parameterize(&plan.waypoints, &limits, 0.002); assert_eq!(traj.q, again.q); assert_eq!(traj.t.len(), traj.q.len()); - assert_eq!(traj.len(), 1751); + assert_eq!(traj.len(), 1919); assert!( - (traj.duration - 3.5).abs() < 0.01, + (traj.duration - 3.836).abs() < 1e-12, "duration {}", traj.duration ); @@ -121,17 +200,44 @@ fn demo2_seed_golden_trajectory() { } let mut max_v = 0.0f64; - for qd in &traj.qd { + let mut max_a = 0.0f64; + let mut max_j = 0.0f64; + for ((qd, qdd), qddd) in traj.qd.iter().zip(&traj.qdd).zip(&traj.qddd) { for &v in qd { max_v = max_v.max(v.abs()); } + for &a in qdd { + max_a = max_a.max(a.abs()); + } + for &j in qddd { + max_j = max_j.max(j.abs()); + } } assert!(max_v <= limits.v_max + 1e-5, "joint v {max_v}"); + assert!(max_a <= limits.a_max + 1e-5, "joint a {max_a}"); + assert!(max_j <= limits.j_max + 1e-5, "joint j {max_j}"); + let interior_stops = plan.waypoints[1..plan.waypoints.len() - 1] + .iter() + .map(|waypoint| { + traj.q + .iter() + .position(|q| q == waypoint) + .expect("every shortcut corner must be sampled") + }) + .collect::>(); + assert_eq!(interior_stops.len(), plan.waypoints.len() - 2); + for index in &interior_stops { + assert!(traj.qd[*index].iter().all(|value| *value == 0.0)); + assert!(traj.qdd[*index].iter().all(|value| *value == 0.0)); + } println!( - "golden Demo 2 traj: {} samples, {:.3} s, peak |qd| {:.3} rad/s, {} path waypoints", + "golden Demo 2 corner-stop traj: {} samples, {:.3} s, peak |qd| {:.3} rad/s, peak |qdd| {:.3} rad/s^2, peak |qddd| {:.3} rad/s^3, {} shortcut waypoints, {} verified interior stops", traj.len(), traj.duration, max_v, - plan.path.len() + max_a, + max_j, + plan.waypoints.len(), + interior_stops.len() ); } diff --git a/docs/attached_payload_results.md b/docs/attached_payload_results.md index 0851710..d1fe128 100644 --- a/docs/attached_payload_results.md +++ b/docs/attached_payload_results.md @@ -47,9 +47,9 @@ rotation. MuJoCo's resulting `geom_xpos`/`geom_xmat` agree with checker positions the compiled geom—not merely the mocap body origin—as declared. -Two repeated headless Demo 3 runs planned the attached-cube carry in 7.8 ms and -5.4 ms, respectively. Both produced the same 6 shortcut waypoints, 3.09 s -timed carry, and 0.0067 rad worst joint-tracking error. The timing is +Two repeated headless Demo 3 runs planned the attached-cube carry in 5.6 ms and +5.4 ms, respectively. Both produced the same 6 shortcut waypoints, 5.13 s +corner-stop timed carry, and 0.0022 rad worst joint-tracking error. The timing is illustrative and can vary with the machine and load; the path fields and audited outcomes are the deterministic evidence. @@ -58,9 +58,9 @@ audited outcomes are the deterministic evidence. - The naive straight carry is unsafe under both scoped checks: 9/23 sampled states have a robot collision and 11/23 violate the cube margin. - Adding the payload gate changes the old 4-waypoint carry into a 6-waypoint, - 47-sample path and increases the representative full-demo worst tracking - error from the earlier 0.0037 rad report to 0.0067 rad. Neither change is - hidden. + 47-sample path. The later corner-stop time law increases carry duration while + reducing the repeated full-demo worst tracking error to 0.0022 rad; neither + change is hidden. - A global 40 mm robot threshold is not used. The positive 5 mm rule applies only to the declared cube/environment pairs; the original zero-penetration robot rule remains unchanged during carry. diff --git a/docs/corner_stop_protocol.md b/docs/corner_stop_protocol.md new file mode 100644 index 0000000..4e42b62 --- /dev/null +++ b/docs/corner_stop_protocol.md @@ -0,0 +1,80 @@ +# Global corner-stop trajectory protocol + +Frozen before implementation or result-bearing reruns on 2026-08-17 +(Europe/Dublin). + +## Motivation and claim boundary + +The existing scalar S-curve follows an entire joint-space polyline at nonzero +path speed. Its per-edge joint velocity, acceleration, and jerk respect the +declared limits, but a polyline tangent can change discontinuously at an +interior waypoint. The complete joint trajectory is therefore not globally +acceleration- or jerk-bounded. + +This change will replace that behavior with an explicit full stop at every +shortcut waypoint. It will not implement geometric corner blending, time- +optimal path parameterization, continuous collision checking, torque limits, +or hardware validation. + +## Frozen design + +1. Parameterize every nonzero shortcut edge with an independent rest-to-rest + seven-phase scalar S-curve. +2. Convert the joint velocity, acceleration, and jerk limits to scalar limits + using that edge's constant unit tangent. +3. Round each edge duration up to an integer number of the requested fixed + sample intervals. Realize the rounded duration by time-scaling the original + S-curve, which can only reduce velocity, acceleration, and jerk. +4. Concatenate edges without duplicate timestamps. At every interior waypoint, + joint velocity and acceleration must be exactly zero. Position, velocity, + and acceleration are therefore continuous; joint jerk may jump between + finite left and right values but must remain within the declared bound. +5. Add sampled joint jerk to `Trajectory` so callers and tests can audit the + same analytic derivatives used by the generator. +6. Pass the planner's shortcut `waypoints`, not its collision-check-densified + `path`, to the trajectory generator. The densified path remains the planning + and sampled-collision artifact. This avoids an unnecessary stop at every + 0.05-rad collision-check sample. +7. Preserve deterministic output for identical path, limits, and sample time. + A stationary path remains one rest sample. + +## Required tests + +- straight-line endpoint and velocity/acceleration/jerk limits; +- a non-collinear multi-joint corner with an exact waypoint sample whose + velocity and acceleration are zero; +- uniform timestamps, including an exact final timestamp; +- duplicate/zero-length waypoint handling; +- deterministic repeat output including jerk; +- an analytic or finite-difference check around each corner showing no + velocity or acceleration impulse; +- the fixed-seed Demo 2 plan using shortcut waypoints; and +- all existing workspace tests and strict lints. + +## Result-bearing reruns + +If implementation gates pass, regenerate and verify every committed artifact +whose trajectory duration, sample count, tracking result, or controller result +can change: + +- Demo 2 golden trajectory test; +- `robustness_bench` Markdown and CSV; +- `multi_query_bench` planning/tracking CSVs and Markdown; and +- `randomized_eval` planning/tracking CSVs and Markdown. + +Planning outcomes must remain unchanged because this change is downstream of +planning. Tracking results may improve or regress and will be retained without +post-hoc threshold changes. Existing numeric and sampled-penetration pass gates +remain unchanged. + +## Promotion gate + +Promote the branch only if: + +- all analytic continuity and derivative-limit tests pass; +- all existing tests and strict lints pass; +- generated artifacts pass their own deterministic `--check` modes; +- the README and generated reports distinguish full-stop corner handling from + blended motion and retain the simulation/sampled-collision limitations; and +- an independent diff and claim audit finds no unsupported global-smoothness, + continuous-safety, or sim-to-real claim. diff --git a/docs/corner_stop_results.md b/docs/corner_stop_results.md new file mode 100644 index 0000000..0423e06 --- /dev/null +++ b/docs/corner_stop_results.md @@ -0,0 +1,82 @@ +# Corner-stop trajectory results + +The [protocol](corner_stop_protocol.md) was committed before implementation or +result-bearing reruns. The implementation replaces a single nonzero-speed +polyline traversal with an independent rest-to-rest seven-phase S-curve on +every nonzero shortcut edge. It samples each interior waypoint once at zero +joint velocity and acceleration. + +## Fixed-seed derivative audit + +The fixed Demo 2 plan (`seed = 20260816`) has three shortcut waypoints and one +interior corner. At the declared 2 ms sample interval, its generated trajectory +has: + +| Quantity | Measured | Declared limit | +|---|---:|---:| +| Samples | 1,919 | — | +| Duration | 3.836 s | — | +| Peak joint speed | 0.550 rad/s | 0.550 rad/s | +| Peak joint acceleration | 1.799 rad/s² | 1.800 rad/s² | +| Peak joint jerk | 7.996 rad/s³ | 8.000 rad/s³ | +| Interior waypoint stops | 1/1 | 1/1 | + +The test suite also exercises a non-collinear three-joint corner, checks exact +zero velocity and acceleration at its single waypoint sample, checks analytic +velocity/acceleration/jerk against every joint limit, and bounds the +finite-difference acceleration and jerk across every adjacent sample. Repeated +generation must match exactly, including sampled jerk and timestamps. + +The old Demo 2 profile took 3.500 s. Full-stop corner handling increases the +fixed trajectory duration by 0.336 s (9.6%) while reducing the recorded +feedforward-tracking maximum from 0.0046 to 0.0020 rad. This is a measured +fixed-case comparison, not a general performance claim. + +## Retained benchmark outcomes + +All result-bearing suites were rerun with their previously declared planning, +tracking, and sampled-penetration gates unchanged. + +- The 45 fixed multi-query planner trials retain 30/30 direct-free and 15/15 + obstructed successes. Position PD remains 0/18 at the numeric gate; velocity + feedforward remains 14/18 numeric and 13/18 after the zero-sampled- + penetration gate. +- The randomized evaluator retains all 300 accepted queries, 138/300 canonical + planning successes, and 276 controller replays. Position PD remains 0/138; + velocity feedforward remains 104/138 numeric and 90/138 after the sampled- + penetration gate. +- The four fixed multi-query penetration cases remain visible. Their aggregate + sampled path-penetration count changes from 192 to 138 phase-steps and the + maximum depth changes from 0.07925 to 0.07856 mm. +- The randomized execution audit still finds penetration in 37/276 replays; + the maximum sampled depth changes from 3.22250 to 3.21406 mm. + +The randomized planning rows are byte-identical to the earlier artifact because +trajectory generation is downstream of planning. The tracking artifacts were +regenerated and retain every pass and failure. + +## Artifact integrity + +| Artifact | Rows including header | SHA-256 | +|---|---:|---| +| `robustness_results.csv` | 29 | `31739fefb228f4073251c95d48d372ead825da1d3c57ac2eba065225542341e2` | +| `multi_query_planning.csv` | 46 | `e517789dd8404afc731836238dd593c98db2a89d93444d9dca4b045280d9a56b` | +| `multi_query_tracking.csv` | 37 | `651f355bf1e7ccb6838a6eab67f5c625a046fef5890d6ca1b8aad1377f73b34f` | +| `randomized_eval_planning.csv` | 2,254 | `b739009c0a4b3691bc910f67ad079a944e1b16c83d341bcd078179bda6c13055` | +| `randomized_eval_tracking.csv` | 277 | `7d4e245efc732ce4fc828b3cd115493b6889a9521232ab32cbdfc5257448e419` | + +The benchmark `--check` modes rerun the full deterministic matrices and compare +the committed outputs. Only observational planner wall time is normalized. + +## Claim boundary + +Position, velocity, and acceleration are continuous across the complete +corner-stop trajectory. Jerk is bounded almost everywhere but can jump between +finite one-sided values at phase and waypoint boundaries, where its classical +derivative need not exist. The method is deliberately full-stop, not a +geometrically blended or time-optimal trajectory. + +Planner collision checks remain discrete at 0.05 rad in joint-space L2, and +execution penetration checks sample each 2 ms simulation state. These results +do not establish continuous swept-volume safety, positive robot clearance, +torque feasibility, hardware performance, or sim-to-real transfer. diff --git a/docs/multi_query_planning.csv b/docs/multi_query_planning.csv index 09815cf..2a35bb7 100644 --- a/docs/multi_query_planning.csv +++ b/docs/multi_query_planning.csv @@ -1,46 +1,46 @@ scene,scene_file,query,seed,start_q_rad,goal_q_rad,direct_path_free,status,plan_elapsed_ms,iterations,nodes,shortcut_waypoints,path_samples,path_cost_rad,trajectory_samples,trajectory_duration_s -open_floor,scene.xml,positive_pan,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12823000,0,2,2,23,1.10000000,1267,2.53055556 -open_floor,scene.xml,positive_pan,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.14538000,0,2,2,23,1.10000000,1267,2.53055556 -open_floor,scene.xml,positive_pan,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.15742000,0,2,2,23,1.10000000,1267,2.53055556 -open_floor,scene.xml,positive_pan,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12721900,0,2,2,23,1.10000000,1267,2.53055556 -open_floor,scene.xml,positive_pan,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.14511000,0,2,2,23,1.10000000,1267,2.53055556 -open_floor,scene.xml,shoulder_elbow,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.09794000,0,2,2,18,0.80467385,767,1.53055556 -open_floor,scene.xml,shoulder_elbow,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.10656000,0,2,2,18,0.80467385,767,1.53055556 -open_floor,scene.xml,shoulder_elbow,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.09560000,0,2,2,18,0.80467385,767,1.53055556 -open_floor,scene.xml,shoulder_elbow,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.09538000,0,2,2,18,0.80467385,767,1.53055556 -open_floor,scene.xml,shoulder_elbow,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.10071000,0,2,2,18,0.80467385,767,1.53055556 -open_floor,scene.xml,wrist_reorientation,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.12502000,0,2,2,23,1.05830052,903,1.80328283 -open_floor,scene.xml,wrist_reorientation,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.11945000,0,2,2,23,1.05830052,903,1.80328283 -open_floor,scene.xml,wrist_reorientation,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.12562900,0,2,2,23,1.05830052,903,1.80328283 -open_floor,scene.xml,wrist_reorientation,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.12008000,0,2,2,23,1.05830052,903,1.80328283 -open_floor,scene.xml,wrist_reorientation,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.12804000,0,2,2,23,1.05830052,903,1.80328283 -offset_pillar,scene_cluttered.xml,positive_pan,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,false,success,6.40932000,69,64,3,53,2.54129475,1751,3.49937200 -offset_pillar,scene_cluttered.xml,positive_pan,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,false,success,10.36771400,71,69,4,45,2.17517403,1741,3.47972176 -offset_pillar,scene_cluttered.xml,positive_pan,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,false,success,6.77086900,53,44,3,40,1.86608655,1324,2.64500127 -offset_pillar,scene_cluttered.xml,positive_pan,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,false,success,7.61776800,121,87,3,38,1.80315752,1301,2.59962619 -offset_pillar,scene_cluttered.xml,positive_pan,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,false,success,6.91756900,85,74,3,42,1.95497101,1320,2.63606050 -offset_pillar,scene_cluttered.xml,negative_pan,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-2.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12143000,0,2,2,22,1.00000000,1176,2.34873737 -offset_pillar,scene_cluttered.xml,negative_pan,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-2.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12102000,0,2,2,22,1.00000000,1176,2.34873737 -offset_pillar,scene_cluttered.xml,negative_pan,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-2.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12090000,0,2,2,22,1.00000000,1176,2.34873737 -offset_pillar,scene_cluttered.xml,negative_pan,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-2.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.11982000,0,2,2,22,1.00000000,1176,2.34873737 -offset_pillar,scene_cluttered.xml,negative_pan,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-2.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.11953000,0,2,2,22,1.00000000,1176,2.34873737 -offset_pillar,scene_cluttered.xml,shoulder_elbow,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.10970000,0,2,2,18,0.80467385,767,1.53055556 -offset_pillar,scene_cluttered.xml,shoulder_elbow,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.11961000,0,2,2,18,0.80467385,767,1.53055556 -offset_pillar,scene_cluttered.xml,shoulder_elbow,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.10472900,0,2,2,18,0.80467385,767,1.53055556 -offset_pillar,scene_cluttered.xml,shoulder_elbow,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.10456000,0,2,2,18,0.80467385,767,1.53055556 -offset_pillar,scene_cluttered.xml,shoulder_elbow,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.10455000,0,2,2,18,0.80467385,767,1.53055556 -tabletop_pillar,scene_pickplace.xml,cross_workspace,20260816,-1.97080000;-1.42080000;1.37080000;-1.47080000;-1.57080000;0.00000000,-0.82080000;-1.32080000;1.12080000;-1.32080000;-1.42080000;-0.20000000,false,success,1.42804800,1,9,3,32,1.51811648,1515,3.02746517 -tabletop_pillar,scene_pickplace.xml,cross_workspace,20260817,-1.97080000;-1.42080000;1.37080000;-1.47080000;-1.57080000;0.00000000,-0.82080000;-1.32080000;1.12080000;-1.32080000;-1.42080000;-0.20000000,false,success,2.35383600,14,21,3,35,1.60322265,1651,3.29821051 -tabletop_pillar,scene_pickplace.xml,cross_workspace,20260818,-1.97080000;-1.42080000;1.37080000;-1.47080000;-1.57080000;0.00000000,-0.82080000;-1.32080000;1.12080000;-1.32080000;-1.42080000;-0.20000000,false,success,9.71415400,219,124,4,35,1.66097912,1634,3.26532736 -tabletop_pillar,scene_pickplace.xml,cross_workspace,20260819,-1.97080000;-1.42080000;1.37080000;-1.47080000;-1.57080000;0.00000000,-0.82080000;-1.32080000;1.12080000;-1.32080000;-1.42080000;-0.20000000,false,success,6.25459000,103,69,4,46,2.20622753,1972,3.94023314 -tabletop_pillar,scene_pickplace.xml,cross_workspace,20260820,-1.97080000;-1.42080000;1.37080000;-1.47080000;-1.57080000;0.00000000,-0.82080000;-1.32080000;1.12080000;-1.32080000;-1.42080000;-0.20000000,false,success,4.31853300,75,58,4,40,1.93369592,1925,3.84732284 -tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260816,-0.92080000;-1.37080000;1.22080000;-1.42080000;-1.47080000;-0.20000000,-2.02080000;-1.47080000;1.47080000;-1.67080000;-1.77080000;0.35000000,false,success,5.12020200,21,25,4,36,1.71473352,1679,3.35412207 -tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260817,-0.92080000;-1.37080000;1.22080000;-1.42080000;-1.47080000;-0.20000000,-2.02080000;-1.47080000;1.47080000;-1.67080000;-1.77080000;0.35000000,false,success,7.12940900,9,16,3,36,1.67520170,1506,3.00864782 -tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260818,-0.92080000;-1.37080000;1.22080000;-1.42080000;-1.47080000;-0.20000000,-2.02080000;-1.47080000;1.47080000;-1.67080000;-1.77080000;0.35000000,false,success,5.28172200,2,9,3,32,1.47459528,1296,2.58979659 -tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260819,-0.92080000;-1.37080000;1.22080000;-1.42080000;-1.47080000;-0.20000000,-2.02080000;-1.47080000;1.47080000;-1.67080000;-1.77080000;0.35000000,false,success,5.80245100,10,16,3,32,1.47536270,1358,2.71385271 -tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260820,-0.92080000;-1.37080000;1.22080000;-1.42080000;-1.47080000;-0.20000000,-2.02080000;-1.47080000;1.47080000;-1.67080000;-1.77080000;0.35000000,false,success,6.44594900,24,26,3,34,1.57295370,1502,3.00193184 -tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.21792000,0,2,2,23,1.05830052,903,1.80328283 -tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.21204000,0,2,2,23,1.05830052,903,1.80328283 -tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.21623000,0,2,2,23,1.05830052,903,1.80328283 -tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.20825900,0,2,2,23,1.05830052,903,1.80328283 -tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.21014000,0,2,2,23,1.05830052,903,1.80328283 +open_floor,scene.xml,positive_pan,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12216000,0,2,2,23,1.10000000,1267,2.53200000 +open_floor,scene.xml,positive_pan,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12146000,0,2,2,23,1.10000000,1267,2.53200000 +open_floor,scene.xml,positive_pan,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.18061000,0,2,2,23,1.10000000,1267,2.53200000 +open_floor,scene.xml,positive_pan,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12310000,0,2,2,23,1.10000000,1267,2.53200000 +open_floor,scene.xml,positive_pan,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12065000,0,2,2,23,1.10000000,1267,2.53200000 +open_floor,scene.xml,shoulder_elbow,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.09969000,0,2,2,18,0.80467385,767,1.53200000 +open_floor,scene.xml,shoulder_elbow,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.09729000,0,2,2,18,0.80467385,767,1.53200000 +open_floor,scene.xml,shoulder_elbow,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.09692900,0,2,2,18,0.80467385,767,1.53200000 +open_floor,scene.xml,shoulder_elbow,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.09671000,0,2,2,18,0.80467385,767,1.53200000 +open_floor,scene.xml,shoulder_elbow,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.09664000,0,2,2,18,0.80467385,767,1.53200000 +open_floor,scene.xml,wrist_reorientation,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.13506000,0,2,2,23,1.05830052,903,1.80400000 +open_floor,scene.xml,wrist_reorientation,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.12807000,0,2,2,23,1.05830052,903,1.80400000 +open_floor,scene.xml,wrist_reorientation,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.13976000,0,2,2,23,1.05830052,903,1.80400000 +open_floor,scene.xml,wrist_reorientation,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.11880000,0,2,2,23,1.05830052,903,1.80400000 +open_floor,scene.xml,wrist_reorientation,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.11810000,0,2,2,23,1.05830052,903,1.80400000 +offset_pillar,scene_cluttered.xml,positive_pan,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,false,success,6.43590800,69,64,3,53,2.54129475,1919,3.83600000 +offset_pillar,scene_cluttered.xml,positive_pan,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,false,success,6.47988800,71,69,4,45,2.17517403,2133,4.26400000 +offset_pillar,scene_cluttered.xml,positive_pan,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,false,success,5.54154800,53,44,3,40,1.86608655,1533,3.06400000 +offset_pillar,scene_cluttered.xml,positive_pan,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,false,success,8.15451700,121,87,3,38,1.80315752,1533,3.06400000 +offset_pillar,scene_cluttered.xml,positive_pan,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-0.47080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,false,success,6.93804900,85,74,3,42,1.95497101,1532,3.06200000 +offset_pillar,scene_cluttered.xml,negative_pan,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-2.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12421000,0,2,2,22,1.00000000,1176,2.35000000 +offset_pillar,scene_cluttered.xml,negative_pan,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-2.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.13279000,0,2,2,22,1.00000000,1176,2.35000000 +offset_pillar,scene_cluttered.xml,negative_pan,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-2.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12674000,0,2,2,22,1.00000000,1176,2.35000000 +offset_pillar,scene_cluttered.xml,negative_pan,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-2.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.12097000,0,2,2,22,1.00000000,1176,2.35000000 +offset_pillar,scene_cluttered.xml,negative_pan,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-2.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,true,success,0.15217000,0,2,2,22,1.00000000,1176,2.35000000 +offset_pillar,scene_cluttered.xml,shoulder_elbow,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.10652000,0,2,2,18,0.80467385,767,1.53200000 +offset_pillar,scene_cluttered.xml,shoulder_elbow,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.10563000,0,2,2,18,0.80467385,767,1.53200000 +offset_pillar,scene_cluttered.xml,shoulder_elbow,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.10491000,0,2,2,18,0.80467385,767,1.53200000 +offset_pillar,scene_cluttered.xml,shoulder_elbow,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.10983000,0,2,2,18,0.80467385,767,1.53200000 +offset_pillar,scene_cluttered.xml,shoulder_elbow,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.22080000;-1.17080000;1.02080000;-1.32080000;-1.57080000;0.00000000,true,success,0.10397000,0,2,2,18,0.80467385,767,1.53200000 +tabletop_pillar,scene_pickplace.xml,cross_workspace,20260816,-1.97080000;-1.42080000;1.37080000;-1.47080000;-1.57080000;0.00000000,-0.82080000;-1.32080000;1.12080000;-1.32080000;-1.42080000;-0.20000000,false,success,1.50616900,1,9,3,32,1.51811648,1767,3.53200000 +tabletop_pillar,scene_pickplace.xml,cross_workspace,20260817,-1.97080000;-1.42080000;1.37080000;-1.47080000;-1.57080000;0.00000000,-0.82080000;-1.32080000;1.12080000;-1.32080000;-1.42080000;-0.20000000,false,success,2.35192900,14,21,3,35,1.60322265,1885,3.76800000 +tabletop_pillar,scene_pickplace.xml,cross_workspace,20260818,-1.97080000;-1.42080000;1.37080000;-1.47080000;-1.57080000;0.00000000,-0.82080000;-1.32080000;1.12080000;-1.32080000;-1.42080000;-0.20000000,false,success,11.07584700,219,124,4,35,1.66097912,2080,4.15800000 +tabletop_pillar,scene_pickplace.xml,cross_workspace,20260819,-1.97080000;-1.42080000;1.37080000;-1.47080000;-1.57080000;0.00000000,-0.82080000;-1.32080000;1.12080000;-1.32080000;-1.42080000;-0.20000000,false,success,6.43766800,103,69,4,46,2.20622753,2430,4.85800000 +tabletop_pillar,scene_pickplace.xml,cross_workspace,20260820,-1.97080000;-1.42080000;1.37080000;-1.47080000;-1.57080000;0.00000000,-0.82080000;-1.32080000;1.12080000;-1.32080000;-1.42080000;-0.20000000,false,success,5.28561900,75,58,4,40,1.93369592,2365,4.72800000 +tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260816,-0.92080000;-1.37080000;1.22080000;-1.42080000;-1.47080000;-0.20000000,-2.02080000;-1.47080000;1.47080000;-1.67080000;-1.77080000;0.35000000,false,success,5.41943900,21,25,4,36,1.71473352,2060,4.11800000 +tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260817,-0.92080000;-1.37080000;1.22080000;-1.42080000;-1.47080000;-0.20000000,-2.02080000;-1.47080000;1.47080000;-1.67080000;-1.77080000;0.35000000,false,success,7.86022800,9,16,3,36,1.67520170,1722,3.44200000 +tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260818,-0.92080000;-1.37080000;1.22080000;-1.42080000;-1.47080000;-0.20000000,-2.02080000;-1.47080000;1.47080000;-1.67080000;-1.77080000;0.35000000,false,success,6.85567800,2,9,3,32,1.47459528,1553,3.10400000 +tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260819,-0.92080000;-1.37080000;1.22080000;-1.42080000;-1.47080000;-0.20000000,-2.02080000;-1.47080000;1.47080000;-1.67080000;-1.77080000;0.35000000,false,success,6.09253800,10,16,3,32,1.47536270,1532,3.06200000 +tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260820,-0.92080000;-1.37080000;1.22080000;-1.42080000;-1.47080000;-0.20000000,-2.02080000;-1.47080000;1.47080000;-1.67080000;-1.77080000;0.35000000,false,success,7.21750800,24,26,3,34,1.57295370,1726,3.45000000 +tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260816,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.14082900,0,2,2,23,1.05830052,903,1.80400000 +tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260817,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.15316000,0,2,2,23,1.05830052,903,1.80400000 +tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260818,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.15010000,0,2,2,23,1.05830052,903,1.80400000 +tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260819,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.18104000,0,2,2,23,1.05830052,903,1.80400000 +tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260820,-1.57080000;-1.57080000;1.57080000;-1.57080000;-1.57080000;0.00000000,-1.32080000;-1.72080000;1.82080000;-1.92080000;-0.97080000;-0.70000000,true,success,0.18157000,0,2,2,23,1.05830052,903,1.80400000 diff --git a/docs/multi_query_results.md b/docs/multi_query_results.md index 2d1e0bd..8ad9cf8 100644 --- a/docs/multi_query_results.md +++ b/docs/multi_query_results.md @@ -15,11 +15,11 @@ The numeric tracking limits are reused unchanged from the earlier robustness env | open_floor | positive_pan | free | 5/5 | 1.100--1.100 | 1267 samples / 2.53 s | | open_floor | shoulder_elbow | free | 5/5 | 0.805--0.805 | 767 samples / 1.53 s | | open_floor | wrist_reorientation | free | 5/5 | 1.058--1.058 | 903 samples / 1.80 s | -| offset_pillar | positive_pan | blocked | 5/5 | 1.803--2.541 | 1751 samples / 3.50 s | +| offset_pillar | positive_pan | blocked | 5/5 | 1.803--2.541 | 1919 samples / 3.84 s | | offset_pillar | negative_pan | free | 5/5 | 1.000--1.000 | 1176 samples / 2.35 s | | offset_pillar | shoulder_elbow | free | 5/5 | 0.805--0.805 | 767 samples / 1.53 s | -| tabletop_pillar | cross_workspace | blocked | 5/5 | 1.518--2.206 | 1515 samples / 3.03 s | -| tabletop_pillar | reverse_cross_workspace | blocked | 5/5 | 1.475--1.715 | 1679 samples / 3.35 s | +| tabletop_pillar | cross_workspace | blocked | 5/5 | 1.518--2.206 | 1767 samples / 3.53 s | +| tabletop_pillar | reverse_cross_workspace | blocked | 5/5 | 1.475--1.715 | 2060 samples / 4.12 s | | tabletop_pillar | wrist_reorientation | free | 5/5 | 1.058--1.058 | 903 samples / 1.80 s | ## Tracking results @@ -28,24 +28,24 @@ Each cell is RMS / maximum / final six-joint L2 error in radians, followed by sa | Scene | Query | Plant | Position PD | PD + velocity FF | |---|---|---|---:|---:| -| open_floor | positive_pan | nominal | 0.0913/0.1095/0.0119; p 0/0/0; pen 0.000 mm FAIL | 0.0117/0.0118/0.0116; p 0/0/0; pen 0.000 mm PASS | +| open_floor | positive_pan | nominal | 0.0913/0.1094/0.0119; p 0/0/0; pen 0.000 mm FAIL | 0.0117/0.0118/0.0116; p 0/0/0; pen 0.000 mm PASS | | open_floor | positive_pan | combined moderate shift | 0.0973/0.1163/0.0195; p 0/0/0; pen 0.000 mm FAIL | 0.0195/0.0202/0.0193; p 0/0/0; pen 0.000 mm PASS | -| open_floor | shoulder_elbow | nominal | 0.1117/0.1552/0.0173; p 0/0/0; pen 0.000 mm FAIL | 0.0140/0.0176/0.0176; p 0/0/0; pen 0.000 mm PASS | -| open_floor | shoulder_elbow | combined moderate shift | 0.1188/0.1643/0.0266; p 0/0/0; pen 0.000 mm FAIL | 0.0222/0.0270/0.0271; p 0/0/0; pen 0.000 mm FAIL | -| open_floor | wrist_reorientation | nominal | 0.1245/0.1640/0.0105; p 0/0/0; pen 0.000 mm FAIL | 0.0109/0.0116/0.0098; p 0/0/0; pen 0.000 mm PASS | -| open_floor | wrist_reorientation | combined moderate shift | 0.1339/0.1760/0.0187; p 0/0/0; pen 0.000 mm FAIL | 0.0200/0.0215/0.0176; p 0/0/0; pen 0.000 mm PASS | -| offset_pillar | positive_pan | nominal | 0.1409/0.1719/0.0111; p 0/0/0; pen 0.000 mm FAIL | 0.0097/0.0121/0.0117; p 0/0/0; pen 0.000 mm PASS | -| offset_pillar | positive_pan | combined moderate shift | 0.1498/0.1852/0.0187; p 0/0/0; pen 0.000 mm FAIL | 0.0186/0.0241/0.0194; p 0/0/0; pen 0.000 mm PASS | -| offset_pillar | negative_pan | nominal | 0.0897/0.1095/0.0120; p 0/0/0; pen 0.000 mm FAIL | 0.0117/0.0119/0.0117; p 0/0/0; pen 0.000 mm PASS | +| open_floor | shoulder_elbow | nominal | 0.1117/0.1551/0.0173; p 0/0/0; pen 0.000 mm FAIL | 0.0140/0.0176/0.0176; p 0/0/0; pen 0.000 mm PASS | +| open_floor | shoulder_elbow | combined moderate shift | 0.1187/0.1642/0.0266; p 0/0/0; pen 0.000 mm FAIL | 0.0222/0.0270/0.0271; p 0/0/0; pen 0.000 mm FAIL | +| open_floor | wrist_reorientation | nominal | 0.1245/0.1639/0.0105; p 0/0/0; pen 0.000 mm FAIL | 0.0109/0.0116/0.0098; p 0/0/0; pen 0.000 mm PASS | +| open_floor | wrist_reorientation | combined moderate shift | 0.1338/0.1760/0.0187; p 0/0/0; pen 0.000 mm FAIL | 0.0200/0.0215/0.0176; p 0/0/0; pen 0.000 mm PASS | +| offset_pillar | positive_pan | nominal | 0.1406/0.1899/0.0111; p 0/0/0; pen 0.000 mm FAIL | 0.0093/0.0122/0.0117; p 0/0/0; pen 0.000 mm PASS | +| offset_pillar | positive_pan | combined moderate shift | 0.1494/0.1994/0.0187; p 0/0/0; pen 0.000 mm FAIL | 0.0180/0.0241/0.0194; p 0/0/0; pen 0.000 mm PASS | +| offset_pillar | negative_pan | nominal | 0.0897/0.1094/0.0120; p 0/0/0; pen 0.000 mm FAIL | 0.0116/0.0119/0.0117; p 0/0/0; pen 0.000 mm PASS | | offset_pillar | negative_pan | combined moderate shift | 0.0957/0.1163/0.0196; p 0/0/0; pen 0.000 mm FAIL | 0.0195/0.0200/0.0193; p 0/0/0; pen 0.000 mm PASS | -| offset_pillar | shoulder_elbow | nominal | 0.1117/0.1552/0.0173; p 0/0/0; pen 0.000 mm FAIL | 0.0140/0.0176/0.0176; p 0/0/0; pen 0.000 mm PASS | -| offset_pillar | shoulder_elbow | combined moderate shift | 0.1188/0.1643/0.0266; p 0/0/0; pen 0.000 mm FAIL | 0.0222/0.0270/0.0271; p 0/0/0; pen 0.000 mm FAIL | -| tabletop_pillar | cross_workspace | nominal | 0.0998/0.1204/0.0152; p 0/0/0; pen 0.000 mm FAIL | 0.0132/0.0151/0.0152; p 0/0/0; pen 0.000 mm PASS | -| tabletop_pillar | cross_workspace | combined moderate shift | 0.1067/0.1278/0.0239; p 0/0/0; pen 0.000 mm FAIL | 0.0218/0.0252/0.0240; p 0/0/0; pen 0.000 mm FAIL | -| tabletop_pillar | reverse_cross_workspace | nominal | 0.1033/0.1213/0.0134; p 0/35/0; pen 0.055 mm FAIL | 0.0129/0.0143/0.0131; p 0/25/0; pen 0.050 mm FAIL | -| tabletop_pillar | reverse_cross_workspace | combined moderate shift | 0.1108/0.1315/0.0221; p 0/72/0; pen 0.079 mm FAIL | 0.0213/0.0241/0.0216; p 0/60/0; pen 0.079 mm FAIL | -| tabletop_pillar | wrist_reorientation | nominal | 0.1245/0.1640/0.0105; p 0/0/0; pen 0.000 mm FAIL | 0.0109/0.0116/0.0098; p 0/0/0; pen 0.000 mm PASS | -| tabletop_pillar | wrist_reorientation | combined moderate shift | 0.1339/0.1760/0.0187; p 0/0/0; pen 0.000 mm FAIL | 0.0200/0.0215/0.0176; p 0/0/0; pen 0.000 mm PASS | +| offset_pillar | shoulder_elbow | nominal | 0.1117/0.1551/0.0173; p 0/0/0; pen 0.000 mm FAIL | 0.0140/0.0176/0.0176; p 0/0/0; pen 0.000 mm PASS | +| offset_pillar | shoulder_elbow | combined moderate shift | 0.1187/0.1642/0.0266; p 0/0/0; pen 0.000 mm FAIL | 0.0222/0.0270/0.0271; p 0/0/0; pen 0.000 mm FAIL | +| tabletop_pillar | cross_workspace | nominal | 0.0926/0.1204/0.0152; p 0/0/0; pen 0.000 mm FAIL | 0.0129/0.0151/0.0152; p 0/0/0; pen 0.000 mm PASS | +| tabletop_pillar | cross_workspace | combined moderate shift | 0.0992/0.1277/0.0239; p 0/0/0; pen 0.000 mm FAIL | 0.0213/0.0251/0.0240; p 0/0/0; pen 0.000 mm FAIL | +| tabletop_pillar | reverse_cross_workspace | nominal | 0.0901/0.1362/0.0135; p 0/23/0; pen 0.030 mm FAIL | 0.0128/0.0143/0.0131; p 0/18/0; pen 0.031 mm FAIL | +| tabletop_pillar | reverse_cross_workspace | combined moderate shift | 0.0970/0.1472/0.0222; p 0/54/0; pen 0.079 mm FAIL | 0.0211/0.0241/0.0216; p 0/43/0; pen 0.076 mm FAIL | +| tabletop_pillar | wrist_reorientation | nominal | 0.1245/0.1639/0.0105; p 0/0/0; pen 0.000 mm FAIL | 0.0109/0.0116/0.0098; p 0/0/0; pen 0.000 mm PASS | +| tabletop_pillar | wrist_reorientation | combined moderate shift | 0.1338/0.1760/0.0187; p 0/0/0; pen 0.000 mm FAIL | 0.0200/0.0215/0.0176; p 0/0/0; pen 0.000 mm PASS | ## Aggregate result @@ -53,7 +53,7 @@ Each cell is RMS / maximum / final six-joint L2 error in radians, followed by sa - Obstructed planner trials: 15/15 succeeded. - Position PD: 0/18 meet the numeric tracking gates; 0/18 pass after the zero-penetration requirement. - PD + velocity feedforward: 14/18 meet the numeric tracking gates; 13/18 pass after the zero-penetration requirement. -- Executed-penetration audit: 4/36 cases have sampled robot penetration; 192 total phase-steps, maximum actual penetration 0.00007925 m. +- Executed-penetration audit: 4/36 cases have sampled robot penetration; 138 total phase-steps, maximum actual penetration 0.00007856 m. ## Executed penetration cases @@ -62,10 +62,10 @@ Penetration steps are shown as settle/path/hold. The worst emitted contact is se | Scene | Query | Plant | Controller | Steps S/P/H | Max penetration (m) | Worst phase / signed distance / geom pair | |---|---|---|---|---:|---:|---| -| tabletop_pillar | reverse_cross_workspace | nominal | position PD | 0/35/0 | 0.00005480 | path / -0.00005480 / geom#27[27]@wrist_2_link vs pillar[31]@pillar | -| tabletop_pillar | reverse_cross_workspace | nominal | PD + velocity FF | 0/25/0 | 0.00005013 | path / -0.00005013 / geom#27[27]@wrist_2_link vs pillar[31]@pillar | -| tabletop_pillar | reverse_cross_workspace | combined moderate shift | position PD | 0/72/0 | 0.00007925 | path / -0.00007925 / geom#27[27]@wrist_2_link vs pillar[31]@pillar | -| tabletop_pillar | reverse_cross_workspace | combined moderate shift | PD + velocity FF | 0/60/0 | 0.00007922 | path / -0.00007922 / geom#27[27]@wrist_2_link vs pillar[31]@pillar | +| tabletop_pillar | reverse_cross_workspace | nominal | position PD | 0/23/0 | 0.00003041 | path / -0.00003041 / geom#27[27]@wrist_2_link vs pillar[31]@pillar | +| tabletop_pillar | reverse_cross_workspace | nominal | PD + velocity FF | 0/18/0 | 0.00003100 | path / -0.00003100 / geom#27[27]@wrist_2_link vs pillar[31]@pillar | +| tabletop_pillar | reverse_cross_workspace | combined moderate shift | position PD | 0/54/0 | 0.00007856 | path / -0.00007856 / geom#27[27]@wrist_2_link vs pillar[31]@pillar | +| tabletop_pillar | reverse_cross_workspace | combined moderate shift | PD + velocity FF | 0/43/0 | 0.00007565 | path / -0.00007565 / geom#27[27]@wrist_2_link vs pillar[31]@pillar | The fixed `tabletop_pillar/reverse_cross_workspace` fixture is retained in full, including any penetration-failing outcomes; no fixture or failed case is removed from either artifact. @@ -77,7 +77,7 @@ The fixed `tabletop_pillar/reverse_cross_workspace` fixture is retained in full, - Only position PD and its desired-velocity-feedforward variant are compared here. This extension does not show that nominal-bias or integral-residual results generalize across queries. - The combined plant is one deterministic condition: 1 kg payload at 0.10 m, 80% actuator gains, +1 Nms/rad joint damping, 10 ms command latency, and a 10 Nm / 120 ms shoulder-lift pulse at 45% of each trajectory. It is not a randomized uncertainty distribution. - Planner collision checks remain discrete at 0.05 rad in joint-space L2 and use MuJoCo's emitted-contact set. The repository's positive contact threshold filters emitted candidates; with these zero-margin geoms it does not establish positive geometric clearance. Planner behavior is retained, but no 1-mm-clearance claim is made. -- The execution gate checks signed distance `< 0` at each 2-ms simulation state in settle, path, and hold. It detects sampled penetration, not positive-distance near misses or continuous swept-volume collision between samples. Polyline corners remain unblended, so the scalar time law does not certify global acceleration or jerk. +- The execution gate checks signed distance `< 0` at each 2-ms simulation state in settle, path, and hold. It detects sampled penetration, not positive-distance near misses or continuous swept-volume collision between samples. Each shortcut edge uses a rest-to-rest S-curve, making position, velocity, and acceleration continuous at full-stop corners while keeping jerk bounded almost everywhere; this is not geometric corner blending or a time-optimal parameterization. - There is no sensor noise, contact-rich grasping, hardware experiment, or sim-to-real guarantee. ## Reproduce diff --git a/docs/multi_query_tracking.csv b/docs/multi_query_tracking.csv index 138208b..3837558 100644 --- a/docs/multi_query_tracking.csv +++ b/docs/multi_query_tracking.csv @@ -1,37 +1,37 @@ scene,scene_file,query,seed,direct_path_free,plant,controller,trajectory_samples,trajectory_duration_s,rms_joint_rad,max_joint_rad,final_joint_rad,max_ee_pos_m,peak_force_fraction,saturated_step_fraction,settle_penetration_steps,settle_max_penetration_m,settle_worst_contact_distance_m,settle_worst_contact,path_penetration_steps,path_max_penetration_m,path_worst_contact_distance_m,path_worst_contact,hold_penetration_steps,hold_max_penetration_m,hold_worst_contact_distance_m,hold_worst_contact,penetration_steps,max_penetration_m,pass -open_floor,scene.xml,positive_pan,20260816,true,nominal,position PD,1267,2.53055556,0.09129176,0.10951059,0.01189736,0.05658881,0.11131157,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -open_floor,scene.xml,positive_pan,20260816,true,nominal,PD + velocity FF,1267,2.53055556,0.01167638,0.01177042,0.01164128,0.00836165,0.11324538,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -open_floor,scene.xml,positive_pan,20260816,true,combined moderate shift,position PD,1267,2.53055556,0.09731765,0.11634764,0.01948129,0.06073798,0.14793866,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -open_floor,scene.xml,positive_pan,20260816,true,combined moderate shift,PD + velocity FF,1267,2.53055556,0.01954746,0.02020349,0.01932490,0.01410921,0.14794182,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -open_floor,scene.xml,shoulder_elbow,20260816,true,nominal,position PD,767,1.53055556,0.11174946,0.15522691,0.01725200,0.04531244,0.20979290,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -open_floor,scene.xml,shoulder_elbow,20260816,true,nominal,PD + velocity FF,767,1.53055556,0.01403839,0.01762035,0.01759917,0.01464391,0.22205561,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -open_floor,scene.xml,shoulder_elbow,20260816,true,combined moderate shift,position PD,767,1.53055556,0.11875634,0.16432404,0.02664251,0.04898549,0.25144962,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -open_floor,scene.xml,shoulder_elbow,20260816,true,combined moderate shift,PD + velocity FF,767,1.53055556,0.02222473,0.02701895,0.02713649,0.02242778,0.26370723,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -open_floor,scene.xml,wrist_reorientation,20260816,true,nominal,position PD,903,1.80328283,0.12450657,0.16395815,0.01053793,0.03189809,0.11149208,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -open_floor,scene.xml,wrist_reorientation,20260816,true,nominal,PD + velocity FF,903,1.80328283,0.01090525,0.01161888,0.00979879,0.00825368,0.11398148,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -open_floor,scene.xml,wrist_reorientation,20260816,true,combined moderate shift,position PD,903,1.80328283,0.13385055,0.17604234,0.01867555,0.03555215,0.14698090,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -open_floor,scene.xml,wrist_reorientation,20260816,true,combined moderate shift,PD + velocity FF,903,1.80328283,0.01997269,0.02150639,0.01763538,0.01368163,0.14750717,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -offset_pillar,scene_cluttered.xml,positive_pan,20260816,false,nominal,position PD,1751,3.49937200,0.14092183,0.17193787,0.01108060,0.07768279,0.12082634,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -offset_pillar,scene_cluttered.xml,positive_pan,20260816,false,nominal,PD + velocity FF,1751,3.49937200,0.00968930,0.01211322,0.01167408,0.00858596,1.00000000,0.00114220,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -offset_pillar,scene_cluttered.xml,positive_pan,20260816,false,combined moderate shift,position PD,1751,3.49937200,0.14977587,0.18515253,0.01866941,0.08562599,0.15629775,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -offset_pillar,scene_cluttered.xml,positive_pan,20260816,false,combined moderate shift,PD + velocity FF,1751,3.49937200,0.01857049,0.02406949,0.01937812,0.01683355,1.00000000,0.00114220,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -offset_pillar,scene_cluttered.xml,negative_pan,20260816,true,nominal,position PD,1176,2.34873737,0.08972564,0.10948313,0.01196390,0.05578537,0.11159613,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -offset_pillar,scene_cluttered.xml,negative_pan,20260816,true,nominal,PD + velocity FF,1176,2.34873737,0.01165001,0.01190326,0.01165928,0.00848648,0.11318029,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -offset_pillar,scene_cluttered.xml,negative_pan,20260816,true,combined moderate shift,position PD,1176,2.34873737,0.09568082,0.11631281,0.01955737,0.05955611,0.14797399,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -offset_pillar,scene_cluttered.xml,negative_pan,20260816,true,combined moderate shift,PD + velocity FF,1176,2.34873737,0.01949234,0.01996580,0.01934500,0.01378922,0.14794534,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -offset_pillar,scene_cluttered.xml,shoulder_elbow,20260816,true,nominal,position PD,767,1.53055556,0.11174946,0.15522691,0.01725200,0.04531244,0.20979290,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -offset_pillar,scene_cluttered.xml,shoulder_elbow,20260816,true,nominal,PD + velocity FF,767,1.53055556,0.01403839,0.01762035,0.01759917,0.01464391,0.22205561,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -offset_pillar,scene_cluttered.xml,shoulder_elbow,20260816,true,combined moderate shift,position PD,767,1.53055556,0.11875634,0.16432404,0.02664251,0.04898549,0.25144962,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -offset_pillar,scene_cluttered.xml,shoulder_elbow,20260816,true,combined moderate shift,PD + velocity FF,767,1.53055556,0.02222473,0.02701895,0.02713649,0.02242778,0.26370723,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -tabletop_pillar,scene_pickplace.xml,cross_workspace,20260816,false,nominal,position PD,1515,3.02746517,0.09979727,0.12044330,0.01516361,0.06385576,0.16914397,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -tabletop_pillar,scene_pickplace.xml,cross_workspace,20260816,false,nominal,PD + velocity FF,1515,3.02746517,0.01316320,0.01512919,0.01517729,0.01215343,1.00000000,0.00066007,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -tabletop_pillar,scene_pickplace.xml,cross_workspace,20260816,false,combined moderate shift,position PD,1515,3.02746517,0.10668095,0.12775363,0.02389145,0.06863752,0.20825102,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -tabletop_pillar,scene_pickplace.xml,cross_workspace,20260816,false,combined moderate shift,PD + velocity FF,1515,3.02746517,0.02181035,0.02523840,0.02400096,0.01907289,1.00000000,0.00066007,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260816,false,nominal,position PD,1679,3.35412207,0.10326798,0.12134823,0.01340133,0.05654237,0.29351119,0.00000000,0,0.00000000,,,35,0.00005480,-0.00005480,geom#27[27]@wrist_2_link vs pillar[31]@pillar,0,0.00000000,,,35,0.00005480,false -tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260816,false,nominal,PD + velocity FF,1679,3.35412207,0.01287595,0.01425906,0.01307311,0.01127117,1.00000000,0.00119119,0,0.00000000,,,25,0.00005013,-0.00005013,geom#27[27]@wrist_2_link vs pillar[31]@pillar,0,0.00000000,,,25,0.00005013,false -tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260816,false,combined moderate shift,position PD,1679,3.35412207,0.11081774,0.13149558,0.02206862,0.06128885,0.31697492,0.00000000,0,0.00000000,,,72,0.00007925,-0.00007925,geom#27[27]@wrist_2_link vs pillar[31]@pillar,0,0.00000000,,,72,0.00007925,false -tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260816,false,combined moderate shift,PD + velocity FF,1679,3.35412207,0.02130657,0.02405470,0.02159796,0.01831127,1.00000000,0.00059559,0,0.00000000,,,60,0.00007922,-0.00007922,geom#27[27]@wrist_2_link vs pillar[31]@pillar,0,0.00000000,,,60,0.00007922,false -tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260816,true,nominal,position PD,903,1.80328283,0.12450657,0.16395815,0.01053793,0.03189809,0.11149208,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260816,true,nominal,PD + velocity FF,903,1.80328283,0.01090525,0.01161888,0.00979879,0.00825368,0.11398148,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true -tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260816,true,combined moderate shift,position PD,903,1.80328283,0.13385055,0.17604234,0.01867555,0.03555215,0.14698090,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false -tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260816,true,combined moderate shift,PD + velocity FF,903,1.80328283,0.01997269,0.02150639,0.01763538,0.01368163,0.14750717,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +open_floor,scene.xml,positive_pan,20260816,true,nominal,position PD,1267,2.53200000,0.09126566,0.10944892,0.01190067,0.05655751,0.11130836,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +open_floor,scene.xml,positive_pan,20260816,true,nominal,PD + velocity FF,1267,2.53200000,0.01167637,0.01177028,0.01164123,0.00836158,0.11323883,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +open_floor,scene.xml,positive_pan,20260816,true,combined moderate shift,position PD,1267,2.53200000,0.09729046,0.11628320,0.01948342,0.06070552,0.14793896,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +open_floor,scene.xml,positive_pan,20260816,true,combined moderate shift,PD + velocity FF,1267,2.53200000,0.01954720,0.02020244,0.01932484,0.01410868,0.14794212,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +open_floor,scene.xml,shoulder_elbow,20260816,true,nominal,position PD,767,1.53200000,0.11170047,0.15509138,0.01725253,0.04527464,0.20978783,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +open_floor,scene.xml,shoulder_elbow,20260816,true,nominal,PD + velocity FF,767,1.53200000,0.01403521,0.01762031,0.01759918,0.01464365,0.22202001,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +open_floor,scene.xml,shoulder_elbow,20260816,true,combined moderate shift,position PD,767,1.53200000,0.11870477,0.16418064,0.02664161,0.04894744,0.25144476,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +open_floor,scene.xml,shoulder_elbow,20260816,true,combined moderate shift,PD + velocity FF,767,1.53200000,0.02221997,0.02701788,0.02713647,0.02242684,0.26367427,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +open_floor,scene.xml,wrist_reorientation,20260816,true,nominal,position PD,903,1.80400000,0.12448275,0.16389522,0.01054207,0.03188671,0.11148916,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +open_floor,scene.xml,wrist_reorientation,20260816,true,nominal,PD + velocity FF,903,1.80400000,0.01090556,0.01161884,0.00979879,0.00825366,0.11397590,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +open_floor,scene.xml,wrist_reorientation,20260816,true,combined moderate shift,position PD,903,1.80400000,0.13382543,0.17597616,0.01867978,0.03554089,0.14698110,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +open_floor,scene.xml,wrist_reorientation,20260816,true,combined moderate shift,PD + velocity FF,903,1.80400000,0.01997253,0.02150478,0.01763537,0.01368149,0.14750754,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +offset_pillar,scene_cluttered.xml,positive_pan,20260816,false,nominal,position PD,1919,3.83600000,0.14056743,0.18990497,0.01112002,0.07701404,0.12082232,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +offset_pillar,scene_cluttered.xml,positive_pan,20260816,false,nominal,PD + velocity FF,1919,3.83600000,0.00933848,0.01218182,0.01167759,0.00862841,0.12880951,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +offset_pillar,scene_cluttered.xml,positive_pan,20260816,false,combined moderate shift,position PD,1919,3.83600000,0.14939700,0.19935806,0.01865729,0.08522915,0.15629321,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +offset_pillar,scene_cluttered.xml,positive_pan,20260816,false,combined moderate shift,PD + velocity FF,1919,3.83600000,0.01796226,0.02406824,0.01938419,0.01683281,0.16517620,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +offset_pillar,scene_cluttered.xml,negative_pan,20260816,true,nominal,position PD,1176,2.35000000,0.08970167,0.10942514,0.01196698,0.05575597,0.11159262,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +offset_pillar,scene_cluttered.xml,negative_pan,20260816,true,nominal,PD + velocity FF,1176,2.35000000,0.01164990,0.01190300,0.01165933,0.00848630,0.11317466,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +offset_pillar,scene_cluttered.xml,negative_pan,20260816,true,combined moderate shift,position PD,1176,2.35000000,0.09565584,0.11625230,0.01955947,0.05952563,0.14797427,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +offset_pillar,scene_cluttered.xml,negative_pan,20260816,true,combined moderate shift,PD + velocity FF,1176,2.35000000,0.01949197,0.01996512,0.01934506,0.01378905,0.14794562,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +offset_pillar,scene_cluttered.xml,shoulder_elbow,20260816,true,nominal,position PD,767,1.53200000,0.11170047,0.15509138,0.01725253,0.04527464,0.20978783,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +offset_pillar,scene_cluttered.xml,shoulder_elbow,20260816,true,nominal,PD + velocity FF,767,1.53200000,0.01403521,0.01762031,0.01759918,0.01464365,0.22202001,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +offset_pillar,scene_cluttered.xml,shoulder_elbow,20260816,true,combined moderate shift,position PD,767,1.53200000,0.11870477,0.16418064,0.02664161,0.04894744,0.25144476,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +offset_pillar,scene_cluttered.xml,shoulder_elbow,20260816,true,combined moderate shift,PD + velocity FF,767,1.53200000,0.02221997,0.02701788,0.02713647,0.02242684,0.26367427,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +tabletop_pillar,scene_pickplace.xml,cross_workspace,20260816,false,nominal,position PD,1767,3.53200000,0.09264787,0.12036993,0.01516396,0.06381392,0.16914357,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +tabletop_pillar,scene_pickplace.xml,cross_workspace,20260816,false,nominal,PD + velocity FF,1767,3.53200000,0.01286905,0.01512912,0.01517728,0.01215330,0.17798865,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +tabletop_pillar,scene_pickplace.xml,cross_workspace,20260816,false,combined moderate shift,position PD,1767,3.53200000,0.09919446,0.12766973,0.02389160,0.06859586,0.20824912,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +tabletop_pillar,scene_pickplace.xml,cross_workspace,20260816,false,combined moderate shift,PD + velocity FF,1767,3.53200000,0.02133905,0.02508392,0.02400099,0.01907323,0.21776130,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260816,false,nominal,position PD,2060,4.11800000,0.09011154,0.13616534,0.01354629,0.05960294,0.28795468,0.00000000,0,0.00000000,,,23,0.00003041,-0.00003041,geom#27[27]@wrist_2_link vs pillar[31]@pillar,0,0.00000000,,,23,0.00003041,false +tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260816,false,nominal,PD + velocity FF,2060,4.11800000,0.01276119,0.01425913,0.01307331,0.01127127,0.31932914,0.00000000,0,0.00000000,,,18,0.00003100,-0.00003100,geom#27[27]@wrist_2_link vs pillar[31]@pillar,0,0.00000000,,,18,0.00003100,false +tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260816,false,combined moderate shift,position PD,2060,4.11800000,0.09698469,0.14724167,0.02222198,0.06550136,0.33294214,0.00000000,0,0.00000000,,,54,0.00007856,-0.00007856,geom#27[27]@wrist_2_link vs pillar[31]@pillar,0,0.00000000,,,54,0.00007856,false +tabletop_pillar,scene_pickplace.xml,reverse_cross_workspace,20260816,false,combined moderate shift,PD + velocity FF,2060,4.11800000,0.02111826,0.02405381,0.02159865,0.01831104,0.39121977,0.00000000,0,0.00000000,,,43,0.00007565,-0.00007565,geom#27[27]@wrist_2_link vs pillar[31]@pillar,0,0.00000000,,,43,0.00007565,false +tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260816,true,nominal,position PD,903,1.80400000,0.12448275,0.16389522,0.01054207,0.03188671,0.11148916,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260816,true,nominal,PD + velocity FF,903,1.80400000,0.01090556,0.01161884,0.00979879,0.00825366,0.11397590,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true +tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260816,true,combined moderate shift,position PD,903,1.80400000,0.13382543,0.17597616,0.01867978,0.03554089,0.14698110,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,false +tabletop_pillar,scene_pickplace.xml,wrist_reorientation,20260816,true,combined moderate shift,PD + velocity FF,903,1.80400000,0.01997253,0.02150478,0.01763537,0.01368149,0.14750754,0.00000000,0,0.00000000,,,0,0.00000000,,,0,0.00000000,,,0,0.00000000,true diff --git a/docs/randomized_eval_results.md b/docs/randomized_eval_results.md index ed0aeee..4320f64 100644 --- a/docs/randomized_eval_results.md +++ b/docs/randomized_eval_results.md @@ -40,14 +40,14 @@ Tracking is replayed only when the canonical default plan succeeds. Both control | Scene | Controller | Replays | Numeric | Full | Penetration cases | Steps S/P/H | Max penetration (m) | |---|---|---:|---:|---:|---:|---:|---:| -| open_floor | position PD | 47 | 0/47 | 0/47 | 7/47 | 180/845/104 | 0.00019435 | -| open_floor | PD + velocity FF | 47 | 38/47 | 33/47 | 6/47 | 180/738/250 | 0.00210038 | -| offset_pillar | position PD | 46 | 0/46 | 0/46 | 7/46 | 345/584/250 | 0.00096913 | -| offset_pillar | PD + velocity FF | 46 | 35/46 | 30/46 | 7/46 | 345/565/250 | 0.00132360 | -| tabletop_pillar | position PD | 45 | 0/45 | 0/45 | 5/45 | 0/636/250 | 0.00322250 | -| tabletop_pillar | PD + velocity FF | 45 | 31/45 | 27/45 | 5/45 | 0/770/250 | 0.00322223 | +| open_floor | position PD | 47 | 0/47 | 0/47 | 7/47 | 180/729/103 | 0.00026311 | +| open_floor | PD + velocity FF | 47 | 38/47 | 33/47 | 6/47 | 180/889/250 | 0.00090529 | +| offset_pillar | position PD | 46 | 0/46 | 0/46 | 7/46 | 345/685/250 | 0.00090942 | +| offset_pillar | PD + velocity FF | 46 | 35/46 | 30/46 | 7/46 | 345/765/250 | 0.00148761 | +| tabletop_pillar | position PD | 45 | 0/45 | 0/45 | 5/45 | 0/604/250 | 0.00321406 | +| tabletop_pillar | PD + velocity FF | 45 | 31/45 | 27/45 | 5/45 | 0/750/250 | 0.00321387 | -Paired full-gate discordance: **90 FF-pass/PD-fail** trajectories and **0 PD-pass/FF-fail** trajectories. Canonical planning failures with no replay: **162**. Sampled execution penetration occurs in **37/276** tracking cases; maximum depth is **0.00322250 m**. +Paired full-gate discordance: **90 FF-pass/PD-fail** trajectories and **0 PD-pass/FF-fail** trajectories. Canonical planning failures with no replay: **162**. Sampled execution penetration occurs in **37/276** tracking cases; maximum depth is **0.00321406 m**. ## Scope and limitations @@ -55,6 +55,7 @@ Paired full-gate discordance: **90 FF-pass/PD-fail** trajectories and **0 PD-pas - Wilson intervals describe repeated draws from this declared conditional generator only. The generator, scenes, and robot model remain fixed. - Direct and RRT collision checks sample joint-space edges at 0.05-rad L2 spacing and use the existing MuJoCo emitted-contact predicate. They do not certify continuous collision avoidance or positive clearance. - Tracking uses one canonical successful path per accepted query, the nominal plant only, and sampled `dist < 0` execution checks at 2-ms states. Planning failures receive no tracking replay and remain visible in the denominator. +- Trajectories use a rest-to-rest S-curve on every shortcut edge. Full-stop corners make joint position, velocity, and acceleration continuous and keep jerk bounded almost everywhere, but they are not geometric blends or time-optimal trajectories. - The goal-bias comparison changes one planner field; it is an ablation, not a comparison with an independent planning implementation. - There is no randomized plant uncertainty, sensing, localization, grasping, payload, hardware, or sim-to-real evidence in this extension. diff --git a/docs/randomized_eval_tracking.csv b/docs/randomized_eval_tracking.csv index 83c7e50..1606d58 100644 --- a/docs/randomized_eval_tracking.csv +++ b/docs/randomized_eval_tracking.csv @@ -1,277 +1,277 @@ scene,scene_file,query_index,seed,direct_path_free,controller,trajectory_samples,trajectory_duration_s,rms_joint_rad,max_joint_rad,final_joint_rad,max_ee_pos_m,peak_force_fraction,saturated_step_fraction,settle_penetration_steps,path_penetration_steps,hold_penetration_steps,max_penetration_m,worst_contact,numeric_pass,full_pass -open_floor,scene.xml,2,202608180020,false,position PD,9085,18.16638457,0.13512689,0.14232900,0.01130982,0.05526729,0.27697293,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,2,202608180020,false,PD + velocity FF,9085,18.16638457,0.01706299,0.02106444,0.01091845,0.02191400,1.00000000,0.00011007,0,0,0,0.00000000,,true,true -open_floor,scene.xml,3,202608180030,true,position PD,9042,18.08120459,0.16072584,0.16573014,0.01186357,0.04669469,0.11313530,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,3,202608180030,true,PD + velocity FF,9042,18.08120459,0.00798668,0.01084203,0.01097495,0.00708976,0.11348493,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,4,202608180040,true,position PD,8744,17.48521554,0.16187769,0.16943958,0.00783724,0.09079007,0.27573238,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,4,202608180040,true,PD + velocity FF,8744,17.48521554,0.01642667,0.02204165,0.00846650,0.02228155,0.27573238,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,5,202608180050,true,position PD,9818,19.63335792,0.11187258,0.11751728,0.01486107,0.02113001,0.19965490,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,5,202608180050,true,PD + velocity FF,9818,19.63335792,0.01011611,0.01588039,0.01536411,0.00808805,0.20056686,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,10,202608180100,true,position PD,5397,10.79168014,0.12102836,0.12794794,0.01114118,0.01935986,0.12021379,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,10,202608180100,true,PD + velocity FF,5397,10.79168014,0.00912070,0.01159537,0.01133721,0.00367336,0.12264983,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,12,202608180120,false,position PD,5513,11.02362116,0.17459006,0.18640323,0.02681019,0.08133844,0.34103019,0.00000000,0,362,0,0.00004229,floor[0]@world vs geom#27[27]@wrist_2_link,false,false -open_floor,scene.xml,12,202608180120,false,PD + velocity FF,5513,11.02362116,0.02080535,0.02655405,0.02646620,0.01971949,0.34188508,0.00000000,0,363,0,0.00003806,floor[0]@world vs geom#27[27]@wrist_2_link,false,false -open_floor,scene.xml,15,202608180150,false,position PD,8264,16.52482857,0.15836884,0.16483527,0.00669082,0.07097212,0.27603948,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,15,202608180150,false,PD + velocity FF,8264,16.52482857,0.01757191,0.02183419,0.00712110,0.02233311,0.50824977,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,19,202608180190,true,position PD,4843,9.68392413,0.13202310,0.13782753,0.01959933,0.01351014,0.25337076,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,19,202608180190,true,PD + velocity FF,4843,9.68392413,0.01722296,0.01994479,0.01969025,0.01469525,0.25506654,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,22,202608180220,false,position PD,8387,16.77040740,0.16723179,0.17897053,0.00605878,0.08657166,0.39078512,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,22,202608180220,false,PD + velocity FF,8387,16.77040740,0.01615590,0.02968842,0.00739274,0.02338860,1.00000000,0.00047693,0,0,0,0.00000000,,true,true -open_floor,scene.xml,29,202608180290,false,position PD,6125,12.24678830,0.15940963,0.16702256,0.02303618,0.07977694,0.29153493,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,29,202608180290,false,PD + velocity FF,6125,12.24678830,0.01728323,0.02271753,0.02264838,0.01741303,1.00000000,0.00016327,0,0,0,0.00000000,,false,false -open_floor,scene.xml,31,202608180310,true,position PD,10158,20.31329015,0.11839918,0.12244209,0.01162164,0.04612576,0.18888127,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,31,202608180310,true,PD + velocity FF,10158,20.31329015,0.00996725,0.01419048,0.01165185,0.00479595,0.18965650,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,32,202608180320,true,position PD,8383,16.76254828,0.16548065,0.17313206,0.01741828,0.06074363,0.22428505,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,32,202608180320,true,PD + velocity FF,8383,16.76254828,0.01179531,0.01816890,0.01765464,0.01566619,0.22937164,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,33,202608180330,true,position PD,5302,10.60157741,0.14852939,0.15509028,0.02732607,0.02272873,0.35403571,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,33,202608180330,true,PD + velocity FF,5302,10.60157741,0.02280094,0.02769796,0.02727134,0.02868376,0.35565492,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,34,202608180340,true,position PD,7504,15.00487274,0.11502933,0.12054443,0.01291211,0.05593667,0.18393257,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,34,202608180340,true,PD + velocity FF,7504,15.00487274,0.01035193,0.01394908,0.01321858,0.00769030,0.18514217,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,35,202608180350,true,position PD,5652,11.30176584,0.17176850,0.17933657,0.01287296,0.04768945,0.14051969,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,35,202608180350,true,PD + velocity FF,5652,11.30176584,0.00850874,0.01273035,0.01237224,0.00769611,0.14614101,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,37,202608180370,true,position PD,4520,9.03606994,0.16600648,0.17842196,0.01888455,0.08864629,0.26455369,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,37,202608180370,true,PD + velocity FF,4520,9.03606994,0.01334213,0.01997479,0.01929988,0.01940086,0.27109266,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,38,202608180380,true,position PD,9310,18.61621297,0.14739958,0.15303516,0.01585793,0.04815800,0.19995468,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,38,202608180380,true,PD + velocity FF,9310,18.61621297,0.01148390,0.01700482,0.01589901,0.01359464,0.20118150,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,39,202608180390,true,position PD,5250,10.49712169,0.12776859,0.13337639,0.01774977,0.04942861,0.24476244,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,39,202608180390,true,PD + velocity FF,5250,10.49712169,0.01203963,0.01849079,0.01795840,0.01265923,0.24912255,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,41,202608180410,true,position PD,2659,5.31556656,0.15442574,0.16739997,0.01923018,0.09179619,0.32531266,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,41,202608180410,true,PD + velocity FF,2659,5.31556656,0.02285045,0.02494896,0.01863999,0.02512971,0.32897476,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,43,202608180430,false,position PD,7805,15.60764321,0.15631352,0.16331926,0.01641612,0.06759431,0.46593761,0.00000000,0,26,0,0.00000757,geom#18[18]@forearm_link vs geom#29[29]@wrist_3_link,false,false -open_floor,scene.xml,43,202608180430,false,PD + velocity FF,7805,15.60764321,0.01730025,0.02225464,0.01624123,0.02114248,1.00000000,0.00012812,0,26,0,0.00000757,geom#18[18]@forearm_link vs geom#29[29]@wrist_3_link,true,false -open_floor,scene.xml,44,202608180440,false,position PD,8793,17.58333268,0.17505614,0.18091537,0.01282444,0.04687628,0.23522316,0.00000000,0,51,0,0.00003799,floor[0]@world vs geom#29[29]@wrist_3_link,false,false -open_floor,scene.xml,44,202608180440,false,PD + velocity FF,8793,17.58333268,0.01116943,0.01723723,0.01228836,0.01135852,0.28019422,0.00000000,0,51,0,0.00003799,floor[0]@world vs geom#29[29]@wrist_3_link,true,false -open_floor,scene.xml,50,202608180500,false,position PD,6191,12.37943107,0.15612425,0.16701394,0.01253017,0.08005159,0.34120331,0.00000000,180,235,0,0.00019435,floor[0]@world vs geom#17[17]@forearm_link,false,false -open_floor,scene.xml,50,202608180500,false,PD + velocity FF,6191,12.37943107,0.02126122,0.02656499,0.01177808,0.02499881,1.00000000,0.00032305,180,178,0,0.00019435,floor[0]@world vs geom#17[17]@forearm_link,true,false -open_floor,scene.xml,53,202608180530,true,position PD,8346,16.68923873,0.17035431,0.17647073,0.00578982,0.05410447,0.18160397,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,53,202608180530,true,PD + velocity FF,8346,16.68923873,0.00962056,0.01367967,0.00368963,0.01214058,0.18511381,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,54,202608180540,true,position PD,4992,9.98063332,0.12443634,0.13229422,0.00759889,0.01850504,0.10586341,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,54,202608180540,true,PD + velocity FF,4992,9.98063332,0.00771689,0.00860415,0.00819963,0.00393015,0.10586341,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,55,202608180550,true,position PD,8409,16.81426365,0.13303284,0.13840693,0.00692464,0.02652926,0.24169734,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,55,202608180550,true,PD + velocity FF,8409,16.81426365,0.01418541,0.01804221,0.00715732,0.01480952,0.24321951,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,56,202608180560,false,position PD,11410,22.81603121,0.14928778,0.15878566,0.01184987,0.09093513,0.78302836,0.00000000,0,48,0,0.00003113,geom#18[18]@forearm_link vs geom#29[29]@wrist_3_link,false,false -open_floor,scene.xml,56,202608180560,false,PD + velocity FF,11410,22.81603121,0.02003391,0.02670215,0.01131369,0.02722200,1.00000000,0.00017528,0,26,0,0.00210038,floor[0]@world vs geom#27[27]@wrist_2_link,true,false -open_floor,scene.xml,60,202608180600,false,position PD,7999,15.99504068,0.15329442,0.16448112,0.01248054,0.03910822,0.72029410,0.00000000,0,123,0,0.00007337,geom#18[18]@forearm_link vs geom#29[29]@wrist_3_link,false,false -open_floor,scene.xml,60,202608180600,false,PD + velocity FF,7999,15.99504068,0.00956921,0.01703574,0.01215076,0.01100296,1.00000000,0.00025003,0,0,0,0.00000000,,true,true -open_floor,scene.xml,61,202608180610,false,position PD,5104,10.20599560,0.15421785,0.16365553,0.01456079,0.05882854,0.26510658,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,61,202608180610,false,PD + velocity FF,5104,10.20599560,0.01285747,0.02090700,0.01415195,0.01822231,0.73440828,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,62,202608180620,true,position PD,10174,20.34438933,0.13099312,0.13681246,0.00459582,0.03930864,0.12342049,0.00000000,0,0,104,0.00013730,geom#11[11]@upper_arm_link vs geom#26[26]@wrist_2_link,false,false -open_floor,scene.xml,62,202608180620,true,PD + velocity FF,10174,20.34438933,0.00948538,0.01109627,0.00339475,0.00913972,0.12342049,0.00000000,0,94,250,0.00040931,geom#11[11]@upper_arm_link vs geom#26[26]@wrist_2_link,true,false -open_floor,scene.xml,65,202608180650,true,position PD,6840,13.67774446,0.16125498,0.17017556,0.02525957,0.09783358,0.33463512,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,65,202608180650,true,PD + velocity FF,6840,13.67774446,0.01416699,0.02672905,0.02586055,0.02774197,0.33959121,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,66,202608180660,true,position PD,10083,20.16377313,0.12965095,0.13281618,0.01924759,0.08285356,0.32866669,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,66,202608180660,true,PD + velocity FF,10083,20.16377313,0.02308534,0.02553504,0.01904878,0.01974771,0.32866669,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,69,202608180690,true,position PD,3591,7.17938101,0.18568227,0.19734051,0.01869768,0.09409588,0.33259727,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,69,202608180690,true,PD + velocity FF,3591,7.17938101,0.02387354,0.02625495,0.01874975,0.02791045,0.33259727,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,71,202608180710,true,position PD,4555,9.10733088,0.13602024,0.14236994,0.02096730,0.03566234,0.27426215,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,71,202608180710,true,PD + velocity FF,4555,9.10733088,0.01928279,0.02122207,0.02097347,0.01796626,0.27592713,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,72,202608180720,true,position PD,5570,11.13651886,0.16932292,0.17744150,0.01533686,0.03114140,0.20856610,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,72,202608180720,true,PD + velocity FF,5570,11.13651886,0.01008143,0.01567001,0.01534505,0.01362178,0.21122321,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,73,202608180730,true,position PD,7348,14.69291632,0.13620809,0.14358021,0.01210659,0.03908821,0.25140325,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,73,202608180730,true,PD + velocity FF,7348,14.69291632,0.01194938,0.01899917,0.01282665,0.01527288,0.25344949,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,75,202608180750,true,position PD,10424,20.84419416,0.16320587,0.16812427,0.02800403,0.04118064,0.35507336,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,75,202608180750,true,PD + velocity FF,10424,20.84419416,0.02157217,0.02791237,0.02775501,0.02804690,0.35634079,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,77,202608180770,true,position PD,3415,6.82679939,0.12613217,0.13474106,0.01166920,0.02855715,0.15999102,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,77,202608180770,true,PD + velocity FF,3415,6.82679939,0.00638338,0.01208981,0.01175567,0.00808791,0.16643969,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,78,202608180780,false,position PD,8284,16.56584880,0.14901897,0.15423921,0.01754486,0.06211660,0.27866986,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,78,202608180780,false,PD + velocity FF,8284,16.56584880,0.01348315,0.02078688,0.01811076,0.01755933,0.35872519,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,79,202608180790,true,position PD,8238,16.47226353,0.14868538,0.15349338,0.01318932,0.01600830,0.18261282,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,79,202608180790,true,PD + velocity FF,8238,16.47226353,0.00875149,0.01394594,0.01369436,0.00996897,0.18578221,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,81,202608180810,true,position PD,6380,12.75644983,0.11588681,0.11964212,0.01731018,0.05006153,0.23103415,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,81,202608180810,true,PD + velocity FF,6380,12.75644983,0.01289135,0.01755263,0.01721709,0.01326965,0.23410269,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,82,202608180820,true,position PD,2899,5.79494181,0.15053908,0.16399474,0.00784597,0.03417523,0.09618404,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,82,202608180820,true,PD + velocity FF,2899,5.79494181,0.00817496,0.00916756,0.00699541,0.00420171,0.09618409,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,89,202608180890,true,position PD,5673,11.34372333,0.15789093,0.16388245,0.02280703,0.06043496,0.31902058,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,89,202608180890,true,PD + velocity FF,5673,11.34372333,0.02373066,0.02520609,0.02256878,0.02539715,0.31902058,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,91,202608180910,false,position PD,2271,4.53867710,0.12429073,0.13965443,0.02246343,0.06219908,0.32364296,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,91,202608180910,false,PD + velocity FF,2271,4.53867710,0.01449921,0.02408176,0.02232230,0.01602334,1.00000000,0.00088067,0,0,0,0.00000000,,false,false -open_floor,scene.xml,93,202608180930,true,position PD,7551,15.09882605,0.17018394,0.17524169,0.02396554,0.07694480,0.32508202,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,93,202608180930,true,PD + velocity FF,7551,15.09882605,0.02474721,0.02538025,0.02382942,0.02658235,0.32508202,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,94,202608180940,true,position PD,8616,17.22911989,0.12486078,0.13167584,0.00757332,0.05189173,0.32217108,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,94,202608180940,true,PD + velocity FF,8616,17.22911989,0.01547440,0.02443222,0.00680176,0.02245586,0.32516367,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,97,202608180970,true,position PD,5730,11.45719473,0.11630580,0.12073086,0.01398825,0.01252468,0.17633971,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,97,202608180970,true,PD + velocity FF,5730,11.45719473,0.01336906,0.01351305,0.01354177,0.00962255,0.17671948,0.00000000,0,0,0,0.00000000,,true,true -open_floor,scene.xml,99,202608180990,false,position PD,9101,18.19864698,0.14334522,0.14858942,0.01127865,0.03542341,0.13550508,0.00000000,0,0,0,0.00000000,,false,false -open_floor,scene.xml,99,202608180990,false,PD + velocity FF,9101,18.19864698,0.00844907,0.01218042,0.01188953,0.00677408,0.80973438,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,2,202608190020,false,position PD,7145,14.28770901,0.14143571,0.14733644,0.01014146,0.03730005,0.10794960,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,2,202608190020,false,PD + velocity FF,7145,14.28770901,0.00729232,0.01116334,0.01070934,0.00850811,0.14661952,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,6,202608190060,true,position PD,8620,17.23765604,0.12296965,0.12856302,0.02062499,0.04149356,0.27467284,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,6,202608190060,true,PD + velocity FF,8620,17.23765604,0.01385599,0.02172589,0.02122484,0.01873121,0.28048658,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,8,202608190080,false,position PD,6779,13.55416166,0.14630557,0.15845014,0.01511860,0.05344159,0.33028986,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,8,202608190080,false,PD + velocity FF,6779,13.55416166,0.01618321,0.02469270,0.01465761,0.02256189,1.00000000,0.00014751,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,9,202608190090,false,position PD,8596,17.18973578,0.13576380,0.15077417,0.02484768,0.06881620,0.37449311,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,9,202608190090,false,PD + velocity FF,8596,17.18973578,0.01803330,0.02823328,0.02585891,0.02427955,1.00000000,0.00034900,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,13,202608190130,false,position PD,7303,14.60292833,0.12324268,0.13163096,0.01831529,0.05053812,0.32556139,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,13,202608190130,false,PD + velocity FF,7303,14.60292833,0.01550665,0.02483916,0.01979829,0.01727361,1.00000000,0.00013693,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,15,202608190150,false,position PD,7347,14.69123237,0.11623894,0.12741295,0.00615270,0.04398603,0.36393606,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,15,202608190150,false,PD + velocity FF,7347,14.69123237,0.02095566,0.02778553,0.00685347,0.02130317,1.00000000,0.00013611,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,20,202608190200,false,position PD,8343,16.68333156,0.13938491,0.14657657,0.00727901,0.05760119,0.25233032,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,20,202608190200,false,PD + velocity FF,8343,16.68333156,0.01120591,0.01952827,0.00806854,0.01623998,0.25520789,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,22,202608190220,false,position PD,10349,20.69477956,0.15159211,0.16094367,0.00565273,0.07538497,0.36251102,0.00000000,190,136,0,0.00060922,floor[0]@world vs geom#26[26]@wrist_2_link,false,false -offset_pillar,scene_cluttered.xml,22,202608190220,false,PD + velocity FF,10349,20.69477956,0.01289738,0.02621075,0.00579429,0.02039655,1.00000000,0.00019326,190,80,0,0.00060922,floor[0]@world vs geom#26[26]@wrist_2_link,true,false -offset_pillar,scene_cluttered.xml,24,202608190240,false,position PD,4756,9.50935532,0.14182870,0.15418078,0.00999893,0.03640687,0.57315272,0.00000000,0,91,0,0.00026014,geom#29[29]@wrist_3_link vs pillar[30]@pillar,false,false -offset_pillar,scene_cluttered.xml,24,202608190240,false,PD + velocity FF,4756,9.50935532,0.01177173,0.01705097,0.01061863,0.01136730,1.00000000,0.00042052,0,47,0,0.00025998,geom#29[29]@wrist_3_link vs pillar[30]@pillar,true,false -offset_pillar,scene_cluttered.xml,25,202608190250,true,position PD,2220,4.43737599,0.14184344,0.15709383,0.01339652,0.02545472,0.17528856,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,25,202608190250,true,PD + velocity FF,2220,4.43737599,0.00919087,0.01403435,0.01385451,0.00392711,0.18396732,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,26,202608190260,true,position PD,1533,3.06339146,0.12263059,0.14190248,0.00824071,0.01386358,0.09369223,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,26,202608190260,true,PD + velocity FF,1533,3.06339146,0.00736276,0.00785895,0.00778221,0.00375589,0.09468002,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,27,202608190270,false,position PD,7313,14.62257703,0.14666330,0.15348273,0.00762584,0.03416267,0.21203686,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,27,202608190270,false,PD + velocity FF,7313,14.62257703,0.00924189,0.01589175,0.00776577,0.00682369,0.52056700,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,29,202608190290,false,position PD,6959,13.91586243,0.14862585,0.15597943,0.02295408,0.09187007,0.30556264,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,29,202608190290,false,PD + velocity FF,6959,13.91586243,0.01184852,0.02452281,0.02361554,0.02486074,1.00000000,0.00028740,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,32,202608190320,true,position PD,4564,9.12522508,0.17737317,0.19229073,0.01350727,0.05333351,0.37020457,0.00000000,0,52,250,0.00096913,floor[0]@world vs geom#27[27]@wrist_2_link,false,false -offset_pillar,scene_cluttered.xml,32,202608190320,true,PD + velocity FF,4564,9.12522508,0.01684340,0.02840803,0.00999350,0.02893128,0.37280316,0.00000000,0,178,250,0.00132360,floor[0]@world vs geom#27[27]@wrist_2_link,true,false -offset_pillar,scene_cluttered.xml,34,202608190340,true,position PD,9585,19.16798361,0.12622931,0.13092199,0.01265707,0.03684650,0.26708083,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,34,202608190340,true,PD + velocity FF,9585,19.16798361,0.01805978,0.02158075,0.01241512,0.02183260,0.26708083,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,35,202608190350,true,position PD,7816,15.62874042,0.12108654,0.12820093,0.01426796,0.03027964,0.20835074,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,35,202608190350,true,PD + velocity FF,7816,15.62874042,0.01201135,0.01590793,0.01495715,0.01632684,0.21243621,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,38,202608190380,false,position PD,7135,14.26772908,0.12019704,0.12692505,0.01226310,0.04491255,0.33759881,0.00000000,0,164,0,0.00005862,geom#26[26]@wrist_2_link vs pillar[30]@pillar,false,false -offset_pillar,scene_cluttered.xml,38,202608190380,false,PD + velocity FF,7135,14.26772908,0.01178374,0.01478996,0.01182972,0.01057947,1.00000000,0.00042046,0,169,0,0.00017404,floor[0]@world vs geom#27[27]@wrist_2_link,true,false -offset_pillar,scene_cluttered.xml,39,202608190390,true,position PD,5696,11.38924973,0.12592509,0.13305020,0.00923129,0.03312196,0.17651403,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,39,202608190390,true,PD + velocity FF,5696,11.38924973,0.01049392,0.01415674,0.00912217,0.00501444,0.17884471,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,41,202608190410,false,position PD,8422,16.84020840,0.12137812,0.12687584,0.00864303,0.04183513,0.20080242,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,41,202608190410,false,PD + velocity FF,8422,16.84020840,0.00985772,0.01511824,0.00905751,0.00727505,0.51265129,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,44,202608190440,false,position PD,12428,24.85255032,0.14158331,0.14493384,0.01386971,0.03458154,0.19146843,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,44,202608190440,false,PD + velocity FF,12428,24.85255032,0.00735851,0.01440714,0.01429403,0.00794087,0.78020593,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,48,202608190480,true,position PD,10211,20.41929483,0.13210755,0.13494260,0.01041530,0.01961789,0.15293002,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,48,202608190480,true,PD + velocity FF,10211,20.41929483,0.00913651,0.01161807,0.00996520,0.00489902,0.15392886,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,50,202608190500,false,position PD,9290,18.57662609,0.12775632,0.13566048,0.01971255,0.09257308,0.32537185,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,50,202608190500,false,PD + velocity FF,9290,18.57662609,0.01505946,0.02501255,0.01976307,0.02317556,0.93582979,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,51,202608190510,false,position PD,7468,14.93201636,0.11403649,0.12029122,0.02606044,0.02621983,0.33083727,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,51,202608190510,false,PD + velocity FF,7468,14.93201636,0.02030161,0.02603431,0.02592138,0.02654072,0.65239515,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,52,202608190520,false,position PD,9388,18.77385861,0.15189938,0.15893546,0.02063127,0.03905322,0.26451574,0.00000000,155,116,0,0.00014939,floor[0]@world vs geom#17[17]@forearm_link,false,false -offset_pillar,scene_cluttered.xml,52,202608190520,false,PD + velocity FF,9388,18.77385861,0.01371862,0.02081776,0.02064799,0.01622564,0.84828327,0.00000000,155,66,0,0.00014939,floor[0]@world vs geom#17[17]@forearm_link,false,false -offset_pillar,scene_cluttered.xml,55,202608190550,true,position PD,8862,17.72141571,0.13075080,0.13656997,0.00914002,0.02305422,0.10567166,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,55,202608190550,true,PD + velocity FF,8862,17.72141571,0.00695644,0.01032230,0.01001560,0.00310818,0.10678850,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,61,202608190610,false,position PD,9196,18.38867031,0.14573751,0.15166997,0.00850792,0.06122057,0.33016839,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,61,202608190610,false,PD + velocity FF,9196,18.38867031,0.01681857,0.02489348,0.00764403,0.02015435,0.33372859,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,62,202608190620,true,position PD,8294,16.58429431,0.13776867,0.14218611,0.01088195,0.02560499,0.17720513,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,62,202608190620,true,PD + velocity FF,8294,16.58429431,0.01022345,0.01482081,0.01095591,0.01199455,0.17927630,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,63,202608190630,true,position PD,2572,5.14144024,0.15231219,0.16598417,0.00601865,0.06738461,0.23810215,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,63,202608190630,true,PD + velocity FF,2572,5.14144024,0.01129332,0.01809109,0.00551158,0.01744871,0.24453743,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,64,202608190640,false,position PD,8608,17.21202731,0.14295571,0.14954709,0.02625527,0.08436672,0.34270149,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,64,202608190640,false,PD + velocity FF,8608,17.21202731,0.01510762,0.02690989,0.02645350,0.02548443,1.00000000,0.00011617,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,65,202608190650,true,position PD,7617,15.23028385,0.14184307,0.14590538,0.00719076,0.03682193,0.10924841,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,65,202608190650,true,PD + velocity FF,7617,15.23028385,0.00847778,0.00955133,0.00615448,0.00560913,0.10946558,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,67,202608190670,true,position PD,8364,16.72425389,0.12830490,0.13206589,0.01276477,0.01737178,0.14514779,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,67,202608190670,true,PD + velocity FF,8364,16.72425389,0.00872047,0.01261553,0.01257138,0.00441503,0.14722567,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,70,202608190700,false,position PD,7767,15.53136330,0.13180604,0.14702551,0.02477978,0.09108302,0.34266709,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,70,202608190700,false,PD + velocity FF,7767,15.53136330,0.01393930,0.02643394,0.02559853,0.02122576,1.00000000,0.00038625,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,71,202608190710,true,position PD,9855,19.70644465,0.12646449,0.13166739,0.00637389,0.02268913,0.06026883,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,71,202608190710,true,PD + velocity FF,9855,19.70644465,0.00445482,0.00613345,0.00596582,0.00439558,0.06482562,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,72,202608190720,false,position PD,8566,17.12914480,0.11617212,0.11935798,0.01224649,0.02614790,0.15678229,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,72,202608190720,false,PD + velocity FF,8566,17.12914480,0.00835146,0.01262475,0.01245237,0.00609414,0.59722560,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,76,202608190760,true,position PD,7746,15.48905287,0.12501860,0.13089374,0.01562129,0.02750603,0.46055297,0.00000000,0,13,0,0.00000807,geom#18[18]@forearm_link vs geom#29[29]@wrist_3_link,false,false -offset_pillar,scene_cluttered.xml,76,202608190760,true,PD + velocity FF,7746,15.48905287,0.01392559,0.01507532,0.01513110,0.00658469,0.46135660,0.00000000,0,13,0,0.00000807,geom#18[18]@forearm_link vs geom#29[29]@wrist_3_link,true,false -offset_pillar,scene_cluttered.xml,79,202608190790,true,position PD,3898,7.79218011,0.16643230,0.18063902,0.00824502,0.05308809,0.19425372,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,79,202608190790,true,PD + velocity FF,3898,7.79218011,0.01035516,0.01431695,0.01028820,0.00752483,0.19836816,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,82,202608190820,true,position PD,4087,8.17065166,0.12421952,0.13237625,0.01500722,0.03195804,0.17821637,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,82,202608190820,true,PD + velocity FF,4087,8.17065166,0.01398643,0.01430863,0.01424298,0.00568011,0.17821637,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,83,202608190830,false,position PD,5953,11.90389030,0.13886279,0.15011265,0.01561186,0.06683743,0.21819780,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,83,202608190830,false,PD + velocity FF,5953,11.90389030,0.01086217,0.01765900,0.01690212,0.01132592,1.00000000,0.00016798,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,84,202608190840,true,position PD,3131,6.25961678,0.14831669,0.16009961,0.00744920,0.07411242,0.29048993,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,84,202608190840,true,PD + velocity FF,3131,6.25961678,0.01709695,0.02118245,0.00593715,0.01817196,0.29529834,0.00000000,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,87,202608190870,false,position PD,5801,11.59964879,0.13564998,0.14407169,0.01191771,0.07103757,0.22197638,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,87,202608190870,false,PD + velocity FF,5801,11.59964879,0.01164534,0.01682102,0.01107192,0.01474334,1.00000000,0.00017238,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,88,202608190880,false,position PD,11334,22.66465030,0.15011875,0.15912410,0.01002920,0.06567172,0.30948056,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,88,202608190880,false,PD + velocity FF,11334,22.66465030,0.01453822,0.02425377,0.01090853,0.01941724,1.00000000,0.00017646,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,89,202608190890,false,position PD,8522,17.04116471,0.11179313,0.12010921,0.00770262,0.04747571,0.16531170,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,89,202608190890,false,PD + velocity FF,8522,17.04116471,0.01024161,0.01485433,0.00727974,0.01083194,1.00000000,0.00011734,0,0,0,0.00000000,,true,true -offset_pillar,scene_cluttered.xml,90,202608190900,true,position PD,3913,7.82288178,0.13940202,0.15924091,0.02617451,0.08879765,0.37952636,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,90,202608190900,true,PD + velocity FF,3913,7.82288178,0.01992573,0.02963650,0.02771919,0.02801739,0.39189527,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,93,202608190930,true,position PD,6402,12.80180451,0.12738884,0.13201015,0.02608360,0.05333779,0.34148122,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,93,202608190930,true,PD + velocity FF,6402,12.80180451,0.02057795,0.02659277,0.02622099,0.02342511,0.34438849,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,97,202608190970,false,position PD,11541,23.07897454,0.16283980,0.16975775,0.02593111,0.06892968,0.69370877,0.00000000,0,12,0,0.00013463,geom#27[27]@wrist_2_link vs pillar[30]@pillar,false,false -offset_pillar,scene_cluttered.xml,97,202608190970,false,PD + velocity FF,11541,23.07897454,0.01774686,0.02720948,0.02646434,0.02252823,0.83201171,0.00000000,0,12,0,0.00013463,geom#27[27]@wrist_2_link vs pillar[30]@pillar,false,false -offset_pillar,scene_cluttered.xml,98,202608190980,false,position PD,7559,15.11554841,0.15745717,0.16597983,0.02375726,0.05027875,0.36317747,0.00000000,0,0,0,0.00000000,,false,false -offset_pillar,scene_cluttered.xml,98,202608190980,false,PD + velocity FF,7559,15.11554841,0.01788955,0.02753426,0.02291646,0.02214139,1.00000000,0.00013229,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,2,202608200020,false,position PD,11145,22.28642314,0.13319899,0.23499508,0.00625440,0.10291926,1.00000000,0.01929116,0,234,0,0.00121892,geom#26[26]@wrist_2_link vs pillar[31]@pillar,false,false -tabletop_pillar,scene_pickplace.xml,2,202608200020,false,PD + velocity FF,11145,22.28642314,0.01799906,0.13667177,0.00577119,0.07026124,1.00000000,0.01929116,0,234,0,0.00121863,geom#26[26]@wrist_2_link vs pillar[31]@pillar,false,false -tabletop_pillar,scene_pickplace.xml,5,202608200050,true,position PD,5009,10.01505791,0.16264193,0.17248600,0.02558561,0.04132946,0.34113678,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,5,202608200050,true,PD + velocity FF,5009,10.01505791,0.01726606,0.02641434,0.02585712,0.02298690,0.34627698,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,6,202608200060,false,position PD,7919,15.83433948,0.13945700,0.16664195,0.00655227,0.06257305,1.00000000,0.00315696,0,71,0,0.00085318,geom#27[27]@wrist_2_link vs pillar[31]@pillar,false,false -tabletop_pillar,scene_pickplace.xml,6,202608200060,false,PD + velocity FF,7919,15.83433948,0.01241193,0.02771580,0.00610196,0.01294898,1.00000000,0.00315696,0,71,0,0.00085318,geom#27[27]@wrist_2_link vs pillar[31]@pillar,true,false -tabletop_pillar,scene_pickplace.xml,7,202608200070,true,position PD,7379,14.75417535,0.13783408,0.14297476,0.00629999,0.05699273,0.10559611,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,7,202608200070,true,PD + velocity FF,7379,14.75417535,0.00968901,0.01080873,0.00556088,0.00700158,0.10559611,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,9,202608200090,true,position PD,6083,12.16345074,0.18024473,0.18931487,0.02166697,0.07801973,0.30121768,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,9,202608200090,true,PD + velocity FF,6083,12.16345074,0.01457218,0.02303989,0.02225166,0.02020967,0.30751616,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,10,202608200100,true,position PD,3464,6.92504985,0.13492003,0.14623476,0.01852426,0.03502649,0.25551128,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,10,202608200100,true,PD + velocity FF,3464,6.92504985,0.01234338,0.01982080,0.01940474,0.01110193,0.26319137,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,13,202608200130,true,position PD,8549,17.09533392,0.19437079,0.20076790,0.00882219,0.04652572,0.11056925,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,13,202608200130,true,PD + velocity FF,8549,17.09533392,0.00681117,0.00922886,0.00857273,0.00820909,0.11348694,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,14,202608200140,false,position PD,8438,16.87393254,0.14663774,0.15497276,0.00949261,0.05522752,0.30970373,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,14,202608200140,false,PD + velocity FF,8438,16.87393254,0.01407766,0.02423329,0.00764817,0.02245600,1.00000000,0.00284428,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,16,202608200160,true,position PD,8144,16.28485329,0.13831115,0.14500620,0.01458854,0.02988542,0.16595134,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,16,202608200160,true,PD + velocity FF,8144,16.28485329,0.00825327,0.01427419,0.01429089,0.01013378,0.16641166,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,17,202608200170,true,position PD,2413,4.82234023,0.10728406,0.11908089,0.02607144,0.04645573,0.32800989,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,17,202608200170,true,PD + velocity FF,2413,4.82234023,0.02328943,0.02562140,0.02578682,0.02451968,0.32945114,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,21,202608200210,true,position PD,1894,3.78444573,0.14879698,0.17194133,0.01890325,0.10500991,0.27806173,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,21,202608200210,true,PD + velocity FF,1894,3.78444573,0.01401085,0.02230346,0.02100102,0.02024004,0.30163588,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,22,202608200220,false,position PD,7520,15.03620370,0.13461826,0.14068819,0.02195842,0.02815301,0.32928780,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,22,202608200220,false,PD + velocity FF,7520,15.03620370,0.02410560,0.02524531,0.02135567,0.02139966,0.62181586,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,25,202608200250,false,position PD,6288,12.57360542,0.13997040,0.14504906,0.00744485,0.03790426,0.13897827,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,25,202608200250,false,PD + velocity FF,6288,12.57360542,0.00966277,0.01254326,0.00648976,0.00886122,0.75826753,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,27,202608200270,false,position PD,10279,20.55462993,0.15204038,0.16055219,0.00623702,0.06325650,0.30352537,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,27,202608200270,false,PD + velocity FF,10279,20.55462993,0.01259175,0.02340326,0.00744171,0.01758902,1.00000000,0.00029186,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,29,202608200290,true,position PD,10113,20.22251021,0.13730961,0.14139209,0.01430436,0.05540757,0.19899949,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,29,202608200290,true,PD + velocity FF,10113,20.22251021,0.01067334,0.01472326,0.01425425,0.00952229,0.20307886,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,32,202608200320,true,position PD,6359,12.71452885,0.11363280,0.11839618,0.02651783,0.02762129,0.34934009,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,32,202608200320,true,PD + velocity FF,6359,12.71452885,0.01873655,0.02720713,0.02681401,0.02781681,0.35325561,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,34,202608200340,true,position PD,3030,6.05741814,0.17515204,0.19046797,0.00603269,0.04234200,0.13880185,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,34,202608200340,true,PD + velocity FF,3030,6.05741814,0.00815248,0.01196117,0.00713957,0.00886819,0.14092038,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,36,202608200360,true,position PD,7804,15.60477400,0.11510851,0.12095415,0.01499231,0.02066701,0.21741193,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,36,202608200360,true,PD + velocity FF,7804,15.60477400,0.01304085,0.01844649,0.01512165,0.01615322,0.21741193,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,39,202608200390,true,position PD,6943,13.88271067,0.14571703,0.15236754,0.01952851,0.05605112,0.25413477,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,39,202608200390,true,PD + velocity FF,6943,13.88271067,0.01325752,0.02033952,0.01979417,0.01444758,0.25551391,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,41,202608200410,false,position PD,9195,18.38641371,0.12304704,0.13485166,0.01050518,0.05857832,0.49723147,0.00000000,0,86,250,0.00105382,floor[0]@world vs geom#29[29]@wrist_3_link,false,false -tabletop_pillar,scene_pickplace.xml,41,202608200410,false,PD + velocity FF,9195,18.38641371,0.01479226,0.02930225,0.00949684,0.02867646,1.00000000,0.00021751,0,220,250,0.00191245,floor[0]@world vs geom#29[29]@wrist_3_link,true,false -tabletop_pillar,scene_pickplace.xml,42,202608200420,false,position PD,9452,18.90077263,0.14803013,0.18290858,0.01334841,0.05057527,1.00000000,0.00899281,0,225,0,0.00076758,geom#22[22]@wrist_1_link vs pillar[31]@pillar,false,false -tabletop_pillar,scene_pickplace.xml,42,202608200420,false,PD + velocity FF,9452,18.90077263,0.01776338,0.07354605,0.01365061,0.03328613,1.00000000,0.00899281,0,225,0,0.00076758,geom#22[22]@wrist_1_link vs pillar[31]@pillar,true,false -tabletop_pillar,scene_pickplace.xml,43,202608200430,false,position PD,5125,10.24637173,0.15939199,0.16642844,0.00465624,0.02032923,0.15176388,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,43,202608200430,false,PD + velocity FF,5125,10.24637173,0.00659341,0.01149159,0.00186775,0.00538016,0.15422177,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,45,202608200450,true,position PD,3753,7.50278012,0.13085404,0.14237876,0.02598994,0.05170526,0.35893625,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,45,202608200450,true,PD + velocity FF,3753,7.50278012,0.01684023,0.02786341,0.02688281,0.02559133,0.36758220,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,46,202608200460,true,position PD,10460,20.91602829,0.11005613,0.11258853,0.02015545,0.01469403,0.26353675,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,46,202608200460,true,PD + velocity FF,10460,20.91602829,0.01124382,0.02022762,0.02014356,0.01684814,0.26583470,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,52,202608200520,false,position PD,6819,13.63480763,0.11615458,0.12497796,0.01089685,0.04994605,0.15715757,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,52,202608200520,false,PD + velocity FF,6819,13.63480763,0.00893835,0.01266701,0.01182797,0.00919701,1.00000000,0.00014665,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,53,202608200530,true,position PD,6823,13.64385723,0.14399663,0.14972506,0.00971889,0.01368458,0.12047777,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,53,202608200530,true,PD + velocity FF,6823,13.64385723,0.00594559,0.00991266,0.00974536,0.00500915,0.12194068,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,55,202608200550,false,position PD,11671,23.33929771,0.12877670,0.13517369,0.01059500,0.06181163,0.27357061,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,55,202608200550,false,PD + velocity FF,11671,23.33929771,0.01081810,0.02022255,0.00970530,0.01338813,1.00000000,0.00017136,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,56,202608200560,true,position PD,3884,7.76517134,0.13736173,0.14656507,0.01221100,0.02714153,0.20368713,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,56,202608200560,true,PD + velocity FF,3884,7.76517134,0.01404877,0.01583603,0.01280059,0.01436995,0.20454880,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,62,202608200620,true,position PD,11369,22.73507284,0.12373750,0.12635491,0.01826355,0.04863856,0.31388961,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,62,202608200620,true,PD + velocity FF,11369,22.73507284,0.02314594,0.02496874,0.01797669,0.02525342,0.31388961,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,65,202608200650,true,position PD,2070,4.13603351,0.15806079,0.17653580,0.00764901,0.04338858,0.14426653,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,65,202608200650,true,PD + velocity FF,2070,4.13603351,0.00760341,0.01102219,0.00848873,0.00903568,0.14804617,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,72,202608200720,true,position PD,3495,6.98777947,0.13604984,0.14544849,0.01373898,0.04147234,0.19025352,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,72,202608200720,true,PD + velocity FF,3495,6.98777947,0.00885429,0.01446574,0.01394291,0.00978070,0.19982620,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,73,202608200730,false,position PD,8953,17.90362658,0.14288783,0.14917525,0.02543268,0.08712767,0.37327743,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,73,202608200730,false,PD + velocity FF,8953,17.90362658,0.01186575,0.02896921,0.02726176,0.02992482,1.00000000,0.00044678,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,76,202608200760,true,position PD,8826,17.64841283,0.13392326,0.13999286,0.00698716,0.03933071,0.33457117,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,76,202608200760,true,PD + velocity FF,8826,17.64841283,0.01556724,0.02543578,0.00698728,0.01816067,0.33742044,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,79,202608200790,true,position PD,5047,10.09083599,0.13804492,0.14708404,0.01679589,0.05703276,0.23316740,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,79,202608200790,true,PD + velocity FF,5047,10.09083599,0.01142557,0.01790546,0.01723736,0.01413665,0.24234794,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,82,202608200820,false,position PD,6397,12.79176246,0.17332717,0.18185884,0.01337453,0.05577613,0.19581578,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,82,202608200820,false,PD + velocity FF,6397,12.79176246,0.01133929,0.01574698,0.01491957,0.01157932,1.00000000,0.00015632,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,84,202608200840,true,position PD,10934,21.86419124,0.14134784,0.15394499,0.01426802,0.09472934,1.00000000,0.00027437,0,20,0,0.00322250,geom#29[29]@wrist_3_link vs pillar[31]@pillar,false,false -tabletop_pillar,scene_pickplace.xml,84,202608200840,true,PD + velocity FF,10934,21.86419124,0.01424085,0.02445281,0.01424662,0.02477882,1.00000000,0.00027437,0,20,0,0.00322223,geom#29[29]@wrist_3_link vs pillar[31]@pillar,true,false -tabletop_pillar,scene_pickplace.xml,85,202608200850,true,position PD,8760,17.51695263,0.14933796,0.15386081,0.02305712,0.07455177,0.29684949,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,85,202608200850,true,PD + velocity FF,8760,17.51695263,0.01614022,0.02351889,0.02322427,0.01857838,0.29810018,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,86,202608200860,false,position PD,7168,14.33210558,0.12914998,0.13698915,0.01482644,0.06244780,0.35037324,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,86,202608200860,false,PD + velocity FF,7168,14.33210558,0.01866703,0.02691045,0.01559236,0.02508299,0.61209950,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,87,202608200870,true,position PD,9175,18.34659572,0.14197270,0.14921060,0.02297111,0.03620957,0.30761314,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,87,202608200870,true,PD + velocity FF,9175,18.34659572,0.01520813,0.02343544,0.02311887,0.01609960,0.31113636,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,88,202608200880,true,position PD,5085,10.16786729,0.16836377,0.17781721,0.00681188,0.02966208,0.26287564,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,88,202608200880,true,PD + velocity FF,5085,10.16786729,0.01644413,0.01978356,0.00733400,0.01521351,0.26287563,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,89,202608200890,true,position PD,5024,10.04458367,0.14699446,0.15713481,0.01835321,0.04965312,0.26409403,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,89,202608200890,true,PD + velocity FF,5024,10.04458367,0.01459329,0.02160816,0.01843565,0.02030895,0.26409403,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,91,202608200910,true,position PD,4946,9.88967225,0.15787433,0.16644009,0.00667071,0.04091030,0.19176195,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,91,202608200910,true,PD + velocity FF,4946,9.88967225,0.01214937,0.01477990,0.00510428,0.00694386,0.19365705,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,93,202608200930,true,position PD,6489,12.97556172,0.13604296,0.14469699,0.01226978,0.02730068,0.16088952,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,93,202608200930,true,PD + velocity FF,6489,12.97556172,0.00887090,0.01390166,0.01340460,0.00585750,0.16342013,0.00000000,0,0,0,0.00000000,,true,true -tabletop_pillar,scene_pickplace.xml,96,202608200960,false,position PD,8335,16.66637816,0.11919285,0.12411542,0.02287614,0.05870843,0.31430760,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,96,202608200960,false,PD + velocity FF,8335,16.66637816,0.01179580,0.02422565,0.02366082,0.01719901,0.97136319,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,98,202608200980,true,position PD,3779,7.55452092,0.12765563,0.13661066,0.02020957,0.02865103,0.25770800,0.00000000,0,0,0,0.00000000,,false,false -tabletop_pillar,scene_pickplace.xml,98,202608200980,true,PD + velocity FF,3779,7.55452092,0.01319229,0.02093693,0.02060902,0.01619799,0.26437448,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,2,202608180020,false,position PD,8671,17.34000000,0.14427357,0.20163665,0.01179687,0.06292236,0.27171754,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,2,202608180020,false,PD + velocity FF,8671,17.34000000,0.01730323,0.02106441,0.01092230,0.02191402,0.27171754,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,3,202608180030,true,position PD,9042,18.08200000,0.16072200,0.16572293,0.01186954,0.04669271,0.11313530,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,3,202608180030,true,PD + velocity FF,9042,18.08200000,0.00798652,0.01084156,0.01097490,0.00708908,0.11347466,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,4,202608180040,true,position PD,8744,17.48600000,0.16187390,0.16943228,0.00783872,0.09078653,0.27573219,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,4,202608180040,true,PD + velocity FF,8744,17.48600000,0.01642692,0.02204165,0.00846657,0.02228154,0.27573219,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,5,202608180050,true,position PD,9818,19.63400000,0.11187057,0.11751354,0.01486029,0.02112941,0.19965475,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,5,202608180050,true,PD + velocity FF,9818,19.63400000,0.01011588,0.01588037,0.01536415,0.00808805,0.20056656,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,10,202608180100,true,position PD,5397,10.79200000,0.12102645,0.12794423,0.01114153,0.01935937,0.12021370,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,10,202608180100,true,PD + velocity FF,5397,10.79200000,0.00912062,0.01159536,0.01133723,0.00367336,0.12264993,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,12,202608180120,false,position PD,5763,11.52400000,0.16920967,0.18823399,0.02681128,0.08132736,0.34102992,0.00000000,0,358,0,0.00004772,floor[0]@world vs geom#27[27]@wrist_2_link,false,false +open_floor,scene.xml,12,202608180120,false,PD + velocity FF,5763,11.52400000,0.02075176,0.02655401,0.02646620,0.01971950,0.34188437,0.00000000,0,358,0,0.00004622,floor[0]@world vs geom#27[27]@wrist_2_link,false,false +open_floor,scene.xml,15,202608180150,false,position PD,8246,16.49000000,0.16028341,0.17501974,0.00669466,0.07487706,0.27279741,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,15,202608180150,false,PD + velocity FF,8246,16.49000000,0.01756155,0.02185958,0.00712123,0.02235242,0.27509965,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,19,202608180190,true,position PD,4843,9.68400000,0.13202253,0.13782646,0.01959940,0.01351003,0.25337073,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,19,202608180190,true,PD + velocity FF,4843,9.68400000,0.01722294,0.01994479,0.01969025,0.01469525,0.25506658,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,22,202608180220,false,position PD,7968,15.93400000,0.17927963,0.23698111,0.00623551,0.08655673,0.35576371,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,22,202608180220,false,PD + velocity FF,7968,15.93400000,0.01650112,0.02715463,0.00739784,0.02202415,0.36458888,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,29,202608180290,false,position PD,5674,11.34600000,0.17523666,0.19123188,0.02315479,0.09053226,0.29172311,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,29,202608180290,false,PD + velocity FF,5674,11.34600000,0.01703014,0.02273858,0.02264860,0.01738156,0.29327999,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,31,202608180310,true,position PD,10158,20.31400000,0.11839698,0.12243794,0.01162282,0.04612420,0.18888120,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,31,202608180310,true,PD + velocity FF,10158,20.31400000,0.00996718,0.01419049,0.01165184,0.00479595,0.18965633,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,32,202608180320,true,position PD,8383,16.76400000,0.16547301,0.17311754,0.01742001,0.06073969,0.22428415,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,32,202608180320,true,PD + velocity FF,8383,16.76400000,0.01179461,0.01816883,0.01765484,0.01566621,0.22937051,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,33,202608180330,true,position PD,5302,10.60200000,0.14852625,0.15508424,0.02732670,0.02272226,0.35403544,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,33,202608180330,true,PD + velocity FF,5302,10.60200000,0.02280073,0.02769793,0.02727138,0.02868376,0.35565436,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,34,202608180340,true,position PD,7504,15.00600000,0.11502469,0.12053565,0.01291213,0.05593249,0.18393231,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,34,202608180340,true,PD + velocity FF,7504,15.00600000,0.01035166,0.01394910,0.01321861,0.00769032,0.18514169,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,35,202608180350,true,position PD,5652,11.30200000,0.17176658,0.17933290,0.01287434,0.04768835,0.14051951,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,35,202608180350,true,PD + velocity FF,5652,11.30200000,0.00850862,0.01273033,0.01237226,0.00769609,0.14614038,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,37,202608180370,true,position PD,4520,9.03800000,0.16598733,0.17838535,0.01888497,0.08863128,0.26454988,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,37,202608180370,true,PD + velocity FF,4520,9.03800000,0.01334029,0.01997453,0.01930019,0.01940052,0.27108514,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,38,202608180380,true,position PD,9310,18.61800000,0.14739198,0.15302079,0.01586126,0.04815416,0.19995453,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,38,202608180380,true,PD + velocity FF,9310,18.61800000,0.01148333,0.01700478,0.01589922,0.01359463,0.20118007,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,39,202608180390,true,position PD,5250,10.49800000,0.12776274,0.13336521,0.01775012,0.04942419,0.24476133,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,39,202608180390,true,PD + velocity FF,5250,10.49800000,0.01203894,0.01849069,0.01795852,0.01265915,0.24912053,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,41,202608180410,true,position PD,2659,5.31600000,0.15441939,0.16738686,0.01923215,0.09178941,0.32531177,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,41,202608180410,true,PD + velocity FF,2659,5.31600000,0.02285072,0.02494894,0.01863997,0.02512967,0.32897295,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,43,202608180430,false,position PD,7462,14.92200000,0.16585016,0.19332480,0.01641702,0.07775247,0.53225608,0.00000000,0,22,0,0.00000687,geom#18[18]@forearm_link vs geom#29[29]@wrist_3_link,false,false +open_floor,scene.xml,43,202608180430,false,PD + velocity FF,7462,14.92200000,0.01706554,0.02227112,0.01624126,0.02116271,0.53225502,0.00000000,0,22,0,0.00000687,geom#18[18]@forearm_link vs geom#29[29]@wrist_3_link,true,false +open_floor,scene.xml,44,202608180440,false,position PD,8719,17.43600000,0.17822797,0.18909107,0.01282595,0.04915348,0.23553326,0.00000000,0,51,0,0.00003295,floor[0]@world vs geom#29[29]@wrist_3_link,false,false +open_floor,scene.xml,44,202608180440,false,PD + velocity FF,8719,17.43600000,0.01121004,0.01724959,0.01228837,0.01136796,0.23992908,0.00000000,0,49,0,0.00003294,floor[0]@world vs geom#29[29]@wrist_3_link,true,false +open_floor,scene.xml,50,202608180500,false,position PD,6307,12.61200000,0.15814971,0.18170963,0.01253212,0.08711830,0.34135572,0.00000000,180,220,0,0.00019435,floor[0]@world vs geom#17[17]@forearm_link,false,false +open_floor,scene.xml,50,202608180500,false,PD + velocity FF,6307,12.61200000,0.02087192,0.02658460,0.01177809,0.02501157,0.34135572,0.00000000,180,164,0,0.00019435,floor[0]@world vs geom#17[17]@forearm_link,true,false +open_floor,scene.xml,53,202608180530,true,position PD,8346,16.69000000,0.17035012,0.17646279,0.00580204,0.05410223,0.18160347,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,53,202608180530,true,PD + velocity FF,8346,16.69000000,0.00962072,0.01367964,0.00368956,0.01214055,0.18511284,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,54,202608180540,true,position PD,4992,9.98200000,0.12442716,0.13227650,0.00759916,0.01850232,0.10586341,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,54,202608180540,true,PD + velocity FF,4992,9.98200000,0.00771676,0.00860407,0.00819971,0.00393015,0.10586341,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,55,202608180550,true,position PD,8409,16.81600000,0.13302565,0.13839313,0.00692936,0.02652752,0.24169685,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,55,202608180550,true,PD + velocity FF,8409,16.81600000,0.01418593,0.01804222,0.00715742,0.01480951,0.24321863,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,56,202608180560,false,position PD,11213,22.42400000,0.15588740,0.17235042,0.01202571,0.09871127,0.35412094,0.00000000,0,61,0,0.00026311,floor[0]@world vs geom#27[27]@wrist_2_link,false,false +open_floor,scene.xml,56,202608180560,false,PD + velocity FF,11213,22.42400000,0.02014812,0.02751725,0.01131444,0.02724273,0.36366880,0.00000000,0,203,0,0.00090529,floor[0]@world vs geom#27[27]@wrist_2_link,true,false +open_floor,scene.xml,60,202608180600,false,position PD,8054,16.10600000,0.15410247,0.18664498,0.01248469,0.04189534,0.24046146,0.00000000,0,17,0,0.00000879,floor[0]@world vs geom#17[17]@forearm_link,false,false +open_floor,scene.xml,60,202608180600,false,PD + velocity FF,8054,16.10600000,0.00936739,0.01706455,0.01215077,0.01100295,0.24828147,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,61,202608180610,false,position PD,4883,9.76400000,0.16447123,0.18812650,0.01456000,0.06587046,0.26631678,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,61,202608180610,false,PD + velocity FF,4883,9.76400000,0.01301873,0.02095665,0.01415196,0.01824209,0.27187413,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,62,202608180620,true,position PD,10174,20.34600000,0.13098757,0.13680196,0.00461214,0.03930539,0.12342039,0.00000000,0,0,103,0.00013757,geom#11[11]@upper_arm_link vs geom#26[26]@wrist_2_link,false,false +open_floor,scene.xml,62,202608180620,true,PD + velocity FF,10174,20.34600000,0.00948571,0.01109624,0.00339492,0.00913973,0.12342039,0.00000000,0,93,250,0.00041235,geom#11[11]@upper_arm_link vs geom#26[26]@wrist_2_link,true,false +open_floor,scene.xml,65,202608180650,true,position PD,6840,13.67800000,0.16125336,0.17017248,0.02525919,0.09783173,0.33463490,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,65,202608180650,true,PD + velocity FF,6840,13.67800000,0.01416666,0.02672902,0.02586060,0.02774194,0.33959070,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,66,202608180660,true,position PD,10083,20.16400000,0.12965019,0.13281474,0.01924808,0.08285265,0.32866669,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,66,202608180660,true,PD + velocity FF,10083,20.16400000,0.02308538,0.02553504,0.01904879,0.01974771,0.32866669,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,69,202608180690,true,position PD,3591,7.18000000,0.18567382,0.19732371,0.01869931,0.09408882,0.33259706,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,69,202608180690,true,PD + velocity FF,3591,7.18000000,0.02387389,0.02625492,0.01874980,0.02791045,0.33259706,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,71,202608180710,true,position PD,4555,9.10800000,0.13601491,0.14235960,0.02096821,0.03566024,0.27426184,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,71,202608180710,true,PD + velocity FF,4555,9.10800000,0.01928265,0.02122204,0.02097350,0.01796625,0.27592625,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,72,202608180720,true,position PD,5570,11.13800000,0.16931083,0.17741841,0.01534115,0.03113670,0.20856513,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,72,202608180720,true,PD + velocity FF,5570,11.13800000,0.01008048,0.01566994,0.01534515,0.01362178,0.21122132,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,73,202608180730,true,position PD,7348,14.69400000,0.13620272,0.14357001,0.01210524,0.03908541,0.25140281,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,73,202608180730,true,PD + velocity FF,7348,14.69400000,0.01194928,0.01899918,0.01282671,0.01527287,0.25344865,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,75,202608180750,true,position PD,10424,20.84600000,0.16319814,0.16811006,0.02800885,0.04117889,0.35507304,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,75,202608180750,true,PD + velocity FF,10424,20.84600000,0.02157154,0.02791235,0.02775508,0.02804688,0.35634017,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,77,202608180770,true,position PD,3415,6.82800000,0.12612028,0.13471755,0.01167132,0.02855277,0.15998939,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,77,202608180770,true,PD + velocity FF,3415,6.82800000,0.00638192,0.01208970,0.01175579,0.00808781,0.16643553,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,78,202608180780,false,position PD,8146,16.29000000,0.15311761,0.16603874,0.01753260,0.06291048,0.27866974,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,78,202608180780,false,PD + velocity FF,8146,16.29000000,0.01360947,0.02078688,0.01811192,0.01755934,0.28020534,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,79,202608180790,true,position PD,8238,16.47400000,0.14867708,0.15347753,0.01318940,0.01600668,0.18261230,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,79,202608180790,true,PD + velocity FF,8238,16.47400000,0.00875079,0.01394590,0.01369446,0.00996894,0.18578096,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,81,202608180810,true,position PD,6380,12.75800000,0.11587922,0.11962768,0.01731265,0.05005510,0.23103317,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,81,202608180810,true,PD + velocity FF,6380,12.75800000,0.01289068,0.01755254,0.01721721,0.01326954,0.23410091,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,82,202608180820,true,position PD,2899,5.79600000,0.15052405,0.16396483,0.00785505,0.03416929,0.09618396,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,82,202608180820,true,PD + velocity FF,2899,5.79600000,0.00817502,0.00916739,0.00699547,0.00420171,0.09618401,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,89,202608180890,true,position PD,5673,11.34400000,0.15788890,0.16387854,0.02280780,0.06043378,0.31902054,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,89,202608180890,true,PD + velocity FF,5673,11.34400000,0.02373068,0.02520608,0.02256879,0.02539715,0.31902054,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,91,202608180910,false,position PD,2178,4.35400000,0.13889009,0.17536013,0.02258127,0.07826761,0.31137714,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,91,202608180910,false,PD + velocity FF,2178,4.35400000,0.01597016,0.02357492,0.02231486,0.01566150,0.32921368,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,93,202608180930,true,position PD,7551,15.10000000,0.17017692,0.17522833,0.02396844,0.07693967,0.32508185,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,93,202608180930,true,PD + velocity FF,7551,15.10000000,0.02474725,0.02538022,0.02382944,0.02658234,0.32508185,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,94,202608180940,true,position PD,8616,17.23000000,0.12485747,0.13166956,0.00757916,0.05189018,0.32217063,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,94,202608180940,true,PD + velocity FF,8616,17.23000000,0.01547471,0.02443222,0.00680177,0.02245586,0.32516280,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,97,202608180970,true,position PD,5730,11.45800000,0.11630152,0.12072260,0.01399114,0.01252405,0.17633971,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,97,202608180970,true,PD + velocity FF,5730,11.45800000,0.01336905,0.01351305,0.01354175,0.00962239,0.17671392,0.00000000,0,0,0,0.00000000,,true,true +open_floor,scene.xml,99,202608180990,false,position PD,9286,18.57000000,0.14168643,0.15240160,0.01127825,0.03542079,0.13550502,0.00000000,0,0,0,0.00000000,,false,false +open_floor,scene.xml,99,202608180990,false,PD + velocity FF,9286,18.57000000,0.00837582,0.01218038,0.01188958,0.00677409,0.13617890,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,2,202608190020,false,position PD,7395,14.78800000,0.13802204,0.14780079,0.01014192,0.03759351,0.10797150,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,2,202608190020,false,PD + velocity FF,7395,14.78800000,0.00728874,0.01116709,0.01070948,0.00850952,0.10990468,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,6,202608190060,true,position PD,8620,17.23800000,0.12296834,0.12856058,0.02062434,0.04149304,0.27467263,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,6,202608190060,true,PD + velocity FF,8620,17.23800000,0.01385579,0.02172587,0.02122489,0.01873121,0.28048584,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,8,202608190080,false,position PD,6842,13.68200000,0.14787559,0.15860347,0.01517432,0.05343413,0.33028584,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,8,202608190080,false,PD + velocity FF,6842,13.68200000,0.01608035,0.02469261,0.01465735,0.02256177,0.33666873,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,9,202608190090,false,position PD,8090,16.17800000,0.14661346,0.17904380,0.02469578,0.07912483,0.35050139,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,9,202608190090,false,PD + velocity FF,8090,16.17800000,0.01843161,0.02699471,0.02586973,0.02445227,0.36372228,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,13,202608190130,false,position PD,7057,14.11200000,0.13016930,0.18642000,0.01770374,0.07531574,0.32555977,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,13,202608190130,false,PD + velocity FF,7057,14.11200000,0.01554100,0.02483913,0.01982066,0.01727360,0.32940049,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,15,202608190150,false,position PD,6798,13.59400000,0.12828231,0.16572682,0.00620772,0.05421102,0.34886814,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,15,202608190150,false,PD + velocity FF,6798,13.59400000,0.02166843,0.02653394,0.00685650,0.02130317,0.35805584,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,20,202608190200,false,position PD,8606,17.21000000,0.13631157,0.14656907,0.00727899,0.05759874,0.25232985,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,20,202608190200,false,PD + velocity FF,8606,17.21000000,0.01107201,0.01952825,0.00806862,0.01623997,0.25520698,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,22,202608190220,false,position PD,10046,20.09000000,0.15811037,0.18178511,0.00565911,0.08461089,0.36417601,0.00000000,190,130,0,0.00060922,floor[0]@world vs geom#26[26]@wrist_2_link,false,false +offset_pillar,scene_cluttered.xml,22,202608190220,false,PD + velocity FF,10046,20.09000000,0.01252389,0.02614551,0.00579452,0.02029410,0.37223873,0.00000000,190,76,0,0.00060922,floor[0]@world vs geom#26[26]@wrist_2_link,true,false +offset_pillar,scene_cluttered.xml,24,202608190240,false,position PD,5203,10.40400000,0.13485538,0.18300449,0.00999485,0.04129902,0.39505772,0.00000000,0,46,0,0.00033883,geom#29[29]@wrist_3_link vs pillar[30]@pillar,false,false +offset_pillar,scene_cluttered.xml,24,202608190240,false,PD + velocity FF,5203,10.40400000,0.01165673,0.01710541,0.01061422,0.01127380,0.39505535,0.00000000,0,46,0,0.00033863,geom#29[29]@wrist_3_link vs pillar[30]@pillar,true,false +offset_pillar,scene_cluttered.xml,25,202608190250,true,position PD,2220,4.43800000,0.14183297,0.15707205,0.01339676,0.02545089,0.17528758,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,25,202608190250,true,PD + velocity FF,2220,4.43800000,0.00919004,0.01403430,0.01385454,0.00392708,0.18396047,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,26,202608190260,true,position PD,1533,3.06400000,0.12261812,0.14187466,0.00824383,0.01386127,0.09368957,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,26,202608190260,true,PD + velocity FF,1533,3.06400000,0.00736266,0.00785892,0.00778222,0.00375586,0.09467715,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,27,202608190270,false,position PD,7075,14.14800000,0.15406901,0.20921968,0.00763088,0.03996292,0.21463674,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,27,202608190270,false,PD + velocity FF,7075,14.14800000,0.00884820,0.01592300,0.00776596,0.00681839,0.21945411,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,29,202608190290,false,position PD,7384,14.76600000,0.14321740,0.16421221,0.02294785,0.09360597,0.30575740,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,29,202608190290,false,PD + velocity FF,7384,14.76600000,0.01166547,0.02454216,0.02361641,0.02488076,0.31400506,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,32,202608190320,true,position PD,4564,9.12600000,0.17736522,0.19227510,0.01351675,0.05332941,0.37020192,0.00000000,0,52,250,0.00090942,floor[0]@world vs geom#27[27]@wrist_2_link,false,false +offset_pillar,scene_cluttered.xml,32,202608190320,true,PD + velocity FF,4564,9.12600000,0.01684524,0.02841235,0.01000436,0.02893612,0.37295245,0.00000000,0,177,250,0.00148761,floor[0]@world vs geom#27[27]@wrist_2_link,true,false +offset_pillar,scene_cluttered.xml,34,202608190340,true,position PD,9585,19.16800000,0.12622925,0.13092188,0.01265712,0.03684648,0.26708083,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,34,202608190340,true,PD + velocity FF,9585,19.16800000,0.01805978,0.02158075,0.01241512,0.02183260,0.26708083,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,35,202608190350,true,position PD,7816,15.63000000,0.12108120,0.12819092,0.01426566,0.03027747,0.20834976,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,35,202608190350,true,PD + velocity FF,7816,15.63000000,0.01201103,0.01590789,0.01495727,0.01632681,0.21243433,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,38,202608190380,false,position PD,5735,11.46800000,0.15985193,0.19108239,0.01255661,0.07029810,0.17513989,0.00000000,0,317,0,0.00009325,floor[0]@world vs geom#27[27]@wrist_2_link,false,false +offset_pillar,scene_cluttered.xml,38,202608190380,false,PD + velocity FF,5735,11.46800000,0.01170558,0.01504030,0.01182965,0.01068932,0.17513989,0.00000000,0,376,0,0.00022428,floor[0]@world vs geom#27[27]@wrist_2_link,true,false +offset_pillar,scene_cluttered.xml,39,202608190390,true,position PD,5696,11.39000000,0.12592074,0.13304180,0.00923365,0.03312009,0.17651357,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,39,202608190390,true,PD + velocity FF,5696,11.39000000,0.01049399,0.01415675,0.00912220,0.00501444,0.17884383,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,41,202608190410,false,position PD,8398,16.79400000,0.12293964,0.16586987,0.00874775,0.04330586,0.20080236,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,41,202608190410,false,PD + velocity FF,8398,16.79400000,0.00984946,0.01511825,0.00905983,0.00727505,0.20182749,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,44,202608190440,false,position PD,12189,24.37600000,0.14564806,0.17280269,0.01389258,0.03457839,0.19192732,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,44,202608190440,false,PD + velocity FF,12189,24.37600000,0.00729371,0.01444297,0.01429570,0.00793593,0.19754820,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,48,202608190480,true,position PD,10211,20.42000000,0.13210510,0.13493798,0.01041863,0.01961721,0.15292992,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,48,202608190480,true,PD + velocity FF,10211,20.42000000,0.00913647,0.01161808,0.00996520,0.00489902,0.15392867,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,50,202608190500,false,position PD,9279,18.55600000,0.12912405,0.14382719,0.01974260,0.09256911,0.32537106,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,50,202608190500,false,PD + velocity FF,9279,18.55600000,0.01494103,0.02501252,0.01976563,0.02317552,0.33044662,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,51,202608190510,false,position PD,7708,15.41400000,0.11166219,0.12026547,0.02606539,0.02625661,0.33084982,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,51,202608190510,false,PD + velocity FF,7708,15.41400000,0.02020267,0.02603517,0.02592149,0.02654166,0.33239130,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,52,202608190520,false,position PD,9492,18.98200000,0.15151563,0.16531692,0.02065838,0.03904829,0.26473694,0.00000000,155,116,0,0.00014939,floor[0]@world vs geom#17[17]@forearm_link,false,false +offset_pillar,scene_cluttered.xml,52,202608190520,false,PD + velocity FF,9492,18.98200000,0.01358317,0.02083268,0.02064884,0.01623122,0.27074102,0.00000000,155,66,0,0.00014939,floor[0]@world vs geom#17[17]@forearm_link,false,false +offset_pillar,scene_cluttered.xml,55,202608190550,true,position PD,8862,17.72200000,0.13074852,0.13656563,0.00913908,0.02305350,0.10567155,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,55,202608190550,true,PD + velocity FF,8862,17.72200000,0.00695631,0.01032231,0.01001563,0.00310819,0.10678827,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,61,202608190610,false,position PD,9210,18.41800000,0.14678029,0.15750346,0.00861838,0.06121476,0.33016712,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,61,202608190610,false,PD + velocity FF,9210,18.41800000,0.01688035,0.02489346,0.00764309,0.02015432,0.33372616,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,62,202608190620,true,position PD,8294,16.58600000,0.13776109,0.14217173,0.01088589,0.02560265,0.17720450,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,62,202608190620,true,PD + velocity FF,8294,16.58600000,0.01022334,0.01482080,0.01095598,0.01199455,0.17927508,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,63,202608190630,true,position PD,2572,5.14200000,0.15230349,0.16596641,0.00602336,0.06737922,0.23810002,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,63,202608190630,true,PD + velocity FF,2572,5.14200000,0.01129367,0.01809098,0.00551162,0.01744861,0.24453336,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,64,202608190640,false,position PD,8691,17.38000000,0.14291866,0.17476768,0.02625547,0.08435782,0.34270061,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,64,202608190640,false,PD + velocity FF,8691,17.38000000,0.01504724,0.02690978,0.02645369,0.02548437,0.34597910,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,65,202608190650,true,position PD,7617,15.23200000,0.14183456,0.14588913,0.00720613,0.03681788,0.10924841,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,65,202608190650,true,PD + velocity FF,7617,15.23200000,0.00847799,0.00955132,0.00615445,0.00560913,0.10946547,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,67,202608190670,true,position PD,8364,16.72600000,0.12829771,0.13205229,0.01276985,0.01737014,0.14514760,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,67,202608190670,true,PD + velocity FF,8364,16.72600000,0.00871996,0.01261552,0.01257139,0.00441502,0.14722545,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,70,202608190700,false,position PD,8055,16.10800000,0.13055670,0.19267943,0.02477839,0.11349615,0.34265745,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,70,202608190700,false,PD + velocity FF,8055,16.10800000,0.01383870,0.02643332,0.02559864,0.02150587,0.35136985,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,71,202608190710,true,position PD,9855,19.70800000,0.12645907,0.13165720,0.00638282,0.02268769,0.06026602,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,71,202608190710,true,PD + velocity FF,9855,19.70800000,0.00445464,0.00613342,0.00596584,0.00439559,0.06482237,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,72,202608190720,false,position PD,7825,15.64800000,0.13177748,0.17112904,0.01228260,0.03152836,0.15747177,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,72,202608190720,false,PD + velocity FF,7825,15.64800000,0.00834047,0.01265981,0.01245438,0.00611239,0.16513354,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,76,202608190760,true,position PD,7746,15.49000000,0.12501441,0.13087521,0.01562496,0.02750469,0.45913764,0.00000000,0,13,0,0.00000902,geom#18[18]@forearm_link vs geom#29[29]@wrist_3_link,false,false +offset_pillar,scene_cluttered.xml,76,202608190760,true,PD + velocity FF,7746,15.49000000,0.01392552,0.01507508,0.01513108,0.00658447,0.45999708,0.00000000,0,13,0,0.00000902,geom#18[18]@forearm_link vs geom#29[29]@wrist_3_link,true,false +offset_pillar,scene_cluttered.xml,79,202608190790,true,position PD,3898,7.79400000,0.16641287,0.18059925,0.00823441,0.05307661,0.19425346,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,79,202608190790,true,PD + velocity FF,3898,7.79400000,0.01035513,0.01431716,0.01028846,0.00752476,0.19836105,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,82,202608190820,true,position PD,4087,8.17200000,0.12420876,0.13235516,0.01501414,0.03195367,0.17821628,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,82,202608190820,true,PD + velocity FF,4087,8.17200000,0.01398640,0.01430865,0.01424292,0.00567930,0.17821628,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,83,202608190830,false,position PD,6103,12.20400000,0.14163859,0.18308557,0.01528758,0.07168488,0.22191364,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,83,202608190830,false,PD + velocity FF,6103,12.20400000,0.01094495,0.01796651,0.01691899,0.01151716,0.23602535,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,84,202608190840,true,position PD,3131,6.26000000,0.14831222,0.16009039,0.00745337,0.07410847,0.29048907,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,84,202608190840,true,PD + velocity FF,3131,6.26000000,0.01709738,0.02118244,0.00593716,0.01817193,0.29529656,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,87,202608190870,false,position PD,5777,11.55200000,0.13905750,0.15993081,0.01191923,0.07755803,0.20455464,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,87,202608190870,false,PD + velocity FF,5777,11.55200000,0.01188524,0.01615700,0.01107190,0.01480410,0.21831231,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,88,202608190880,false,position PD,11626,23.25000000,0.14966988,0.16673734,0.01002770,0.06437127,0.29397499,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,88,202608190880,false,PD + velocity FF,11626,23.25000000,0.01476634,0.02319060,0.01090869,0.01856934,0.30764580,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,89,202608190890,false,position PD,8061,16.12000000,0.12030649,0.13169468,0.00769614,0.05124911,0.16535858,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,89,202608190890,false,PD + velocity FF,8061,16.12000000,0.01017529,0.01490079,0.00727968,0.01084448,0.16535858,0.00000000,0,0,0,0.00000000,,true,true +offset_pillar,scene_cluttered.xml,90,202608190900,true,position PD,3913,7.82400000,0.13939183,0.15922063,0.02616722,0.08878802,0.37952079,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,90,202608190900,true,PD + velocity FF,3913,7.82400000,0.01992410,0.02963607,0.02771971,0.02801699,0.39188405,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,93,202608190930,true,position PD,6402,12.80200000,0.12738777,0.13200816,0.02608366,0.05333702,0.34148110,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,93,202608190930,true,PD + velocity FF,6402,12.80200000,0.02057785,0.02659276,0.02622101,0.02342511,0.34438824,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,97,202608190970,false,position PD,11583,23.16400000,0.16341592,0.17560666,0.02592996,0.07059868,0.76435890,0.00000000,0,11,0,0.00017937,geom#27[27]@wrist_2_link vs pillar[30]@pillar,false,false +offset_pillar,scene_cluttered.xml,97,202608190970,false,PD + velocity FF,11583,23.16400000,0.01770362,0.02720940,0.02646452,0.02252824,0.76435890,0.00000000,0,11,0,0.00017937,geom#27[27]@wrist_2_link vs pillar[30]@pillar,false,false +offset_pillar,scene_cluttered.xml,98,202608190980,false,position PD,7613,15.22400000,0.15821951,0.17098495,0.02375933,0.05202889,0.34139710,0.00000000,0,0,0,0.00000000,,false,false +offset_pillar,scene_cluttered.xml,98,202608190980,false,PD + velocity FF,7613,15.22400000,0.01829368,0.02651193,0.02291643,0.02134357,0.34907405,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,2,202608200020,false,position PD,11327,22.65200000,0.13197833,0.23957168,0.00626463,0.10456179,1.00000000,0.01880463,0,229,0,0.00124048,geom#26[26]@wrist_2_link vs pillar[31]@pillar,false,false +tabletop_pillar,scene_pickplace.xml,2,202608200020,false,PD + velocity FF,11327,22.65200000,0.01791923,0.13793286,0.00577133,0.07092579,1.00000000,0.01880463,0,229,0,0.00124008,geom#26[26]@wrist_2_link vs pillar[31]@pillar,false,false +tabletop_pillar,scene_pickplace.xml,5,202608200050,true,position PD,5009,10.01600000,0.16263358,0.17247012,0.02558588,0.04132507,0.34113537,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,5,202608200050,true,PD + velocity FF,5009,10.01600000,0.01726500,0.02641426,0.02585725,0.02298690,0.34627410,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,6,202608200060,false,position PD,7819,15.63600000,0.14274377,0.16652031,0.00667470,0.06749226,1.00000000,0.00319734,0,72,0,0.00088323,geom#27[27]@wrist_2_link vs pillar[31]@pillar,false,false +tabletop_pillar,scene_pickplace.xml,6,202608200060,false,PD + velocity FF,7819,15.63600000,0.01252718,0.02751304,0.00610294,0.01287550,1.00000000,0.00319734,0,71,0,0.00088323,geom#27[27]@wrist_2_link vs pillar[31]@pillar,true,false +tabletop_pillar,scene_pickplace.xml,7,202608200070,true,position PD,7379,14.75600000,0.13782488,0.14295727,0.00631475,0.05698577,0.10559589,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,7,202608200070,true,PD + velocity FF,7379,14.75600000,0.00968935,0.01080871,0.00556102,0.00700157,0.10559589,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,9,202608200090,true,position PD,6083,12.16400000,0.18024043,0.18930658,0.02166663,0.07801695,0.30121681,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,9,202608200090,true,PD + velocity FF,6083,12.16400000,0.01457169,0.02303983,0.02225178,0.02020963,0.30751451,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,10,202608200100,true,position PD,3464,6.92600000,0.13491013,0.14621525,0.01852171,0.03502149,0.25550996,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,10,202608200100,true,PD + velocity FF,3464,6.92600000,0.01234207,0.01982070,0.01940485,0.01110187,0.26319033,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,13,202608200130,true,position PD,8549,17.09600000,0.19436672,0.20076018,0.00882736,0.04652383,0.11056897,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,13,202608200130,true,PD + velocity FF,8549,17.09600000,0.00681106,0.00922882,0.00857282,0.00820908,0.11348633,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,14,202608200140,false,position PD,8548,17.09400000,0.14655085,0.19779545,0.01030729,0.05884563,0.30970349,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,14,202608200140,false,PD + velocity FF,8548,17.09400000,0.01415634,0.02423328,0.00764527,0.02245599,0.31351103,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,16,202608200160,true,position PD,8144,16.28600000,0.13830590,0.14499628,0.01459245,0.02988319,0.16594955,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,16,202608200160,true,PD + velocity FF,8144,16.28600000,0.00825268,0.01427415,0.01429088,0.01013377,0.16641150,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,17,202608200170,true,position PD,2413,4.82400000,0.10726465,0.11904224,0.02607475,0.04644720,0.32799954,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,17,202608200170,true,PD + velocity FF,2413,4.82400000,0.02328863,0.02562007,0.02578671,0.02451792,0.32943736,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,21,202608200210,true,position PD,1894,3.78600000,0.14876616,0.17187566,0.01889068,0.10497178,0.27804769,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,21,202608200210,true,PD + velocity FF,1894,3.78600000,0.01400651,0.02230254,0.02100159,0.02023917,0.30160648,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,22,202608200220,false,position PD,7361,14.72000000,0.14054028,0.16276772,0.02211234,0.03101901,0.32345619,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,22,202608200220,false,PD + velocity FF,7361,14.72000000,0.02417506,0.02486586,0.02135442,0.02139947,0.32557221,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,25,202608200250,false,position PD,6246,12.49000000,0.14297643,0.17760732,0.00787256,0.03789794,0.12856110,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,25,202608200250,false,PD + velocity FF,6246,12.49000000,0.00979009,0.01202857,0.00649043,0.00852810,0.13164540,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,27,202608200270,false,position PD,9253,18.50400000,0.17314314,0.19503453,0.00623167,0.07444524,0.30516108,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,27,202608200270,false,PD + velocity FF,9253,18.50400000,0.01241980,0.02348538,0.00744173,0.01765366,0.31012668,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,29,202608200290,true,position PD,10113,20.22400000,0.13730414,0.14138187,0.01430765,0.05540344,0.19899858,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,29,202608200290,true,PD + velocity FF,10113,20.22400000,0.01067299,0.01472323,0.01425436,0.00952225,0.20307711,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,32,202608200320,true,position PD,6359,12.71600000,0.11362557,0.11838261,0.02651681,0.02761795,0.34933901,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,32,202608200320,true,PD + velocity FF,6359,12.71600000,0.01873538,0.02720706,0.02681416,0.02781673,0.35325206,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,34,202608200340,true,position PD,3030,6.05800000,0.17514309,0.19045009,0.00603415,0.04233775,0.13880123,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,34,202608200340,true,PD + velocity FF,3030,6.05800000,0.00815244,0.01196116,0.00713968,0.00886817,0.14091921,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,36,202608200360,true,position PD,7804,15.60600000,0.11510359,0.12094487,0.01499320,0.02066559,0.21741188,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,36,202608200360,true,PD + velocity FF,7804,15.60600000,0.01304064,0.01844647,0.01512177,0.01615321,0.21741188,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,39,202608200390,true,position PD,6943,13.88400000,0.14570970,0.15235365,0.01952891,0.05604587,0.25413416,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,39,202608200390,true,PD + velocity FF,6943,13.88400000,0.01325670,0.02033947,0.01979429,0.01444756,0.25551305,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,41,202608200410,false,position PD,9416,18.83000000,0.12246704,0.15365634,0.01079572,0.06508428,0.44989792,0.00000000,0,58,250,0.00113626,floor[0]@world vs geom#29[29]@wrist_3_link,false,false +tabletop_pillar,scene_pickplace.xml,41,202608200410,false,PD + velocity FF,9416,18.83000000,0.01484640,0.02987868,0.00947724,0.02923485,0.44989792,0.00000000,0,205,250,0.00221811,floor[0]@world vs geom#29[29]@wrist_3_link,true,false +tabletop_pillar,scene_pickplace.xml,42,202608200420,false,position PD,9708,19.41400000,0.14527232,0.18320557,0.01334960,0.05063434,1.00000000,0.00885867,0,225,0,0.00076753,geom#22[22]@wrist_1_link vs pillar[31]@pillar,false,false +tabletop_pillar,scene_pickplace.xml,42,202608200420,false,PD + velocity FF,9708,19.41400000,0.01763632,0.07349920,0.01365069,0.03328739,1.00000000,0.00885867,0,225,0,0.00076753,geom#22[22]@wrist_1_link vs pillar[31]@pillar,true,false +tabletop_pillar,scene_pickplace.xml,43,202608200430,false,position PD,5321,10.64000000,0.15564510,0.17261645,0.00468507,0.02032598,0.15191939,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,43,202608200430,false,PD + velocity FF,5321,10.64000000,0.00652687,0.01149304,0.00186767,0.00538293,0.15446878,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,45,202608200450,true,position PD,3753,7.50400000,0.13084230,0.14235621,0.02598594,0.05169586,0.35893255,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,45,202608200450,true,PD + velocity FF,3753,7.50400000,0.01683792,0.02786316,0.02688311,0.02559110,0.36757323,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,46,202608200460,true,position PD,10460,20.91800000,0.11005043,0.11257812,0.02015738,0.01467382,0.26353650,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,46,202608200460,true,PD + velocity FF,10460,20.91800000,0.01124263,0.02022760,0.02014361,0.01684813,0.26583388,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,52,202608200520,false,position PD,5884,11.76600000,0.14201694,0.18233137,0.01086113,0.07500862,0.15746021,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,52,202608200520,false,PD + velocity FF,5884,11.76600000,0.00909029,0.01269886,0.01182874,0.00932631,0.16265364,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,53,202608200530,true,position PD,6823,13.64400000,0.14399582,0.14972350,0.00971934,0.01368444,0.12047776,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,53,202608200530,true,PD + velocity FF,6823,13.64400000,0.00594553,0.00991265,0.00974537,0.00500915,0.12194072,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,55,202608200550,false,position PD,10494,20.98600000,0.14534271,0.16026461,0.01087034,0.06180112,0.25021583,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,55,202608200550,false,PD + velocity FF,10494,20.98600000,0.01109390,0.01886315,0.00970493,0.01253007,0.26310936,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,56,202608200560,true,position PD,3884,7.76600000,0.13735392,0.14654973,0.01221068,0.02714016,0.20368686,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,56,202608200560,true,PD + velocity FF,3884,7.76600000,0.01404885,0.01583602,0.01280063,0.01436995,0.20454828,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,62,202608200620,true,position PD,11369,22.73600000,0.12373492,0.12635000,0.01826599,0.04863740,0.31388959,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,62,202608200620,true,PD + velocity FF,11369,22.73600000,0.02314612,0.02496874,0.01797665,0.02525342,0.31388959,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,65,202608200650,true,position PD,2070,4.13800000,0.15802139,0.17645332,0.00765191,0.04337379,0.14426121,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,65,202608200650,true,PD + velocity FF,2070,4.13800000,0.00760248,0.01102200,0.00848890,0.00903552,0.14803608,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,72,202608200720,true,position PD,3495,6.98800000,0.13604756,0.14544398,0.01373923,0.04147136,0.19025299,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,72,202608200720,true,PD + velocity FF,3495,6.98800000,0.00885405,0.01446571,0.01394295,0.00978068,0.19982474,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,73,202608200730,false,position PD,9341,18.68000000,0.13960383,0.15852115,0.02535310,0.09648300,0.37403772,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,73,202608200730,false,PD + velocity FF,9341,18.68000000,0.01229019,0.02901781,0.02726615,0.02997388,0.39400811,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,76,202608200760,true,position PD,8826,17.65000000,0.13391712,0.13998101,0.00699319,0.03932882,0.33457041,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,76,202608200760,true,PD + velocity FF,8826,17.65000000,0.01556778,0.02543577,0.00698737,0.01816067,0.33741900,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,79,202608200790,true,position PD,5047,10.09200000,0.13803653,0.14706778,0.01679535,0.05702559,0.23316557,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,79,202608200790,true,PD + velocity FF,5047,10.09200000,0.01142460,0.01790531,0.01723757,0.01413649,0.24234363,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,82,202608200820,false,position PD,6567,13.13200000,0.17068065,0.20039500,0.01324727,0.05576721,0.19760868,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,82,202608200820,false,PD + velocity FF,6567,13.13200000,0.01131227,0.01588224,0.01492496,0.01157926,0.20505649,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,84,202608200840,true,position PD,10934,21.86600000,0.14134897,0.15463313,0.01427194,0.09472239,1.00000000,0.00036583,0,20,0,0.00321406,geom#29[29]@wrist_3_link vs pillar[31]@pillar,false,false +tabletop_pillar,scene_pickplace.xml,84,202608200840,true,PD + velocity FF,10934,21.86600000,0.01424774,0.02445277,0.01424689,0.02477878,1.00000000,0.00036583,0,20,0,0.00321387,geom#29[29]@wrist_3_link vs pillar[31]@pillar,true,false +tabletop_pillar,scene_pickplace.xml,85,202608200850,true,position PD,8760,17.51800000,0.14933312,0.15385169,0.02305772,0.07454761,0.29684925,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,85,202608200850,true,PD + velocity FF,8760,17.51800000,0.01613967,0.02351885,0.02322432,0.01857836,0.29809928,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,86,202608200860,false,position PD,7491,14.98000000,0.12612367,0.14078255,0.01478197,0.06381278,0.35056684,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,86,202608200860,false,PD + velocity FF,7491,14.98000000,0.01828589,0.02691859,0.01559483,0.02509239,0.35433008,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,87,202608200870,true,position PD,9175,18.34800000,0.14196685,0.14919960,0.02297195,0.03620757,0.30761243,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,87,202608200870,true,PD + velocity FF,9175,18.34800000,0.01520733,0.02343539,0.02311899,0.01609958,0.31113393,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,88,202608200880,true,position PD,5085,10.16800000,0.16836263,0.17781497,0.00681238,0.02966177,0.26287563,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,88,202608200880,true,PD + velocity FF,5085,10.16800000,0.01644421,0.01978356,0.00733401,0.01521351,0.26287563,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,89,202608200890,true,position PD,5024,10.04600000,0.14698327,0.15711329,0.01835521,0.04964654,0.26409372,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,89,202608200890,true,PD + velocity FF,5024,10.04600000,0.01459258,0.02160808,0.01843589,0.02030894,0.26409372,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,91,202608200910,true,position PD,4946,9.89000000,0.15787161,0.16643477,0.00667473,0.04090898,0.19176191,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,91,202608200910,true,PD + velocity FF,4946,9.89000000,0.01214953,0.01477991,0.00510429,0.00694385,0.19365657,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,93,202608200930,true,position PD,6489,12.97600000,0.13604053,0.14469230,0.01226828,0.02729975,0.16088928,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,93,202608200930,true,PD + velocity FF,6489,12.97600000,0.00887069,0.01390164,0.01340464,0.00585751,0.16341918,0.00000000,0,0,0,0.00000000,,true,true +tabletop_pillar,scene_pickplace.xml,96,202608200960,false,position PD,8430,16.85800000,0.11882236,0.15781317,0.02267462,0.05765848,0.31756486,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,96,202608200960,false,PD + velocity FF,8430,16.85800000,0.01181418,0.02447073,0.02367392,0.01732603,0.33114082,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,98,202608200980,true,position PD,3779,7.55600000,0.12764211,0.13658439,0.02020864,0.02864554,0.25770633,0.00000000,0,0,0,0.00000000,,false,false +tabletop_pillar,scene_pickplace.xml,98,202608200980,true,PD + velocity FF,3779,7.55600000,0.01319037,0.02093681,0.02060916,0.01619791,0.26436977,0.00000000,0,0,0,0.00000000,,false,false diff --git a/docs/robustness_results.csv b/docs/robustness_results.csv index dd469b3..73934c9 100644 --- a/docs/robustness_results.csv +++ b/docs/robustness_results.csv @@ -1,29 +1,29 @@ scenario,controller,rms_joint_rad,max_joint_rad,final_joint_rad,max_ee_pos_m,peak_force_fraction,saturated_step_fraction,pass -nominal,position PD,0.14092183,0.17193787,0.01108060,0.07768279,0.12082634,0.00000000,false -nominal,PD + velocity FF,0.00968930,0.01211322,0.01167408,0.00858596,1.00000000,0.00114220,true -nominal,PD + velocity FF + nominal bias,0.00163256,0.00463045,0.00005957,0.00361599,1.00000000,0.00114220,true -nominal,nominal bias + integral residual,0.00197244,0.00475903,0.00043721,0.00371643,1.00000000,0.00114220,true -2 kg tool payload,position PD,0.14161195,0.17559334,0.01866818,0.08227951,0.19036603,0.00000000,false -2 kg tool payload,PD + velocity FF,0.01728628,0.02010561,0.01929978,0.01397977,1.00000000,0.00171331,true -2 kg tool payload,PD + velocity FF + nominal bias,0.00838171,0.00920473,0.00785221,0.00600668,1.00000000,0.00171331,true -2 kg tool payload,nominal bias + integral residual,0.00295027,0.00772616,0.00074369,0.00614918,1.00000000,0.00171331,true -65% actuator gains,position PD,0.14164256,0.17383167,0.01718878,0.08009180,0.12102255,0.00000000,false -65% actuator gains,PD + velocity FF,0.01487300,0.01870774,0.01804184,0.01335718,1.00000000,0.00114220,true -65% actuator gains,PD + velocity FF + nominal bias,0.00186851,0.00625924,0.00008041,0.00493542,1.00000000,0.00114220,true -65% actuator gains,nominal bias + integral residual,0.00223998,0.00642530,0.00060201,0.00506983,1.00000000,0.00114220,true -+2 Nms/rad joint damping,position PD,0.14262318,0.17449542,0.01116844,0.07813953,0.12194622,0.00000000,false -+2 Nms/rad joint damping,PD + velocity FF,0.00965584,0.01205947,0.01167279,0.00860005,1.00000000,0.00114220,true -+2 Nms/rad joint damping,PD + velocity FF + nominal bias,0.00141775,0.00436075,0.00005423,0.00323749,1.00000000,0.00114220,true -+2 Nms/rad joint damping,nominal bias + integral residual,0.00183202,0.00491970,0.00081740,0.00375567,1.00000000,0.00114220,true -20 ms command latency,position PD,0.15507665,0.18904039,0.01110658,0.08511318,0.12082250,0.00000000,false -20 ms command latency,PD + velocity FF,0.01742590,0.02317264,0.01167678,0.01421286,1.00000000,0.00114220,true -20 ms command latency,PD + velocity FF + nominal bias,0.01421907,0.01935625,0.00006710,0.00778187,1.00000000,0.00114220,true -20 ms command latency,nominal bias + integral residual,0.01161977,0.03409959,0.00339665,0.01495133,1.00000000,0.00114220,true -20 Nm / 120 ms torque pulse,position PD,0.14091485,0.17193787,0.01108058,0.07755316,0.18595492,0.00000000,false -20 Nm / 120 ms torque pulse,PD + velocity FF,0.00977902,0.01211254,0.01167405,0.00858545,1.00000000,0.00171331,true -20 Nm / 120 ms torque pulse,PD + velocity FF + nominal bias,0.00222192,0.00851039,0.00005955,0.00638410,1.00000000,0.00171331,true -20 Nm / 120 ms torque pulse,nominal bias + integral residual,0.00255677,0.00849754,0.00044757,0.00640241,1.00000000,0.00171331,true -combined moderate shift,position PD,0.14977587,0.18515253,0.01866941,0.08562599,0.15629775,0.00000000,false -combined moderate shift,PD + velocity FF,0.01857049,0.02406949,0.01937812,0.01683355,1.00000000,0.00114220,true -combined moderate shift,PD + velocity FF + nominal bias,0.00937482,0.01165952,0.00495107,0.00686473,1.00000000,0.00114220,true -combined moderate shift,nominal bias + integral residual,0.00711243,0.02235948,0.00195445,0.01320313,1.00000000,0.00114220,true +nominal,position PD,0.14056743,0.18990497,0.01112002,0.07701404,0.12082232,0.00000000,false +nominal,PD + velocity FF,0.00933848,0.01218182,0.01167759,0.00862841,0.12880951,0.00000000,true +nominal,PD + velocity FF + nominal bias,0.00150920,0.00195831,0.00006797,0.00138042,0.02783495,0.00000000,true +nominal,nominal bias + integral residual,0.00180069,0.00254138,0.00049154,0.00138066,0.02796704,0.00000000,true +2 kg tool payload,position PD,0.14120289,0.18791267,0.01865384,0.08173143,0.19036080,0.00000000,false +2 kg tool payload,PD + velocity FF,0.01692877,0.02022203,0.01930580,0.01405465,0.20057568,0.00000000,true +2 kg tool payload,PD + velocity FF + nominal bias,0.00847645,0.00937216,0.00785936,0.00612360,0.10624389,0.00000000,true +2 kg tool payload,nominal bias + integral residual,0.00268162,0.00482334,0.00083273,0.00318783,0.10703888,0.00000000,true +65% actuator gains,position PD,0.14125880,0.18876629,0.01714689,0.07993718,0.12101879,0.00000000,false +65% actuator gains,PD + velocity FF,0.01435684,0.01870748,0.01804679,0.01335698,0.12847227,0.00000000,true +65% actuator gains,PD + velocity FF + nominal bias,0.00164772,0.00258297,0.00009175,0.00195320,0.02654750,0.00000000,true +65% actuator gains,nominal bias + integral residual,0.00198368,0.00278514,0.00067890,0.00191951,0.02673569,0.00000000,true ++2 Nms/rad joint damping,position PD,0.14234491,0.19236693,0.01123508,0.07745318,0.12194200,0.00000000,false ++2 Nms/rad joint damping,PD + velocity FF,0.00930517,0.01211876,0.01167611,0.00859993,0.13008865,0.00000000,true ++2 Nms/rad joint damping,PD + velocity FF + nominal bias,0.00128387,0.00172583,0.00006189,0.00108989,0.04592550,0.00000000,true ++2 Nms/rad joint damping,nominal bias + integral residual,0.00163460,0.00246433,0.00092609,0.00148335,0.04607948,0.00000000,true +20 ms command latency,position PD,0.15469177,0.20934441,0.01117676,0.08426150,0.12081849,0.00000000,false +20 ms command latency,PD + velocity FF,0.01674076,0.02317001,0.01168067,0.01421165,0.12880250,0.00000000,true +20 ms command latency,PD + velocity FF + nominal bias,0.01358466,0.01832306,0.00007659,0.00669627,0.02910756,0.00000000,true +20 ms command latency,nominal bias + integral residual,0.00986476,0.01807184,0.00392356,0.00742128,0.02982758,0.00000000,true +20 Nm / 120 ms torque pulse,position PD,0.14054948,0.18990564,0.01112002,0.07701404,0.15416452,0.00000000,false +20 Nm / 120 ms torque pulse,PD + velocity FF,0.00941147,0.01218157,0.01167758,0.00862822,0.16324185,0.00000000,true +20 Nm / 120 ms torque pulse,PD + velocity FF + nominal bias,0.00189622,0.00569091,0.00006796,0.00417556,0.15506639,0.00000000,true +20 Nm / 120 ms torque pulse,nominal bias + integral residual,0.00216036,0.00533398,0.00049927,0.00388190,0.15543918,0.00000000,true +combined moderate shift,position PD,0.14939700,0.19935806,0.01865729,0.08522915,0.15629321,0.00000000,false +combined moderate shift,PD + velocity FF,0.01796226,0.02406824,0.01938419,0.01683281,0.16517620,0.00000000,true +combined moderate shift,PD + velocity FF + nominal bias,0.00899323,0.01165794,0.00495930,0.00686394,0.07228644,0.00000000,true +combined moderate shift,nominal bias + integral residual,0.00589441,0.01093506,0.00224507,0.00697368,0.07344040,0.00000000,true diff --git a/docs/robustness_results.md b/docs/robustness_results.md index 84b75f5..cdb4c1a 100644 --- a/docs/robustness_results.md +++ b/docs/robustness_results.md @@ -1,39 +1,39 @@ # UR5e controller robustness envelope (simulation) -Deterministic MuJoCo stress test over a 3.50 s, 1751-sample collision-free RRT-Connect path timed by the in-repo scalar S-curve. Polyline corners are not blended, so the complete joint trajectory is not globally acceleration- or jerk-bounded. **This is simulation evidence, not hardware validation or a sim-to-real guarantee.** +Deterministic MuJoCo stress test over a 3.84 s, 1919-sample collision-free RRT-Connect path timed by the in-repo per-edge S-curves. Every shortcut corner is a full stop: joint position, velocity, and acceleration are continuous, and jerk is bounded almost everywhere, although jerk may jump between finite values and the path is not geometrically blended or time-optimal. **This is simulation evidence, not hardware validation or a sim-to-real guarantee.** Pass threshold (declared in code): RMS joint error <= 0.03 rad, maximum joint error <= 0.10 rad, and final joint error <= 0.02 rad. Controller bias forces always come from the unchanged nominal model; perturbed plant parameters are not exposed to the controller. | Scenario | Controller | RMS joint (rad) | Max joint (rad) | Final (rad) | Max EE pos (m) | Peak force/limit | Saturated steps | Result | |---|---|---:|---:|---:|---:|---:|---:|:---:| -| nominal | position PD | 0.1409 | 0.1719 | 0.0111 | 0.0777 | 12% | 0.0% | FAIL | -| nominal | PD + velocity FF | 0.0097 | 0.0121 | 0.0117 | 0.0086 | 100% | 0.1% | PASS | -| nominal | PD + velocity FF + nominal bias | 0.0016 | 0.0046 | 0.0001 | 0.0036 | 100% | 0.1% | PASS | -| nominal | nominal bias + integral residual | 0.0020 | 0.0048 | 0.0004 | 0.0037 | 100% | 0.1% | PASS | -| 2 kg tool payload | position PD | 0.1416 | 0.1756 | 0.0187 | 0.0823 | 19% | 0.0% | FAIL | -| 2 kg tool payload | PD + velocity FF | 0.0173 | 0.0201 | 0.0193 | 0.0140 | 100% | 0.2% | PASS | -| 2 kg tool payload | PD + velocity FF + nominal bias | 0.0084 | 0.0092 | 0.0079 | 0.0060 | 100% | 0.2% | PASS | -| 2 kg tool payload | nominal bias + integral residual | 0.0030 | 0.0077 | 0.0007 | 0.0061 | 100% | 0.2% | PASS | -| 65% actuator gains | position PD | 0.1416 | 0.1738 | 0.0172 | 0.0801 | 12% | 0.0% | FAIL | -| 65% actuator gains | PD + velocity FF | 0.0149 | 0.0187 | 0.0180 | 0.0134 | 100% | 0.1% | PASS | -| 65% actuator gains | PD + velocity FF + nominal bias | 0.0019 | 0.0063 | 0.0001 | 0.0049 | 100% | 0.1% | PASS | -| 65% actuator gains | nominal bias + integral residual | 0.0022 | 0.0064 | 0.0006 | 0.0051 | 100% | 0.1% | PASS | -| +2 Nms/rad joint damping | position PD | 0.1426 | 0.1745 | 0.0112 | 0.0781 | 12% | 0.0% | FAIL | -| +2 Nms/rad joint damping | PD + velocity FF | 0.0097 | 0.0121 | 0.0117 | 0.0086 | 100% | 0.1% | PASS | -| +2 Nms/rad joint damping | PD + velocity FF + nominal bias | 0.0014 | 0.0044 | 0.0001 | 0.0032 | 100% | 0.1% | PASS | -| +2 Nms/rad joint damping | nominal bias + integral residual | 0.0018 | 0.0049 | 0.0008 | 0.0038 | 100% | 0.1% | PASS | -| 20 ms command latency | position PD | 0.1551 | 0.1890 | 0.0111 | 0.0851 | 12% | 0.0% | FAIL | -| 20 ms command latency | PD + velocity FF | 0.0174 | 0.0232 | 0.0117 | 0.0142 | 100% | 0.1% | PASS | -| 20 ms command latency | PD + velocity FF + nominal bias | 0.0142 | 0.0194 | 0.0001 | 0.0078 | 100% | 0.1% | PASS | -| 20 ms command latency | nominal bias + integral residual | 0.0116 | 0.0341 | 0.0034 | 0.0150 | 100% | 0.1% | PASS | -| 20 Nm / 120 ms torque pulse | position PD | 0.1409 | 0.1719 | 0.0111 | 0.0776 | 19% | 0.0% | FAIL | -| 20 Nm / 120 ms torque pulse | PD + velocity FF | 0.0098 | 0.0121 | 0.0117 | 0.0086 | 100% | 0.2% | PASS | -| 20 Nm / 120 ms torque pulse | PD + velocity FF + nominal bias | 0.0022 | 0.0085 | 0.0001 | 0.0064 | 100% | 0.2% | PASS | -| 20 Nm / 120 ms torque pulse | nominal bias + integral residual | 0.0026 | 0.0085 | 0.0004 | 0.0064 | 100% | 0.2% | PASS | -| combined moderate shift | position PD | 0.1498 | 0.1852 | 0.0187 | 0.0856 | 16% | 0.0% | FAIL | -| combined moderate shift | PD + velocity FF | 0.0186 | 0.0241 | 0.0194 | 0.0168 | 100% | 0.1% | PASS | -| combined moderate shift | PD + velocity FF + nominal bias | 0.0094 | 0.0117 | 0.0050 | 0.0069 | 100% | 0.1% | PASS | -| combined moderate shift | nominal bias + integral residual | 0.0071 | 0.0224 | 0.0020 | 0.0132 | 100% | 0.1% | PASS | +| nominal | position PD | 0.1406 | 0.1899 | 0.0111 | 0.0770 | 12% | 0.0% | FAIL | +| nominal | PD + velocity FF | 0.0093 | 0.0122 | 0.0117 | 0.0086 | 13% | 0.0% | PASS | +| nominal | PD + velocity FF + nominal bias | 0.0015 | 0.0020 | 0.0001 | 0.0014 | 3% | 0.0% | PASS | +| nominal | nominal bias + integral residual | 0.0018 | 0.0025 | 0.0005 | 0.0014 | 3% | 0.0% | PASS | +| 2 kg tool payload | position PD | 0.1412 | 0.1879 | 0.0187 | 0.0817 | 19% | 0.0% | FAIL | +| 2 kg tool payload | PD + velocity FF | 0.0169 | 0.0202 | 0.0193 | 0.0141 | 20% | 0.0% | PASS | +| 2 kg tool payload | PD + velocity FF + nominal bias | 0.0085 | 0.0094 | 0.0079 | 0.0061 | 11% | 0.0% | PASS | +| 2 kg tool payload | nominal bias + integral residual | 0.0027 | 0.0048 | 0.0008 | 0.0032 | 11% | 0.0% | PASS | +| 65% actuator gains | position PD | 0.1413 | 0.1888 | 0.0171 | 0.0799 | 12% | 0.0% | FAIL | +| 65% actuator gains | PD + velocity FF | 0.0144 | 0.0187 | 0.0180 | 0.0134 | 13% | 0.0% | PASS | +| 65% actuator gains | PD + velocity FF + nominal bias | 0.0016 | 0.0026 | 0.0001 | 0.0020 | 3% | 0.0% | PASS | +| 65% actuator gains | nominal bias + integral residual | 0.0020 | 0.0028 | 0.0007 | 0.0019 | 3% | 0.0% | PASS | +| +2 Nms/rad joint damping | position PD | 0.1423 | 0.1924 | 0.0112 | 0.0775 | 12% | 0.0% | FAIL | +| +2 Nms/rad joint damping | PD + velocity FF | 0.0093 | 0.0121 | 0.0117 | 0.0086 | 13% | 0.0% | PASS | +| +2 Nms/rad joint damping | PD + velocity FF + nominal bias | 0.0013 | 0.0017 | 0.0001 | 0.0011 | 5% | 0.0% | PASS | +| +2 Nms/rad joint damping | nominal bias + integral residual | 0.0016 | 0.0025 | 0.0009 | 0.0015 | 5% | 0.0% | PASS | +| 20 ms command latency | position PD | 0.1547 | 0.2093 | 0.0112 | 0.0843 | 12% | 0.0% | FAIL | +| 20 ms command latency | PD + velocity FF | 0.0167 | 0.0232 | 0.0117 | 0.0142 | 13% | 0.0% | PASS | +| 20 ms command latency | PD + velocity FF + nominal bias | 0.0136 | 0.0183 | 0.0001 | 0.0067 | 3% | 0.0% | PASS | +| 20 ms command latency | nominal bias + integral residual | 0.0099 | 0.0181 | 0.0039 | 0.0074 | 3% | 0.0% | PASS | +| 20 Nm / 120 ms torque pulse | position PD | 0.1405 | 0.1899 | 0.0111 | 0.0770 | 15% | 0.0% | FAIL | +| 20 Nm / 120 ms torque pulse | PD + velocity FF | 0.0094 | 0.0122 | 0.0117 | 0.0086 | 16% | 0.0% | PASS | +| 20 Nm / 120 ms torque pulse | PD + velocity FF + nominal bias | 0.0019 | 0.0057 | 0.0001 | 0.0042 | 16% | 0.0% | PASS | +| 20 Nm / 120 ms torque pulse | nominal bias + integral residual | 0.0022 | 0.0053 | 0.0005 | 0.0039 | 16% | 0.0% | PASS | +| combined moderate shift | position PD | 0.1494 | 0.1994 | 0.0187 | 0.0852 | 16% | 0.0% | FAIL | +| combined moderate shift | PD + velocity FF | 0.0180 | 0.0241 | 0.0194 | 0.0168 | 17% | 0.0% | PASS | +| combined moderate shift | PD + velocity FF + nominal bias | 0.0090 | 0.0117 | 0.0050 | 0.0069 | 7% | 0.0% | PASS | +| combined moderate shift | nominal bias + integral residual | 0.0059 | 0.0109 | 0.0022 | 0.0070 | 7% | 0.0% | PASS | ## Plant shifts