diff --git a/.gitattributes b/.gitattributes index 622b09c..54931a4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -19,6 +19,9 @@ src/dvidia_training/camera_action_reference_export.py text eol=lf src/dvidia_training/camera_action_reference_model.py text eol=lf src/dvidia_training/piper_encoder_kinematics.py text eol=lf scripts/benchmark-piper-encoder-kinematics.py text eol=lf +src/dvidia_training/godot_bridge.py text eol=lf +scripts/benchmark-godot-bridge.py text eol=lf +scripts/verify-godot-client.py text eol=lf src/dvidia_training/camera_action_study.py text eol=lf src/dvidia_training/piper_rgbd_tracker.py text eol=lf src/dvidia_training/action_demonstration.py text eol=lf diff --git a/benchmarks/godot-workstation-v01/README.md b/benchmarks/godot-workstation-v01/README.md new file mode 100644 index 0000000..487350e --- /dev/null +++ b/benchmarks/godot-workstation-v01/README.md @@ -0,0 +1,70 @@ +# Godot workstation v0.1: integration and timing + +**Result: native-state parity passed. Physical accuracy and learned-task success +were not evaluated.** Godot displays the pinned PiPER workstation while the +unchanged MuJoCo implementation owns all dynamics. The shoe is an authored rigid +proxy, and the renderer uses solid colors rather than imported GLB textures. + +Hardware: Apple M5, 10 logical processors, macOS 26.5.2 arm64. Python 3.12.9, +NumPy 2.5.3, MuJoCo 3.15.0, Godot 4.7.2 OpenGL compatibility renderer. Shared host; +these short development measurements are not isolated hardware qualification. + +## Native CPU comparison + +Three paired repetitions of six authored target-tracking segments were run. +Each repetition contains 600 control intervals and 12 simulated seconds. Both +paths preserve ten 2 ms native ticks per 20 ms control interval. + +| Path | Simulated seconds / wall second | Per-interval p95 | +|---|---:|---:| +| Direct native Python call | 58.63–59.81 | 0.353–0.374 ms | +| Encode request → bridge → encode/decode response | 49.71–50.15 | 0.426–0.444 ms | + +All **1,800 paired returned states matched exactly**, including contacts. The +six runs advanced 36,000 native ticks with zero solver warnings. These timing +numbers exclude socket transport, camera rendering, Godot, model learning, and +initialization. The whole benchmark process peaked at 875,184,128 bytes RSS; +this includes retained comparison traces and is not a minimum RAM requirement. +The JSON path measures its additional serialization and validation work; it is +not a physics speedup. Source digests and exact timings are in `cpu-parity.json`. + +## Actual windowed Godot execution + +The final client sent 100 commands across three bounded target/jaw settings. +It advanced exactly 2.00 simulated seconds in **2.264 seconds** after the handshake. +This viewer deliberately paces commands around 50 Hz. Its wall time must not be +compared with unpaced CPU throughput as a rendering slowdown ratio. + +- 100 accepted commands, zero protocol errors, zero hidden retries. +- Godot process frame interval p50 8.00 ms, p95 10.91 ms; this is **not GPU time**. +- Socket request-to-parsed-response latency p50 6.109 ms, p95 16.826 ms. +- Independent native replay checked 101 states and 12,387 numeric values; + maximum absolute discrepancy was 5.11e-15, below the declared 1e-9 tolerance. +- The receipt pins the exact client script, project, model and scene integrity. + +Two earlier windowed development runs took 2.441 and 2.062 seconds respectively. +Their summaries remain in `development-timing-summary.json`; the latest run is +reported above rather than selecting the fastest. Lighting and command pacing +were corrected between the first and second runs. Shared-host variation and +changes between these runs prevent a controlled speedup claim. + +The initial sandboxed headless client could not open a localhost connection and +advanced zero ticks (`headless-client.json`). Scoped local graphics/network access +enabled the subsequent real windowed runs. The external native UI automation +could not attach to the Godot application, so manual mouse/button interaction was +not independently verified. Automated windowed stepping and actual screenshots +were verified; server reset and no-step keepalive behavior are covered by unit tests. + +## Verification and limits + +19 focused Python tests passed: 16 bridge tests, plus unchanged actuator/mass/ +inertia contracts, deterministic reset, and native gravity/support-force checks. +Seven Godot coordinate assertions passed. Independent read-only code review +checked protocol authority, frame conversion, clock and digest validation. + +These are numerical/integration checks against our existing simulator. They do +not measure agreement with physical hardware, validate shoe deformation, prove +successful grasp/placement, or change the existing learned-skill qualification. +The next useful gate is a calibrated rigid-object contact suite followed by a +matched learned-control benchmark. See `docs/godot-simulation-roadmap.md` and +`docs/godot-workstation-v01.md` for scope and reproduction commands. diff --git a/benchmarks/godot-workstation-v01/cpu-parity.json b/benchmarks/godot-workstation-v01/cpu-parity.json new file mode 100644 index 0000000..ee5ca0f --- /dev/null +++ b/benchmarks/godot-workstation-v01/cpu-parity.json @@ -0,0 +1,373 @@ +{ + "schema": "dvidia.godot-bridge-benchmark/v1", + "scope": "Compare the unchanged workstation with the local JSON bridge, without a viewer.\n\nFixed workload: three paired repetitions of the six authored tracking segments.\nThis tests integration parity and CPU request overhead, not a learned task,\nphysical fidelity, socket round-trip latency, or desktop rendering performance.", + "protocol": { + "schema": "dvidia.live-workstation-protocol/v1", + "scope": "Live native PiPER position tracking with authored IK, pinned upstream mechanics and a free synthetic rigid shoe. No learned shoe manipulation policy, calibrated shoe contact, deformation or hardware qualification.", + "timestep": 0.002, + "control_dt": 0.02, + "orientation_wxyz": [ + 0.25881904510252074, + 0.0, + 0.9659258262890683, + 0.0 + ], + "actions": [ + { + "name": "home", + "target": [ + 0.36, + -0.06, + 0.27 + ], + "jaw": 0.035, + "control_steps": 100 + }, + { + "name": "above_shoe", + "target": [ + 0.32, + -0.145, + 0.18 + ], + "jaw": 0.035, + "control_steps": 100 + }, + { + "name": "inspect_front", + "target": [ + 0.42, + -0.02, + 0.2 + ], + "jaw": 0.035, + "control_steps": 100 + }, + { + "name": "inspect_side", + "target": [ + 0.32, + 0.12, + 0.18 + ], + "jaw": 0.035, + "control_steps": 100 + }, + { + "name": "close_clear", + "target": [ + 0.36, + -0.06, + 0.27 + ], + "jaw": 0.0, + "control_steps": 100 + }, + { + "name": "open_clear", + "target": [ + 0.36, + -0.06, + 0.27 + ], + "jaw": 0.035, + "control_steps": 100 + } + ], + "acceptance": { + "settled_position_error_m": 0.005, + "settled_orientation_error_rad": 0.05235987755982989, + "solver_warnings": 0, + "unintended_moving_arm_contacts": 0, + "native_browser_position_tolerance_m": 0.001, + "scope": "Declared target values require measured native and browser results; no automatic qualification." + } + }, + "compiled_model_sha256": "2d5439574717644e1ea301f225cd13e9cc8a1042476628ed6ab7014c42e43e32", + "source_sha256": { + "godot_bridge.py": "8f4ed06195ef4b7730778fb26441a549a298075dfc9e20b075f32728ce676d90", + "workstation.py": "2a6aa6686b5b273efcfb21156952df8ceca88d991674cd17df92f2dccc11b701", + "reference_sim.py": "c1201d22eb13dd07a236ee63cc4ba68e129f6067e8db61ed41af2d820eb5e3b8" + }, + "benchmark_sha256": "63727ceb53b2eda3512b622b55e663b8c0a84b6e3fe5808829d717a965819015", + "host": { + "platform": "macOS-26.5.2-arm64-arm-64bit", + "machine": "arm64", + "python": "3.12.9", + "numpy": "2.5.3", + "mujoco": "3.15.0", + "whole_process_peak_rss_bytes": 875184128 + }, + "compile_seconds": 0.34206087500206195, + "runs": [ + { + "repeat": 0, + "mode": "direct", + "intervals": 600, + "native_ticks": 6000, + "simulation_seconds": 12.000000000000677, + "wall_seconds_including_trace_collection": 0.2032662080018781, + "real_time_factor": 59.035882638642036, + "initialize_seconds_excluded_from_loop": 0.005195583013119176, + "request_timing": { + "p50_ms": 0.333521, + "p95_ms": 0.36767115, + "maximum_ms": 0.667125 + }, + "solver_warnings": 0, + "trace_sha256": "83d4eb2753c0dcedf5cb994d43bb2023fef5fc4ed6eb16afcd0dcc526e2e4799", + "segment_final_errors": [ + { + "segment": "home", + "position_error_m": 1.4600452745701265e-13 + }, + { + "segment": "above_shoe", + "position_error_m": 0.0017960872925379468 + }, + { + "segment": "inspect_front", + "position_error_m": 0.0005472440642881675 + }, + { + "segment": "inspect_side", + "position_error_m": 0.0005083878653221141 + }, + { + "segment": "close_clear", + "position_error_m": 0.0036028216238433376 + }, + { + "segment": "open_clear", + "position_error_m": 0.0004214418136099801 + } + ] + }, + { + "repeat": 0, + "mode": "json_bridge", + "intervals": 600, + "native_ticks": 6000, + "simulation_seconds": 12.000000000000677, + "wall_seconds_including_trace_collection": 0.24140012499992736, + "real_time_factor": 49.7099991145584, + "initialize_seconds_excluded_from_loop": 0.005137458996614441, + "request_timing": { + "p50_ms": 0.395209, + "p95_ms": 0.4438705499999999, + "maximum_ms": 0.678041 + }, + "solver_warnings": 0, + "trace_sha256": "83d4eb2753c0dcedf5cb994d43bb2023fef5fc4ed6eb16afcd0dcc526e2e4799", + "segment_final_errors": [ + { + "segment": "home", + "position_error_m": 1.4600452745701265e-13 + }, + { + "segment": "above_shoe", + "position_error_m": 0.0017960872925379468 + }, + { + "segment": "inspect_front", + "position_error_m": 0.0005472440642881675 + }, + { + "segment": "inspect_side", + "position_error_m": 0.0005083878653221141 + }, + { + "segment": "close_clear", + "position_error_m": 0.0036028216238433376 + }, + { + "segment": "open_clear", + "position_error_m": 0.0004214418136099801 + } + ], + "paired_full_state_exactly_equal": true + }, + { + "repeat": 1, + "mode": "json_bridge", + "intervals": 600, + "native_ticks": 6000, + "simulation_seconds": 12.000000000000677, + "wall_seconds_including_trace_collection": 0.23989154197624885, + "real_time_factor": 50.022605637295754, + "initialize_seconds_excluded_from_loop": 0.00525637500686571, + "request_timing": { + "p50_ms": 0.390438, + "p95_ms": 0.4257351, + "maximum_ms": 2.915 + }, + "solver_warnings": 0, + "trace_sha256": "83d4eb2753c0dcedf5cb994d43bb2023fef5fc4ed6eb16afcd0dcc526e2e4799", + "segment_final_errors": [ + { + "segment": "home", + "position_error_m": 1.4600452745701265e-13 + }, + { + "segment": "above_shoe", + "position_error_m": 0.0017960872925379468 + }, + { + "segment": "inspect_front", + "position_error_m": 0.0005472440642881675 + }, + { + "segment": "inspect_side", + "position_error_m": 0.0005083878653221141 + }, + { + "segment": "close_clear", + "position_error_m": 0.0036028216238433376 + }, + { + "segment": "open_clear", + "position_error_m": 0.0004214418136099801 + } + ] + }, + { + "repeat": 1, + "mode": "direct", + "intervals": 600, + "native_ticks": 6000, + "simulation_seconds": 12.000000000000677, + "wall_seconds_including_trace_collection": 0.20062504199449904, + "real_time_factor": 59.81307159217794, + "initialize_seconds_excluded_from_loop": 0.004778332979185507, + "request_timing": { + "p50_ms": 0.3311455, + "p95_ms": 0.35307115, + "maximum_ms": 0.5665 + }, + "solver_warnings": 0, + "trace_sha256": "83d4eb2753c0dcedf5cb994d43bb2023fef5fc4ed6eb16afcd0dcc526e2e4799", + "segment_final_errors": [ + { + "segment": "home", + "position_error_m": 1.4600452745701265e-13 + }, + { + "segment": "above_shoe", + "position_error_m": 0.0017960872925379468 + }, + { + "segment": "inspect_front", + "position_error_m": 0.0005472440642881675 + }, + { + "segment": "inspect_side", + "position_error_m": 0.0005083878653221141 + }, + { + "segment": "close_clear", + "position_error_m": 0.0036028216238433376 + }, + { + "segment": "open_clear", + "position_error_m": 0.0004214418136099801 + } + ], + "paired_full_state_exactly_equal": true + }, + { + "repeat": 2, + "mode": "direct", + "intervals": 600, + "native_ticks": 6000, + "simulation_seconds": 12.000000000000677, + "wall_seconds_including_trace_collection": 0.20469041698379442, + "real_time_factor": 58.62511873699847, + "initialize_seconds_excluded_from_loop": 0.004863542009843513, + "request_timing": { + "p50_ms": 0.33458350000000003, + "p95_ms": 0.37387465, + "maximum_ms": 0.677333 + }, + "solver_warnings": 0, + "trace_sha256": "83d4eb2753c0dcedf5cb994d43bb2023fef5fc4ed6eb16afcd0dcc526e2e4799", + "segment_final_errors": [ + { + "segment": "home", + "position_error_m": 1.4600452745701265e-13 + }, + { + "segment": "above_shoe", + "position_error_m": 0.0017960872925379468 + }, + { + "segment": "inspect_front", + "position_error_m": 0.0005472440642881675 + }, + { + "segment": "inspect_side", + "position_error_m": 0.0005083878653221141 + }, + { + "segment": "close_clear", + "position_error_m": 0.0036028216238433376 + }, + { + "segment": "open_clear", + "position_error_m": 0.0004214418136099801 + } + ] + }, + { + "repeat": 2, + "mode": "json_bridge", + "intervals": 600, + "native_ticks": 6000, + "simulation_seconds": 12.000000000000677, + "wall_seconds_including_trace_collection": 0.23928616699413396, + "real_time_factor": 50.14915885336094, + "initialize_seconds_excluded_from_loop": 0.0051525000017136335, + "request_timing": { + "p50_ms": 0.390958, + "p95_ms": 0.4277319, + "maximum_ms": 1.1285 + }, + "solver_warnings": 0, + "trace_sha256": "83d4eb2753c0dcedf5cb994d43bb2023fef5fc4ed6eb16afcd0dcc526e2e4799", + "segment_final_errors": [ + { + "segment": "home", + "position_error_m": 1.4600452745701265e-13 + }, + { + "segment": "above_shoe", + "position_error_m": 0.0017960872925379468 + }, + { + "segment": "inspect_front", + "position_error_m": 0.0005472440642881675 + }, + { + "segment": "inspect_side", + "position_error_m": 0.0005083878653221141 + }, + { + "segment": "close_clear", + "position_error_m": 0.0036028216238433376 + }, + { + "segment": "open_clear", + "position_error_m": 0.0004214418136099801 + } + ], + "paired_full_state_exactly_equal": true + } + ], + "paired_state_comparisons": 1800, + "total_native_ticks": 36000, + "all_paired_states_exactly_equal": true, + "physical_accuracy_validated": false, + "learned_skill_evaluated": false, + "rendering_evaluated": false, + "socket_latency_evaluated": false, + "physical_robot_ready": false +} diff --git a/benchmarks/godot-workstation-v01/development-timing-summary.json b/benchmarks/godot-workstation-v01/development-timing-summary.json new file mode 100644 index 0000000..62fdeed --- /dev/null +++ b/benchmarks/godot-workstation-v01/development-timing-summary.json @@ -0,0 +1,102 @@ +[ + { + "local_receipt": "windowed-client.json", + "sha256": "562497bf37d2f3075f099b14de77fc1ee83cddd7b32ff210b0828272774a0cc1", + "applied_sim_time_seconds": 2.0, + "errors": [], + "expected_model_sha256": "2d5439574717644e1ea301f225cd13e9cc8a1042476628ed6ab7014c42e43e32", + "godot": "4.7.2-stable (official)", + "initial_sim_time_seconds": 0.0, + "interactive_wall_seconds": 2.440725, + "native_compute_total_ms": 58.8603350915946, + "ok": true, + "physics_authority": "MuJoCo only", + "process_frame_interval_ms": { + "p50": 8.33333333333333, + "p95": 8.705, + "samples": 289 + }, + "render_process_frames": 291, + "requested_steps": 100, + "reset_responses": 0, + "rpc_roundtrip_ms": { + "p50": 8.129, + "p95": 12.611, + "samples": 100 + }, + "scene_integrity_sha256": "2940da9f2e9884e9f39bafa1c696db5580162ad026192c3d02f95dd06f524f46", + "schema": "dvidia.godot-client-smoke/v1", + "step_responses": 100, + "timing_scope": "Startup-inclusive wall time; ready-to-completion interactive wall; Godot process delta intervals (not GPU render time); socket request-to-parsed-response latency; native compute excludes IPC and rendering. Samples capped at 10000 per series.", + "trace_limit": 256, + "wall_seconds": 3.299003 + }, + { + "local_receipt": "windowed-client-v2.json", + "sha256": "2abb5dc0c7622d4429c248c514411996d35500aa73a8d0d3c2e56fd527de6022", + "applied_sim_time_seconds": 2.0, + "errors": [], + "expected_model_sha256": "2d5439574717644e1ea301f225cd13e9cc8a1042476628ed6ab7014c42e43e32", + "godot": "4.7.2-stable (official)", + "initial_sim_time_seconds": 0.0, + "interactive_wall_seconds": 2.061568, + "native_compute_total_ms": 75.2027550188359, + "ok": true, + "physics_authority": "MuJoCo only", + "process_frame_interval_ms": { + "p50": 8.33333333333333, + "p95": 9.97699999999992, + "samples": 244 + }, + "render_process_frames": 246, + "requested_steps": 100, + "reset_responses": 0, + "rpc_roundtrip_ms": { + "p50": 3.263, + "p95": 13.76, + "samples": 100 + }, + "scene_integrity_sha256": "2940da9f2e9884e9f39bafa1c696db5580162ad026192c3d02f95dd06f524f46", + "schema": "dvidia.godot-client-smoke/v1", + "step_responses": 100, + "timing_scope": "Startup-inclusive wall time; ready-to-completion interactive wall; Godot process delta intervals (not GPU render time); socket request-to-parsed-response latency; native compute excludes IPC and rendering. Samples capped at 10000 per series.", + "trace_limit": 256, + "wall_seconds": 2.855998 + }, + { + "local_receipt": "windowed-final.json", + "sha256": "77edb523d21b6c97f7f030346ff9bdc645c36e7cc8084393b3b0aee137d884b5", + "applied_sim_time_seconds": 2.0, + "client_script_sha256": "fc0f06d2e2c73a1962c45c3a6b5a0a98e63398599fdfa1ad6345aaf35abaecd2", + "errors": [], + "expected_model_sha256": "2d5439574717644e1ea301f225cd13e9cc8a1042476628ed6ab7014c42e43e32", + "godot": "4.7.2-stable (official)", + "initial_sim_time_seconds": 0.0, + "interactive_wall_seconds": 2.263779, + "logical_processors": 10, + "native_compute_total_ms": 94.1997528425418, + "ok": true, + "physics_authority": "MuJoCo only", + "process_frame_interval_ms": { + "p50": 8.0, + "p95": 10.91, + "samples": 269 + }, + "processor": "Apple M5", + "project_sha256": "369076b092166013c770a7a3e576a421d83c5b3d10a782500bf69a973a554dad", + "render_process_frames": 271, + "requested_steps": 100, + "reset_responses": 0, + "rpc_roundtrip_ms": { + "p50": 6.109, + "p95": 16.826, + "samples": 100 + }, + "scene_integrity_sha256": "2940da9f2e9884e9f39bafa1c696db5580162ad026192c3d02f95dd06f524f46", + "schema": "dvidia.godot-client-smoke/v1", + "step_responses": 100, + "timing_scope": "Startup-inclusive wall time; ready-to-completion interactive wall; Godot process delta intervals (not GPU render time); socket request-to-parsed-response latency; native compute excludes IPC and rendering. Samples capped at 10000 per series.", + "trace_limit": 256, + "wall_seconds": 3.330206 + } +] diff --git a/benchmarks/godot-workstation-v01/headless-client.json b/benchmarks/godot-workstation-v01/headless-client.json new file mode 100644 index 0000000..3e55e97 --- /dev/null +++ b/benchmarks/godot-workstation-v01/headless-client.json @@ -0,0 +1,22 @@ +{ + "applied_sim_time_seconds": 0.0, + "errors": [ + "Cannot connect to local MuJoCo (1)." + ], + "expected_model_sha256": "2d5439574717644e1ea301f225cd13e9cc8a1042476628ed6ab7014c42e43e32", + "godot": "4.7.2-stable (official)", + "initial_sim_time_seconds": 0.0, + "initial_state": {}, + "native_compute_total_ms": 0.0, + "ok": false, + "physics_authority": "MuJoCo only", + "render_process_frames": 0, + "requested_steps": 100, + "reset_responses": 0, + "scene_integrity_sha256": "2940da9f2e9884e9f39bafa1c696db5580162ad026192c3d02f95dd06f524f46", + "schema": "dvidia.godot-client-smoke/v1", + "step_responses": 0, + "trace": [], + "trace_limit": 256, + "wall_seconds": 0.375454 +} diff --git a/benchmarks/godot-workstation-v01/integrity.json b/benchmarks/godot-workstation-v01/integrity.json new file mode 100644 index 0000000..2f64134 --- /dev/null +++ b/benchmarks/godot-workstation-v01/integrity.json @@ -0,0 +1,37 @@ +{ + "schema": "dvidia.godot-prototype-evidence/v1", + "files": { + "README.md": { + "bytes": 4118, + "sha256": "4de97513e376b23708a8561f9c04e8f4add5aeff659bd795c366439d6a2d40a8" + }, + "cpu-parity.json": { + "bytes": 11110, + "sha256": "8e98afc75af154e9f989f7fb8efb74311d17d3006f4804e8f21944fb190b1a7b" + }, + "development-timing-summary.json": { + "bytes": 4141, + "sha256": "afb5ff2fe8f42c3b1e17ab3a33425e2afbf95f563ca5994adb436a4e8c6d07b5" + }, + "headless-client.json": { + "bytes": 685, + "sha256": "0dcb6fe3b6618f314f916f2c627f061ae0891a37147f8b1f5d5edbd4b55681a0" + }, + "tests.log": { + "bytes": 3416, + "sha256": "bae152d78c373a1499bb66cba209e8b9f1309db1f86932a595242d9e2c19e5f4" + }, + "windowed-final-parity.json": { + "bytes": 1337, + "sha256": "043259d09230f8994fbb10a98284c05ba0ad099db15b751bb0fd92dbeeee3a35" + }, + "windowed-final.json": { + "bytes": 486857, + "sha256": "77edb523d21b6c97f7f030346ff9bdc645c36e7cc8084393b3b0aee137d884b5" + }, + "windowed-final.png": { + "bytes": 148900, + "sha256": "4e8532a9a9ac9331911736296ad9c67469beb1a6f1b3ff1c1e7fa02955e25a3f" + } + } +} diff --git a/benchmarks/godot-workstation-v01/tests.log b/benchmarks/godot-workstation-v01/tests.log new file mode 100644 index 0000000..ab1bebd --- /dev/null +++ b/benchmarks/godot-workstation-v01/tests.log @@ -0,0 +1,24 @@ +test_output_refuses_symlink_ancestor_and_existing_directory_before_native_access (tests.test_godot_bridge.ExportTests.test_output_refuses_symlink_ancestor_and_existing_directory_before_native_access) ... ok +test_prepare_exports_geometry_hash_and_notices_without_initialize_or_dynamics (tests.test_godot_bridge.ExportTests.test_prepare_exports_geometry_hash_and_notices_without_initialize_or_dynamics) ... ok +test_server_binds_loopback_sets_idle_timeout_and_once_exits (tests.test_godot_bridge.ExportTests.test_server_binds_loopback_sets_idle_timeout_and_once_exits) ... ok +test_server_port_validation_and_fixed_loopback_host (tests.test_godot_bridge.ExportTests.test_server_port_validation_and_fixed_loopback_host) ... ok +test_bad_target_jaw_sequence_or_unknown_control_is_rejected_before_ticks (tests.test_godot_bridge.ProtocolTests.test_bad_target_jaw_sequence_or_unknown_control_is_rejected_before_ticks) ... ok +test_duplicate_and_skipped_sequences_do_not_replay_commands (tests.test_godot_bridge.ProtocolTests.test_duplicate_and_skipped_sequences_do_not_replay_commands) ... ok +test_each_step_is_exactly_ten_ticks_using_persistent_controller_state (tests.test_godot_bridge.ProtocolTests.test_each_step_is_exactly_ten_ticks_using_persistent_controller_state) ... ok +test_hello_requires_matching_schema_and_model_and_never_steps (tests.test_godot_bridge.ProtocolTests.test_hello_requires_matching_schema_and_model_and_never_steps) ... ok +test_invalid_json_and_duplicate_keys_are_rejected (tests.test_godot_bridge.ProtocolTests.test_invalid_json_and_duplicate_keys_are_rejected) ... ok +test_native_exception_faults_session_and_does_not_claim_rejected_before_dynamics (tests.test_godot_bridge.ProtocolTests.test_native_exception_faults_session_and_does_not_claim_rejected_before_dynamics) ... ok +test_ping_has_no_control_authority (tests.test_godot_bridge.ProtocolTests.test_ping_has_no_control_authority) ... ok +test_reset_reinitializes_without_ticks_and_sequence_remains_monotonic (tests.test_godot_bridge.ProtocolTests.test_reset_reinitializes_without_ticks_and_sequence_remains_monotonic) ... ok +test_chunked_and_combined_frames_preserve_one_command_one_interval (tests.test_godot_bridge.SocketTests.test_chunked_and_combined_frames_preserve_one_command_one_interval) ... ok +test_incomplete_command_disconnected_before_newline_never_ticks (tests.test_godot_bridge.SocketTests.test_incomplete_command_disconnected_before_newline_never_ticks) ... ok +test_malformed_line_can_be_followed_by_valid_handshake (tests.test_godot_bridge.SocketTests.test_malformed_line_can_be_followed_by_valid_handshake) ... ok +test_oversize_frame_is_bounded_and_closes_without_ticks (tests.test_godot_bridge.SocketTests.test_oversize_frame_is_bounded_and_closes_without_ticks) ... ok +test_upstream_actuators_mass_inertia_and_joint_contracts_are_unchanged (tests.test_workstation.NativeWorkstationTests.test_upstream_actuators_mass_inertia_and_joint_contracts_are_unchanged) ... ok +test_reset_is_deterministic_and_has_no_hidden_settling_or_attachment (tests.test_workstation.NativeWorkstationTests.test_reset_is_deterministic_and_has_no_hidden_settling_or_attachment) ... ok +test_shoe_settles_with_gravity_and_true_support_force (tests.test_workstation.NativeWorkstationTests.test_shoe_settles_with_gravity_and_true_support_force) ... ok + +---------------------------------------------------------------------- +Ran 19 tests in 4.413s + +OK diff --git a/benchmarks/godot-workstation-v01/windowed-final-parity.json b/benchmarks/godot-workstation-v01/windowed-final-parity.json new file mode 100644 index 0000000..ad4dac2 --- /dev/null +++ b/benchmarks/godot-workstation-v01/windowed-final-parity.json @@ -0,0 +1,27 @@ +{ + "schema": "dvidia.godot-client-parity/v1", + "passed": true, + "scope": "Independently replay a complete Godot smoke trace in the native workstation.\n\nThis checks received-state parity, not whether pixels or physical hardware are\naccurate. Godot JSON output rounds doubles, so numerical tolerance is explicit.", + "receipt_sha256": "77edb523d21b6c97f7f030346ff9bdc645c36e7cc8084393b3b0aee137d884b5", + "verifier_sha256": "8c206554a95c9bd1e1e13220c84de5e3c81f77e4f76f47b73e690ec8515ad023", + "workstation_sha256": "2a6aa6686b5b273efcfb21156952df8ceca88d991674cd17df92f2dccc11b701", + "model_sha256": "2d5439574717644e1ea301f225cd13e9cc8a1042476628ed6ab7014c42e43e32", + "tolerance_absolute": 1e-09, + "received_states_checked": 101, + "numeric_scalars_checked": 12387, + "maximum_absolute_error_by_field": { + "time": 1.5543122344752192e-15, + "qpos": 4.884981308350689e-15, + "ctrl": 5.10702591327572e-15, + "body_positions": 5.551115123125783e-16, + "body_quaternions": 5.551115123125783e-16, + "tcp_position": 4.996003610813204e-16, + "tcp_quaternion": 5.551115123125783e-16, + "shoe_position": 4.996003610813204e-16, + "position_error_m": 5.551115123125783e-17, + "contacts": 3.9968028886505635e-15 + }, + "native_ticks_replayed": 1000, + "physical_accuracy_validated": false, + "pixels_validated": false +} diff --git a/benchmarks/godot-workstation-v01/windowed-final.json b/benchmarks/godot-workstation-v01/windowed-final.json new file mode 100644 index 0000000..e0c327c --- /dev/null +++ b/benchmarks/godot-workstation-v01/windowed-final.json @@ -0,0 +1,20967 @@ +{ + "applied_sim_time_seconds": 2.0, + "client_script_sha256": "fc0f06d2e2c73a1962c45c3a6b5a0a98e63398599fdfa1ad6345aaf35abaecd2", + "errors": [], + "expected_model_sha256": "2d5439574717644e1ea301f225cd13e9cc8a1042476628ed6ab7014c42e43e32", + "godot": "4.7.2-stable (official)", + "initial_sim_time_seconds": 0.0, + "initial_state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921790592, + -0.0032366123160528, + 0.407697219259878 + ], + [ + 0.254171566396938, + -0.0613690849667649, + 0.452576386923991 + ], + [ + 0.254171566396938, + -0.0613690849667649, + 0.452576386923991 + ], + [ + 0.299985, + -0.06, + 0.373949029216246 + ], + [ + 0.367500075870596, + -0.094999999999685, + 0.257009491282792 + ], + [ + 0.367500072621887, + -0.0250000000003151, + 0.257009489407149 + ], + [ + 0.32, + -0.145, + 0.012 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389759, + 0.0, + 0.0, + -0.785717559069357 + ], + [ + 0.422660213031542, + -0.543907766700968, + -0.451847697042228, + -0.566883007612798 + ], + [ + -0.0496342733420541, + -0.11730664125875, + -0.697309939637024, + -0.705361211656699 + ], + [ + -0.0399656666430445, + -0.66269578658252, + 0.122507852927559, + -0.737718690224554 + ], + [ + 0.700899927567349, + -0.653736720591014, + -0.0934732082667994, + -0.269500187427213 + ], + [ + -0.258819045102521, + 0.0000000000000000310600715275844, + -0.965925826289068, + 0.00000000000000028809271817397 + ], + [ + 0.683014145876203, + -0.683011257905187, + -0.18301310842174, + -0.183012295361778 + ], + [ + -0.683014155683793, + -0.683011248097546, + 0.183013071819319, + -0.183012331964393 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ] + ], + "contacts": [], + "ctrl": [ + -0.236909978466379, + 1.51825894351698, + -1.52279357026797, + 0.128680437902653, + 1.1542398586462, + -0.258438877833999, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000000135973995551052, + "qpos": [ + -0.236909978466379, + 1.51825894351698, + -1.52279357026797, + 0.128680437902653, + 1.1542398586462, + -0.258438877833999, + 0.035, + -0.035, + 0.32, + -0.145, + 0.012, + 1.0, + 0.0, + 0.0, + 0.0 + ], + "shoe_position": [ + 0.32, + -0.145, + 0.012 + ], + "tcp_position": [ + 0.36, + -0.0600000000000001, + 0.27 + ], + "tcp_quaternion": [ + 0.258819045102521, + -0.0000000000000000310600715275844, + 0.965925826289068, + -0.00000000000000028809271817397 + ], + "time": 0.0 + }, + "interactive_wall_seconds": 2.263779, + "logical_processors": 10, + "native_compute_total_ms": 94.1997528425418, + "ok": true, + "physics_authority": "MuJoCo only", + "process_frame_interval_ms": { + "p50": 8.0, + "p95": 10.91, + "samples": 269 + }, + "processor": "Apple M5", + "project_sha256": "369076b092166013c770a7a3e576a421d83c5b3d10a782500bf69a973a554dad", + "render_process_frames": 271, + "requested_steps": 100, + "reset_responses": 0, + "rpc_roundtrip_ms": { + "p50": 6.109, + "p95": 16.826, + "samples": 100 + }, + "scene_integrity_sha256": "2940da9f2e9884e9f39bafa1c696db5580162ad026192c3d02f95dd06f524f46", + "schema": "dvidia.godot-client-smoke/v1", + "step_responses": 100, + "timing_scope": "Startup-inclusive wall time; ready-to-completion interactive wall; Godot process delta intervals (not GPU render time); socket request-to-parsed-response latency; native compute excludes IPC and rendering. Samples capped at 10000 per series.", + "trace": [ + { + "compute_ms": 0.770082988310605, + "request": { + "jaw": 0.035, + "sequence": 1, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 6.225, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.013409592179041, + -0.00323661231604846, + 0.407697219259879 + ], + [ + 0.254171566396923, + -0.061369084966762, + 0.452576386923977 + ], + [ + 0.254171566396923, + -0.061369084966762, + 0.452576386923977 + ], + [ + 0.299984999999994, + -0.0599999999999988, + 0.373949029216238 + ], + [ + 0.367500075870603, + -0.0949999999996846, + 0.257009491282792 + ], + [ + 0.367500072621896, + -0.0250000000003163, + 0.257009489407149 + ], + [ + 0.32, + -0.145, + 0.0098418 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389757, + 0.0, + 0.0, + -0.785717559069358 + ], + [ + 0.422660213031522, + -0.543907766700954, + -0.451847697042245, + -0.566883007612813 + ], + [ + -0.049634273342034, + -0.117306641258773, + -0.697309939637021, + -0.7053612116567 + ], + [ + -0.0399656666430376, + -0.66269578658254, + 0.12250785292757, + -0.737718690224534 + ], + [ + 0.700899927567338, + -0.653736720591001, + -0.0934732082668344, + -0.269500187427261 + ], + [ + -0.258819045102579, + -0.0000000000000130632340355267, + -0.965925826289052, + 0.00000000000000649088478637157 + ], + [ + 0.683014145876188, + -0.683011257905181, + -0.183013108421772, + -0.183012295361829 + ], + [ + -0.683014155683786, + -0.683011248097531, + 0.183013071819369, + -0.183012331964425 + ], + [ + 1.0, + 0.00000000000000000025183850287544, + 0.0, + 0.0 + ] + ], + "contacts": [], + "ctrl": [ + -0.236909978466378, + 1.51825894351698, + -1.52279357026797, + 0.128680437902651, + 1.1542398586462, + -0.258438877833998, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00000000000000650173988524182, + "qpos": [ + -0.236909978466382, + 1.51825894351691, + -1.52279357026784, + 0.128680437902672, + 1.15423985864602, + -0.258438877833995, + 0.0349999999999983, + -0.0350000000000002, + 0.32, + -0.145, + 0.0098418, + 1.0, + 0.00000000000000000025183850287544, + 0.0, + 0.0 + ], + "shoe_position": [ + 0.32, + -0.145, + 0.0098418 + ], + "tcp_position": [ + 0.360000000000006, + -0.0600000000000011, + 0.269999999999999 + ], + "tcp_quaternion": [ + 0.258819045102579, + 0.0000000000000130632340355267, + 0.965925826289052, + -0.00000000000000649088478637157 + ], + "time": 0.02 + } + }, + { + "compute_ms": 0.792000006185845, + "request": { + "jaw": 0.035, + "sequence": 2, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 28.481, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921794655, + -0.00323661231614969, + 0.407697219259858 + ], + [ + 0.254171566397287, + -0.0613690849668272, + 0.452576386924322 + ], + [ + 0.254171566397287, + -0.0613690849668272, + 0.452576386924322 + ], + [ + 0.299985000000142, + -0.0600000000000229, + 0.373949029216457 + ], + [ + 0.367500075870453, + -0.0949999999996509, + 0.257009491282821 + ], + [ + 0.367500072621699, + -0.0250000000003208, + 0.257009489407187 + ], + [ + 0.32, + -0.145, + 0.0037596 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389791, + 0.0, + 0.0, + -0.785717559069332 + ], + [ + 0.422660213031981, + -0.543907766701281, + -0.451847697041851, + -0.566883007612471 + ], + [ + -0.0496342733425253, + -0.117306641258228, + -0.697309939637113, + -0.705361211656666 + ], + [ + -0.039965666643189, + -0.662695786582034, + 0.122507852927303, + -0.737718690225025 + ], + [ + 0.700899927567604, + -0.653736720591281, + -0.0934732082660384, + -0.269500187426165 + ], + [ + -0.258819045101251, + 0.000000000000290930937860658, + -0.965925826289409, + -0.000000000000144540666180075 + ], + [ + 0.683014145876546, + -0.683011257905326, + -0.183013108421048, + -0.183012295360675 + ], + [ + -0.683014155683931, + -0.683011248097889, + 0.183013071818215, + -0.183012331963701 + ], + [ + 1.0, + 0.00000000000000000096156519279714, + 0.0, + 0.0 + ] + ], + "contacts": [], + "ctrl": [ + -0.236909978466379, + 1.51825894351698, + -1.52279357026797, + 0.128680437902653, + 1.1542398586462, + -0.258438877834, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00000000000014466618251442, + "qpos": [ + -0.236909978466297, + 1.51825894351844, + -1.52279357027085, + 0.128680437902249, + 1.15423985865025, + -0.258438877834086, + 0.035000000000001, + -0.0349999999999591, + 0.32, + -0.145, + 0.0037596, + 1.0, + 0.00000000000000000096156519279714, + 0.0, + 0.0 + ], + "shoe_position": [ + 0.32, + -0.145, + 0.0037596 + ], + "tcp_position": [ + 0.359999999999868, + -0.0599999999999713, + 0.270000000000053 + ], + "tcp_quaternion": [ + 0.258819045101251, + -0.000000000000290930937860658, + 0.965925826289409, + 0.000000000000144540666180075 + ], + "time": 0.04 + } + }, + { + "compute_ms": 1.28712499281392, + "request": { + "jaw": 0.035, + "sequence": 3, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 14.15, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921793087, + -0.00323661231611195, + 0.407697219259865 + ], + [ + 0.254171566397149, + -0.0613690849667949, + 0.452576386924226 + ], + [ + 0.254171566397149, + -0.0613690849667949, + 0.452576386924226 + ], + [ + 0.299985000000089, + -0.0600000000000048, + 0.373949029216411 + ], + [ + 0.367500075870519, + -0.0949999999996376, + 0.257009491282851 + ], + [ + 0.367500072621782, + -0.0250000000003219, + 0.257009489407213 + ], + [ + 0.319999991591938, + -0.145000018960901, + -0.00313018544243126 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389789, + 0.0, + 0.0, + -0.785717559069334 + ], + [ + 0.422660213031819, + -0.543907766701154, + -0.451847697042004, + -0.566883007612591 + ], + [ + -0.0496342733423798, + -0.117306641258375, + -0.697309939637088, + -0.705361211656676 + ], + [ + -0.0399656666431211, + -0.662695786582175, + 0.122507852927388, + -0.737718690224888 + ], + [ + 0.700899927567505, + -0.653736720591168, + -0.093473208266371, + -0.269500187426581 + ], + [ + -0.258819045101778, + 0.000000000000182636308990461, + -0.965925826289267, + -0.0000000000000937699113079184 + ], + [ + 0.68301414587641, + -0.683011257905262, + -0.183013108421344, + -0.183012295361124 + ], + [ + -0.683014155683867, + -0.683011248097753, + 0.183013071818664, + -0.183012331963997 + ], + [ + 0.999999999914483, + -0.0000119522730227575, + 0.00000530817367065634, + -0.000000000107595135342671 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 2.43541911497835 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 2.21925002696755 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 2.04406504315558 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 2.26023413116639 + } + ], + "ctrl": [ + -0.236909978466379, + 1.518258943517, + -1.52279357026803, + 0.128680437902649, + 1.15423985864626, + -0.258438877833994, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000105653231208984, + "qpos": [ + -0.236909978466302, + 1.51825894351788, + -1.52279357026987, + 0.128680437902417, + 1.15423985864874, + -0.258438877834024, + 0.0349999999999851, + -0.0349999999999607, + 0.319999991591938, + -0.145000018960901, + -0.00313018544243126, + 0.999999999914483, + -0.0000119522730227575, + 0.00000530817367065634, + -0.000000000107595135342671 + ], + "shoe_position": [ + 0.319999991591938, + -0.145000018960901, + -0.00313018544243126 + ], + "tcp_position": [ + 0.359999999999929, + -0.0599999999999717, + 0.270000000000073 + ], + "tcp_quaternion": [ + 0.258819045101778, + -0.000000000000182636308990461, + 0.965925826289267, + 0.0000000000000937699113079184 + ], + "time": 0.06 + } + }, + { + "compute_ms": 1.17408399819396, + "request": { + "jaw": 0.035, + "sequence": 4, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.286, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921786494, + -0.00323661231595461, + 0.407697219259898 + ], + [ + 0.254171566396581, + -0.0613690849666935, + 0.452576386923693 + ], + [ + 0.254171566396581, + -0.0613690849666935, + 0.452576386923693 + ], + [ + 0.299984999999856, + -0.0599999999999664, + 0.373949029216071 + ], + [ + 0.367500075870745, + -0.0949999999996879, + 0.257009491282803 + ], + [ + 0.367500072622079, + -0.0250000000003383, + 0.257009489407152 + ], + [ + 0.319999973688965, + -0.145000059763388, + -0.00286821125119665 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389737, + 0.0, + 0.0, + -0.785717559069374 + ], + [ + 0.422660213031107, + -0.543907766700646, + -0.451847697042616, + -0.566883007613122 + ], + [ + -0.0496342733416201, + -0.117306641259218, + -0.697309939636946, + -0.705361211656729 + ], + [ + -0.0399656666428876, + -0.662695786582958, + 0.122507852927801, + -0.737718690224129 + ], + [ + 0.700899927567095, + -0.653736720590737, + -0.0934732082675952, + -0.269500187428269 + ], + [ + -0.258819045103822, + -0.000000000000289386233632036, + -0.96592582628872, + 0.0000000000001372006028077 + ], + [ + 0.68301414587586, + -0.683011257905038, + -0.183013108422455, + -0.183012295362903 + ], + [ + -0.683014155683643, + -0.683011248097203, + 0.183013071820443, + -0.183012331965108 + ], + [ + 0.999999999523856, + -0.0000282272561562597, + 0.0000124703746036433, + -0.000000000038881791492098 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.892580360638862 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.81316436014104 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.748451181127857 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.827867181625681 + } + ], + "ctrl": [ + -0.236909978466379, + 1.518258943517, + -1.522793570268, + 0.12868043790265, + 1.15423985864624, + -0.258438877833996, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000137096547333954, + "qpos": [ + -0.236909978466434, + 1.5182589435155, + -1.5227935702652, + 0.128680437903069, + 1.15423985864223, + -0.258438877833878, + 0.0349999999999806, + -0.0349999999999991, + 0.319999973688965, + -0.145000059763388, + -0.00286821125119665, + 0.999999999523856, + -0.0000282272561562597, + 0.0000124703746036433, + -0.000000000038881791492098 + ], + "shoe_position": [ + 0.319999973688965, + -0.145000059763388, + -0.00286821125119665 + ], + "tcp_position": [ + 0.360000000000135, + -0.0600000000000162, + 0.269999999999987 + ], + "tcp_quaternion": [ + 0.258819045103822, + 0.000000000000289386233632036, + 0.96592582628872, + -0.0000000000001372006028077 + ], + "time": 0.0800000000000001 + } + }, + { + "compute_ms": 1.24750001123175, + "request": { + "jaw": 0.035, + "sequence": 5, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.819, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921782282, + -0.00323661231585454, + 0.407697219259919 + ], + [ + 0.254171566396224, + -0.0613690849666378, + 0.452576386923315 + ], + [ + 0.254171566396224, + -0.0613690849666378, + 0.452576386923315 + ], + [ + 0.299984999999705, + -0.0599999999999518, + 0.373949029215813 + ], + [ + 0.367500075870877, + -0.0949999999997403, + 0.257009491282727 + ], + [ + 0.367500072622259, + -0.0250000000003792, + 0.257009489407067 + ], + [ + 0.319999975205376, + -0.145000056525841, + -0.00167876539927015 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389692, + 0.0, + 0.0, + -0.78571755906941 + ], + [ + 0.422660213030643, + -0.543907766700328, + -0.451847697042998, + -0.566883007613468 + ], + [ + -0.0496342733410926, + -0.117306641259819, + -0.697309939636845, + -0.705361211656766 + ], + [ + -0.0399656666427499, + -0.66269578658351, + 0.122507852928082, + -0.737718690223593 + ], + [ + 0.700899927566836, + -0.65373672059047, + -0.0934732082683341, + -0.269500187429334 + ], + [ + -0.258819045105087, + -0.000000000000595465268339224, + -0.96592582628838, + 0.000000000000288439181371238 + ], + [ + 0.683014145875513, + -0.683011257904905, + -0.183013108423134, + -0.183012295364014 + ], + [ + -0.68301415568351, + -0.683011248096856, + 0.183013071821555, + -0.183012331965787 + ], + [ + 0.999999999568271, + -0.0000268889573281391, + 0.0000118508284702396, + 0.000000000018484996307081 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.703852399510874 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.641397438905956 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.590791127420143 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.653246088025061 + } + ], + "ctrl": [ + -0.236909978466379, + 1.51825894351695, + -1.52279357026791, + 0.128680437902657, + 1.15423985864615, + -0.258438877834004, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000286752688696415, + "qpos": [ + -0.236909978466548, + 1.51825894351398, + -1.52279357026207, + 0.128680437903477, + 1.15423985863799, + -0.258438877833817, + 0.0349999999999867, + -0.0350000000000045, + 0.319999975205376, + -0.145000056525841, + -0.00167876539927015, + 0.999999999568271, + -0.0000268889573281391, + 0.0000118508284702396, + 0.000000000018484996307081 + ], + "shoe_position": [ + 0.319999975205376, + -0.145000056525841, + -0.00167876539927015 + ], + "tcp_position": [ + 0.360000000000257, + -0.0600000000000557, + 0.269999999999886 + ], + "tcp_quaternion": [ + 0.258819045105087, + 0.000000000000595465268339224, + 0.96592582628838, + -0.000000000000288439181371238 + ], + "time": 0.1 + } + }, + { + "compute_ms": 1.24725000932813, + "request": { + "jaw": 0.035, + "sequence": 6, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 6.109, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921777464, + -0.00323661231574002, + 0.407697219259943 + ], + [ + 0.254171566395816, + -0.0613690849665745, + 0.452576386922876 + ], + [ + 0.254171566395816, + -0.0613690849665745, + 0.452576386922876 + ], + [ + 0.299984999999537, + -0.0599999999999362, + 0.373949029215514 + ], + [ + 0.367500075871039, + -0.0949999999997936, + 0.257009491282639 + ], + [ + 0.367500072622475, + -0.0250000000004512, + 0.257009489406967 + ], + [ + 0.319999978219996, + -0.14500004970441, + -0.00089010668531857 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389641, + 0.0, + 0.0, + -0.78571755906945 + ], + [ + 0.422660213030113, + -0.543907766699965, + -0.451847697043436, + -0.566883007613863 + ], + [ + -0.0496342733404798, + -0.117306641260516, + -0.697309939636728, + -0.70536121165681 + ], + [ + -0.0399656666425885, + -0.662695786584152, + 0.122507852928409, + -0.737718690222972 + ], + [ + 0.700899927566536, + -0.653736720590159, + -0.0934732082691935, + -0.269500187430572 + ], + [ + -0.258819045106559, + -0.000000000000947446287322534, + -0.965925826287986, + 0.000000000000463746821853587 + ], + [ + 0.68301414587511, + -0.68301125790475, + -0.183013108423926, + -0.183012295365304 + ], + [ + -0.683014155683355, + -0.683011248096453, + 0.183013071822844, + -0.183012331966578 + ], + [ + 0.999999999692487, + -0.000022694052352132, + 0.0000100002700481349, + -0.0000000000043228045686236 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.724700148722602 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.660372949365706 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.608464062803996 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.672650215691242 + } + ], + "ctrl": [ + -0.23690997846638, + 1.51825894351692, + -1.52279357026785, + 0.128680437902662, + 1.1542398586461, + -0.25843887783401, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00000000000047851404793371, + "qpos": [ + -0.236909978466679, + 1.51825894351224, + -1.52279357025846, + 0.128680437903954, + 1.15423985863308, + -0.258438877833754, + 0.0349999999999853, + -0.0349999999999872, + 0.319999978219996, + -0.14500004970441, + -0.00089010668531857, + 0.999999999692487, + -0.000022694052352132, + 0.0000100002700481349, + -0.0000000000043228045686236 + ], + "shoe_position": [ + 0.319999978219996, + -0.14500004970441, + -0.00089010668531857 + ], + "tcp_position": [ + 0.360000000000407, + -0.0600000000001026, + 0.26999999999977 + ], + "tcp_quaternion": [ + 0.258819045106559, + 0.000000000000947446287322534, + 0.965925826287986, + -0.000000000000463746821853587 + ], + "time": 0.12 + } + }, + { + "compute_ms": 1.10495800618082, + "request": { + "jaw": 0.035, + "sequence": 7, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 13.793, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921774638, + -0.00323661231567327, + 0.407697219259957 + ], + [ + 0.254171566395581, + -0.0613690849665449, + 0.452576386922584 + ], + [ + 0.254171566395581, + -0.0613690849665449, + 0.452576386922584 + ], + [ + 0.299984999999443, + -0.0599999999999361, + 0.373949029215303 + ], + [ + 0.367500075871136, + -0.0949999999998379, + 0.257009491282551 + ], + [ + 0.367500072622605, + -0.0250000000005118, + 0.257009489406873 + ], + [ + 0.319999979143341, + -0.145000047593655, + -0.00047089969056744 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389601, + 0.0, + 0.0, + -0.785717559069481 + ], + [ + 0.422660213029796, + -0.543907766699757, + -0.451847697043686, + -0.5668830076141 + ], + [ + -0.0496342733400788, + -0.117306641260982, + -0.697309939636649, + -0.705361211656838 + ], + [ + -0.0399656666425004, + -0.662695786584578, + 0.122507852928617, + -0.737718690222559 + ], + [ + 0.700899927566355, + -0.653736720589979, + -0.0934732082696803, + -0.269500187431309 + ], + [ + -0.258819045107417, + -0.00000000000115974491377584, + -0.965925826287756, + 0.000000000000574242856411324 + ], + [ + 0.68301414587487, + -0.683011257904666, + -0.183013108424383, + -0.183012295366061 + ], + [ + -0.683014155683271, + -0.683011248096213, + 0.183013071823601, + -0.183012331967035 + ], + [ + 0.999999999744665, + -0.000020675883203433, + 0.00000912016102254308, + -0.0000000000387874069216377 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.755038844205061 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.687757220628697 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.634182753788012 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.700643982805176 + } + ], + "ctrl": [ + -0.236909978466381, + 1.51825894351689, + -1.52279357026778, + 0.128680437902668, + 1.15423985864603, + -0.258438877834017, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000615907135545966, + "qpos": [ + -0.236909978466779, + 1.51825894351122, + -1.52279357025621, + 0.128680437904231, + 1.15423985863006, + -0.258438877833745, + 0.034999999999986, + -0.0349999999999702, + 0.319999979143341, + -0.145000047593655, + -0.00047089969056744, + 0.999999999744665, + -0.000020675883203433, + 0.00000912016102254308, + -0.0000000000387874069216377 + ], + "shoe_position": [ + 0.319999979143341, + -0.145000047593655, + -0.00047089969056744 + ], + "tcp_position": [ + 0.360000000000497, + -0.0600000000001414, + 0.269999999999665 + ], + "tcp_quaternion": [ + 0.258819045107417, + 0.00000000000115974491377584, + 0.965925826287756, + -0.000000000000574242856411324 + ], + "time": 0.14 + } + }, + { + "compute_ms": 0.884749984834343, + "request": { + "jaw": 0.035, + "sequence": 8, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.472, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921772887, + -0.00323661231563207, + 0.407697219259966 + ], + [ + 0.254171566395441, + -0.0613690849665322, + 0.452576386922372 + ], + [ + 0.254171566395441, + -0.0613690849665322, + 0.452576386922372 + ], + [ + 0.299984999999391, + -0.0599999999999436, + 0.373949029215142 + ], + [ + 0.367500075871204, + -0.0949999999998773, + 0.257009491282469 + ], + [ + 0.367500072622694, + -0.0250000000005597, + 0.257009489406785 + ], + [ + 0.319999978533233, + -0.145000048961191, + -0.00027411815176362 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.61858541638957, + 0.0, + 0.0, + -0.785717559069506 + ], + [ + 0.422660213029594, + -0.543907766699632, + -0.451847697043836, + -0.56688300761425 + ], + [ + -0.0496342733397926, + -0.11730664126132, + -0.697309939636592, + -0.705361211656858 + ], + [ + -0.0399656666424503, + -0.662695786584886, + 0.12250785292876, + -0.737718690222261 + ], + [ + 0.700899927566237, + -0.653736720589868, + -0.0934732082699766, + -0.269500187431784 + ], + [ + -0.258819045107957, + -0.00000000000129718869535448, + -0.965925826287612, + 0.000000000000651806679853329 + ], + [ + 0.683014145874713, + -0.683011257904618, + -0.183013108424667, + -0.183012295366539 + ], + [ + -0.683014155683224, + -0.683011248096056, + 0.18301307182408, + -0.183012331967319 + ], + [ + 0.99999999966491, + -0.0000236805503741275, + 0.000010460046997144, + -0.0000000000669904946928956 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.779004484712179 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.709690782320164 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.654093246421538 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.722896606893088 + } + ], + "ctrl": [ + -0.236909978466381, + 1.51825894351686, + -1.52279357026774, + 0.128680437902671, + 1.15423985864599, + -0.258438877834021, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000727397267748568, + "qpos": [ + -0.236909978466858, + 1.51825894351058, + -1.52279357025468, + 0.128680437904402, + 1.15423985862806, + -0.258438877833762, + 0.0349999999999881, + -0.0349999999999597, + 0.319999978533233, + -0.145000048961191, + -0.00027411815176362, + 0.99999999966491, + -0.0000236805503741275, + 0.000010460046997144, + -0.0000000000669904946928956 + ], + "shoe_position": [ + 0.319999978533233, + -0.145000048961191, + -0.00027411815176362 + ], + "tcp_position": [ + 0.360000000000561, + -0.0600000000001753, + 0.269999999999571 + ], + "tcp_quaternion": [ + 0.258819045107957, + 0.00000000000129718869535448, + 0.965925826287612, + -0.000000000000651806679853329 + ], + "time": 0.16 + } + }, + { + "compute_ms": 0.731999985873699, + "request": { + "jaw": 0.035, + "sequence": 9, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.211, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921779157, + -0.00323661231578216, + 0.407697219259935 + ], + [ + 0.254171566395988, + -0.0613690849666393, + 0.452576386922821 + ], + [ + 0.254171566395988, + -0.0613690849666393, + 0.452576386922821 + ], + [ + 0.299984999999622, + -0.0599999999999942, + 0.373949029215408 + ], + [ + 0.367500075871, + -0.0949999999998522, + 0.257009491282459 + ], + [ + 0.367500072622423, + -0.0250000000005685, + 0.257009489406786 + ], + [ + 0.319999977850444, + -0.14500005051048, + -0.00018560741773546 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389607, + 0.0, + 0.0, + -0.785717559069477 + ], + [ + 0.422660213030263, + -0.543907766700123, + -0.451847697043246, + -0.566883007613752 + ], + [ + -0.0496342733404438, + -0.117306641260611, + -0.697309939636712, + -0.705361211656812 + ], + [ + -0.039965666642682, + -0.662695786584226, + 0.122507852928391, + -0.737718690222903 + ], + [ + 0.700899927566615, + -0.653736720590281, + -0.0934732082687978, + -0.269500187430206 + ], + [ + -0.258819045106021, + -0.000000000000859418047396221, + -0.96592582628813, + 0.000000000000448879532465654 + ], + [ + 0.683014145875223, + -0.683011257904842, + -0.183013108423608, + -0.183012295364861 + ], + [ + -0.683014155683447, + -0.683011248096566, + 0.183013071822402, + -0.18301233196626 + ], + [ + 0.999999999498026, + -0.0000289846153688824, + 0.0000128000382424534, + -0.0000000000440255866055562 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.790874072336489 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.720493003936428 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.663892364067503 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.733822810296942 + } + ], + "ctrl": [ + -0.236909978466382, + 1.51825894351685, + -1.52279357026771, + 0.128680437902674, + 1.15423985864597, + -0.258438877834025, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000571585172726724, + "qpos": [ + -0.236909978466765, + 1.51825894351285, + -1.52279357025889, + 0.128680437903777, + 1.154239858634, + -0.258438877833941, + 0.0349999999999958, + -0.0349999999999179, + 0.319999977850444, + -0.14500005051048, + -0.00018560741773546, + 0.999999999498026, + -0.0000289846153688824, + 0.0000128000382424534, + -0.0000000000440255866055562 + ], + "shoe_position": [ + 0.319999977850444, + -0.14500005051048, + -0.00018560741773546 + ], + "tcp_position": [ + 0.360000000000376, + -0.0600000000001517, + 0.269999999999597 + ], + "tcp_quaternion": [ + 0.258819045106021, + 0.000000000000859418047396221, + 0.96592582628813, + -0.000000000000448879532465654 + ], + "time": 0.18 + } + }, + { + "compute_ms": 0.653958995826542, + "request": { + "jaw": 0.035, + "sequence": 10, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.236, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921786055, + -0.0032366123159467, + 0.4076972192599 + ], + [ + 0.254171566396585, + -0.0613690849667448, + 0.452576386923365 + ], + [ + 0.254171566396585, + -0.0613690849667448, + 0.452576386923365 + ], + [ + 0.299984999999879, + -0.0600000000000363, + 0.373949029215755 + ], + [ + 0.36750007587079, + -0.094999999999799, + 0.257009491282507 + ], + [ + 0.367500072622139, + -0.0250000000005476, + 0.257009489406848 + ], + [ + 0.319999977506339, + -0.145000051295894, + -0.0001449766853654 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389663, + 0.0, + 0.0, + -0.785717559069433 + ], + [ + 0.422660213031009, + -0.543907766700653, + -0.451847697042607, + -0.566883007613195 + ], + [ + -0.0496342733412162, + -0.117306641259748, + -0.697309939636857, + -0.705361211656758 + ], + [ + -0.0399656666429217, + -0.662695786583429, + 0.122507852927963, + -0.737718690223678 + ], + [ + 0.700899927567029, + -0.653736720590725, + -0.0934732082675559, + -0.269500187428485 + ], + [ + -0.25881904510394, + -0.00000000000037133473452305, + -0.965925826288688, + 0.000000000000220014087935744 + ], + [ + 0.683014145875779, + -0.683011257905074, + -0.183013108422482, + -0.183012295363045 + ], + [ + -0.683014155683679, + -0.683011248097122, + 0.183013071820585, + -0.183012331965134 + ], + [ + 0.999999999329792, + -0.0000334955834305781, + 0.0000147804904165049, + 0.0000000000108259228875565 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.79596401184993 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.725129606429863 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.668130160879401 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.738525758358819 + } + ], + "ctrl": [ + -0.236909978466381, + 1.51825894351689, + -1.52279357026779, + 0.128680437902668, + 1.15423985864604, + -0.258438877834017, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000381414575263911, + "qpos": [ + -0.236909978466622, + 1.51825894351534, + -1.52279357026371, + 0.128680437903099, + 1.15423985864064, + -0.258438877834093, + 0.0349999999999944, + -0.0349999999998871, + 0.319999977506339, + -0.145000051295894, + -0.0001449766853654, + 0.999999999329792, + -0.0000334955834305781, + 0.0000147804904165049, + 0.0000000000108259228875565 + ], + "shoe_position": [ + 0.319999977506339, + -0.145000051295894, + -0.0001449766853654 + ], + "tcp_position": [ + 0.360000000000184, + -0.0600000000001104, + 0.269999999999685 + ], + "tcp_quaternion": [ + 0.25881904510394, + 0.00000000000037133473452305, + 0.965925826288688, + -0.000000000000220014087935744 + ], + "time": 0.2 + } + }, + { + "compute_ms": 0.621207989752293, + "request": { + "jaw": 0.035, + "sequence": 11, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.664, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921790425, + -0.00323661231605048, + 0.407697219259879 + ], + [ + 0.254171566396959, + -0.0613690849668032, + 0.452576386923736 + ], + [ + 0.254171566396959, + -0.0613690849668032, + 0.452576386923736 + ], + [ + 0.299985000000045, + -0.0600000000000546, + 0.373949029216004 + ], + [ + 0.36750007587067, + -0.0949999999997508, + 0.257009491282575 + ], + [ + 0.367500072621971, + -0.0250000000005094, + 0.257009489406923 + ], + [ + 0.319999977362165, + -0.145000051625384, + -0.00012580624067256 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.61858541638971, + 0.0, + 0.0, + -0.785717559069396 + ], + [ + 0.42266021303149, + -0.543907766700983, + -0.451847697042211, + -0.566883007612837 + ], + [ + -0.049634273341733, + -0.117306641259154, + -0.697309939636957, + -0.705361211656721 + ], + [ + -0.0399656666430647, + -0.662695786582887, + 0.122507852927675, + -0.737718690224204 + ], + [ + 0.700899927567284, + -0.653736720591001, + -0.0934732082668119, + -0.26950018742741 + ], + [ + -0.258819045102663, + -0.0000000000000595567910767891, + -0.96592582628903, + 0.0000000000000767628421910059 + ], + [ + 0.683014145876122, + -0.683011257905215, + -0.183013108421799, + -0.183012295361921 + ], + [ + -0.68301415568382, + -0.683011248097465, + 0.183013071819462, + -0.183012331964451 + ], + [ + 0.999999999201933, + -0.0000365546213866387, + 0.0000161213015759638, + 0.0000000000635531010219754 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.798175938991946 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.727148627383276 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.669996199790539 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.740583477705936 + } + ], + "ctrl": [ + -0.236909978466381, + 1.51825894351694, + -1.52279357026789, + 0.12868043790266, + 1.15423985864613, + -0.258438877834009, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000248428501894792, + "qpos": [ + -0.236909978466502, + 1.51825894351692, + -1.52279357026687, + 0.12868043790267, + 1.15423985864486, + -0.258438877834159, + 0.0349999999999871, + -0.0349999999998844, + 0.319999977362165, + -0.145000051625384, + -0.00012580624067256, + 0.999999999201933, + -0.0000365546213866387, + 0.0000161213015759638, + 0.0000000000635531010219754 + ], + "shoe_position": [ + 0.319999977362165, + -0.145000051625384, + -0.00012580624067256 + ], + "tcp_position": [ + 0.360000000000075, + -0.0600000000000761, + 0.269999999999776 + ], + "tcp_quaternion": [ + 0.258819045102663, + 0.0000000000000595567910767891, + 0.96592582628903, + -0.0000000000000767628421910059 + ], + "time": 0.22 + } + }, + { + "compute_ms": 0.70637502358295, + "request": { + "jaw": 0.035, + "sequence": 12, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 13.84, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921794504, + -0.00323661231614732, + 0.407697219259858 + ], + [ + 0.254171566397307, + -0.0613690849668552, + 0.452576386924095 + ], + [ + 0.254171566397307, + -0.0613690849668552, + 0.452576386924095 + ], + [ + 0.299985000000195, + -0.0600000000000685, + 0.37394902921625 + ], + [ + 0.367500075870551, + -0.094999999999707, + 0.257009491282647 + ], + [ + 0.367500072621807, + -0.0250000000004578, + 0.257009489407003 + ], + [ + 0.319999977302701, + -0.145000051760798, + -0.00011657938647395 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389757, + 0.0, + 0.0, + -0.785717559069359 + ], + [ + 0.422660213031941, + -0.543907766701288, + -0.451847697041843, + -0.5668830076125 + ], + [ + -0.0496342733422317, + -0.117306641258578, + -0.697309939637054, + -0.705361211656686 + ], + [ + -0.0399656666431993, + -0.662695786582362, + 0.122507852927397, + -0.737718690224714 + ], + [ + 0.700899927567526, + -0.653736720591262, + -0.0934732082661122, + -0.26950018742639 + ], + [ + -0.258819045101456, + 0.000000000000233851499731469, + -0.965925826289354, + -0.000000000000060234917207357 + ], + [ + 0.683014145876448, + -0.683011257905346, + -0.183013108421152, + -0.18301229536086 + ], + [ + -0.683014155683952, + -0.683011248097791, + 0.1830130718184, + -0.183012331963805 + ], + [ + 0.999999999117836, + -0.0000384340171535085, + 0.0000169456488647593, + 0.000000000101920966974517 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.799176756133333 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728063667632774 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.670852164288071 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.741520809972892 + } + ], + "ctrl": [ + -0.23690997846638, + 1.51825894351697, + -1.52279357026795, + 0.128680437902655, + 1.15423985864619, + -0.258438877834003, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000139267046200057, + "qpos": [ + -0.236909978466383, + 1.51825894351839, + -1.52279357026988, + 0.128680437902262, + 1.15423985864889, + -0.258438877834206, + 0.0349999999999856, + -0.0349999999998937, + 0.319999977302701, + -0.145000051760798, + -0.00011657938647395, + 0.999999999117836, + -0.0000384340171535085, + 0.0000169456488647593, + 0.000000000101920966974517 + ], + "shoe_position": [ + 0.319999977302701, + -0.145000051760798, + -0.00011657938647395 + ], + "tcp_position": [ + 0.359999999999966, + -0.06000000000004, + 0.269999999999871 + ], + "tcp_quaternion": [ + 0.258819045101456, + -0.000000000000233851499731469, + 0.965925826289354, + 0.000000000000060234917207357 + ], + "time": 0.24 + } + }, + { + "compute_ms": 0.635874981526285, + "request": { + "jaw": 0.035, + "sequence": 13, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 11.438, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921797823, + -0.00323661231622591, + 0.407697219259842 + ], + [ + 0.254171566397588, + -0.0613690849668939, + 0.452576386924404 + ], + [ + 0.254171566397588, + -0.0613690849668939, + 0.452576386924404 + ], + [ + 0.299985000000314, + -0.0600000000000754, + 0.373949029216465 + ], + [ + 0.367500075870449, + -0.0949999999996669, + 0.257009491282721 + ], + [ + 0.367500072621669, + -0.0250000000004017, + 0.257009489407084 + ], + [ + 0.319999977277003, + -0.145000051818905, + -0.00011208465487973 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389799, + 0.0, + 0.0, + -0.785717559069325 + ], + [ + 0.422660213032312, + -0.543907766701535, + -0.451847697041546, + -0.566883007612224 + ], + [ + -0.049634273342657, + -0.117306641258082, + -0.697309939637137, + -0.705361211656656 + ], + [ + -0.0399656666433071, + -0.662695786581912, + 0.122507852927162, + -0.737718690225152 + ], + [ + 0.700899927567726, + -0.653736720591475, + -0.0934732082655454, + -0.269500187425549 + ], + [ + -0.258819045100467, + 0.000000000000475878894411547, + -0.965925826289618, + -0.000000000000175927567027624 + ], + [ + 0.683014145876717, + -0.683011257905452, + -0.183013108420624, + -0.183012295359989 + ], + [ + -0.683014155684057, + -0.68301124809806, + 0.18301307181753, + -0.183012331963277 + ], + [ + 0.999999999066756, + -0.0000395316094960786, + 0.0000174281650658696, + 0.000000000126485226156657 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.799645385998936 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728492543604608 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671258061331339 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.741962204486676 + } + ], + "ctrl": [ + -0.236909978466379, + 1.518258943517, + -1.52279357026801, + 0.128680437902651, + 1.15423985864624, + -0.258438877833997, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000132854954220954, + "qpos": [ + -0.236909978466275, + 1.51825894351959, + -1.52279357027239, + 0.128680437901926, + 1.15423985865225, + -0.258438877834231, + 0.0349999999999858, + -0.0349999999999095, + 0.319999977277003, + -0.145000051818905, + -0.00011208465487973, + 0.999999999066756, + -0.0000395316094960786, + 0.0000174281650658696, + 0.000000000126485226156657 + ], + "shoe_position": [ + 0.319999977277003, + -0.145000051818905, + -0.00011208465487973 + ], + "tcp_position": [ + 0.359999999999872, + -0.060000000000005, + 0.269999999999963 + ], + "tcp_quaternion": [ + 0.258819045100467, + -0.000000000000475878894411547, + 0.965925826289618, + 0.000000000000175927567027624 + ], + "time": 0.26 + } + }, + { + "compute_ms": 0.697291980031878, + "request": { + "jaw": 0.035, + "sequence": 14, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.614, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921793593, + -0.00323661231612424, + 0.407697219259863 + ], + [ + 0.254171566397218, + -0.0613690849668138, + 0.452576386924114 + ], + [ + 0.254171566397218, + -0.0613690849668138, + 0.452576386924114 + ], + [ + 0.299985000000167, + -0.0600000000000351, + 0.373949029216304 + ], + [ + 0.36750007587061, + -0.0949999999996733, + 0.257009491282755 + ], + [ + 0.367500072621875, + -0.0250000000003692, + 0.257009489407109 + ], + [ + 0.319999977265223, + -0.145000051845312, + -0.00010988037708905 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389786, + 0.0, + 0.0, + -0.785717559069336 + ], + [ + 0.422660213031869, + -0.543907766701197, + -0.451847697041952, + -0.566883007612555 + ], + [ + -0.0496342733422262, + -0.117306641258532, + -0.697309939637061, + -0.705361211656687 + ], + [ + -0.0399656666431422, + -0.66269578658234, + 0.122507852927397, + -0.737718690224737 + ], + [ + 0.700899927567457, + -0.65373672059119, + -0.0934732082663944, + -0.269500187426645 + ], + [ + -0.258819045101833, + 0.000000000000179456951577058, + -0.965925826289253, + -0.0000000000000298712069253372 + ], + [ + 0.683014145876355, + -0.683011257905297, + -0.183013108421381, + -0.183012295361165 + ], + [ + -0.683014155683902, + -0.683011248097698, + 0.183013071818705, + -0.183012331964033 + ], + [ + 0.999999999037136, + -0.0000401540153568369, + 0.0000177026557726485, + 0.000000000141182848880005 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.799869804924864 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728698007663632 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671454664614431 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742174558632711 + } + ], + "ctrl": [ + -0.236909978466379, + 1.51825894351702, + -1.52279357026806, + 0.128680437902646, + 1.15423985864628, + -0.258438877833992, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0000000000000378398600167904, + "qpos": [ + -0.23690997846631, + 1.51825894351806, + -1.52279357026961, + 0.128680437902346, + 1.15423985864816, + -0.258438877834081, + 0.0349999999999736, + -0.0349999999999606, + 0.319999977265223, + -0.145000051845312, + -0.00010988037708905, + 0.999999999037136, + -0.0000401540153568369, + 0.0000177026557726485, + 0.000000000141182848880005 + ], + "shoe_position": [ + 0.319999977265223, + -0.145000051845312, + -0.00010988037708905 + ], + "tcp_position": [ + 0.360000000000019, + -0.060000000000017, + 0.269999999999972 + ], + "tcp_quaternion": [ + 0.258819045101833, + -0.000000000000179456951577058, + 0.965925826289253, + 0.0000000000000298712069253372 + ], + "time": 0.28 + } + }, + { + "compute_ms": 0.643125007627532, + "request": { + "jaw": 0.035, + "sequence": 15, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 7.306, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.013409592178821, + -0.00323661231599574, + 0.40769721925989 + ], + [ + 0.254171566396755, + -0.06136908496673, + 0.45257638692368 + ], + [ + 0.254171566396755, + -0.06136908496673, + 0.45257638692368 + ], + [ + 0.299984999999973, + -0.0600000000000026, + 0.373949029216026 + ], + [ + 0.367500075870783, + -0.0949999999997245, + 0.257009491282712 + ], + [ + 0.367500072622107, + -0.0250000000003867, + 0.257009489407055 + ], + [ + 0.31999997725956, + -0.145000051857901, + -0.00010879548827287 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389745, + 0.0, + 0.0, + -0.785717559069368 + ], + [ + 0.422660213031288, + -0.543907766700782, + -0.451847697042453, + -0.566883007612987 + ], + [ + -0.0496342733416073, + -0.117306641259216, + -0.697309939636946, + -0.70536121165673 + ], + [ + -0.0399656666429562, + -0.662695786582978, + 0.122507852927727, + -0.73771869022412 + ], + [ + 0.700899927567125, + -0.653736720590846, + -0.0934732082673787, + -0.269500187428002 + ], + [ + -0.258819045103475, + -0.000000000000204979517674509, + -0.965925826288812, + 0.000000000000158262677084066 + ], + [ + 0.68301414587591, + -0.683011257905118, + -0.18301310842227, + -0.183012295362598 + ], + [ + -0.683014155683724, + -0.683011248097253, + 0.183013071820139, + -0.183012331964923 + ], + [ + 0.999999999020446, + -0.0000405002879919886, + 0.000017855936258336, + 0.000000000149639091665203 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.799978688411803 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728797699809641 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671551056276406 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742277989809903 + } + ], + "ctrl": [ + -0.236909978466379, + 1.51825894351699, + -1.522793570268, + 0.128680437902651, + 1.15423985864623, + -0.258438877833996, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00000000000021147049210284, + "qpos": [ + -0.236909978466414, + 1.51825894351612, + -1.52279357026581, + 0.128680437902863, + 1.1542398586429, + -0.258438877833953, + 0.0349999999999814, + -0.0349999999999866, + 0.31999997725956, + -0.145000051857901, + -0.00010879548827287, + 0.999999999020446, + -0.0000405002879919886, + 0.000017855936258336, + 0.000000000149639091665203 + ], + "shoe_position": [ + 0.31999997725956, + -0.145000051857901, + -0.00010879548827287 + ], + "tcp_position": [ + 0.360000000000178, + -0.060000000000052, + 0.269999999999898 + ], + "tcp_quaternion": [ + 0.258819045103475, + 0.000000000000204979517674509, + 0.965925826288812, + -0.000000000000158262677084066 + ], + "time": 0.3 + } + }, + { + "compute_ms": 0.670791981974617, + "request": { + "jaw": 0.035, + "sequence": 16, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 2.858, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921783227, + -0.00323661231587711, + 0.407697219259914 + ], + [ + 0.25417156639633, + -0.0613690849666592, + 0.452576386923251 + ], + [ + 0.25417156639633, + -0.0613690849666592, + 0.452576386923251 + ], + [ + 0.299984999999793, + -0.0599999999999795, + 0.373949029215739 + ], + [ + 0.367500075870939, + -0.0949999999997718, + 0.257009491282641 + ], + [ + 0.367500072622318, + -0.0250000000004657, + 0.257009489406973 + ], + [ + 0.31999997725675, + -0.145000051864096, + -0.0001082605309953 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389698, + 0.0, + 0.0, + -0.785717559069405 + ], + [ + 0.422660213030745, + -0.543907766700402, + -0.45184769704291, + -0.566883007613393 + ], + [ + -0.0496342733410026, + -0.117306641259897, + -0.697309939636832, + -0.705361211656773 + ], + [ + -0.0399656666427883, + -0.662695786583607, + 0.122507852928049, + -0.73771869022351 + ], + [ + 0.700899927566821, + -0.653736720590528, + -0.0934732082682638, + -0.269500187429256 + ], + [ + -0.258819045104976, + -0.000000000000563987771815956, + -0.96592582628841, + 0.00000000000033237177077936 + ], + [ + 0.683014145875503, + -0.683011257904957, + -0.183013108423078, + -0.183012295363913 + ], + [ + -0.683014155683562, + -0.683011248096846, + 0.183013071821454, + -0.18301233196573 + ], + [ + 0.999999999011219, + -0.0000406903413693242, + 0.0000179404035248699, + 0.000000000154386357730381 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800031894682538 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728846407831271 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671598627023623 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742328706526299 + } + ], + "ctrl": [ + -0.236909978466379, + 1.51825894351696, + -1.52279357026792, + 0.128680437902656, + 1.15423985864616, + -0.258438877834003, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000390440830497541, + "qpos": [ + -0.236909978466533, + 1.51825894351432, + -1.52279357026217, + 0.128680437903346, + 1.15423985863796, + -0.258438877833863, + 0.0349999999999813, + -0.0349999999999549, + 0.31999997725675, + -0.145000051864096, + -0.0001082605309953, + 0.999999999011219, + -0.0000406903413693242, + 0.0000179404035248699, + 0.000000000154386357730381 + ], + "shoe_position": [ + 0.31999997725675, + -0.145000051864096, + -0.0001082605309953 + ], + "tcp_position": [ + 0.360000000000321, + -0.0600000000000916, + 0.269999999999798 + ], + "tcp_quaternion": [ + 0.258819045104976, + 0.000000000000563987771815956, + 0.96592582628841, + -0.00000000000033237177077936 + ], + "time": 0.32 + } + }, + { + "compute_ms": 0.621666986262426, + "request": { + "jaw": 0.035, + "sequence": 17, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 10.17, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.01340959217792, + -0.00323661231578147, + 0.407697219259935 + ], + [ + 0.254171566395989, + -0.0613690849666074, + 0.452576386922881 + ], + [ + 0.254171566395989, + -0.0613690849666074, + 0.452576386922881 + ], + [ + 0.29998499999965, + -0.0599999999999673, + 0.373949029215483 + ], + [ + 0.367500075871067, + -0.0949999999998166, + 0.257009491282558 + ], + [ + 0.367500072622491, + -0.0250000000005275, + 0.257009489406882 + ], + [ + 0.319999977255332, + -0.145000051867202, + -0.00010799648660486 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389654, + 0.0, + 0.0, + -0.78571755906944 + ], + [ + 0.4226602130303, + -0.543907766700099, + -0.451847697043274, + -0.566883007613724 + ], + [ + -0.0496342733404865, + -0.117306641260486, + -0.697309939636733, + -0.705361211656809 + ], + [ + -0.0399656666426569, + -0.662695786584148, + 0.122507852928323, + -0.737718690222986 + ], + [ + 0.700899927566573, + -0.653736720590273, + -0.0934732082689669, + -0.269500187430278 + ], + [ + -0.258819045106187, + -0.00000000000085869462789612, + -0.965925826288086, + 0.000000000000477666097063718 + ], + [ + 0.683014145875171, + -0.68301125790483, + -0.183013108423725, + -0.183012295364977 + ], + [ + -0.683014155683436, + -0.683011248096514, + 0.183013071822518, + -0.183012331966378 + ], + [ + 0.999999999006185, + -0.0000407935812653698, + 0.0000179864797825888, + 0.000000000157007576061746 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.80005799210955 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728870293211043 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671622184951757 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.74235366284922 + } + ], + "ctrl": [ + -0.23690997846638, + 1.51825894351692, + -1.52279357026785, + 0.128680437902661, + 1.1542398586461, + -0.25843887783401, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000551862835509862, + "qpos": [ + -0.236909978466646, + 1.51825894351286, + -1.52279357025914, + 0.128680437903737, + 1.15423985863388, + -0.25843887783381, + 0.0349999999999797, + -0.0349999999999395, + 0.319999977255332, + -0.145000051867202, + -0.00010799648660486, + 0.999999999006185, + -0.0000407935812653698, + 0.0000179864797825888, + 0.000000000157007576061746 + ], + "shoe_position": [ + 0.319999977255332, + -0.145000051867202, + -0.00010799648660486 + ], + "tcp_position": [ + 0.360000000000439, + -0.0600000000001314, + 0.269999999999692 + ], + "tcp_quaternion": [ + 0.258819045106187, + 0.00000000000085869462789612, + 0.965925826288086, + -0.000000000000477666097063718 + ], + "time": 0.34 + } + }, + { + "compute_ms": 0.802875001681969, + "request": { + "jaw": 0.035, + "sequence": 18, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 6.753, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921776121, + -0.00323661231570858, + 0.40769721925995 + ], + [ + 0.254171566395731, + -0.0613690849665718, + 0.452576386922578 + ], + [ + 0.254171566395731, + -0.0613690849665718, + 0.452576386922578 + ], + [ + 0.299984999999545, + -0.059999999999963, + 0.373949029215269 + ], + [ + 0.36750007587117, + -0.0949999999998585, + 0.257009491282478 + ], + [ + 0.36750007262263, + -0.025000000000574, + 0.257009489406794 + ], + [ + 0.319999977254609, + -0.145000051868775, + -0.00010786609286318 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389615, + 0.0, + 0.0, + -0.78571755906947 + ], + [ + 0.422660213029958, + -0.54390776669987, + -0.45184769704355, + -0.56688300761398 + ], + [ + -0.0496342733400684, + -0.117306641260968, + -0.697309939636651, + -0.705361211656839 + ], + [ + -0.039965666642558, + -0.66269578658459, + 0.122507852928542, + -0.737718690222558 + ], + [ + 0.700899927566379, + -0.653736720590076, + -0.0934732082695023, + -0.269500187431073 + ], + [ + -0.25881904510712, + -0.00000000000108746681920129, + -0.965925826287836, + 0.000000000000593534214885636 + ], + [ + 0.683014145874912, + -0.683011257904736, + -0.183013108424223, + -0.183012295365799 + ], + [ + -0.683014155683341, + -0.683011248096255, + 0.18301307182334, + -0.183012331966876 + ], + [ + 0.999999999003466, + -0.0000408492010054254, + 0.0000180114095159242, + 0.000000000158437628293713 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800070817706514 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728882028396308 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671633872086232 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742365965554643 + } + ], + "ctrl": [ + -0.23690997846638, + 1.51825894351689, + -1.5227935702678, + 0.128680437902666, + 1.15423985864605, + -0.258438877834015, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00000000000069225358600452, + "qpos": [ + -0.236909978466744, + 1.51825894351175, + -1.52279357025675, + 0.12868043790404, + 1.15423985863066, + -0.258438877833787, + 0.0349999999999798, + -0.0349999999999348, + 0.319999977254609, + -0.145000051868775, + -0.00010786609286318, + 0.999999999003466, + -0.0000408492010054254, + 0.0000180114095159242, + 0.000000000158437628293713 + ], + "shoe_position": [ + 0.319999977254609, + -0.145000051868775, + -0.00010786609286318 + ], + "tcp_position": [ + 0.360000000000535, + -0.0600000000001681, + 0.269999999999594 + ], + "tcp_quaternion": [ + 0.25881904510712, + 0.00000000000108746681920129, + 0.965925826287836, + -0.000000000000593534214885636 + ], + "time": 0.36 + } + }, + { + "compute_ms": 0.552707992028445, + "request": { + "jaw": 0.035, + "sequence": 19, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 6.773, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921775862, + -0.00323661231570298, + 0.407697219259951 + ], + [ + 0.254171566395718, + -0.0613690849665815, + 0.452576386922492 + ], + [ + 0.254171566395718, + -0.0613690849665815, + 0.452576386922492 + ], + [ + 0.299984999999542, + -0.059999999999978, + 0.373949029215189 + ], + [ + 0.36750007587118, + -0.0949999999998884, + 0.257009491282408 + ], + [ + 0.367500072622644, + -0.0250000000006038, + 0.257009489406722 + ], + [ + 0.319999977254239, + -0.145000051869575, + -0.00010780168254848 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389596, + 0.0, + 0.0, + -0.785717559069485 + ], + [ + 0.422660213029917, + -0.54390776669986, + -0.451847697043562, + -0.566883007614009 + ], + [ + -0.0496342733399613, + -0.117306641261108, + -0.697309939636628, + -0.705361211656846 + ], + [ + -0.039965666642562, + -0.662695786584714, + 0.122507852928588, + -0.737718690222438 + ], + [ + 0.700899927566357, + -0.653736720590065, + -0.0934732082695123, + -0.269500187431152 + ], + [ + -0.258819045107181, + -0.00000000000111713496927851, + -0.965925826287819, + 0.00000000000061545616803641 + ], + [ + 0.683014145874885, + -0.683011257904739, + -0.183013108424246, + -0.183012295365864 + ], + [ + -0.683014155683345, + -0.683011248096228, + 0.183013071823404, + -0.183012331966898 + ], + [ + 0.999999999002008, + -0.0000408789613798793, + 0.0000180248066644642, + 0.000000000159210689774272 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800077127132282 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728887799690374 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671639675415794 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742372036070524 + } + ], + "ctrl": [ + -0.236909978466381, + 1.51825894351687, + -1.52279357026775, + 0.12868043790267, + 1.154239858646, + -0.25843887783402, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000749485319091468, + "qpos": [ + -0.236909978466793, + 1.51825894351166, + -1.5227935702563, + 0.128680437904061, + 1.15423985863018, + -0.258438877833832, + 0.0349999999999869, + -0.0349999999999278, + 0.319999977254239, + -0.145000051869575, + -0.00010780168254848, + 0.999999999002008, + -0.0000408789613798793, + 0.0000180248066644642, + 0.000000000159210689774272 + ], + "shoe_position": [ + 0.319999977254239, + -0.145000051869575, + -0.00010780168254848 + ], + "tcp_position": [ + 0.360000000000545, + -0.0600000000001901, + 0.269999999999522 + ], + "tcp_quaternion": [ + 0.258819045107181, + 0.00000000000111713496927851, + 0.965925826287819, + -0.00000000000061545616803641 + ], + "time": 0.38 + } + }, + { + "compute_ms": 0.649250025162473, + "request": { + "jaw": 0.035, + "sequence": 20, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 17.105, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.013409592178283, + -0.00323661231586962, + 0.407697219259916 + ], + [ + 0.254171566396323, + -0.0613690849666962, + 0.452576386923015 + ], + [ + 0.254171566396323, + -0.0613690849666962, + 0.452576386923015 + ], + [ + 0.299984999999796, + -0.0600000000000283, + 0.373949029215508 + ], + [ + 0.36750007587095, + -0.0949999999998506, + 0.25700949128242 + ], + [ + 0.367500072622339, + -0.0250000000005959, + 0.257009489406747 + ], + [ + 0.319999977254049, + -0.145000051869982, + -0.00010776986103712 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389642, + 0.0, + 0.0, + -0.785717559069449 + ], + [ + 0.422660213030664, + -0.543907766700402, + -0.451847697042909, + -0.566883007613453 + ], + [ + -0.0496342733407142, + -0.117306641260281, + -0.697309939636767, + -0.705361211656793 + ], + [ + -0.0399656666428142, + -0.662695786583945, + 0.12250785292817, + -0.737718690223185 + ], + [ + 0.700899927566782, + -0.653736720590522, + -0.0934732082682105, + -0.26950018742939 + ], + [ + -0.25881904510503, + -0.000000000000626729006717581, + -0.965925826288396, + 0.000000000000382235674618712 + ], + [ + 0.683014145875458, + -0.683011257904982, + -0.183013108423072, + -0.183012295363996 + ], + [ + -0.683014155683587, + -0.6830112480968, + 0.183013071821536, + -0.183012331965724 + ], + [ + 0.999999999001232, + -0.0000408947932154871, + 0.0000180319649397399, + 0.000000000159625537983101 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800080232566969 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728890639412782 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671642558467287 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742375032868761 + } + ], + "ctrl": [ + -0.236909978466381, + 1.51825894351687, + -1.52279357026774, + 0.128680437902671, + 1.154239858646, + -0.258438877834021, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000564617329862405, + "qpos": [ + -0.236909978466675, + 1.51825894351418, + -1.52279357026107, + 0.12868043790337, + 1.15423985863689, + -0.258438877834014, + 0.0349999999999939, + -0.0349999999998909, + 0.319999977254049, + -0.145000051869982, + -0.00010776986103712, + 0.999999999001232, + -0.0000408947932154871, + 0.0000180319649397399, + 0.000000000159625537983101 + ], + "shoe_position": [ + 0.319999977254049, + -0.145000051869982, + -0.00010776986103712 + ], + "tcp_position": [ + 0.360000000000336, + -0.0600000000001558, + 0.269999999999574 + ], + "tcp_quaternion": [ + 0.25881904510503, + 0.000000000000626729006717581, + 0.965925826288396, + -0.000000000000382235674618712 + ], + "time": 0.4 + } + }, + { + "compute_ms": 0.659291981719434, + "request": { + "jaw": 0.035, + "sequence": 21, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 5.007, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921788529, + -0.00323661231600531, + 0.407697219259888 + ], + [ + 0.254171566396814, + -0.0613690849667793, + 0.452576386923481 + ], + [ + 0.254171566396814, + -0.0613690849667793, + 0.452576386923481 + ], + [ + 0.299985000000008, + -0.0600000000000583, + 0.373949029215812 + ], + [ + 0.367500075870781, + -0.094999999999797, + 0.25700949128248 + ], + [ + 0.367500072622109, + -0.0250000000005645, + 0.257009489406819 + ], + [ + 0.319999977253951, + -0.14500005187019, + -0.00010775413835396 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389694, + 0.0, + 0.0, + -0.785717559069409 + ], + [ + 0.422660213031284, + -0.543907766700838, + -0.451847697042385, + -0.56688300761299 + ], + [ + -0.0496342733413714, + -0.117306641259541, + -0.697309939636892, + -0.705361211656747 + ], + [ + -0.0399656666430062, + -0.662695786583263, + 0.122507852927809, + -0.737718690223848 + ], + [ + 0.700899927567124, + -0.653736720590884, + -0.0934732082672024, + -0.269500187427973 + ], + [ + -0.258819045103328, + -0.000000000000221347235535791, + -0.965925826288852, + 0.000000000000189825253296283 + ], + [ + 0.683014145875916, + -0.683011257905169, + -0.183013108422154, + -0.183012295362505 + ], + [ + -0.683014155683774, + -0.683011248097259, + 0.183013071820046, + -0.183012331964807 + ], + [ + 0.99999999900082, + -0.000040903173496631, + 0.0000180357707938844, + 0.000000000159846812622102 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.80008176142642 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728892037046065 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671643991103739 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742376512643552 + } + ], + "ctrl": [ + -0.23690997846638, + 1.51825894351691, + -1.52279357026784, + 0.128680437902663, + 1.15423985864608, + -0.258438877834012, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000397154640169434, + "qpos": [ + -0.236909978466544, + 1.51825894351623, + -1.52279357026512, + 0.128680437902818, + 1.1542398586424, + -0.258438877834126, + 0.0349999999999887, + -0.0349999999998738, + 0.319999977253951, + -0.14500005187019, + -0.00010775413835396, + 0.99999999900082, + -0.000040903173496631, + 0.0000180357707938844, + 0.000000000159846812622102 + ], + "shoe_position": [ + 0.319999977253951, + -0.14500005187019, + -0.00010775413835396 + ], + "tcp_position": [ + 0.360000000000182, + -0.0600000000001161, + 0.269999999999667 + ], + "tcp_quaternion": [ + 0.258819045103328, + 0.000000000000221347235535791, + 0.965925826288852, + -0.000000000000189825253296283 + ], + "time": 0.42 + } + }, + { + "compute_ms": 0.58562497724779, + "request": { + "jaw": 0.035, + "sequence": 22, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 9.974, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921793003, + -0.00323661231611159, + 0.407697219259866 + ], + [ + 0.254171566397196, + -0.0613690849668386, + 0.45257638692387 + ], + [ + 0.254171566397196, + -0.0613690849668386, + 0.45257638692387 + ], + [ + 0.299985000000174, + -0.0600000000000755, + 0.373949029216076 + ], + [ + 0.367500075870651, + -0.094999999999748, + 0.257009491282554 + ], + [ + 0.367500072621929, + -0.025000000000516, + 0.257009489406902 + ], + [ + 0.319999977253901, + -0.145000051870296, + -0.00010774636944759 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389742, + 0.0, + 0.0, + -0.785717559069371 + ], + [ + 0.422660213031777, + -0.543907766701175, + -0.451847697041979, + -0.566883007612623 + ], + [ + -0.0496342733419134, + -0.117306641258919, + -0.697309939636996, + -0.705361211656709 + ], + [ + -0.0399656666431528, + -0.662695786582694, + 0.122507852927512, + -0.7377186902244 + ], + [ + 0.700899927567391, + -0.653736720591167, + -0.0934732082664308, + -0.269500187426858 + ], + [ + -0.258819045102004, + 0.000000000000100103801732444, + -0.965925826289207, + 0.0000000000000374826196860277 + ], + [ + 0.683014145876275, + -0.683011257905312, + -0.183013108421445, + -0.183012295361342 + ], + [ + -0.683014155683917, + -0.683011248097618, + 0.183013071818882, + -0.183012331964098 + ], + [ + 0.999999999000603, + -0.0000409075902150867, + 0.0000180377855403264, + 0.000000000159964233675969 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800082514211531 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728892725020626 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671644703101839 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377243427575 + } + ], + "ctrl": [ + -0.23690997846638, + 1.51825894351695, + -1.52279357026792, + 0.128680437902657, + 1.15423985864616, + -0.258438877834006, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000254954988847379, + "qpos": [ + -0.236909978466422, + 1.51825894351785, + -1.5227935702684, + 0.12868043790238, + 1.1542398586468, + -0.25843887783419, + 0.0349999999999848, + -0.0349999999998773, + 0.319999977253901, + -0.145000051870296, + -0.00010774636944759, + 0.999999999000603, + -0.0000409075902150867, + 0.0000180377855403264, + 0.000000000159964233675969 + ], + "shoe_position": [ + 0.319999977253901, + -0.145000051870296, + -0.00010774636944759 + ], + "tcp_position": [ + 0.360000000000062, + -0.0600000000000779, + 0.269999999999765 + ], + "tcp_quaternion": [ + 0.258819045102004, + -0.000000000000100103801732444, + 0.965925826289207, + -0.0000000000000374826196860277 + ], + "time": 0.44 + } + }, + { + "compute_ms": 0.569083000300452, + "request": { + "jaw": 0.035, + "sequence": 23, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 7.457, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921797191, + -0.00323661231621097, + 0.407697219259845 + ], + [ + 0.254171566397552, + -0.0613690849668913, + 0.452576386924248 + ], + [ + 0.254171566397552, + -0.0613690849668913, + 0.452576386924248 + ], + [ + 0.299985000000325, + -0.0600000000000879, + 0.373949029216335 + ], + [ + 0.367500075870521, + -0.0949999999997011, + 0.257009491282634 + ], + [ + 0.367500072621753, + -0.0250000000004567, + 0.257009489406991 + ], + [ + 0.319999977253876, + -0.14500005187035, + -0.00010774253048428 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.61858541638979, + 0.0, + 0.0, + -0.785717559069332 + ], + [ + 0.42266021303224, + -0.543907766701489, + -0.451847697041602, + -0.566883007612277 + ], + [ + -0.0496342733424378, + -0.117306641258315, + -0.697309939637098, + -0.705361211656672 + ], + [ + -0.0399656666432902, + -0.662695786582142, + 0.122507852927225, + -0.737718690224936 + ], + [ + 0.700899927567645, + -0.653736720591436, + -0.0934732082657046, + -0.269500187425799 + ], + [ + -0.258819045100751, + 0.000000000000403637307021533, + -0.965925826289543, + -0.000000000000109265430006134 + ], + [ + 0.683014145876616, + -0.683011257905445, + -0.183013108420774, + -0.183012295360241 + ], + [ + -0.683014155684051, + -0.683011248097959, + 0.183013071817782, + -0.183012331963427 + ], + [ + 0.999999999000489, + -0.0000409099091156751, + 0.0000180388480651222, + 0.000000000160026269246632 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800082884897003 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893063698505 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.67164505698199 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377604348554 + } + ], + "ctrl": [ + -0.23690997846638, + 1.51825894351698, + -1.52279357026798, + 0.128680437902653, + 1.15423985864621, + -0.258438877833999, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000147558664871895, + "qpos": [ + -0.236909978466298, + 1.51825894351936, + -1.52279357027152, + 0.128680437901964, + 1.154239858651, + -0.258438877834237, + 0.0349999999999849, + -0.0349999999998895, + 0.319999977253876, + -0.14500005187035, + -0.00010774253048428, + 0.999999999000489, + -0.0000409099091156751, + 0.0000180388480651222, + 0.000000000160026269246632 + ], + "shoe_position": [ + 0.319999977253876, + -0.14500005187035, + -0.00010774253048428 + ], + "tcp_position": [ + 0.359999999999944, + -0.0600000000000375, + 0.269999999999869 + ], + "tcp_quaternion": [ + 0.258819045100751, + -0.000000000000403637307021532, + 0.965925826289543, + 0.000000000000109265430006134 + ], + "time": 0.46 + } + }, + { + "compute_ms": 0.597250007558614, + "request": { + "jaw": 0.035, + "sequence": 24, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 5.154, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921799828, + -0.00323661231627333, + 0.407697219259832 + ], + [ + 0.254171566397772, + -0.0613690849669188, + 0.452576386924512 + ], + [ + 0.254171566397772, + -0.0613690849669188, + 0.452576386924512 + ], + [ + 0.299985000000417, + -0.060000000000089, + 0.373949029216525 + ], + [ + 0.367500075870438, + -0.0949999999996627, + 0.25700949128271 + ], + [ + 0.36750007262164, + -0.0250000000003977, + 0.257009489407073 + ], + [ + 0.319999977253863, + -0.145000051870378, + -0.00010774063340412 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389828, + 0.0, + 0.0, + -0.785717559069303 + ], + [ + 0.422660213032537, + -0.543907766701682, + -0.451847697041369, + -0.566883007612056 + ], + [ + -0.0496342733427985, + -0.117306641257891, + -0.697309939637169, + -0.705361211656647 + ], + [ + -0.0399656666433724, + -0.662695786581758, + 0.122507852927031, + -0.737718690225309 + ], + [ + 0.700899927567808, + -0.653736720591604, + -0.0934732082652605, + -0.269500187425124 + ], + [ + -0.258819045099965, + 0.000000000000598972556404624, + -0.965925826289754, + -0.000000000000206316511470989 + ], + [ + 0.683014145876834, + -0.683011257905526, + -0.183013108420356, + -0.183012295359547 + ], + [ + -0.683014155684131, + -0.683011248098177, + 0.183013071817088, + -0.183012331963009 + ], + [ + 0.99999999900043, + -0.0000409111224882169, + 0.0000180394065294874, + 0.00000000016005891745774 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083067436828 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893230432213 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645232877894 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377782607771 + } + ], + "ctrl": [ + -0.236909978466379, + 1.51825894351701, + -1.52279357026804, + 0.128680437902647, + 1.15423985864627, + -0.258438877833993, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000139332757545082, + "qpos": [ + -0.236909978466202, + 1.51825894352031, + -1.52279357027359, + 0.1286804379017, + 1.15423985865375, + -0.258438877834242, + 0.0349999999999844, + -0.0349999999999107, + 0.319999977253863, + -0.145000051870378, + -0.00010774063340412, + 0.99999999900043, + -0.0000409111224882169, + 0.0000180394065294874, + 0.00000000016005891745774 + ], + "shoe_position": [ + 0.319999977253863, + -0.145000051870378, + -0.00010774063340412 + ], + "tcp_position": [ + 0.359999999999866, + -0.060000000000004, + 0.269999999999961 + ], + "tcp_quaternion": [ + 0.258819045099965, + -0.000000000000598972556404624, + 0.965925826289753, + 0.000000000000206316511470989 + ], + "time": 0.48 + } + }, + { + "compute_ms": 0.567750015761703, + "request": { + "jaw": 0.035, + "sequence": 25, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 5.578, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921794452, + -0.00323661231614441, + 0.407697219259859 + ], + [ + 0.254171566397303, + -0.0613690849668229, + 0.452576386924128 + ], + [ + 0.254171566397303, + -0.0613690849668229, + 0.452576386924128 + ], + [ + 0.299985000000225, + -0.060000000000043, + 0.373949029216303 + ], + [ + 0.36750007587063, + -0.0949999999996815, + 0.257009491282732 + ], + [ + 0.36750007262189, + -0.0250000000003673, + 0.257009489407084 + ], + [ + 0.319999977253856, + -0.145000051870392, + -0.00010773969589934 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389803, + 0.0, + 0.0, + -0.785717559069323 + ], + [ + 0.422660213031969, + -0.543907766701258, + -0.45184769704188, + -0.56688300761248 + ], + [ + -0.0496342733422378, + -0.117306641258491, + -0.697309939637068, + -0.705361211656686 + ], + [ + -0.0399656666431687, + -0.662695786582322, + 0.12250785292734, + -0.737718690224761 + ], + [ + 0.700899927567473, + -0.653736720591245, + -0.0934732082663061, + -0.269500187426501 + ], + [ + -0.258819045101666, + 0.000000000000221714600691946, + -0.965925826289297, + -0.0000000000000245785072976201 + ], + [ + 0.683014145876383, + -0.683011257905332, + -0.183013108421293, + -0.183012295361017 + ], + [ + -0.683014155683937, + -0.683011248097726, + 0.183013071818558, + -0.183012331963945 + ], + [ + 0.999999999000398, + -0.0000409117554736978, + 0.0000180396991783074, + 0.0000000001600760411951 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083157328712 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893312519445 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645320310055 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377870652263 + } + ], + "ctrl": [ + -0.236909978466378, + 1.51825894351703, + -1.52279357026808, + 0.128680437902644, + 1.1542398586463, + -0.258438877833989, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0000000000000687893608749595, + "qpos": [ + -0.236909978466267, + 1.51825894351837, + -1.52279357026999, + 0.128680437902235, + 1.15423985864857, + -0.258438877834074, + 0.0349999999999754, + -0.0349999999999688, + 0.319999977253856, + -0.145000051870392, + -0.00010773969589934, + 0.999999999000398, + -0.0000409117554736978, + 0.0000180396991783074, + 0.0000000001600760411951 + ], + "shoe_position": [ + 0.319999977253856, + -0.145000051870392, + -0.00010773969589934 + ], + "tcp_position": [ + 0.360000000000041, + -0.0600000000000235, + 0.26999999999995 + ], + "tcp_quaternion": [ + 0.258819045101666, + -0.000000000000221714600691946, + 0.965925826289297, + 0.0000000000000245785072976201 + ], + "time": 0.5 + } + }, + { + "compute_ms": 0.623708998318762, + "request": { + "jaw": 0.035, + "sequence": 26, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 10.981, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921788796, + -0.00323661231600944, + 0.407697219259887 + ], + [ + 0.254171566396816, + -0.061369084966736, + 0.452576386923674 + ], + [ + 0.254171566396816, + -0.061369084966736, + 0.452576386923674 + ], + [ + 0.299985000000019, + -0.0600000000000096, + 0.37394902921601 + ], + [ + 0.367500075870808, + -0.0949999999997338, + 0.257009491282685 + ], + [ + 0.367500072622129, + -0.0250000000003643, + 0.257009489407026 + ], + [ + 0.319999977253853, + -0.145000051870399, + -0.00010773923258401 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389758, + 0.0, + 0.0, + -0.785717559069358 + ], + [ + 0.422660213031357, + -0.543907766700822, + -0.451847697042404, + -0.566883007612936 + ], + [ + -0.0496342733415904, + -0.11730664125921, + -0.697309939636947, + -0.705361211656732 + ], + [ + -0.0399656666429746, + -0.66269578658299, + 0.12250785292769, + -0.737718690224114 + ], + [ + 0.700899927567127, + -0.653736720590884, + -0.0934732082673318, + -0.269500187427921 + ], + [ + -0.258819045103382, + -0.000000000000181501124827453, + -0.965925826288838, + 0.000000000000170847176924998 + ], + [ + 0.683014145875919, + -0.683011257905145, + -0.183013108422221, + -0.183012295362516 + ], + [ + -0.68301415568375, + -0.683011248097262, + 0.183013071820056, + -0.183012331964874 + ], + [ + 0.999999999000382, + -0.000040912084791138, + 0.000018039852120142, + 0.000000000160084995270463 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083201596807 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893352934233 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645363771041 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377914139265 + } + ], + "ctrl": [ + -0.236909978466378, + 1.518258943517, + -1.52279357026801, + 0.128680437902649, + 1.15423985864624, + -0.258438877833995, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000248762612552606, + "qpos": [ + -0.236909978466381, + 1.51825894351633, + -1.522793570266, + 0.128680437902779, + 1.15423985864306, + -0.258438877833944, + 0.034999999999982, + -0.0350000000000176, + 0.319999977253853, + -0.145000051870399, + -0.00010773923258401, + 0.999999999000382, + -0.000040912084791138, + 0.000018039852120142, + 0.000000000160084995270463 + ], + "shoe_position": [ + 0.319999977253853, + -0.145000051870399, + -0.00010773923258401 + ], + "tcp_position": [ + 0.360000000000204, + -0.0600000000000605, + 0.269999999999871 + ], + "tcp_quaternion": [ + 0.258819045103382, + 0.000000000000181501124827453, + 0.965925826288837, + -0.000000000000170847176924998 + ], + "time": 0.52 + } + }, + { + "compute_ms": 0.676208001095802, + "request": { + "jaw": 0.035, + "sequence": 27, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 10.889, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921783536, + -0.00323661231588429, + 0.407697219259913 + ], + [ + 0.254171566396366, + -0.061369084966662, + 0.452576386923224 + ], + [ + 0.254171566396366, + -0.061369084966662, + 0.452576386923224 + ], + [ + 0.299984999999827, + -0.0599999999999859, + 0.37394902921571 + ], + [ + 0.367500075870971, + -0.0949999999997844, + 0.257009491282612 + ], + [ + 0.36750007262235, + -0.0250000000004118, + 0.257009489406941 + ], + [ + 0.319999977253851, + -0.145000051870403, + -0.00010773900360541 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389707, + 0.0, + 0.0, + -0.785717559069398 + ], + [ + 0.422660213030783, + -0.543907766700422, + -0.451847697042885, + -0.566883007613364 + ], + [ + -0.0496342733409579, + -0.117306641259925, + -0.697309939636827, + -0.705361211656776 + ], + [ + -0.0399656666427985, + -0.662695786583649, + 0.122507852928031, + -0.737718690223475 + ], + [ + 0.700899927566807, + -0.653736720590549, + -0.093473208268263, + -0.269500187429243 + ], + [ + -0.258819045104964, + -0.000000000000560264133241212, + -0.965925826288414, + 0.000000000000353819725161559 + ], + [ + 0.68301414587549, + -0.683011257904975, + -0.183013108423071, + -0.183012295363902 + ], + [ + -0.68301415568358, + -0.683011248096833, + 0.183013071821442, + -0.183012331965724 + ], + [ + 0.999999999000374, + -0.0000409122557027408, + 0.0000180399318549639, + 0.000000000160089664702358 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083223397336 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893372832535 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645385375296 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377935618666 + } + ], + "ctrl": [ + -0.236909978466379, + 1.51825894351696, + -1.52279357026793, + 0.128680437902655, + 1.15423985864617, + -0.258438877834002, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000435072178573105, + "qpos": [ + -0.23690997846651, + 1.51825894351443, + -1.52279357026218, + 0.12868043790329, + 1.15423985863787, + -0.258438877833851, + 0.0349999999999821, + -0.0350000000000206, + 0.319999977253851, + -0.145000051870403, + -0.00010773900360541, + 0.999999999000374, + -0.0000409122557027408, + 0.0000180399318549639, + 0.000000000160089664702358 + ], + "shoe_position": [ + 0.319999977253851, + -0.145000051870403, + -0.00010773900360541 + ], + "tcp_position": [ + 0.360000000000353, + -0.0600000000001027, + 0.269999999999768 + ], + "tcp_quaternion": [ + 0.258819045104964, + 0.000000000000560264133241212, + 0.965925826288414, + -0.000000000000353819725161559 + ], + "time": 0.54 + } + }, + { + "compute_ms": 0.738125003408641, + "request": { + "jaw": 0.035, + "sequence": 28, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 2.22, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921780212, + -0.00323661231580542, + 0.40769721925993 + ], + [ + 0.254171566396086, + -0.0613690849666218, + 0.452576386922912 + ], + [ + 0.254171566396086, + -0.0613690849666218, + 0.452576386922912 + ], + [ + 0.299984999999708, + -0.0599999999999781, + 0.373949029215492 + ], + [ + 0.367500075871071, + -0.094999999999827, + 0.257009491282534 + ], + [ + 0.367500072622488, + -0.0250000000004783, + 0.257009489406856 + ], + [ + 0.31999997725385, + -0.145000051870405, + -0.00010773889043626 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389667, + 0.0, + 0.0, + -0.78571755906943 + ], + [ + 0.422660213030413, + -0.543907766700174, + -0.451847697043184, + -0.56688300761364 + ], + [ + -0.0496342733405263, + -0.117306641260424, + -0.697309939636743, + -0.705361211656806 + ], + [ + -0.0399656666426923, + -0.662695786584105, + 0.122507852928261, + -0.737718690223033 + ], + [ + 0.700899927566605, + -0.653736720590339, + -0.0934732082688292, + -0.26950018743008 + ], + [ + -0.258819045105948, + -0.000000000000803695988660536, + -0.96592582628815, + 0.000000000000472060715103934 + ], + [ + 0.68301414587522, + -0.683011257904872, + -0.183013108423596, + -0.18301229536477 + ], + [ + -0.683014155683477, + -0.683011248096563, + 0.183013071822311, + -0.183012331966248 + ], + [ + 0.999999999000369, + -0.0000409123442067239, + 0.0000180399733322414, + 0.000000000160092093802641 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083234133484 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.72889338262974 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645396114934 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377946228037 + } + ], + "ctrl": [ + -0.236909978466379, + 1.51825894351692, + -1.52279357026785, + 0.128680437902661, + 1.1542398586461, + -0.258438877834009, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000570536778105986, + "qpos": [ + -0.236909978466613, + 1.51825894351323, + -1.52279357025965, + 0.128680437903615, + 1.15423985863451, + -0.258438877833818, + 0.0349999999999846, + -0.0349999999999942, + 0.31999997725385, + -0.145000051870405, + -0.00010773889043626, + 0.999999999000369, + -0.0000409123442067239, + 0.0000180399733322414, + 0.000000000160092093802641 + ], + "shoe_position": [ + 0.31999997725385, + -0.145000051870405, + -0.00010773889043626 + ], + "tcp_position": [ + 0.360000000000446, + -0.0600000000001375, + 0.269999999999671 + ], + "tcp_quaternion": [ + 0.258819045105948, + 0.000000000000803695988660536, + 0.96592582628815, + -0.000000000000472060715103934 + ], + "time": 0.56 + } + }, + { + "compute_ms": 0.938374985707924, + "request": { + "jaw": 0.035, + "sequence": 29, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 5.3, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921776363, + -0.00323661231571405, + 0.407697219259949 + ], + [ + 0.254171566395761, + -0.0613690849665737, + 0.452576386922552 + ], + [ + 0.254171566395761, + -0.0613690849665737, + 0.452576386922552 + ], + [ + 0.299984999999575, + -0.0599999999999682, + 0.373949029215243 + ], + [ + 0.367500075871201, + -0.0949999999998709, + 0.257009491282455 + ], + [ + 0.367500072622661, + -0.0250000000005384, + 0.257009489406768 + ], + [ + 0.31999997725385, + -0.145000051870405, + -0.00010773883450222 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389622, + 0.0, + 0.0, + -0.785717559069465 + ], + [ + 0.422660213029987, + -0.543907766699886, + -0.451847697043531, + -0.566883007613957 + ], + [ + -0.049634273340027, + -0.117306641260996, + -0.697309939636647, + -0.705361211656841 + ], + [ + -0.0399656666425642, + -0.66269578658463, + 0.122507852928529, + -0.737718690222524 + ], + [ + 0.700899927566365, + -0.65373672059009, + -0.0934732082695111, + -0.269500187431073 + ], + [ + -0.258819045107124, + -0.0000000000010864549048065, + -0.965925826287835, + 0.00000000000061272508504282 + ], + [ + 0.683014145874898, + -0.683011257904748, + -0.183013108424227, + -0.183012295365801 + ], + [ + -0.683014155683354, + -0.683011248096241, + 0.183013071823342, + -0.183012331966879 + ], + [ + 0.999999999000368, + -0.0000409123899444049, + 0.0000180399948649272, + 0.000000000160093354643093 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083239420792 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893387453643 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645401453814 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377951468399 + } + ], + "ctrl": [ + -0.23690997846638, + 1.5182589435169, + -1.5227935702678, + 0.128680437902665, + 1.15423985864605, + -0.258438877834014, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00000000000073311640959883, + "qpos": [ + -0.236909978466725, + 1.51825894351184, + -1.52279357025674, + 0.128680437904, + 1.15423985863054, + -0.258438877833777, + 0.0349999999999819, + -0.0349999999999806, + 0.31999997725385, + -0.145000051870405, + -0.00010773883450222, + 0.999999999000368, + -0.0000409123899444049, + 0.0000180399948649272, + 0.000000000160093354643093 + ], + "shoe_position": [ + 0.31999997725385, + -0.145000051870405, + -0.00010773883450222 + ], + "tcp_position": [ + 0.360000000000566, + -0.0600000000001778, + 0.269999999999569 + ], + "tcp_quaternion": [ + 0.258819045107124, + 0.0000000000010864549048065, + 0.965925826287835, + -0.00000000000061272508504282 + ], + "time": 0.58 + } + }, + { + "compute_ms": 1.13937497371808, + "request": { + "jaw": 0.035, + "sequence": 30, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.312, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921778414, + -0.00323661231576375, + 0.407697219259938 + ], + [ + 0.254171566395946, + -0.0613690849666202, + 0.452576386922655 + ], + [ + 0.254171566395946, + -0.0613690849666202, + 0.452576386922655 + ], + [ + 0.299984999999651, + -0.0599999999999973, + 0.373949029215282 + ], + [ + 0.367500075871125, + -0.0949999999998852, + 0.257009491282398 + ], + [ + 0.367500072622564, + -0.0250000000005706, + 0.257009489406715 + ], + [ + 0.319999977253849, + -0.145000051870406, + -0.00010773880685578 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.61858541638962, + 0.0, + 0.0, + -0.785717559069467 + ], + [ + 0.422660213030196, + -0.543907766700055, + -0.451847697043328, + -0.566883007613802 + ], + [ + -0.0496342733401895, + -0.11730664126084, + -0.697309939636673, + -0.70536121165683 + ], + [ + -0.0399656666426518, + -0.662695786584477, + 0.122507852928431, + -0.737718690222673 + ], + [ + 0.700899927566491, + -0.653736720590232, + -0.09347320826908, + -0.269500187430551 + ], + [ + -0.258819045106454, + -0.000000000000949901071433902, + -0.965925826288014, + 0.000000000000550477492919594 + ], + [ + 0.683014145875069, + -0.683011257904831, + -0.18301310842385, + -0.183012295365231 + ], + [ + -0.683014155683437, + -0.683011248096412, + 0.183013071822772, + -0.183012331966502 + ], + [ + 0.999999999000366, + -0.0000409124135372483, + 0.00001804000602293, + 0.000000000160094007766644 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083242024697 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893389828868 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645404107932 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377954056829 + } + ], + "ctrl": [ + -0.236909978466381, + 1.51825894351687, + -1.52279357026775, + 0.12868043790267, + 1.154239858646, + -0.25843887783402, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000712008357134017, + "qpos": [ + -0.236909978466732, + 1.51825894351258, + -1.52279357025793, + 0.128680437903791, + 1.15423985863239, + -0.258438877833877, + 0.0349999999999929, + -0.0349999999999517, + 0.319999977253849, + -0.145000051870406, + -0.00010773880685578, + 0.999999999000366, + -0.0000409124135372483, + 0.00001804000602293, + 0.000000000160094007766644 + ], + "shoe_position": [ + 0.319999977253849, + -0.145000051870406, + -0.00010773880685578 + ], + "tcp_position": [ + 0.360000000000497, + -0.0600000000001839, + 0.269999999999525 + ], + "tcp_quaternion": [ + 0.258819045106454, + 0.000000000000949901071433902, + 0.965925826288014, + -0.000000000000550477492919594 + ], + "time": 0.6 + } + }, + { + "compute_ms": 0.953666982240975, + "request": { + "jaw": 0.035, + "sequence": 31, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 11.496, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921785585, + -0.00323661231593505, + 0.407697219259903 + ], + [ + 0.254171566396566, + -0.0613690849667349, + 0.45257638692321 + ], + [ + 0.254171566396566, + -0.0613690849667349, + 0.45257638692321 + ], + [ + 0.299984999999911, + -0.0600000000000449, + 0.373949029215629 + ], + [ + 0.367500075870891, + -0.094999999999836, + 0.25700949128243 + ], + [ + 0.367500072622253, + -0.0250000000005656, + 0.257009489406761 + ], + [ + 0.319999977253849, + -0.145000051870406, + -0.00010773879319053 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389671, + 0.0, + 0.0, + -0.785717559069426 + ], + [ + 0.422660213030967, + -0.54390776670061, + -0.451847697042659, + -0.566883007613227 + ], + [ + -0.0496342733409852, + -0.117306641259962, + -0.697309939636821, + -0.705361211656774 + ], + [ + -0.0399656666429062, + -0.662695786583661, + 0.122507852927995, + -0.737718690223464 + ], + [ + 0.700899927566929, + -0.653736720590698, + -0.093473208267754, + -0.26950018742874 + ], + [ + -0.258819045104252, + -0.000000000000442201956084979, + -0.965925826288605, + 0.000000000000306561164594117 + ], + [ + 0.683014145875659, + -0.683011257905076, + -0.183013108422652, + -0.183012295363315 + ], + [ + -0.683014155683681, + -0.683011248097002, + 0.183013071820856, + -0.183012331965304 + ], + [ + 0.999999999000366, + -0.0000409124256864251, + 0.0000180400117951171, + 0.000000000160094345469646 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.80008324330709 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893390998427 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645405427408 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377955335375 + } + ], + "ctrl": [ + -0.236909978466381, + 1.51825894351688, + -1.52279357026777, + 0.128680437902668, + 1.15423985864603, + -0.258438877834018, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000512640339224557, + "qpos": [ + -0.236909978466601, + 1.51825894351517, + -1.52279357026291, + 0.128680437903089, + 1.15423985863933, + -0.258438877834054, + 0.0349999999999953, + -0.0349999999999052, + 0.319999977253849, + -0.145000051870406, + -0.00010773879319053, + 0.999999999000366, + -0.0000409124256864251, + 0.0000180400117951171, + 0.000000000160094345469646 + ], + "shoe_position": [ + 0.319999977253849, + -0.145000051870406, + -0.00010773879319053 + ], + "tcp_position": [ + 0.360000000000284, + -0.0600000000001435, + 0.269999999999598 + ], + "tcp_quaternion": [ + 0.258819045104252, + 0.000000000000442201956084979, + 0.965925826288605, + -0.000000000000306561164594117 + ], + "time": 0.62 + } + }, + { + "compute_ms": 1.01529201492667, + "request": { + "jaw": 0.035, + "sequence": 32, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.943, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.013409592179029, + -0.00323661231604702, + 0.407697219259879 + ], + [ + 0.25417156639697, + -0.0613690849668007, + 0.452576386923607 + ], + [ + 0.25417156639697, + -0.0613690849668007, + 0.452576386923607 + ], + [ + 0.299985000000087, + -0.0600000000000665, + 0.373949029215895 + ], + [ + 0.367500075870756, + -0.0949999999997835, + 0.257009491282496 + ], + [ + 0.367500072622066, + -0.025000000000538, + 0.257009489406837 + ], + [ + 0.3199999772538, + -0.145000051870471, + -0.00010773878609364 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389717, + 0.0, + 0.0, + -0.78571755906939 + ], + [ + 0.422660213031482, + -0.543907766700968, + -0.451847697042229, + -0.566883007612843 + ], + [ + -0.049634273341543, + -0.117306641259329, + -0.697309939636927, + -0.705361211656735 + ], + [ + -0.0399656666430608, + -0.662695786583079, + 0.122507852927692, + -0.737718690224029 + ], + [ + 0.700899927567211, + -0.653736720590993, + -0.0934732082669356, + -0.269500187427574 + ], + [ + -0.258819045102859, + -0.000000000000105779837480458, + -0.965925826288978, + 0.000000000000146023263512015 + ], + [ + 0.683014145876036, + -0.683011257905227, + -0.183013108421905, + -0.183012295362092 + ], + [ + -0.683014155683832, + -0.683011248097379, + 0.183013071819633, + -0.183012331964557 + ], + [ + 0.999999999000366, + -0.0000409124328043708, + 0.0000180400154408676, + 0.000000000160091907269549 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083243736729 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893391302279 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.67164540576316 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377955699221 + } + ], + "ctrl": [ + -0.23690997846638, + 1.51825894351693, + -1.52279357026787, + 0.12868043790266, + 1.15423985864612, + -0.258438877834009, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000364472464581732, + "qpos": [ + -0.236909978466484, + 1.51825894351687, + -1.52279357026631, + 0.128680437902636, + 1.15423985864391, + -0.258438877834137, + 0.0349999999999865, + -0.034999999999889, + 0.3199999772538, + -0.145000051870471, + -0.00010773878609364, + 0.999999999000366, + -0.0000409124328043708, + 0.0000180400154408676, + 0.000000000160091907269549 + ], + "shoe_position": [ + 0.3199999772538, + -0.145000051870471, + -0.00010773878609364 + ], + "tcp_position": [ + 0.36000000000016, + -0.0600000000001069, + 0.26999999999969 + ], + "tcp_quaternion": [ + 0.258819045102859, + 0.000000000000105779837480458, + 0.965925826288978, + -0.000000000000146023263512015 + ], + "time": 0.64 + } + }, + { + "compute_ms": 0.772416999097914, + "request": { + "jaw": 0.035, + "sequence": 33, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 2.224, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134095921795601, + -0.00323661231617328, + 0.407697219259853 + ], + [ + 0.254171566397423, + -0.061369084966873, + 0.452576386924069 + ], + [ + 0.254171566397423, + -0.061369084966873, + 0.452576386924069 + ], + [ + 0.299985000000279, + -0.060000000000088, + 0.373949029216204 + ], + [ + 0.36750007587059, + -0.0949999999997292, + 0.257009491282577 + ], + [ + 0.367500072621842, + -0.0250000000004878, + 0.257009489406929 + ], + [ + 0.319999977253607, + -0.1450000518708, + -0.0001077387824627 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389772, + 0.0, + 0.0, + -0.785717559069347 + ], + [ + 0.422660213032064, + -0.54390776670137, + -0.451847697041745, + -0.566883007612409 + ], + [ + -0.0496342733421885, + -0.117306641258594, + -0.697309939637051, + -0.70536121165669 + ], + [ + -0.0399656666432382, + -0.662695786582404, + 0.122507852927341, + -0.737718690224684 + ], + [ + 0.700899927567534, + -0.653736720591333, + -0.0934732082659989, + -0.269500187426234 + ], + [ + -0.258819045101261, + 0.000000000000277206018401804, + -0.965925826289406, + -0.000000000000039124300659497 + ], + [ + 0.68301414587647, + -0.683011257905399, + -0.183013108421045, + -0.183012295360691 + ], + [ + -0.683014155684004, + -0.683011248097813, + 0.183013071818232, + -0.183012331963698 + ], + [ + 0.999999999000366, + -0.0000409124386706141, + 0.0000180400182182914, + 0.000000000160110868992471 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244149817 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893391575464 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406012315 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956004772 + } + ], + "ctrl": [ + -0.236909978466379, + 1.51825894351696, + -1.52279357026794, + 0.128680437902655, + 1.15423985864618, + -0.258438877834003, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.000000000000207813621994814, + "qpos": [ + -0.236909978466346, + 1.51825894351879, + -1.52279357027019, + 0.128680437902115, + 1.15423985864919, + -0.258438877834219, + 0.0349999999999858, + -0.0349999999998856, + 0.319999977253607, + -0.1450000518708, + -0.0001077387824627, + 0.999999999000366, + -0.0000409124386706141, + 0.0000180400182182914, + 0.000000000160110868992471 + ], + "shoe_position": [ + 0.319999977253607, + -0.1450000518708, + -0.0001077387824627 + ], + "tcp_position": [ + 0.360000000000008, + -0.0600000000000617, + 0.269999999999802 + ], + "tcp_quaternion": [ + 0.258819045101261, + -0.000000000000277206018401804, + 0.965925826289406, + 0.000000000000039124300659497 + ], + "time": 0.66 + } + }, + { + "compute_ms": 0.81887497799471, + "request": { + "jaw": 0.035, + "sequence": 34, + "target": [ + 0.36, + -0.06, + 0.27 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 13.728, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.013409592179885, + -0.00323661231625013, + 0.407697219259837 + ], + [ + 0.254171566397696, + -0.06136908496691, + 0.45257638692438 + ], + [ + 0.254171566397696, + -0.06136908496691, + 0.45257638692438 + ], + [ + 0.299985000000395, + -0.060000000000093, + 0.373949029216424 + ], + [ + 0.36750007587049, + -0.0949999999996842, + 0.257009491282658 + ], + [ + 0.367500072621705, + -0.0250000000004319, + 0.257009489407018 + ], + [ + 0.319999977253461, + -0.145000051871059, + -0.00010773878086435 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.618585416389814, + 0.0, + 0.0, + -0.785717559069314 + ], + [ + 0.422660213032427, + -0.54390776670161, + -0.451847697041455, + -0.566883007612138 + ], + [ + -0.049634273342617, + -0.117306641258096, + -0.697309939637135, + -0.705361211656659 + ], + [ + -0.0399656666433406, + -0.66269578658195, + 0.122507852927111, + -0.737718690225124 + ], + [ + 0.700899927567733, + -0.653736720591539, + -0.0934732082654478, + -0.269500187425411 + ], + [ + -0.258819045100297, + 0.000000000000515583602169362, + -0.965925826289664, + -0.000000000000156489497265906 + ], + [ + 0.683014145876735, + -0.683011257905498, + -0.183013108420532, + -0.183012295359841 + ], + [ + -0.683014155684103, + -0.683011248098078, + 0.183013071817381, + -0.183012331963185 + ], + [ + 0.999999999000365, + -0.0000409124409932909, + 0.0000180400191908025, + 0.000000000160128635223741 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244420282 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893391968392 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406557722 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956398074 + } + ], + "ctrl": [ + -0.236909978466379, + 1.518258943517, + -1.52279357026801, + 0.128680437902649, + 1.15423985864624, + -0.258438877833995, + 0.035 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00000000000013144378077744, + "qpos": [ + -0.236909978466238, + 1.51825894351996, + -1.52279357027269, + 0.128680437901795, + 1.15423985865251, + -0.258438877834241, + 0.0349999999999831, + -0.0349999999998993, + 0.319999977253461, + -0.145000051871059, + -0.00010773878086435, + 0.999999999000365, + -0.0000409124409932909, + 0.0000180400191908025, + 0.000000000160128635223741 + ], + "shoe_position": [ + 0.319999977253461, + -0.145000051871059, + -0.00010773878086435 + ], + "tcp_position": [ + 0.359999999999916, + -0.0600000000000247, + 0.269999999999902 + ], + "tcp_quaternion": [ + 0.258819045100297, + -0.000000000000515583602169362, + 0.965925826289664, + 0.000000000000156489497265906 + ], + "time": 0.68 + } + }, + { + "compute_ms": 1.32737500825897, + "request": { + "jaw": 0.025, + "sequence": 35, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.491, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0134613517338132, + -0.00323221159000747, + 0.407694826601637 + ], + [ + 0.254330012146142, + -0.061088073018406, + 0.452358458625333 + ], + [ + 0.254330012146142, + -0.061088073018406, + 0.452358458625333 + ], + [ + 0.300086890979128, + -0.0597926277814518, + 0.373696928425676 + ], + [ + 0.367552753755262, + -0.0948950045110234, + 0.256761975070478 + ], + [ + 0.367486985520675, + -0.0250019171759754, + 0.256658275272236 + ], + [ + 0.319999977253109, + -0.145000051871998, + -0.00010773878012471 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.619051444032466, + 0.0, + 0.0, + -0.785350437474455 + ], + [ + 0.423045500295219, + -0.543678748899564, + -0.452123233195337, + -0.566595538881103 + ], + [ + -0.0489088989843212, + -0.117196333362073, + -0.69732848747666, + -0.705411879401064 + ], + [ + -0.0401155654382611, + -0.663184119589993, + 0.121630435694017, + -0.737416844156748 + ], + [ + 0.700572591025842, + -0.654311572619624, + -0.0937455728363292, + -0.268860890076932 + ], + [ + -0.258479550454247, + 0.0006462275530578, + -0.966016330265922, + 0.00059501805098013 + ], + [ + 0.682657401575657, + -0.683495995917815, + -0.183229999850583, + -0.182315284035764 + ], + [ + -0.683498892182878, + -0.682654501740433, + 0.182316061413504, + -0.183229226350403 + ], + [ + 0.999999999000365, + -0.0000409124468187315, + 0.0000180400203640472, + 0.00000000016037939734039 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244564704 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.72889339205229 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.67164540659436 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956431515 + } + ], + "ctrl": [ + -0.206909978466379, + 1.548258943517, + -1.49279357026801, + 0.0986804379026495, + 1.12423985864625, + -0.228438877833995, + 0.034 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.040357914455084, + "qpos": [ + -0.235723454063706, + 1.51843208225051, + -1.52209656164482, + 0.127044342534972, + 1.15369723307098, + -0.258406594818924, + 0.0349923108025961, + -0.0349008844056744, + 0.319999977253109, + -0.145000051871998, + -0.00010773878012471, + 0.999999999000365, + -0.0000409124468187315, + 0.0000180400203640472, + 0.00000000016037939734039 + ], + "shoe_position": [ + 0.319999977253109, + -0.145000051871998, + -0.00010773878012471 + ], + "tcp_position": [ + 0.360028877041163, + -0.0598905147782793, + 0.269705824839482 + ], + "tcp_quaternion": [ + 0.258479550454247, + -0.0006462275530578, + 0.966016330265922, + -0.00059501805098013 + ], + "time": 0.700000000000001 + } + }, + { + "compute_ms": 0.896209006896242, + "request": { + "jaw": 0.025, + "sequence": 36, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 2.215, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0136466925093648, + -0.00319094008386241, + 0.40768646817321 + ], + [ + 0.255097208679839, + -0.0596686600063889, + 0.450950398754747 + ], + [ + 0.255097208679839, + -0.0596686600063889, + 0.450950398754747 + ], + [ + 0.300662270420221, + -0.0586187109708099, + 0.372173947781961 + ], + [ + 0.367961131046186, + -0.0939565224282825, + 0.255252989834499 + ], + [ + 0.367679528992924, + -0.0245247639040498, + 0.254808161858482 + ], + [ + 0.319999977252994, + -0.145000051872409, + -0.00010773877989912 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.621385952032217, + 0.0, + 0.0, + -0.783504625778952 + ], + [ + 0.424899446159385, + -0.542466906148825, + -0.453576515852972, + -0.56520656458807 + ], + [ + -0.044816841804132, + -0.117090119407932, + -0.697346329980331, + -0.705683676083487 + ], + [ + -0.0401656356142205, + -0.665971671466772, + 0.117905344990586, + -0.735504441959469 + ], + [ + 0.699391562660362, + -0.656468223298615, + -0.0952833824224544, + -0.266124014160301 + ], + [ + -0.257337309712902, + 0.00278386605752009, + -0.966314201473275, + 0.00257354824426437 + ], + [ + 0.68146899960559, + -0.685105657243751, + -0.183933847407195, + -0.179996057643358 + ], + [ + -0.685108548466835, + -0.681466092941159, + 0.179996838007292, + -0.183933083746658 + ], + [ + 0.999999999000365, + -0.0000409124465839198, + 0.0000180400198802246, + 0.00000000016058347399303 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244643103 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392100345 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406575895 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956454175 + } + ], + "ctrl": [ + -0.176909978466379, + 1.55149500131963, + -1.46279357026802, + 0.0769768709865763, + 1.09423985864625, + -0.198438877833995, + 0.0329999999999999 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0386630287062548, + "qpos": [ + -0.229771326728613, + 1.51903213996727, + -1.51704911917714, + 0.120674447191962, + 1.14895212053166, + -0.256443025927992, + 0.0348606816521935, + -0.0345730728444401, + 0.319999977252994, + -0.145000051872409, + -0.00010773877989912, + 0.999999999000365, + -0.0000409124465839198, + 0.0000180400198802246, + 0.00000000016058347399303 + ], + "shoe_position": [ + 0.319999977252994, + -0.145000051872409, + -0.00010773877989912 + ], + "tcp_position": [ + 0.360359397697849, + -0.0590437284661706, + 0.26804290891781 + ], + "tcp_quaternion": [ + 0.257337309712902, + -0.00278386605752009, + 0.966314201473276, + -0.00257354824426437 + ], + "time": 0.720000000000001 + } + }, + { + "compute_ms": 0.880249979672953, + "request": { + "jaw": 0.025, + "sequence": 37, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 6.137, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0140786017851163, + -0.00312727518248981, + 0.40766614234522 + ], + [ + 0.256604920441605, + -0.0570194945518654, + 0.44811939618684 + ], + [ + 0.256604920441605, + -0.0570194945518654, + 0.44811939618684 + ], + [ + 0.301787650008257, + -0.0560449433007312, + 0.369122069200317 + ], + [ + 0.368711374383438, + -0.0911775396280798, + 0.252019260514446 + ], + [ + 0.36808394685638, + -0.0224313866905722, + 0.251314710406695 + ], + [ + 0.319999977252788, + -0.14500005187331, + -0.00010773877979111 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.62573255860033, + 0.0, + 0.0, + -0.780037669031109 + ], + [ + 0.428437566550038, + -0.540262898979215, + -0.456199517740401, + -0.562529333962845 + ], + [ + -0.036895087645047, + -0.117161258532171, + -0.697334381411929, + -0.706142161683938 + ], + [ + -0.0386135462021499, + -0.671140274887247, + 0.112403995914488, + -0.731741120326322 + ], + [ + 0.698755816406103, + -0.658887506024481, + -0.0976314049102792, + -0.260913150720167 + ], + [ + -0.255064131240033, + 0.00571904053932041, + -0.966899794853705, + 0.00379054639071012 + ], + [ + 0.681022531705212, + -0.686380282784537, + -0.184401941449732, + -0.176313194923159 + ], + [ + -0.686383172113405, + -0.681019619633006, + 0.176313977273082, + -0.18440119341426 + ], + [ + 0.999999999000365, + -0.0000409124492223767, + 0.000018040019809096, + 0.000000000161144006911726 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244586826 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392109003 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406730943 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956525909 + } + ], + "ctrl": [ + -0.146909978466379, + 1.55253668472325, + -1.45896171330553, + 0.0769010773502466, + 1.06423985864625, + -0.168438877833995, + 0.0319999999999999 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0348596917661799, + "qpos": [ + -0.218651460293619, + 1.5204616968028, + -1.50715477972742, + 0.113224545685322, + 1.14074093540634, + -0.251215658147513, + 0.0345399990770099, + -0.0342126270542754, + 0.319999977252788, + -0.14500005187331, + -0.00010773877979111, + 0.999999999000365, + -0.0000409124492223767, + 0.000018040019809096, + 0.000000000161144006911726 + ], + "shoe_position": [ + 0.319999977252788, + -0.14500005187331, + -0.00010773877979111 + ], + "tcp_position": [ + 0.360996800866485, + -0.0565746012231259, + 0.264713272553996 + ], + "tcp_quaternion": [ + 0.255064131240033, + -0.00571904053932041, + 0.966899794853705, + -0.00379054639071012 + ], + "time": 0.740000000000001 + } + }, + { + "compute_ms": 0.868999981321394, + "request": { + "jaw": 0.025, + "sequence": 38, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 17.765, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0152432366802733, + -0.00312995767877938, + 0.407606125331902 + ], + [ + 0.259132762241493, + -0.0532272600986844, + 0.444592770324004 + ], + [ + 0.259132762241493, + -0.0532272600986844, + 0.444592770324004 + ], + [ + 0.303710303960251, + -0.0519822760634501, + 0.365256150397804 + ], + [ + 0.370034684428965, + -0.0862891707913096, + 0.247693861259086 + ], + [ + 0.368868665015488, + -0.0183505965337139, + 0.246927647572954 + ], + [ + 0.319999977252696, + -0.145000051873966, + -0.00010773877977002 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.631978831665463, + 0.0, + 0.0, + -0.774985649110199 + ], + [ + 0.434061063691005, + -0.537501323548445, + -0.459450026862193, + -0.558201570212261 + ], + [ + -0.0262973331507003, + -0.116418802013818, + -0.69745871744331, + -0.706616197287581 + ], + [ + -0.0348781762518547, + -0.677394194871094, + 0.105614248394813, + -0.727163150958769 + ], + [ + 0.699385651362124, + -0.660846229552338, + -0.100547862059534, + -0.253045646061127 + ], + [ + -0.25148791257844, + 0.00972224523328004, + -0.967805984866291, + 0.00329900463044557 + ], + [ + 0.682010877933955, + -0.686673481135355, + -0.184703854826033, + -0.17095373262264 + ], + [ + -0.68667637465742, + -0.682007964617804, + 0.170954516253522, + -0.18470312952884 + ], + [ + 0.999999999000365, + -0.0000409124495164298, + 0.0000180400193378794, + 0.000000000161902083643062 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244649823 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.7288933921615 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406673046 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956484285 + } + ], + "ctrl": [ + -0.12848160612328, + 1.55436568137632, + -1.46107452308925, + 0.0771350158631804, + 1.04507037020467, + -0.15316369526667, + 0.0309999999999999 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0291683132607112, + "qpos": [ + -0.202584204200117, + 1.52446509255189, + -1.4972201425598, + 0.106742427263375, + 1.13299056140591, + -0.243380375673666, + 0.0341121431950636, + -0.0338407563525156, + 0.319999977252696, + -0.145000051873966, + -0.00010773877977002, + 0.999999999000365, + -0.0000409124495164298, + 0.0000180400193378794, + 0.000000000161902083643062 + ], + "shoe_position": [ + 0.319999977252696, + -0.145000051873966, + -0.00010773877977002 + ], + "tcp_position": [ + 0.362146568730367, + -0.052161785553483, + 0.260411638686127 + ], + "tcp_quaternion": [ + 0.25148791257844, + -0.00972224523328004, + 0.967805984866291, + -0.00329900463044557 + ], + "time": 0.760000000000001 + } + }, + { + "compute_ms": 0.845542002934963, + "request": { + "jaw": 0.025, + "sequence": 39, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.13, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0170640545262688, + -0.00318535778086486, + 0.407502145888098 + ], + [ + 0.262319538625005, + -0.0489838563315082, + 0.440850269463514 + ], + [ + 0.262319538625005, + -0.0489838563315082, + 0.440850269463514 + ], + [ + 0.306194665736626, + -0.0471590622340944, + 0.361134211986421 + ], + [ + 0.371854582320255, + -0.0800849468170678, + 0.242955557361968 + ], + [ + 0.369997979615227, + -0.0130505920724261, + 0.242309817853847 + ], + [ + 0.31999997725263, + -0.145000051874475, + -0.00010773877977298 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.638920421988263, + 0.0, + 0.0, + -0.769272834803322 + ], + [ + 0.4408102685274, + -0.534812870274988, + -0.462576689629113, + -0.552887246335817 + ], + [ + -0.0147840812694797, + -0.115239247995952, + -0.69765458195394, + -0.706950798104803 + ], + [ + -0.0295320417671374, + -0.683747099686709, + 0.0989753592724396, + -0.72237223121876 + ], + [ + 0.701212514412907, + -0.661804392442047, + -0.103491251897307, + -0.244142410399891 + ], + [ + -0.247385855214474, + 0.0146045305175473, + -0.968806176899188, + 0.00124013311537779 + ], + [ + 0.684173960909993, + -0.685924876935589, + -0.185255545860788, + -0.164600841861302 + ], + [ + -0.685927779634848, + -0.684171050769883, + 0.164601627832868, + -0.185254847516633 + ], + [ + 0.999999999000365, + -0.0000409124482909426, + 0.0000180400189408572, + 0.000000000162526490717192 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244565614 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392105937 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406762131 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956561591 + } + ], + "ctrl": [ + -0.129692965873424, + 1.55646328332012, + -1.46359091835729, + 0.0777987281364722, + 1.04594837401075, + -0.153489525341649, + 0.0299999999999999 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0226989549691481, + "qpos": [ + -0.184603940812845, + 1.53078215526878, + -1.48893890014988, + 0.102899686312459, + 1.12627471843458, + -0.235800416344547, + 0.0335915695084482, + -0.0334715997368841, + 0.31999997725263, + -0.145000051874475, + -0.00010773877977298, + 0.999999999000365, + -0.0000409124482909426, + 0.0000180400189408572, + 0.000000000162526490717192 + ], + "shoe_position": [ + 0.31999997725263, + -0.145000051874475, + -0.00010773877977298 + ], + "tcp_position": [ + 0.363733940441084, + -0.0465801561878193, + 0.255796195894061 + ], + "tcp_quaternion": [ + 0.247385855214474, + -0.0146045305175473, + 0.968806176899188, + -0.00124013311537779 + ], + "time": 0.780000000000001 + } + }, + { + "compute_ms": 1.06812501326203, + "request": { + "jaw": 0.025, + "sequence": 40, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.562, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0192099238852189, + -0.0032581241564972, + 0.407364489568063 + ], + [ + 0.265625299245228, + -0.0450664029217339, + 0.437220525957281 + ], + [ + 0.265625299245228, + -0.0450664029217339, + 0.437220525957281 + ], + [ + 0.308767928964618, + -0.0425858448634866, + 0.357123292516511 + ], + [ + 0.373694871116858, + -0.0739606078044331, + 0.238281255230811 + ], + [ + 0.371188051051221, + -0.00795257772165693, + 0.237837921015747 + ], + [ + 0.319999977252561, + -0.145000051875505, + -0.00010773877976253 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.645262798334005, + 0.0, + 0.0, + -0.763960680327311 + ], + [ + 0.447418179481241, + -0.532708715425001, + -0.46499830592191, + -0.547553625382658 + ], + [ + -0.00399106039946396, + -0.11434535228356, + -0.697801648329343, + -0.707094103664348 + ], + [ + -0.0241167050345846, + -0.689628403883043, + 0.0933041945425154, + -0.717722353265365 + ], + [ + 0.703426758297156, + -0.662180713256736, + -0.105744164632088, + -0.235638855770048 + ], + [ + -0.243146387923455, + 0.0192246133094454, + -0.969798122941616, + -0.0013597874089114 + ], + [ + 0.686713791697256, + -0.68478786171983, + -0.185524668441208, + -0.158336193378966 + ], + [ + -0.684790775194693, + -0.686710886381072, + 0.158336980492379, + -0.185523996675714 + ], + [ + 0.999999999000364, + -0.0000409124512429281, + 0.0000180400187426462, + 0.000000000164798971506518 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244640701 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392163765 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406696859 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956493889 + } + ], + "ctrl": [ + -0.130987088613108, + 1.5582183911324, + -1.46583465369685, + 0.0785756772314179, + 1.04664990417119, + -0.154303627857724, + 0.0289999999999999 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0170699571643795, + "qpos": [ + -0.168057628440404, + 1.53825469462721, + -1.48242743061978, + 0.1008938559334, + 1.12078446719144, + -0.229306995445775, + 0.0330177931171356, + -0.0330393089049404, + 0.319999977252561, + -0.145000051875505, + -0.00010773877976253, + 0.999999999000364, + -0.0000409124512429281, + 0.0000180400187426462, + 0.000000000164798971506518 + ], + "shoe_position": [ + 0.319999977252561, + -0.145000051875505, + -0.00010773877976253 + ], + "tcp_position": [ + 0.365368500183831, + -0.04114713778169, + 0.251286123433095 + ], + "tcp_quaternion": [ + 0.243146387923455, + -0.0192246133094454, + 0.969798122941616, + 0.0013597874089114 + ], + "time": 0.800000000000001 + } + }, + { + "compute_ms": 0.826000003144145, + "request": { + "jaw": 0.025, + "sequence": 41, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 2.167, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0213531995985562, + -0.00332548450666127, + 0.407210804677972 + ], + [ + 0.268661884528638, + -0.0418538291406568, + 0.433928463892765 + ], + [ + 0.268661884528638, + -0.0418538291406568, + 0.433928463892765 + ], + [ + 0.311120712421153, + -0.0388132651448533, + 0.353485879543236 + ], + [ + 0.375298595247255, + -0.0687209300063274, + 0.234033714855507 + ], + [ + 0.372306614406947, + -0.00390341804814651, + 0.233790674480803 + ], + [ + 0.319999977252543, + -0.145000051875793, + -0.00010773877978166 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.650411356330452, + 0.0, + 0.0, + -0.759582166428611 + ], + [ + 0.45314184447067, + -0.531302507746911, + -0.46660437767111, + -0.542826370757463 + ], + [ + 0.00522417956102253, + -0.114007017871321, + -0.697857005321354, + -0.707086068274517 + ], + [ + -0.0196035098256916, + -0.694755163443072, + 0.08876963269993, + -0.713478042817033 + ], + [ + 0.705377792822544, + -0.662412455189695, + -0.107211170653644, + -0.228380545339204 + ], + [ + -0.239207938121154, + 0.0228398228071789, + -0.970692650391762, + -0.00369909575162691 + ], + [ + 0.689000456754579, + -0.683766242359494, + -0.185296091760674, + -0.152994950177385 + ], + [ + -0.683769165535868, + -0.68899755577274, + 0.152995736321078, + -0.185295442656166 + ], + [ + 0.999999999000364, + -0.000040912447807947, + 0.000018040018449738, + 0.000000000165445918159946 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244550892 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392096317 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406772984 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956579742 + } + ], + "ctrl": [ + -0.1320488022856, + 1.55932957898952, + -1.46743609307944, + 0.0791711901827281, + 1.04722804632041, + -0.155109950437683, + 0.0279999999999999 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0134405676631838, + "qpos": [ + -0.154540349529895, + 1.54573417809178, + -1.47735931183433, + 0.0996166849114629, + 1.1161846662448, + -0.2237631790426, + 0.0323875084179181, + -0.032499476983603, + 0.319999977252543, + -0.145000051875793, + -0.00010773877978166, + 0.999999999000364, + -0.000040912447807947, + 0.000018040018449738, + 0.000000000165445918159946 + ], + "shoe_position": [ + 0.319999977252543, + -0.145000051875793, + -0.00010773877978166 + ], + "tcp_position": [ + 0.366841735377132, + -0.0366397254205448, + 0.247195502623187 + ], + "tcp_quaternion": [ + 0.239207938121154, + -0.0228398228071789, + 0.970692650391762, + 0.00369909575162691 + ], + "time": 0.820000000000001 + } + }, + { + "compute_ms": 0.783625000622123, + "request": { + "jaw": 0.025, + "sequence": 42, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 12.38, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0232618120720324, + -0.00338577290252418, + 0.407060247336684 + ], + [ + 0.271207972951826, + -0.0394866503508724, + 0.431128488826893 + ], + [ + 0.271207972951826, + -0.0394866503508724, + 0.431128488826893 + ], + [ + 0.313091877348246, + -0.0360429228880373, + 0.350401258192347 + ], + [ + 0.376573025769287, + -0.064657359423297, + 0.230446309713816 + ], + [ + 0.373302088167437, + -0.00118978214406859, + 0.23036849777562 + ], + [ + 0.319999977252519, + -0.14500005187684, + -0.00010773877977308 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.65418770461541, + 0.0, + 0.0, + -0.756332233300962 + ], + [ + 0.457642021070006, + -0.530534099132763, + -0.46747788146327, + -0.539037828497185 + ], + [ + 0.0124869848504474, + -0.114221608648515, + -0.697821914328968, + -0.706995102677059 + ], + [ + -0.0163243507383858, + -0.698969839738705, + 0.085411964113321, + -0.709844683782955 + ], + [ + 0.706819040641112, + -0.662659687586375, + -0.107996093449441, + -0.222768548127344 + ], + [ + -0.235897924469626, + 0.0251604103628882, + -0.971436614832906, + -0.00547962984853443 + ], + [ + 0.690785545253818, + -0.683033273033301, + -0.184596453460765, + -0.149013515385379 + ], + [ + -0.683036203783175, + -0.690782647381689, + 0.149014298560792, + -0.184595821248068 + ], + [ + 0.999999999000364, + -0.0000409124504592543, + 0.0000180400183386767, + 0.000000000169476773959738 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244607001 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392139733 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406725673 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956526317 + } + ], + "ctrl": [ + -0.132770396379636, + 1.55986642875463, + -1.46840341254127, + 0.079473189614099, + 1.04771126454585, + -0.155644648970402, + 0.0269999999999999 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0121100237982777, + "qpos": [ + -0.144575827855159, + 1.55240816113012, + -1.47345375846215, + 0.0986043366336465, + 1.11225988419361, + -0.219011857270632, + 0.0316969183085195, + -0.0318549381022924, + 0.319999977252519, + -0.14500005187684, + -0.00010773877977308, + 0.999999999000364, + -0.0000409124504592543, + 0.0000180400183386767, + 0.000000000169476773959738 + ], + "shoe_position": [ + 0.319999977252519, + -0.14500005187684, + -0.00010773877977308 + ], + "tcp_position": [ + 0.368070901418675, + -0.0333402309869764, + 0.243737284570739 + ], + "tcp_quaternion": [ + 0.235897924469626, + -0.0251604103628882, + 0.971436614832906, + 0.00547962984853443 + ], + "time": 0.840000000000001 + } + }, + { + "compute_ms": 0.968125008512288, + "request": { + "jaw": 0.025, + "sequence": 43, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 2.157, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0248024553504624, + -0.00344300089212336, + 0.406929187350376 + ], + [ + 0.273171486674248, + -0.037932222470847, + 0.428910319490876 + ], + [ + 0.273171486674248, + -0.037932222470847, + 0.428910319490876 + ], + [ + 0.314626008944928, + -0.0342448329661234, + 0.347972490176024 + ], + [ + 0.377524235675962, + -0.0617514527683608, + 0.227646418551572 + ], + [ + 0.374167678622547, + 0.00023187021832465, + 0.227690032271541 + ], + [ + 0.319999977252516, + -0.145000051877006, + -0.0001077387797929 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.656681271900241, + 0.0, + 0.0, + -0.754168222040336 + ], + [ + 0.460868674456368, + -0.530252577822024, + -0.467797182241512, + -0.536281702936834 + ], + [ + 0.0177642390674359, + -0.114822825639777, + -0.697723239337846, + -0.706882190899131 + ], + [ + -0.0142496771017298, + -0.702215866697199, + 0.0831272125879928, + -0.706950981178008 + ], + [ + 0.707711597843653, + -0.662953284016673, + -0.108316332993708, + -0.218871673580406 + ], + [ + -0.233417090433175, + 0.02621681239549, + -0.972000423209318, + -0.00665717075314796 + ], + [ + 0.692016864245232, + -0.682599295921732, + -0.183589222658643, + -0.146512313922576 + ], + [ + -0.682602231895655, + -0.692013968214302, + 0.146513092824692, + -0.183588601057659 + ], + [ + 0.999999999000364, + -0.0000409124463830332, + 0.00001804001817707, + 0.000000000170122614793112 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244360112 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893391920724 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406970627 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956778931 + } + ], + "ctrl": [ + -0.133184190272806, + 1.56003064722779, + -1.46890166993568, + 0.0795339301045311, + 1.04808824812217, + -0.155888421418422, + 0.0259999999999999 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.012244577498813, + "qpos": [ + -0.13797254611274, + 1.5578074278692, + -1.47052649730662, + 0.0976795586061578, + 1.1088718944975, + -0.214897864425852, + 0.0309520307504983, + -0.0311221241446796, + 0.319999977252516, + -0.145000051877006, + -0.0001077387797929, + 0.999999999000364, + -0.0000409124463830332, + 0.00001804001817707, + 0.000000000170122614793112 + ], + "shoe_position": [ + 0.319999977252516, + -0.145000051877006, + -0.0001077387797929 + ], + "tcp_position": [ + 0.369049286777049, + -0.031222423586418, + 0.24103244729428 + ], + "tcp_quaternion": [ + 0.233417090433175, + -0.02621681239549, + 0.972000423209318, + 0.00665717075314796 + ], + "time": 0.860000000000001 + } + }, + { + "compute_ms": 1.10954200499691, + "request": { + "jaw": 0.025, + "sequence": 44, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.858, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0259243982375263, + -0.00349803726229876, + 0.406828273410761 + ], + [ + 0.274549505447222, + -0.0370564854041919, + 0.427303598054714 + ], + [ + 0.274549505447222, + -0.0370564854041919, + 0.427303598054714 + ], + [ + 0.315735478333638, + -0.0332631608901015, + 0.346233672689137 + ], + [ + 0.378208624047228, + -0.0598232308798768, + 0.225674604396464 + ], + [ + 0.374919152977512, + 0.00056798127048124, + 0.225796232684087 + ], + [ + 0.319999977252527, + -0.145000051878054, + -0.00010773877978361 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.65811872881424, + 0.0, + 0.0, + -0.752914164286958 + ], + [ + 0.462945219105149, + -0.530282228405233, + -0.467763570874839, + -0.534490153424444 + ], + [ + 0.0212343857545912, + -0.115586210298816, + -0.697597181752305, + -0.706786460581713 + ], + [ + -0.0131848858725538, + -0.704515781523484, + 0.0817102241318504, + -0.704845452309374 + ], + [ + 0.708103211850101, + -0.663279671233909, + -0.10842483667417, + -0.216550164829278 + ], + [ + -0.231853482239256, + 0.0262292122582869, + -0.972369720212104, + -0.00728823795407201 + ], + [ + 0.692724228194065, + -0.682414194909109, + -0.182492350383617, + -0.145397910270243 + ], + [ + -0.682417133884126, + -0.692721332948446, + 0.145398684518733, + -0.182491733510658 + ], + [ + 0.999999999000364, + -0.0000409124489298216, + 0.0000180400181248119, + 0.000000000176829700090234 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244582913 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392123515 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406742293 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956550729 + } + ], + "ctrl": [ + -0.133374188174979, + 1.5600180711953, + -1.46911705219138, + 0.0794471793760786, + 1.0483546667876, + -0.15591492166253, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0127427791831092, + "qpos": [ + -0.134157342667626, + 1.56174940269972, + -1.46846485498765, + 0.0967642250660531, + 1.10591049289968, + -0.21129747181489, + 0.0301609804768435, + -0.0303198753240977, + 0.319999977252527, + -0.145000051878054, + -0.00010773877978361, + 0.999999999000364, + -0.0000409124489298216, + 0.0000180400181248119, + 0.000000000176829700090234 + ], + "shoe_position": [ + 0.319999977252527, + -0.145000051878054, + -0.00010773877978361 + ], + "tcp_position": [ + 0.369810467521669, + -0.0301020037346436, + 0.239121098591822 + ], + "tcp_quaternion": [ + 0.231853482239256, + -0.0262292122582869, + 0.972369720212104, + 0.00728823795407201 + ], + "time": 0.880000000000001 + } + }, + { + "compute_ms": 0.914832984562963, + "request": { + "jaw": 0.025, + "sequence": 45, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 12.842, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0266368724611675, + -0.00354729000942821, + 0.406761683874121 + ], + [ + 0.27539481695494, + -0.0366855392595295, + 0.426285868463279 + ], + [ + 0.27539481695494, + -0.0366855392595295, + 0.426285868463279 + ], + [ + 0.316471220672791, + -0.0328939280095718, + 0.345160291645685 + ], + [ + 0.378701650824382, + -0.0586661472489642, + 0.224500824848017 + ], + [ + 0.375579480234555, + 0.00012073762269585, + 0.224662078758303 + ], + [ + 0.319999977252558, + -0.145000051878876, + -0.00010773877978152 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658769816951075, + 0.0, + 0.0, + -0.752344554226484 + ], + [ + 0.464077695679781, + -0.530464886070779, + -0.467556418676843, + -0.533507162437904 + ], + [ + 0.023185319958238, + -0.116304839063254, + -0.697477730404685, + -0.70672515233182 + ], + [ + -0.0128801636389353, + -0.70595024010951, + 0.080923211812772, + -0.703505361503283 + ], + [ + 0.70807635205453, + -0.663611608060946, + -0.108547012997833, + -0.215557554442344 + ], + [ + -0.231203095157608, + 0.0254907345920252, + -0.972542840929332, + -0.00746818563008327 + ], + [ + 0.69297388526522, + -0.682409366992324, + -0.181510274841047, + -0.14546020180341 + ], + [ + -0.682412307026547, + -0.692970990040083, + 0.145460971885303, + -0.181509657703816 + ], + [ + 0.999999999000364, + -0.0000409124496942928, + 0.000018040018073067, + 0.000000000184781136692448 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244648919 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392185419 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406676883 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.74237795648409 + } + ], + "ctrl": [ + -0.133421785202131, + 1.55996303810231, + -1.46919054241513, + 0.0792883651094318, + 1.04851816278841, + -0.155806853843371, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0130049940704038, + "qpos": [ + -0.13242717339314, + 1.56426072779366, + -1.46718553736698, + 0.0958288419571892, + 1.10327508200918, + -0.208119954724852, + 0.0293667516383533, + -0.0295032049183807, + 0.319999977252558, + -0.145000051878876, + -0.00010773877978152, + 0.999999999000364, + -0.0000409124496942928, + 0.000018040018073067, + 0.000000000184781136692448 + ], + "shoe_position": [ + 0.319999977252558, + -0.145000051878876, + -0.00010773877978152 + ], + "tcp_position": [ + 0.370404191455547, + -0.0297355384803908, + 0.237976057086081 + ], + "tcp_quaternion": [ + 0.231203095157608, + -0.0254907345920252, + 0.972542840929332, + 0.00746818563008327 + ], + "time": 0.900000000000001 + } + }, + { + "compute_ms": 0.979249976808205, + "request": { + "jaw": 0.025, + "sequence": 46, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 9.386, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.026987262750452, + -0.00358189863018252, + 0.406728139470588 + ], + [ + 0.275794570170463, + -0.0366154573848125, + 0.425795390620367 + ], + [ + 0.275794570170463, + -0.0366154573848125, + 0.425795390620367 + ], + [ + 0.31690549385068, + -0.0329091700886461, + 0.344683357845399 + ], + [ + 0.379083897555553, + -0.0581053084378372, + 0.224045503272546 + ], + [ + 0.376171319082434, + -0.00075765062979673, + 0.22420823526415 + ], + [ + 0.319999977252584, + -0.145000051879522, + -0.00010773877978627 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.6589351040429, + 0.0, + 0.0, + -0.752199793047015 + ], + [ + 0.464525575423546, + -0.530652040732842, + -0.467343997143507, + -0.533117238304506 + ], + [ + 0.023983933087582, + -0.116786493805392, + -0.697397243229885, + -0.706698500743882 + ], + [ + -0.013098322967764, + -0.706648194734807, + 0.0804543810028026, + -0.70285407830568 + ], + [ + 0.707690210550413, + -0.663964572775508, + -0.108900127923265, + -0.21556060430525 + ], + [ + -0.231389221067468, + 0.0243523915078178, + -0.97252938840071, + -0.00725107568440397 + ], + [ + 0.692810853299683, + -0.682553374903903, + -0.180836957602241, + -0.146396744235051 + ], + [ + -0.682556314246438, + -0.692807957463573, + 0.146397511460292, + -0.180836336491602 + ], + [ + 0.999999999000364, + -0.0000409124487077292, + 0.0000180400180348933, + 0.000000000191269803707457 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244567591 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392109483 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406756065 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956566563 + } + ], + "ctrl": [ + -0.133386118349091, + 1.5599348053639, + -1.46920499205745, + 0.079100884863178, + 1.04859234974464, + -0.155626155452605, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0128623639222983, + "qpos": [ + -0.131987739111368, + 1.56550090900589, + -1.4666050716953, + 0.094734932378811, + 1.10085805922585, + -0.20527762133461, + 0.028659335197965, + -0.0287624677273231, + 0.319999977252584, + -0.145000051879522, + -0.00010773877978627, + 0.999999999000364, + -0.0000409124487077292, + 0.0000180400180348933, + 0.000000000191269803707457 + ], + "shoe_position": [ + 0.319999977252584, + -0.145000051879522, + -0.00010773877978627 + ], + "tcp_position": [ + 0.370884482012079, + -0.0298635852580861, + 0.237519025392332 + ], + "tcp_quaternion": [ + 0.231389221067468, + -0.0243523915078178, + 0.97252938840071, + 0.00725107568440397 + ], + "time": 0.920000000000001 + } + }, + { + "compute_ms": 0.961458979872987, + "request": { + "jaw": 0.025, + "sequence": 47, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 7.685, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0270686089344971, + -0.0035914835532546, + 0.406720269160027 + ], + [ + 0.275885106074853, + -0.0366150918752767, + 0.425684560346273 + ], + [ + 0.275885106074853, + -0.0366150918752767, + 0.425684560346273 + ], + [ + 0.317143749122618, + -0.0330380185833699, + 0.344641760587309 + ], + [ + 0.379442433643941, + -0.0578252399813746, + 0.224123542760915 + ], + [ + 0.376729703406543, + -0.00171570541269478, + 0.22425758286083 + ], + [ + 0.319999977252637, + -0.145000051880302, + -0.00010773877978679 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658951696996184, + 0.0, + 0.0, + -0.752185257118118 + ], + [ + 0.464614274373176, + -0.530709179433485, + -0.467279110238236, + -0.533039938511823 + ], + [ + 0.0241444685385084, + -0.116914146614537, + -0.697375854415246, + -0.706693034236926 + ], + [ + -0.0135206250849922, + -0.706843510412424, + 0.0800119986119101, + -0.702700166901417 + ], + [ + 0.707072074814716, + -0.664311402740853, + -0.109648784427899, + -0.216140198202874 + ], + [ + -0.232245152297895, + 0.0232142640370853, + -0.972356638177459, + -0.0067716594401909 + ], + [ + 0.692349702433424, + -0.682770221542915, + -0.180637417705829, + -0.147806757082207 + ], + [ + -0.68277315892895, + -0.692346805677315, + 0.147807523460858, + -0.180636790613011 + ], + [ + 0.999999999000364, + -0.0000409124487035514, + 0.0000180400180115011, + 0.000000000202609473986384 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.80008324461645 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392157697 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406705943 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956517282 + } + ], + "ctrl": [ + -0.133305657816334, + 1.55995567283869, + -1.46919767146548, + 0.0788966071220449, + 1.04859494895837, + -0.15540830436784, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0124084165343455, + "qpos": [ + -0.131943620211671, + 1.56578957011782, + -1.46648352480243, + 0.0934811455969582, + 1.09844005444472, + -0.202732446102191, + 0.0280542371509905, + -0.0281209953065611, + 0.319999977252637, + -0.145000051880302, + -0.00010773877978679, + 0.999999999000364, + -0.0000409124487035514, + 0.0000180400180115011, + 0.000000000202609473986384 + ], + "shoe_position": [ + 0.319999977252637, + -0.145000051880302, + -0.00010773877978679 + ], + "tcp_position": [ + 0.371317589141087, + -0.0301630916404907, + 0.237571079480264 + ], + "tcp_quaternion": [ + 0.232245152297895, + -0.0232142640370853, + 0.972356638177459, + 0.0067716594401909 + ], + "time": 0.940000000000001 + } + }, + { + "compute_ms": 1.0681249841582, + "request": { + "jaw": 0.025, + "sequence": 48, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 9.5, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0270447677468838, + -0.00358908151454126, + 0.406722573136857 + ], + [ + 0.27585843125259, + -0.0366193263948097, + 0.425712467081236 + ], + [ + 0.27585843125259, + -0.0366193263948097, + 0.425712467081236 + ], + [ + 0.31731079393633, + -0.033170655848882, + 0.344763008950552 + ], + [ + 0.379810169040675, + -0.057640648402365, + 0.224401966777127 + ], + [ + 0.377272066525144, + -0.00256955904947875, + 0.224503330454203 + ], + [ + 0.319999977252666, + -0.145000051880721, + -0.00010773877979616 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658941280387601, + 0.0, + 0.0, + -0.752194382457852 + ], + [ + 0.464584393953025, + -0.530695927884979, + -0.467294160167127, + -0.533065981746444 + ], + [ + 0.0240986391583217, + -0.11688823647548, + -0.697380197721194, + -0.706694598529462 + ], + [ + -0.0139290878488209, + -0.706851992476992, + 0.0796174008323535, + -0.702728475819578 + ], + [ + 0.706429183763491, + -0.664583400121616, + -0.110567932428615, + -0.216936499760876 + ], + [ + -0.233379525925924, + 0.0221746491547074, + -0.972112636464228, + -0.00626927747226729 + ], + [ + 0.691821929856889, + -0.682952925133899, + -0.180704425504298, + -0.1493439989531 + ], + [ + -0.682955860280782, + -0.691819032325638, + 0.149344765616028, + -0.180703791889512 + ], + [ + 0.999999999000364, + -0.000040912446543837, + 0.0000180400179892726, + 0.000000000208847021357132 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244554782 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.72889339210521 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406760179 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956579702 + } + ], + "ctrl": [ + -0.133207082983201, + 1.56001203623901, + -1.46917346561015, + 0.0786752107632699, + 1.04854304069713, + -0.155178039097771, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0118480723648487, + "qpos": [ + -0.131971316966688, + 1.56570515636084, + -1.46650111510033, + 0.0923483293392468, + 1.09597863503791, + -0.200470336406765, + 0.0275427021101332, + -0.0275869371190751, + 0.319999977252666, + -0.145000051880721, + -0.00010773877979616, + 0.999999999000364, + -0.000040912446543837, + 0.0000180400179892726, + 0.000000000208847021357132 + ], + "shoe_position": [ + 0.319999977252666, + -0.145000051880721, + -0.00010773877979616 + ], + "tcp_position": [ + 0.371740117998256, + -0.0304652869654027, + 0.237817552939714 + ], + "tcp_quaternion": [ + 0.233379525925924, + -0.0221746491547074, + 0.972112636464228, + 0.00626927747226729 + ], + "time": 0.960000000000001 + } + }, + { + "compute_ms": 1.35725000291131, + "request": { + "jaw": 0.025, + "sequence": 49, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 10.443, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0269807836531874, + -0.00358164185500651, + 0.40672875890731 + ], + [ + 0.275787955026171, + -0.0366207473525798, + 0.425788173307942 + ], + [ + 0.275787955026171, + -0.0366207473525798, + 0.425788173307942 + ], + [ + 0.317440680789158, + -0.0332895549219671, + 0.344936704145325 + ], + [ + 0.380162688565561, + -0.0575100021061868, + 0.224738066347003 + ], + [ + 0.377774545408347, + -0.00330007529026111, + 0.224809522587212 + ], + [ + 0.31999997725277, + -0.145000051881756, + -0.00010773877979018 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658926837956679, + 0.0, + 0.0, + -0.752207034147124 + ], + [ + 0.464513650963064, + -0.530651858991395, + -0.467344203504202, + -0.533127628311425 + ], + [ + 0.0239871997696767, + -0.116805045076292, + -0.697394136371052, + -0.706698389871669 + ], + [ + -0.0142920530039423, + -0.706793011238356, + 0.0792706021539099, + -0.702819712386972 + ], + [ + 0.705824681331962, + -0.664797533418952, + -0.111502449101061, + -0.21776813960535 + ], + [ + -0.234558473611896, + 0.0212418821343839, + -0.971852568654253, + -0.00580428293383363 + ], + [ + 0.691309233656273, + -0.683097831340842, + -0.18087850467621, + -0.150837206368695 + ], + [ + -0.683100764312538, + -0.691306335510242, + 0.150837973770165, + -0.180877864726277 + ], + [ + 0.999999999000364, + -0.0000409124480520429, + 0.0000180400179905004, + 0.000000000229860818801532 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244606976 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392150751 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406713302 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956527542 + } + ], + "ctrl": [ + -0.133108926842175, + 1.5600754563243, + -1.46913902240529, + 0.0784616394341537, + 1.04846695114491, + -0.154960858187169, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0112838648260422, + "qpos": [ + -0.132009717438165, + 1.56547815291621, + -1.46655109236789, + 0.0913594055622909, + 1.0936259221721, + -0.198458635003504, + 0.0271156943776851, + -0.0271468571581082, + 0.31999997725277, + -0.145000051881756, + -0.00010773877979018, + 0.999999999000364, + -0.0000409124480520429, + 0.0000180400179905004, + 0.000000000229860818801532 + ], + "shoe_position": [ + 0.31999997725277, + -0.145000051881756, + -0.00010773877979018 + ], + "tcp_position": [ + 0.372134261451322, + -0.0307393085448768, + 0.238122335365804 + ], + "tcp_quaternion": [ + 0.234558473611896, + -0.0212418821343839, + 0.971852568654253, + 0.00580428293383363 + ], + "time": 0.980000000000001 + } + }, + { + "compute_ms": 1.1246670037508, + "request": { + "jaw": 0.025, + "sequence": 50, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 12.666, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0268950470866854, + -0.00357128813959594, + 0.406737029340953 + ], + [ + 0.275694155036244, + -0.0366188629023668, + 0.425886806932428 + ], + [ + 0.275694155036244, + -0.0366188629023668, + 0.425886806932428 + ], + [ + 0.317537969633905, + -0.0333935640773269, + 0.345129769470323 + ], + [ + 0.380479595720113, + -0.0574188301838147, + 0.225086406771844 + ], + [ + 0.378219687713241, + -0.00392204437741171, + 0.22513119015481 + ], + [ + 0.319999977252799, + -0.145000051882048, + -0.00010773877980164 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658912665859424, + 0.0, + 0.0, + -0.752219448545455 + ], + [ + 0.464422471689458, + -0.530589541730004, + -0.467414952913088, + -0.533207059021029 + ], + [ + 0.0238466683276803, + -0.116692641346743, + -0.697412953317846, + -0.706703145889184 + ], + [ + -0.0146147425065898, + -0.706700285476082, + 0.0789613348100776, + -0.70294112371841 + ], + [ + 0.7052710720081, + -0.664974816726092, + -0.112390134737116, + -0.218562727203013 + ], + [ + -0.235686261170383, + 0.0204142573016059, + -0.971599852777429, + -0.00538242298866168 + ], + [ + 0.690832236766145, + -0.683217435307481, + -0.181090754695356, + -0.152219891277123 + ], + [ + -0.683220366255448, + -0.690829338112682, + 0.152220659579082, + -0.181090108879185 + ], + [ + 0.999999999000364, + -0.000040912445347473, + 0.000018040017975026, + 0.000000000235835094803104 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244549193 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392104251 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406761057 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.74237795658545 + } + ], + "ctrl": [ + -0.133019099723492, + 1.56013505430935, + -1.46910297521887, + 0.0782683279286409, + 1.04838779279201, + -0.154766510196684, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0107538118372946, + "qpos": [ + -0.132047398501129, + 1.56517380525418, + -1.46660677494566, + 0.0904863812718638, + 1.09148435825789, + -0.196674402048765, + 0.0267607748800867, + -0.0267837419392729, + 0.319999977252799, + -0.145000051882048, + -0.00010773877980164, + 0.999999999000364, + -0.000040912445347473, + 0.000018040017975026, + 0.000000000235835094803104 + ], + "shoe_position": [ + 0.319999977252799, + -0.145000051882048, + -0.00010773877980164 + ], + "tcp_position": [ + 0.372483588642297, + -0.0309831404953199, + 0.238441580292983 + ], + "tcp_quaternion": [ + 0.235686261170383, + -0.0204142573016059, + 0.971599852777429, + 0.00538242298866168 + ], + "time": 1.0 + } + }, + { + "compute_ms": 1.07575001311488, + "request": { + "jaw": 0.025, + "sequence": 51, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 6.363, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.02680274271386, + -0.00355998350448843, + 0.406745905655857 + ], + [ + 0.275593385556548, + -0.0366153080016616, + 0.425992044289583 + ], + [ + 0.275593385556548, + -0.0366153080016616, + 0.425992044289583 + ], + [ + 0.317610904485959, + -0.0334868459314428, + 0.345321434397616 + ], + [ + 0.380755587492961, + -0.057363040670067, + 0.22542044120547 + ], + [ + 0.378605336580308, + -0.00445795032268956, + 0.225440328587496 + ], + [ + 0.319999977252934, + -0.145000051883083, + -0.00010773877979663 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658899482330769, + 0.0, + 0.0, + -0.752230996559065 + ], + [ + 0.464325746340559, + -0.530521136146728, + -0.467492592563331, + -0.533291291214551 + ], + [ + 0.0236986169586874, + -0.116570980748269, + -0.697433298923551, + -0.706708126141369 + ], + [ + -0.0149124983140102, + -0.706596431335259, + 0.0786747223570677, + -0.703071396573882 + ], + [ + 0.704763616731872, + -0.665138115390077, + -0.11320086317837, + -0.219283142448342 + ], + [ + -0.236713281297684, + 0.0196872640543816, + -0.971367244908331, + -0.00499095286844979 + ], + [ + 0.690390947220525, + -0.683329768851869, + -0.181302908355993, + -0.153460165575489 + ], + [ + -0.683332697927601, + -0.690388048090475, + 0.153460934777528, + -0.181302257277779 + ], + [ + 0.999999999000364, + -0.0000409124465857415, + 0.0000180400179857369, + 0.000000000262785849427873 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244589823 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392139279 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406725019 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956545051 + } + ], + "ctrl": [ + -0.132939810010571, + 1.560188181748, + -1.4690696365215, + 0.0780982421145686, + 1.04831432030915, + -0.154596739321348, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0102729110647943, + "qpos": [ + -0.132082450579307, + 1.56484608002993, + -1.46666298784484, + 0.0896824909016513, + 1.08959036919402, + -0.195095880539129, + 0.0264658385849318, + -0.0264829343867808, + 0.319999977252934, + -0.145000051883083, + -0.00010773877979663, + 0.999999999000364, + -0.0000409124465857415, + 0.0000180400179857369, + 0.000000000262785849427873 + ], + "shoe_position": [ + 0.319999977252934, + -0.145000051883083, + -0.00010773877979663 + ], + "tcp_position": [ + 0.37278563944542, + -0.0312042870316109, + 0.238748738799626 + ], + "tcp_quaternion": [ + 0.236713281297684, + -0.0196872640543816, + 0.971367244908331, + 0.00499095286844979 + ], + "time": 1.02 + } + }, + { + "compute_ms": 1.08404201455414, + "request": { + "jaw": 0.025, + "sequence": 52, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 16.826, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.02671555817906, + -0.00354925619198941, + 0.40675426200793 + ], + [ + 0.275498167881722, + -0.0366114884130158, + 0.426092157604295 + ], + [ + 0.275498167881722, + -0.0366114884130158, + 0.426092157604295 + ], + [ + 0.317668712687975, + -0.0335720412938529, + 0.34549803012466 + ], + [ + 0.380993652880137, + -0.0573367449496865, + 0.225723936729433 + ], + [ + 0.378937206737343, + -0.00492318000220382, + 0.225720156053098 + ], + [ + 0.319999977252962, + -0.145000051883302, + -0.00010773877980759 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658887634036302, + 0.0, + 0.0, + -0.752241374635857 + ], + [ + 0.46423479678222, + -0.530456135674626, + -0.46756634622815, + -0.53337046548958 + ], + [ + 0.023558297545701, + -0.116454471933631, + -0.697452762534251, + -0.706712817640057 + ], + [ + -0.0151919473644164, + -0.706497084288735, + 0.0784047641514653, + -0.703195397869714 + ], + [ + 0.704299923128842, + -0.665297668609367, + -0.113921845641554, + -0.219914627774667 + ], + [ + -0.237618989184855, + 0.0190529557019763, + -0.971160549588951, + -0.0046246924084472 + ], + [ + 0.68998580653781, + -0.683442599333456, + -0.181494819106606, + -0.154549121091505 + ], + [ + -0.68344552669032, + -0.689982906929064, + 0.154549891107744, + -0.181494163408341 + ], + [ + 0.999999999000364, + -0.0000409124439892387, + 0.000018040017971333, + 0.000000000268495891478775 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244546495 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.7288933921068 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406758497 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.74237795658819 + } + ], + "ctrl": [ + -0.1328713659972, + 1.56023447878893, + -1.46904097932671, + 0.0779508878620522, + 1.04825050196958, + -0.154450045667188, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00984615613962141, + "qpos": [ + -0.132113952106869, + 1.56453651914461, + -1.46671903122876, + 0.0889270332509528, + 1.0879408832133, + -0.193703004896204, + 0.0262204442428639, + -0.0262334476583595, + 0.319999977252962, + -0.145000051883302, + -0.00010773877980759, + 0.999999999000364, + -0.0000409124439892387, + 0.000018040017971333, + 0.000000000268495891478775 + ], + "shoe_position": [ + 0.319999977252962, + -0.145000051883302, + -0.00010773877980759 + ], + "tcp_position": [ + 0.373045291149205, + -0.03140702107905, + 0.239027620407234 + ], + "tcp_quaternion": [ + 0.237618989184855, + -0.0190529557019763, + 0.971160549588951, + 0.0046246924084472 + ], + "time": 1.04 + } + }, + { + "compute_ms": 1.01183299557306, + "request": { + "jaw": 0.025, + "sequence": 53, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.54, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0266411514153505, + -0.00354012205745869, + 0.406761371689458 + ], + [ + 0.27541669822351, + -0.0366084588809985, + 0.426179525721857 + ], + [ + 0.27541669822351, + -0.0366084588809985, + 0.426179525721857 + ], + [ + 0.317719022050635, + -0.0336507147208898, + 0.345651446019443 + ], + [ + 0.381199384804557, + -0.0573339334713583, + 0.225988076824193 + ], + [ + 0.37922329002871, + -0.00532878636492166, + 0.225961838593163 + ], + [ + 0.319999977253133, + -0.145000051884399, + -0.00010773877980194 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658877169753792, + 0.0, + 0.0, + -0.752250540164135 + ], + [ + 0.464156920801049, + -0.530400876576824, + -0.467629030457409, + -0.533438237167612 + ], + [ + 0.0234354639866204, + -0.116352651111624, + -0.697469756031971, + -0.706716901614594 + ], + [ + -0.0154549639588456, + -0.706412115901663, + 0.0781503027704359, + -0.703303346197966 + ], + [ + 0.703878821019387, + -0.665456550525591, + -0.114550259552886, + -0.220455035595256 + ], + [ + -0.238399356545993, + 0.0185011447762925, + -0.970981519620086, + -0.00428287248142014 + ], + [ + 0.6896175102843, + -0.683557710023297, + -0.181656434900399, + -0.155491113045945 + ], + [ + -0.683560635817611, + -0.689614610187184, + 0.155491883747853, + -0.181655775205598 + ], + [ + 0.999999999000364, + -0.0000409124453653159, + 0.0000180400179893745, + 0.000000000302523806186794 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244580278 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392134399 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406730047 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956554796 + } + ], + "ctrl": [ + -0.132813075180766, + 1.56027419956635, + -1.46901733971003, + 0.0778244810406333, + 1.04819719084947, + -0.15432410405191, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00947329347460011, + "qpos": [ + -0.132141773545874, + 1.56427234453657, + -1.46677465362243, + 0.0882138897711915, + 1.08651548825128, + -0.192475742765472, + 0.0260161973467335, + -0.0260264867175878, + 0.319999977253133, + -0.145000051884399, + -0.00010773877980194, + 0.999999999000364, + -0.0000409124453653159, + 0.0000180400179893745, + 0.000000000302523806186794 + ], + "shoe_position": [ + 0.319999977253133, + -0.145000051884399, + -0.00010773877980194 + ], + "tcp_position": [ + 0.373269417726917, + -0.031593580316136, + 0.239269480262791 + ], + "tcp_quaternion": [ + 0.238399356545993, + -0.0185011447762925, + 0.970981519620086, + 0.00428287248142014 + ], + "time": 1.06 + } + }, + { + "compute_ms": 1.07312499312684, + "request": { + "jaw": 0.025, + "sequence": 54, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 8.726, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0265827659039795, + -0.0035330245222491, + 0.406766935654279 + ], + [ + 0.275352450998223, + -0.0366067899115287, + 0.426250829440841 + ], + [ + 0.275352450998223, + -0.0366067899115287, + 0.426250829440841 + ], + [ + 0.317766441289403, + -0.0337239518016163, + 0.345778789922375 + ], + [ + 0.381378047661833, + -0.0573496214774161, + 0.226210615194331 + ], + [ + 0.379470924773342, + -0.00568393756072851, + 0.226163116258811 + ], + [ + 0.31999997725316, + -0.145000051884574, + -0.00010773877981189 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658867946567212, + 0.0, + 0.0, + -0.752258618419427 + ], + [ + 0.464095098348677, + -0.5303581484969, + -0.46767748964745, + -0.533492024016041 + ], + [ + 0.0233342359695155, + -0.116269850015086, + -0.697483563947904, + -0.706720251182686 + ], + [ + -0.0157025822009314, + -0.706345858050955, + 0.0779108907067549, + -0.703390965847418 + ], + [ + 0.703497922198382, + -0.665615368766846, + -0.115090385808878, + -0.220909613684644 + ], + [ + -0.239060685359519, + 0.0180217170067628, + -0.97082927876509, + -0.0039645837132924 + ], + [ + 0.689284795842667, + -0.683675124356083, + -0.181785060064334, + -0.156297749485508 + ], + [ + -0.683678048738807, + -0.689281895247406, + 0.156298520733119, + -0.181784396947262 + ], + [ + 0.999999999000364, + -0.0000409124430101116, + 0.0000180400179725734, + 0.000000000307974670634338 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244545797 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392109886 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406755439 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956588867 + } + ], + "ctrl": [ + -0.132763822426054, + 1.56030789930147, + -1.46899836746501, + 0.0777167229885036, + 1.04815380197918, + -0.154216366056788, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00915079498550008, + "qpos": [ + -0.132166294996014, + 1.56406508906725, + -1.466829350047, + 0.0875401566032939, + 1.08528822450381, + -0.191395111165371, + 0.0258462110752324, + -0.0258546812622105, + 0.31999997725316, + -0.145000051884574, + -0.00010773877981189, + 0.999999999000364, + -0.0000409124430101116, + 0.0000180400179725734, + 0.000000000307974670634338 + ], + "shoe_position": [ + 0.31999997725316, + -0.145000051884574, + -0.00010773877981189 + ], + "tcp_position": [ + 0.373464121623557, + -0.0317657300567052, + 0.239471994876187 + ], + "tcp_quaternion": [ + 0.239060685359519, + -0.0180217170067628, + 0.97082927876509, + 0.0039645837132924 + ], + "time": 1.08 + } + }, + { + "compute_ms": 0.98337500821799, + "request": { + "jaw": 0.025, + "sequence": 55, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 2.331, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0265343044718465, + -0.00352717391903248, + 0.40677154403911 + ], + [ + 0.275298922113727, + -0.0366058187637985, + 0.426311773329542 + ], + [ + 0.275298922113727, + -0.0366058187637985, + 0.426311773329542 + ], + [ + 0.317808202785217, + -0.0337919334679273, + 0.34588758804561 + ], + [ + 0.381531332129058, + -0.0573795546226113, + 0.226401809338978 + ], + [ + 0.379683998315362, + -0.00599619139653218, + 0.226334199956418 + ], + [ + 0.319999977253323, + -0.145000051885505, + -0.00010773877980855 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658859695713178, + 0.0, + 0.0, + -0.752265844874495 + ], + [ + 0.464043363077112, + -0.530323055020581, + -0.467717283531021, + -0.533537025129544 + ], + [ + 0.0232471610329285, + -0.116199212785442, + -0.697495335431029, + -0.706723120821662 + ], + [ + -0.0159360815867233, + -0.70629127871876, + 0.0776850793664499, + -0.703465492652844 + ], + [ + 0.703151561492512, + -0.665772491637804, + -0.115558260103329, + -0.221294282508439 + ], + [ + -0.23962501377516, + 0.017601205552589, + -0.970699025596165, + -0.00366770268766065 + ], + [ + 0.688982766604437, + -0.683792948702856, + -0.181886755482204, + -0.156994136216953 + ], + [ + -0.683795871804177, + -0.688979865509292, + 0.156994907896015, + -0.181886089410612 + ], + [ + 0.999999999000364, + -0.0000409124438320403, + 0.0000180400179881677, + 0.000000000340435457756411 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244571563 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392131674 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406732915 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956563555 + } + ], + "ctrl": [ + -0.13272237470635, + 1.56033633703239, + -1.46898347469181, + 0.0776251365209598, + 1.0481191474642, + -0.154124293954889, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00887068209370344, + "qpos": [ + -0.132188231107351, + 1.56389308379877, + -1.46688182798104, + 0.0869032998842148, + 1.08423282397935, + -0.190434370701617, + 0.0257047475490811, + -0.0257118570618673, + 0.319999977253323, + -0.145000051885505, + -0.00010773877980855, + 0.999999999000364, + -0.0000409124438320403, + 0.0000180400179881677, + 0.000000000340435457756411 + ], + "shoe_position": [ + 0.319999977253323, + -0.145000051885505, + -0.00010773877980855 + ], + "tcp_position": [ + 0.373631565871766, + -0.0319247649009135, + 0.239645097886307 + ], + "tcp_quaternion": [ + 0.23962501377516, + -0.017601205552589, + 0.970699025596165, + 0.00366770268766065 + ], + "time": 1.1 + } + }, + { + "compute_ms": 1.10912500531413, + "request": { + "jaw": 0.025, + "sequence": 56, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 15.416, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0264903877058285, + -0.00352187156350915, + 0.406775712942255 + ], + [ + 0.275250346069347, + -0.0366049427991764, + 0.426367696215941 + ], + [ + 0.275250346069347, + -0.0366049427991764, + 0.426367696215941 + ], + [ + 0.317841748059063, + -0.0338546875750935, + 0.345984768644205 + ], + [ + 0.381659623983316, + -0.0574199510738119, + 0.226570442539111 + ], + [ + 0.379866539820839, + -0.0062714696106276, + 0.226484884313175 + ], + [ + 0.319999977253349, + -0.145000051885654, + -0.00010773877981648 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658852198322061, + 0.0, + 0.0, + -0.752272411275455 + ], + [ + 0.463996461976328, + -0.530291263101299, + -0.467753328452539, + -0.533577813700542 + ], + [ + 0.0231672435181026, + -0.116134241398268, + -0.697506156227204, + -0.70672574512874 + ], + [ + -0.0161561981866097, + -0.706241695018595, + 0.0774719289155114, + -0.703533755911915 + ], + [ + 0.702835201381481, + -0.665926087787918, + -0.115967620446366, + -0.221622734191551 + ], + [ + -0.240111256933831, + 0.0172081641158392, + -0.970586900357782, + -0.00339591450009513 + ], + [ + 0.688711299055289, + -0.683905848049456, + -0.181952660363446, + -0.157615884174138 + ], + [ + -0.683908769999037, + -0.688708397481155, + 0.157616656132806, + -0.181951991653999 + ], + [ + 0.999999999000364, + -0.0000409124419709503, + 0.0000180400179709121, + 0.000000000345635266934201 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244546619 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392114722 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406750609 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956588049 + } + ], + "ctrl": [ + -0.132687090524918, + 1.56036065301924, + -1.46897186384906, + 0.0775464551096621, + 1.04809134162093, + -0.154044848625961, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00862605429304152, + "qpos": [ + -0.132208163843754, + 1.56373721127393, + -1.46693218587764, + 0.0863022047062494, + 1.08332849968382, + -0.189529651803937, + 0.0255869887565603, + -0.0255929841533642, + 0.319999977253349, + -0.145000051885654, + -0.00010773877981648, + 0.999999999000364, + -0.0000409124419709503, + 0.0000180400179709121, + 0.000000000345635266934201 + ], + "shoe_position": [ + 0.319999977253349, + -0.145000051885654, + -0.00010773877981648 + ], + "tcp_position": [ + 0.373773424240303, + -0.0320715449303136, + 0.239797816047074 + ], + "tcp_quaternion": [ + 0.240111256933831, + -0.0172081641158392, + 0.970586900357782, + 0.00339591450009513 + ], + "time": 1.12 + } + }, + { + "compute_ms": 1.15854101022705, + "request": { + "jaw": 0.025, + "sequence": 57, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 5.307, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0264494198452581, + -0.00351690472406414, + 0.406779595896201 + ], + [ + 0.275205004269819, + -0.0366039233711129, + 0.42642038790276 + ], + [ + 0.275205004269819, + -0.0366039233711129, + 0.42642038790276 + ], + [ + 0.317868780951821, + -0.0339127169098968, + 0.346073850707549 + ], + [ + 0.381768740196706, + -0.0574684340373974, + 0.226722527235016 + ], + [ + 0.380026301143465, + -0.00651537728053803, + 0.226621333612069 + ], + [ + 0.319999977253504, + -0.145000051886478, + -0.00010773877981355 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658845468699997, + 0.0, + 0.0, + -0.752278305132802 + ], + [ + 0.463952892500466, + -0.530261437576341, + -0.467787139433602, + -0.533615698363955 + ], + [ + 0.0230921931614709, + -0.116072649134501, + -0.697516408497247, + -0.706728201372347 + ], + [ + -0.0163635844017474, + -0.706194909556533, + 0.0772705444500283, + -0.703598071190053 + ], + [ + 0.70254366702201, + -0.666074374779947, + -0.116333062237946, + -0.221909760531419 + ], + [ + -0.240539764732411, + 0.0168277662830079, + -0.970488297934629, + -0.00314824337477892 + ], + [ + 0.688466446903713, + -0.684011256074355, + -0.181986680453268, + -0.158187866756459 + ], + [ + -0.684014176985115, + -0.688463544882373, + 0.158188638859456, + -0.181986009317103 + ], + [ + 0.999999999000364, + -0.0000409124426909608, + 0.0000180400179853453, + 0.000000000376588392908061 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244567679 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392132244 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406732419 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956567465 + } + ], + "ctrl": [ + -0.132655857020029, + 1.56038186386367, + -1.46896318575249, + 0.0774765607128896, + 1.04806914299676, + -0.153974079392036, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00840845933239717, + "qpos": [ + -0.132226055223526, + 1.56359179777846, + -1.46698126954677, + 0.0857351035050232, + 1.08253880502757, + -0.188651711624708, + 0.0254889174181274, + -0.0254940241105653, + 0.319999977253504, + -0.145000051886478, + -0.00010773877981355, + 0.999999999000364, + -0.0000409124426909608, + 0.0000180400179853453, + 0.000000000376588392908061 + ], + "shoe_position": [ + 0.319999977253504, + -0.145000051886478, + -0.00010773877981355 + ], + "tcp_position": [ + 0.373895915984449, + -0.0322075514538086, + 0.23993595242987 + ], + "tcp_quaternion": [ + 0.240539764732411, + -0.0168277662830079, + 0.970488297934629, + 0.00314824337477892 + ], + "time": 1.14 + } + }, + { + "compute_ms": 1.01195898605511, + "request": { + "jaw": 0.025, + "sequence": 58, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 9.191, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0264109393825372, + -0.00351221043744931, + 0.406783237938351 + ], + [ + 0.275162394584341, + -0.0366026734413189, + 0.426470469566352 + ], + [ + 0.275162394584341, + -0.0366026734413189, + 0.426470469566352 + ], + [ + 0.31789443755457, + -0.033967095090363, + 0.346158373948093 + ], + [ + 0.38187174135061, + -0.05752451328262, + 0.226866253326999 + ], + [ + 0.380177228721438, + -0.00673400843005021, + 0.22675110631214 + ], + [ + 0.319999977253529, + -0.14500005188661, + -0.00010773877981977 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658839534656244, + 0.0, + 0.0, + -0.752283502127983 + ], + [ + 0.463912237009458, + -0.530233177565585, + -0.467819171698535, + -0.533651043616407 + ], + [ + 0.0230212250190236, + -0.116013609835039, + -0.697526230569893, + -0.706730516674229 + ], + [ + -0.0165588962074145, + -0.706150206778345, + 0.0770801344597373, + -0.7036592508416 + ], + [ + 0.702268557732144, + -0.666213964823653, + -0.116678412378059, + -0.222180048563541 + ], + [ + -0.240944304870874, + 0.0164560368932243, + -0.970395034628367, + -0.00291848739431059 + ], + [ + 0.68823803797973, + -0.684107771469105, + -0.18200988231444, + -0.158736772152107 + ], + [ + -0.684110691410807, + -0.688235135548912, + 0.158737544353537, + -0.182009208849465 + ], + [ + 0.999999999000364, + -0.0000409124412395605, + 0.0000180400179684333, + 0.000000000381546683452886 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244547794 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392118719 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406746601 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956586884 + } + ], + "ctrl": [ + -0.132627341414527, + 1.56040072344319, + -1.46895664996927, + 0.0774127797255157, + 1.0480509850979, + -0.153909382880868, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00820343742574299, + "qpos": [ + -0.132241831361734, + 1.56345520154568, + -1.46702973259172, + 0.0852000921601308, + 1.08179507602499, + -0.187795261774075, + 0.0254072309467441, + -0.0254116633260641, + 0.319999977253529, + -0.14500005188661, + -0.00010773877981977, + 0.999999999000364, + -0.0000409124412395605, + 0.0000180400179684333, + 0.000000000381546683452886 + ], + "shoe_position": [ + 0.319999977253529, + -0.14500005188661, + -0.00010773877981977 + ], + "tcp_position": [ + 0.374011614622177, + -0.0323353894948245, + 0.240066899857041 + ], + "tcp_quaternion": [ + 0.240944304870874, + -0.0164560368932243, + 0.970395034628367, + 0.00291848739431059 + ], + "time": 1.16 + } + }, + { + "compute_ms": 1.10437499824911, + "request": { + "jaw": 0.025, + "sequence": 59, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.26, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0263745234826287, + -0.00350774026425857, + 0.406786679999789 + ], + [ + 0.27512206459482, + -0.0366012109039971, + 0.426518260971813 + ], + [ + 0.27512206459482, + -0.0366012109039971, + 0.426518260971813 + ], + [ + 0.317920286804382, + -0.0340183472351316, + 0.346239699305457 + ], + [ + 0.381972964515329, + -0.0575867468213288, + 0.227004679036219 + ], + [ + 0.38032412418403, + -0.00693142687220674, + 0.226876962757221 + ], + [ + 0.319999977253723, + -0.145000051887594, + -0.0001077387798144 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658834291842847, + 0.0, + 0.0, + -0.752288093679499 + ], + [ + 0.463874021829332, + -0.530206197449521, + -0.467849749584329, + -0.533684262342333 + ], + [ + 0.0229538485828591, + -0.115956832980547, + -0.697535671406934, + -0.706732708196837 + ], + [ + -0.0167428148545361, + -0.706107260550094, + 0.0769001679928032, + -0.703717684097726 + ], + [ + 0.702006511030998, + -0.666344006852587, + -0.117012223462669, + -0.222442492707771 + ], + [ + -0.241336959103858, + 0.0160917195960276, + -0.970304188309866, + -0.00270386376840561 + ], + [ + 0.688022038295722, + -0.684195295715075, + -0.182029920683563, + -0.159272031809411 + ], + [ + -0.684198214740366, + -0.688019135493571, + 0.159272804095852, + -0.182029244947672 + ], + [ + 0.999999999000364, + -0.0000409124425145837, + 0.0000180400179903787, + 0.000000000420170230612817 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244568171 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392133344 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406731316 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956566998 + } + ], + "ctrl": [ + -0.132600377706313, + 1.56041806374036, + -1.46895072550611, + 0.0773527323534668, + 1.04803428845165, + -0.153848462613409, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0080057851291935, + "qpos": [ + -0.132255769717107, + 1.56332592275121, + -1.46707718594516, + 0.0846955218528416, + 1.08107286254905, + -0.18695880296008, + 0.0253392009889234, + -0.0253431078089224, + 0.319999977253723, + -0.145000051887594, + -0.0001077387798144, + 0.999999999000364, + -0.0000409124425145837, + 0.0000180400179903787, + 0.000000000420170230612817 + ], + "shoe_position": [ + 0.319999977253723, + -0.145000051887594, + -0.0001077387798144 + ], + "tcp_position": [ + 0.374124754984291, + -0.0324562535261523, + 0.240193395645886 + ], + "tcp_quaternion": [ + 0.241336959103858, + -0.0160917195960276, + 0.970304188309866, + 0.00270386376840561 + ], + "time": 1.18 + } + }, + { + "compute_ms": 0.983000005362555, + "request": { + "jaw": 0.025, + "sequence": 60, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 17.353, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0263399218572445, + -0.00350346703241479, + 0.406789946459185 + ], + [ + 0.275083744938994, + -0.0365995612066281, + 0.426563952757527 + ], + [ + 0.275083744938994, + -0.0365995612066281, + 0.426563952757527 + ], + [ + 0.317946511692997, + -0.0340667251779394, + 0.346318239849648 + ], + [ + 0.382073121627265, + -0.0576534462098421, + 0.227138621296451 + ], + [ + 0.380467985570183, + -0.00711055221796641, + 0.226999579263552 + ], + [ + 0.319999977253747, + -0.145000051887715, + -0.00010773877982043 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658829658352842, + 0.0, + 0.0, + -0.752292151543984 + ], + [ + 0.463837952555703, + -0.530180340889216, + -0.46787905075414, + -0.53371561132211 + ], + [ + 0.0228897529223231, + -0.115902163658245, + -0.697544757316215, + -0.706734787039067 + ], + [ + -0.0169160072683016, + -0.706065903833281, + 0.0767301011779245, + -0.703773599757348 + ], + [ + 0.701756335286294, + -0.666464794984429, + -0.117336502224284, + -0.222699052933963 + ], + [ + -0.241720393474354, + 0.0157344573994351, + -0.970215137286564, + -0.00250311984562731 + ], + [ + 0.687817122491239, + -0.684274274970432, + -0.182048428310763, + -0.159795783333425 + ], + [ + -0.684277193126338, + -0.68781421935401, + 0.159796555698382, + -0.182047750352782 + ], + [ + 0.999999999000364, + -0.0000409124410989149, + 0.0000180400179703794, + 0.000000000424897073799354 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244547876 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392119357 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406745994 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956586749 + } + ], + "ctrl": [ + -0.132574551315933, + 1.56043421310222, + -1.46894488804268, + 0.0772955525199417, + 1.04801816073296, + -0.153790475004423, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00781423933635008, + "qpos": [ + -0.132268088076383, + 1.56320307424564, + -1.46712340467484, + 0.0842197165686112, + 1.08036695576737, + -0.186141665529546, + 0.0252825457826566, + -0.0252860208132898, + 0.319999977253747, + -0.145000051887715, + -0.00010773877982043, + 0.999999999000364, + -0.0000409124410989149, + 0.0000180400179703794, + 0.000000000424897073799354 + ], + "shoe_position": [ + 0.319999977253747, + -0.145000051887715, + -0.00010773877982043 + ], + "tcp_position": [ + 0.374236116458673, + -0.0325706943040915, + 0.240316149365788 + ], + "tcp_quaternion": [ + 0.241720393474354, + -0.0157344573994351, + 0.970215137286564, + 0.00250311984562731 + ], + "time": 1.2 + } + }, + { + "compute_ms": 0.985374994343147, + "request": { + "jaw": 0.025, + "sequence": 61, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.203, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0263069924706951, + -0.00349937587053538, + 0.406793051344925 + ], + [ + 0.27504728091794, + -0.0365977436459392, + 0.426607673465607 + ], + [ + 0.27504728091794, + -0.0365977436459392, + 0.426607673465607 + ], + [ + 0.317973082994734, + -0.0341124115376434, + 0.346394176392949 + ], + [ + 0.382172263212488, + -0.0577231354233649, + 0.227268393358938 + ], + [ + 0.380609077067537, + -0.00727374071154065, + 0.227119166237155 + ], + [ + 0.319999977253931, + -0.14500005188863, + -0.00010773877981592 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658825580953461, + 0.0, + 0.0, + -0.75229572236012 + ], + [ + 0.463803857486069, + -0.530155523472239, + -0.467907171276394, + -0.533745240523082 + ], + [ + 0.0228287268945914, + -0.115849492259155, + -0.697553507010965, + -0.706736760914821 + ], + [ + -0.017079104976268, + -0.706026042780925, + 0.0765693790670684, + -0.703827152984026 + ], + [ + 0.701517305438331, + -0.666576848654384, + -0.117651907208889, + -0.222950227043268 + ], + [ + -0.242095314675747, + 0.0153841184650212, + -0.970127737322519, + -0.00231533768475233 + ], + [ + 0.687622539494755, + -0.684345256329035, + -0.182065811681118, + -0.160308619654802 + ], + [ + -0.684348173659394, + -0.687619636056379, + 0.160309392093506, + -0.182065131547355 + ], + [ + 0.999999999000364, + -0.0000409124421625305, + 0.0000180400179889635, + 0.000000000461712906548241 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244565995 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392132588 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406732129 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956569122 + } + ], + "ctrl": [ + -0.132549746517167, + 1.56044929837165, + -1.46893904164944, + 0.0772409676150811, + 1.04800241964335, + -0.153735146330979, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00762833902803358, + "qpos": [ + -0.132278927986638, + 1.56308615276937, + -1.46716834157229, + 0.0837710215632208, + 1.07967604475664, + -0.185343382586955, + 0.0252353599664807, + -0.0252384673749538, + 0.319999977253931, + -0.14500005188863, + -0.00010773877981592, + 0.999999999000364, + -0.0000409124421625305, + 0.0000180400179889635, + 0.000000000461712906548241 + ], + "shoe_position": [ + 0.319999977253931, + -0.14500005188863, + -0.00010773877981592 + ], + "tcp_position": [ + 0.374345835159608, + -0.0326791101874541, + 0.24043541384545 + ], + "tcp_quaternion": [ + 0.242095314675747, + -0.0153841184650212, + 0.970127737322519, + 0.00231533768475233 + ], + "time": 1.22 + } + }, + { + "compute_ms": 1.00333301816136, + "request": { + "jaw": 0.025, + "sequence": 62, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.959, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0262756361559584, + -0.00349545667509247, + 0.406796004558261 + ], + [ + 0.275012563501445, + -0.0365957741768781, + 0.426649524447873 + ], + [ + 0.275012563501445, + -0.0365957741768781, + 0.426649524447873 + ], + [ + 0.317999946924166, + -0.0341555658143064, + 0.346467626728592 + ], + [ + 0.382270331580193, + -0.0577946047466222, + 0.227394184752156 + ], + [ + 0.380747513090021, + -0.00742296237709754, + 0.227235825126067 + ], + [ + 0.319999977253954, + -0.145000051888741, + -0.00010773877982148 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658822019008745, + 0.0, + 0.0, + -0.752298841730625 + ], + [ + 0.463771614361476, + -0.530131688480358, + -0.467934175786472, + -0.533773256835288 + ], + [ + 0.0227706036550851, + -0.115798729528077, + -0.697561935773221, + -0.706738635995785 + ], + [ + -0.0172327018435103, + -0.705987613230076, + 0.0764174644949243, + -0.703878466123975 + ], + [ + 0.701288819999952, + -0.66668070966767, + -0.117958804850936, + -0.223196197678694 + ], + [ + -0.242462010995953, + 0.0150406204435159, + -0.970041944772091, + -0.00213970634729303 + ], + [ + 0.687437685025184, + -0.68440878235015, + -0.18208221641578, + -0.160810802853286 + ], + [ + -0.684411698896237, + -0.687434781317292, + 0.160811575361584, + -0.182081534151433 + ], + [ + 0.999999999000364, + -0.0000409124408602851, + 0.0000180400179684765, + 0.000000000466218516028064 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244548043 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392120456 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.6716454067449 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956586572 + } + ], + "ctrl": [ + -0.132525910099322, + 1.56046340178164, + -1.46893317691881, + 0.0771888287984772, + 1.0479870275724, + -0.1536823223836, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00744780043319082, + "qpos": [ + -0.132288397500355, + 1.5629748070479, + -1.46721200953815, + 0.0833478549410262, + 1.07899961612597, + -0.184563535317451, + 0.0251960576431403, + -0.025198846950223, + 0.319999977253954, + -0.145000051888741, + -0.00010773877982148, + 0.999999999000364, + -0.0000409124408602851, + 0.0000180400179684765, + 0.000000000466218516028064 + ], + "shoe_position": [ + 0.319999977253954, + -0.145000051888741, + -0.00010773877982148 + ], + "tcp_position": [ + 0.374453930052977, + -0.0327818503146919, + 0.240551331501568 + ], + "tcp_quaternion": [ + 0.242462010995953, + -0.0150406204435159, + 0.970041944772091, + 0.00213970634729303 + ], + "time": 1.24 + } + }, + { + "compute_ms": 0.890625000465661, + "request": { + "jaw": 0.025, + "sequence": 63, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.162, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0262457703361752, + -0.00349170114339558, + 0.406798814371354 + ], + [ + 0.274979501476444, + -0.0365936671555211, + 0.426689594526302 + ], + [ + 0.274979501476444, + -0.0365936671555211, + 0.426689594526302 + ], + [ + 0.318027051411123, + -0.0341963353008872, + 0.346538688624684 + ], + [ + 0.382367261611878, + -0.0578668830697368, + 0.227516149065332 + ], + [ + 0.380883370924607, + -0.00755988641325543, + 0.227349630656481 + ], + [ + 0.31999997725413, + -0.1450000518896, + -0.00010773877981735 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658818937171553, + 0.0, + 0.0, + -0.75230154062327 + ], + [ + 0.463741120329603, + -0.530108789644107, + -0.467960117042104, + -0.533799750201745 + ], + [ + 0.0227152366672929, + -0.115749796439202, + -0.697570057144287, + -0.706740417708757 + ], + [ + -0.0173773560647011, + -0.705950562542264, + 0.0762738482373519, + -0.703927646010247 + ], + [ + 0.701070329120021, + -0.66677689851513, + -0.118257488996049, + -0.223437077340441 + ], + [ + -0.242820677192425, + 0.0147038888874457, + -0.969957737160883, + -0.00197547491444948 + ], + [ + 0.687262012212045, + -0.684465368122919, + -0.18209772758714, + -0.161302523285311 + ], + [ + -0.684468283923689, + -0.68725910826408, + 0.161303295859413, + -0.1820970432366 + ], + [ + 0.999999999000364, + -0.0000409124418374142, + 0.0000180400179853542, + 0.000000000501308672220955 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244564712 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392132613 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406732146 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956570389 + } + ], + "ctrl": [ + -0.132503002786307, + 1.56047659229495, + -1.46892730172522, + 0.0771390168005878, + 1.04797197672409, + -0.153631877982837, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00727238912051269, + "qpos": [ + -0.132296590605259, + 1.56286874461556, + -1.46725443686825, + 0.0829487223767464, + 1.07833732518377, + -0.183801720172819, + 0.0251633199754245, + -0.0251658323380516, + 0.31999997725413, + -0.1450000518896, + -0.00010773877981735, + 0.999999999000364, + -0.0000409124418374142, + 0.0000180400179853542, + 0.000000000501308672220955 + ], + "shoe_position": [ + 0.31999997725413, + -0.1450000518896, + -0.00010773877981735 + ], + "tcp_position": [ + 0.374560400597199, + -0.0328792376043972, + 0.240664014677308 + ], + "tcp_quaternion": [ + 0.242820677192425, + -0.0147038888874457, + 0.969957737160883, + 0.00197547491444948 + ], + "time": 1.26 + } + }, + { + "compute_ms": 0.953084003413096, + "request": { + "jaw": 0.025, + "sequence": 64, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.423, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0262173201970752, + -0.00348810177985131, + 0.406801488268926 + ], + [ + 0.274948012042052, + -0.0365914359339344, + 0.426727965584359 + ], + [ + 0.274948012042052, + -0.0365914359339344, + 0.426727965584359 + ], + [ + 0.318054348453388, + -0.0342348579885043, + 0.34660745152067 + ], + [ + 0.382462997362455, + -0.0579391989035888, + 0.227634425731384 + ], + [ + 0.381016713847179, + -0.0076859367581627, + 0.227460650565057 + ], + [ + 0.319999977254152, + -0.145000051889705, + -0.00010773877982243 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.65881630290972, + 0.0, + 0.0, + -0.752303847537927 + ], + [ + 0.463712281843016, + -0.5300867853621, + -0.467985042479432, + -0.533824802409876 + ], + [ + 0.0226624906915448, + -0.115702619890588, + -0.697577883644869, + -0.706742111038854 + ], + [ + -0.0175135925015169, + -0.705914842820389, + 0.0761380506568596, + -0.703974790745897 + ], + [ + 0.700861317864037, + -0.666865906108536, + -0.11854822833081, + -0.223672962048505 + ], + [ + -0.243171484902206, + 0.0143738481193295, + -0.969875096057928, + -0.00182194053762644 + ], + [ + 0.687095011034691, + -0.684515497604775, + -0.182112413049214, + -0.161783955828498 + ], + [ + -0.684518412697019, + -0.687092106874047, + 0.161784728464901, + -0.182111726656128 + ], + [ + 0.999999999000364, + -0.0000409124406523576, + 0.0000180400179654515, + 0.000000000505603088851746 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244548361 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392121583 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406743763 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956586261 + } + ], + "ctrl": [ + -0.132480989145284, + 1.5604889323054, + -1.46892142698112, + 0.077091422688574, + 1.04795726533127, + -0.153583698508256, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00710189227560067, + "qpos": [ + -0.132303593801854, + 1.56276770051591, + -1.46729565487851, + 0.082572217349918, + 1.07768886743688, + -0.183057542526326, + 0.0251360497669547, + -0.0251383203446379, + 0.319999977254152, + -0.145000051889705, + -0.00010773877982243, + 0.999999999000364, + -0.0000409124406523576, + 0.0000180400179654515, + 0.000000000505603088851746 + ], + "shoe_position": [ + 0.319999977254152, + -0.145000051889705, + -0.00010773877982243 + ], + "tcp_position": [ + 0.374665244595689, + -0.0329715747078487, + 0.240773565390951 + ], + "tcp_quaternion": [ + 0.243171484902206, + -0.0143738481193295, + 0.969875096057928, + 0.00182194053762644 + ], + "time": 1.28 + } + }, + { + "compute_ms": 0.880459003383294, + "request": { + "jaw": 0.025, + "sequence": 65, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.538, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0261902158270052, + -0.00348465157473595, + 0.406804033224226 + ], + [ + 0.274918017747171, + -0.0365890930417332, + 0.426764714653496 + ], + [ + 0.274918017747171, + -0.0365890930417332, + 0.426764714653496 + ], + [ + 0.318081793719626, + -0.034271263616313, + 0.346673999943211 + ], + [ + 0.382557493375661, + -0.0580109449995818, + 0.227749146006503 + ], + [ + 0.381147596964337, + -0.00780233346995778, + 0.227568950413509 + ], + [ + 0.319999977254319, + -0.145000051890517, + -0.00010773877981849 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658814085719554, + 0.0, + 0.0, + -0.752305789195795 + ], + [ + 0.46368501139885, + -0.530065636819559, + -0.468008996348442, + -0.533848489933285 + ], + [ + 0.022612238497458, + -0.115657130918565, + -0.697585427075198, + -0.70674372064429 + ], + [ + -0.0176419048028205, + -0.705880408542964, + 0.0760096207608954, + -0.704019992316931 + ], + [ + 0.700661301146397, + -0.666948193411714, + -0.118831277410302, + -0.223903943443892 + ], + [ + -0.243514598441073, + 0.0140504195357129, + -0.969794003324264, + -0.00167844369890274 + ], + [ + 0.686936202318305, + -0.68455962432015, + -0.182126333410117, + -0.162255272252541 + ], + [ + -0.684562538738624, + -0.686933297970449, + 0.162256044947999, + -0.182125645017404 + ], + [ + 0.999999999000364, + -0.0000409124415812205, + 0.0000180400179813418, + 0.000000000539047009039824 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244563877 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.72889339213281 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406731966 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956571207 + } + ], + "ctrl": [ + -0.132459835440238, + 1.56050047934664, + -1.46891556363975, + 0.0770459437039024, + 1.04794289259821, + -0.153537675899974, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0069361118121554, + "qpos": [ + -0.132309488194955, + 1.5626714271603, + -1.46733569497635, + 0.0822170172552136, + 1.07705395193465, + -0.1823306154884, + 0.0251133336721228, + -0.0251153926716787, + 0.319999977254319, + -0.145000051890517, + -0.00010773877981849, + 0.999999999000364, + -0.0000409124415812205, + 0.0000180400179813418, + 0.000000000539047009039824 + ], + "shoe_position": [ + 0.319999977254319, + -0.145000051890517, + -0.00010773877981849 + ], + "tcp_position": [ + 0.374768461312957, + -0.0330591462054312, + 0.24088008051234 + ], + "tcp_quaternion": [ + 0.243514598441073, + -0.0140504195357129, + 0.969794003324264, + 0.00167844369890274 + ], + "time": 1.3 + } + }, + { + "compute_ms": 0.900665996596217, + "request": { + "jaw": 0.025, + "sequence": 66, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 2.682, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0261643912216327, + -0.00348134389431184, + 0.406806455798121 + ], + [ + 0.274889445420332, + -0.0365866502535661, + 0.426799914746336 + ], + [ + 0.274889445420332, + -0.0365866502535661, + 0.426799914746336 + ], + [ + 0.318109346125049, + -0.034305674274482, + 0.346738414611082 + ], + [ + 0.382650713486237, + -0.0580816486933699, + 0.227860434901887 + ], + [ + 0.381276069492406, + -0.00791012554282413, + 0.227674594692237 + ], + [ + 0.31999997725434, + -0.145000051890616, + -0.00010773877982316 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658812256847993, + 0.0, + 0.0, + -0.752307390783086 + ], + [ + 0.463659226403092, + -0.530045307336902, + -0.468032020453868, + -0.533870884925641 + ], + [ + 0.0225643595699592, + -0.115613263936396, + -0.697592698644398, + -0.706745250905302 + ], + [ + -0.0177627573271362, + -0.705847215774362, + 0.0758881346401687, + -0.70406333767393 + ], + [ + 0.700469821280408, + -0.667024192794182, + -0.119106879667446, + -0.224130111583757 + ], + [ + -0.243850178481779, + 0.0137335215502851, + -0.969714440325886, + -0.00154436514041598 + ], + [ + 0.686785135006122, + -0.684598172975207, + -0.182139544592761, + -0.162716643860339 + ], + [ + -0.684601086752757, + -0.686782230494719, + 0.162717416611843, + -0.182138854242612 + ], + [ + 0.999999999000364, + -0.0000409124404908137, + 0.0000180400179622912, + 0.000000000543139955249091 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244508225 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392086152 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.67164540678646 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956625735 + } + ], + "ctrl": [ + -0.132439509151123, + 1.56051128673185, + -1.46890972204443, + 0.0770024821871957, + 1.047928857585, + -0.153493707611108, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00677486204029665, + "qpos": [ + -0.132314350232815, + 1.56257969079839, + -1.46737458805461, + 0.0818818786352132, + 1.07643229554272, + -0.181620559639732, + 0.0250944110866534, + -0.0250962844453314, + 0.31999997725434, + -0.145000051890616, + -0.00010773877982316, + 0.999999999000364, + -0.0000409124404908137, + 0.0000180400179622912, + 0.000000000543139955249091 + ], + "shoe_position": [ + 0.31999997725434, + -0.145000051890616, + -0.00010773877982316 + ], + "tcp_position": [ + 0.374870051901529, + -0.0331422199174262, + 0.240983653234986 + ], + "tcp_quaternion": [ + 0.243850178481779, + -0.0137335215502851, + 0.969714440325886, + 0.00154436514041598 + ], + "time": 1.32 + } + }, + { + "compute_ms": 0.881500018294901, + "request": { + "jaw": 0.025, + "sequence": 67, + "target": [ + 0.38, + -0.035, + 0.245 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.305, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0261397838551333, + -0.00347817243569611, + 0.406808762184177 + ], + [ + 0.274862225707446, + -0.0365841186296591, + 0.426833635258061 + ], + [ + 0.274862225707446, + -0.0365841186296591, + 0.426833635258061 + ], + [ + 0.318136967546483, + -0.0343382048841282, + 0.346800772867276 + ], + [ + 0.382742629415239, + -0.0581509474147668, + 0.227968411990216 + ], + [ + 0.381402176123863, + -0.00801021776381312, + 0.227777646987901 + ], + [ + 0.319999977254548, + -0.145000051891617, + -0.00010773877981729 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658810789159137, + 0.0, + 0.0, + -0.752308676068218 + ], + [ + 0.463634848673035, + -0.530025762098339, + -0.468054154465138, + -0.53389205565913 + ], + [ + 0.022518739482835, + -0.115570956363967, + -0.697599709034571, + -0.706746705950657 + ], + [ + -0.0178765869191491, + -0.705815221906952, + 0.0757731938343812, + -0.704104909271835 + ], + [ + 0.700286446201781, + -0.667094309700794, + -0.119375268549627, + -0.224351555576521 + ], + [ + -0.244178382930573, + 0.0134230698758522, + -0.969636387824627, + -0.00141912329538038 + ], + [ + 0.686641384265729, + -0.684631541197234, + -0.182152098654029, + -0.163168241908395 + ], + [ + -0.6846344543649, + -0.686638479612757, + 0.163169014713157, + -0.182151406387911 + ], + [ + 0.999999999000364, + -0.0000409124418596442, + 0.0000180400179857451, + 0.000000000584540574352122 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244564698 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392132503 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.67164540673227 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956570382 + } + ], + "ctrl": [ + -0.132419978850766, + 1.5605214039375, + -1.46890391178555, + 0.0769609451604522, + 1.04791515895218, + -0.153451696182171, + 0.025 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.00661796842792697, + "qpos": [ + -0.13231825206236, + 1.56249226999769, + -1.4674123643892, + 0.081565632420516, + 1.07582362158585, + -0.180927002911564, + 0.0250786484810001, + -0.0250803584498372, + 0.319999977254548, + -0.145000051891617, + -0.00010773877981729, + 0.999999999000364, + -0.0000409124418596442, + 0.0000180400179857451, + 0.000000000584540574352122 + ], + "shoe_position": [ + 0.319999977254548, + -0.145000051891617, + -0.00010773877981729 + ], + "tcp_position": [ + 0.374970019350697, + -0.0332210479649608, + 0.241084373557436 + ], + "tcp_quaternion": [ + 0.244178382930573, + -0.0134230698758522, + 0.969636387824627, + 0.00141912329538038 + ], + "time": 1.34 + } + }, + { + "compute_ms": 0.950582994846627, + "request": { + "jaw": 0.01, + "sequence": 68, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 8.473, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0264632141780606, + -0.0035488330724075, + 0.406777912380774 + ], + [ + 0.275136770643206, + -0.0369077280893894, + 0.426989263998663 + ], + [ + 0.275136770643206, + -0.0369077280893894, + 0.426989263998663 + ], + [ + 0.318462864440686, + -0.0346204764958827, + 0.346985360664825 + ], + [ + 0.383101162632825, + -0.0582970689902193, + 0.22815945404083 + ], + [ + 0.381841718618146, + -0.00822021955034658, + 0.228036760178828 + ], + [ + 0.319999977254567, + -0.145000051891711, + -0.00010773877982251 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.658425122563578, + 0.0, + 0.0, + -0.752646236938136 + ], + [ + 0.463671564264876, + -0.530537416559919, + -0.467474116534731, + -0.533860169419075 + ], + [ + 0.0218938708003681, + -0.115669262729848, + -0.697583415556544, + -0.706766339338099 + ], + [ + -0.0178444655055186, + -0.705472705492234, + 0.0765073197435531, + -0.7043695527789 + ], + [ + 0.700490994172351, + -0.666713251604432, + -0.119133462389681, + -0.224973388109625 + ], + [ + -0.244482815792095, + 0.0124899550765933, + -0.969571346300793, + -0.00188632898020205 + ], + [ + 0.686925756484653, + -0.684255185006928, + -0.181707555256589, + -0.16404332120448 + ], + [ + -0.684258099381087, + -0.686922853428423, + 0.164044092123197, + -0.181706859277827 + ], + [ + 0.999999999000364, + -0.0000409124406356365, + 0.0000180400179637956, + 0.000000000588441395097587 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244510004 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392087191 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406785086 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956623921 + } + ], + "ctrl": [ + -0.162419978850766, + 1.5905214039375, + -1.49890391178554, + 0.106960945160452, + 1.07791515895218, + -0.183451696182171, + 0.024 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.06007905127509, + "qpos": [ + -0.133343310245256, + 1.56365487167041, + -1.46931817919097, + 0.0827008987721175, + 1.07610092184556, + -0.180280010218522, + 0.0250031430530645, + -0.025089691792637, + 0.319999977254567, + -0.145000051891711, + -0.00010773877982251, + 0.999999999000364, + -0.0000409124406356365, + 0.0000180400179637956, + 0.000000000588441395097587 + ], + "shoe_position": [ + 0.319999977254567, + -0.145000051891711, + -0.00010773877982251 + ], + "tcp_position": [ + 0.375361879084822, + -0.0334483811656535, + 0.241305044498269 + ], + "tcp_quaternion": [ + 0.244482815792095, + -0.0124899550765933, + 0.969571346300793, + 0.00188632898020205 + ], + "time": 1.36 + } + }, + { + "compute_ms": 1.26441600150429, + "request": { + "jaw": 0.01, + "sequence": 69, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.808, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0282387258451296, + -0.00394174859982989, + 0.406601545229604 + ], + [ + 0.276670499770726, + -0.0386294951794163, + 0.427536354457576 + ], + [ + 0.276670499770726, + -0.0386294951794163, + 0.427536354457576 + ], + [ + 0.319905971274305, + -0.0360709401803275, + 0.347491652743909 + ], + [ + 0.384267385753215, + -0.0591646177943774, + 0.228438827034683 + ], + [ + 0.383268208063709, + -0.00925017444366487, + 0.228625639287579 + ], + [ + 0.319999977254765, + -0.145000051892662, + -0.00010773877981746 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.656398603846593, + 0.0, + 0.0, + -0.754414258128943 + ], + [ + 0.463941078681806, + -0.533278686108603, + -0.464344530432181, + -0.53362596967498 + ], + [ + 0.0189738618827585, + -0.116539391235683, + -0.697438578148941, + -0.706850756924865 + ], + [ + -0.0177029460578527, + -0.704021786044515, + 0.0803527733366233, + -0.705395890470505 + ], + [ + 0.702030003489755, + -0.665017636449094, + -0.116336915427076, + -0.22665202297961 + ], + [ + -0.243901090950883, + 0.00924870082351573, + -0.969746673280924, + -0.004255470200336 + ], + [ + 0.688724963985281, + -0.682703920314848, + -0.179004304852194, + -0.165923898262408 + ], + [ + -0.682706842322415, + -0.688722067510497, + 0.165924657712182, + -0.17900360089484 + ], + [ + 0.999999999000364, + -0.0000409124418119279, + 0.0000180400179838011, + 0.000000000627898209022356 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244563358 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392131405 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406733419 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956571672 + } + ], + "ctrl": [ + -0.192419978850766, + 1.61560161829686, + -1.52890391178554, + 0.124420138027406, + 1.10791515895218, + -0.213451696182171, + 0.023 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0586191044170053, + "qpos": [ + -0.138722039240376, + 1.57004350384397, + -1.47859058788745, + 0.0885542745711624, + 1.08109988114471, + -0.180115638260751, + 0.0248224815039565, + -0.0251023110337135, + 0.319999977254765, + -0.145000051892662, + -0.00010773877981746, + 0.999999999000364, + -0.0000409124418119279, + 0.0000180400179838011, + 0.000000000627898209022356 + ], + "shoe_position": [ + 0.319999977254765, + -0.145000051892662, + -0.00010773877981746 + ], + "tcp_position": [ + 0.376676059606375, + -0.0345387581207687, + 0.241746627381458 + ], + "tcp_quaternion": [ + 0.243901090950883, + -0.00924870082351573, + 0.969746673280924, + 0.004255470200336 + ], + "time": 1.38 + } + }, + { + "compute_ms": 1.10354099888355, + "request": { + "jaw": 0.01, + "sequence": 70, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.531, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0312204599497976, + -0.0046853024892174, + 0.406277479332734 + ], + [ + 0.279186187813065, + -0.0419069121719332, + 0.428354659267404 + ], + [ + 0.279186187813065, + -0.0419069121719332, + 0.428354659267404 + ], + [ + 0.322316908420895, + -0.0392007779353144, + 0.348258315720444 + ], + [ + 0.386311961365884, + -0.0618240761823707, + 0.228969619588751 + ], + [ + 0.385695818015498, + -0.0123656655248278, + 0.229448812757145 + ], + [ + 0.319999977254784, + -0.145000051892752, + -0.00010773877982269 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.652517746222218, + 0.0, + 0.0, + -0.757773442966351 + ], + [ + 0.464080265586681, + -0.538136920095049, + -0.458705412253458, + -0.53350492696225 + ], + [ + 0.0137354294366555, + -0.118530272105671, + -0.697102987079065, + -0.706971949923185 + ], + [ + -0.0189955736360287, + -0.701716943324719, + 0.0861339992584551, + -0.70697484665651 + ], + [ + 0.703359403160869, + -0.663281536630142, + -0.111770071379807, + -0.229892592952657 + ], + [ + -0.243169497154707, + 0.0048633987445661, + -0.969951720321668, + -0.00621315147213528 + ], + [ + 0.690254241308938, + -0.681464617590263, + -0.175386118601817, + -0.168507467874182 + ], + [ + -0.681467546086018, + -0.690251350092058, + 0.168508211973264, + -0.175385403683334 + ], + [ + 0.999999999000364, + -0.0000409124405888808, + 0.0000180400179615917, + 0.000000000631615881314582 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244513228 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392090272 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406781414 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956620752 + } + ], + "ctrl": [ + -0.222419978850766, + 1.61954085292764, + -1.55890391178554, + 0.12505880721175, + 1.13791515895218, + -0.243451696182171, + 0.022 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0554798221650017, + "qpos": [ + -0.148987561440786, + 1.58083074987236, + -1.49393286439026, + 0.0952774723790385, + 1.08830076571652, + -0.182463928645219, + 0.0245732455033591, + -0.0248913240746232, + 0.319999977254784, + -0.145000051892752, + -0.00010773877982269, + 0.999999999000364, + -0.0000409124405888808, + 0.0000180400179615917, + 0.000000000631615881314582 + ], + "shoe_position": [ + 0.319999977254784, + -0.145000051892752, + -0.00010773877982269 + ], + "tcp_position": [ + 0.378930847583053, + -0.0374701644653963, + 0.242432667744345 + ], + "tcp_quaternion": [ + 0.243169497154707, + -0.0048633987445661, + 0.969951720321668, + 0.00621315147213528 + ], + "time": 1.4 + } + }, + { + "compute_ms": 1.06470799073577, + "request": { + "jaw": 0.01, + "sequence": 71, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 2.854, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0346793593361103, + -0.00574600717468542, + 0.405855307380974 + ], + [ + 0.281901896093072, + -0.0467162756773881, + 0.429568314661137 + ], + [ + 0.281901896093072, + -0.0467162756773881, + 0.429568314661137 + ], + [ + 0.325025390945714, + -0.0441371338090312, + 0.349463890993233 + ], + [ + 0.388742638642678, + -0.0665669150392874, + 0.23006701800182 + ], + [ + 0.388604016848509, + -0.0178964467170865, + 0.230714102698222 + ], + [ + 0.319999977254972, + -0.145000051893657, + -0.00010773877981808 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.646726838825222, + 0.0, + 0.0, + -0.762721702813769 + ], + [ + 0.463391724738866, + -0.544480729106496, + -0.451157107482147, + -0.534103088779254 + ], + [ + 0.0060429083141925, + -0.121564455322422, + -0.696580277643692, + -0.707079545213342 + ], + [ + -0.0223259953794454, + -0.698471078492238, + 0.0932791701873519, + -0.709181710740883 + ], + [ + 0.703760816254366, + -0.661959324154238, + -0.106075672656131, + -0.235113841236118 + ], + [ + -0.242966831309253, + -0.00023378316049254, + -0.970010776371514, + -0.00679396438814783 + ], + [ + 0.690706696311546, + -0.681095678904999, + -0.171638567672082, + -0.171968421330208 + ], + [ + -0.681098609320362, + -0.690703806659937, + 0.171969149529739, + -0.171637838070045 + ], + [ + 0.999999999000364, + -0.0000409124416694479, + 0.0000180400179798143, + 0.000000000669219958501588 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244562499 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392131144 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406733715 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956572519 + } + ], + "ctrl": [ + -0.240600532744276, + 1.62706720798343, + -1.58890391178554, + 0.127376340570001, + 1.16791515895218, + -0.26219282596851, + 0.021 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0505472799422552, + "qpos": [ + -0.164221755154389, + 1.59348519243311, + -1.5131131276797, + 0.101294410573243, + 1.09638815774363, + -0.187924838850044, + 0.0241964335541739, + -0.0244785335372495, + 0.319999977254972, + -0.145000051893657, + -0.00010773877981808, + 0.999999999000364, + -0.0000409124416694479, + 0.0000180400179798143, + 0.000000000669219958501588 + ], + "shoe_position": [ + 0.319999977254972, + -0.145000051893657, + -0.00010773877981808 + ], + "tcp_position": [ + 0.381603219784161, + -0.0425687216959075, + 0.243616405112033 + ], + "tcp_quaternion": [ + 0.242966831309253, + 0.00023378316049254, + 0.970010776371514, + 0.00679396438814783 + ], + "time": 1.42 + } + }, + { + "compute_ms": 0.964875012869015, + "request": { + "jaw": 0.01, + "sequence": 72, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 5.017, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0382746408884829, + -0.00706642022127026, + 0.405361323566302 + ], + [ + 0.28448575702446, + -0.0525302028644087, + 0.431303240512699 + ], + [ + 0.28448575702446, + -0.0525302028644087, + 0.431303240512699 + ], + [ + 0.327691735830049, + -0.0503349864091286, + 0.351231829307353 + ], + [ + 0.391220669586705, + -0.0728401074671398, + 0.231846270327639 + ], + [ + 0.391634673523682, + -0.0252326252686256, + 0.232548645182903 + ], + [ + 0.31999997725499, + -0.145000051893742, + -0.00010773877982312 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.639695104048562, + 0.0, + 0.0, + -0.768628762053763 + ], + [ + 0.462047034682715, + -0.551563922638567, + -0.442469478318626, + -0.535266791180725 + ], + [ + -0.00359684086632909, + -0.12486101332273, + -0.695996930562212, + -0.70709621886684 + ], + [ + -0.0273291364115742, + -0.694223205367441, + 0.100837068729302, + -0.712137026844157 + ], + [ + 0.703174730134518, + -0.661187482458524, + -0.0999692795674137, + -0.241624822986337 + ], + [ + -0.243285400619997, + -0.00601152666488943, + -0.969916959043481, + -0.00609655248236239 + ], + [ + 0.690147213763669, + -0.681522486026365, + -0.167778357709562, + -0.176279173639347 + ], + [ + -0.68152541406804, + -0.690144322301274, + 0.17627988546135, + -0.167777609818579 + ], + [ + 0.999999999000364, + -0.0000409124404951493, + 0.000018040017958365, + 0.000000000672763063362963 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244515576 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392092753 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406778521 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.74237795661847 + } + ], + "ctrl": [ + -0.250269611428778, + 1.63770279582205, + -1.61890391178554, + 0.131532160541072, + 1.19055135805371, + -0.270464611687396, + 0.02 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0444018302293937, + "qpos": [ + -0.182589034276928, + 1.60682263343282, + -1.53534892407363, + 0.105888712690347, + 1.10561861221354, + -0.194512741917669, + 0.023710536143634, + -0.0239039269009053, + 0.31999997725499, + -0.145000051893742, + -0.00010773877982312, + 0.999999999000364, + -0.0000409124404951493, + 0.000018040017958365, + 0.000000000672763063362963 + ], + "shoe_position": [ + 0.31999997725499, + -0.145000051893742, + -0.00010773877982312 + ], + "tcp_position": [ + 0.384346684556022, + -0.0492665674580296, + 0.24541937179028 + ], + "tcp_quaternion": [ + 0.243285400619997, + 0.00601152666488943, + 0.969916959043481, + 0.00609655248236239 + ], + "time": 1.44 + } + }, + { + "compute_ms": 0.98787501337938, + "request": { + "jaw": 0.01, + "sequence": 73, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 12.424, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0418242116253261, + -0.00855433526590824, + 0.404816177935332 + ], + [ + 0.286820172398468, + -0.0586701532236217, + 0.433543104176652 + ], + [ + 0.286820172398468, + -0.0586701532236217, + 0.433543104176652 + ], + [ + 0.330237384770911, + -0.0570067171964872, + 0.353573202822206 + ], + [ + 0.393767536166554, + -0.0797044397510097, + 0.234339523909979 + ], + [ + 0.394733205620204, + -0.0333691734835121, + 0.235023394759984 + ], + [ + 0.31999997725517, + -0.145000051894603, + -0.00010773877981877 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.632295693362832, + 0.0, + 0.0, + -0.774727149488654 + ], + [ + 0.460487993961219, + -0.558688852397601, + -0.433438307267196, + -0.536608616607647 + ], + [ + -0.0143111342850151, + -0.127660423180473, + -0.69548890455088, + -0.706960530323636 + ], + [ + -0.0330828208575762, + -0.689105344016948, + 0.108092829024657, + -0.715789977664423 + ], + [ + 0.701887893194859, + -0.660694151715379, + -0.0943879225695668, + -0.248852452968782 + ], + [ + -0.244406303889057, + -0.0119052640925562, + -0.969588878481956, + -0.00460760569926022 + ], + [ + 0.688862383238415, + -0.682343345262137, + -0.164403464798077, + -0.181239280780838 + ], + [ + -0.682346267852729, + -0.688859488293419, + 0.181239978284332, + -0.164402695863164 + ], + [ + 0.999999999000364, + -0.0000409124415148836, + 0.0000180400179755308, + 0.000000000708601223336659 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244561891 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392131173 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406733701 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956573119 + } + ], + "ctrl": [ + -0.259862268563689, + 1.64914394745969, + -1.64890391178554, + 0.135662158883535, + 1.2, + -0.278200909367158, + 0.019 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0378197103639682, + "qpos": [ + -0.201766345063277, + 1.62018195600616, + -1.55983831466494, + 0.109409274245877, + 1.11523963286707, + -0.201202345486078, + 0.0231259493964382, + -0.0232244238162099, + 0.31999997725517, + -0.145000051894603, + -0.00010773877981877, + 0.999999999000364, + -0.0000409124415148836, + 0.0000180400179755308, + 0.000000000708601223336659 + ], + "shoe_position": [ + 0.31999997725517, + -0.145000051894603, + -0.00010773877981877 + ], + "tcp_position": [ + 0.387138443802897, + -0.0566327609350887, + 0.247888149301128 + ], + "tcp_quaternion": [ + 0.244406303889057, + 0.0119052640925562, + 0.969588878481956, + 0.00460760569926022 + ], + "time": 1.46 + } + }, + { + "compute_ms": 0.916207995032892, + "request": { + "jaw": 0.01, + "sequence": 74, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 7.326, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.045102488115103, + -0.0100583782794925, + 0.404260367041312 + ], + [ + 0.288785594477329, + -0.0644086356623678, + 0.43626732709801 + ], + [ + 0.288785594477329, + -0.0644086356623678, + 0.43626732709801 + ], + [ + 0.33264792301367, + -0.0634023760645335, + 0.356529694519397 + ], + [ + 0.396559615221322, + -0.0864097255812903, + 0.237684571652035 + ], + [ + 0.398014392994823, + -0.0415169632236141, + 0.23827060960656 + ], + [ + 0.319999977255187, + -0.145000051894684, + -0.00010773877982357 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.625426072996267, + 0.0, + 0.0, + -0.780283427490593 + ], + [ + 0.459100166331254, + -0.56516446742345, + -0.424960144910047, + -0.537796464542688 + ], + [ + -0.0251953481730307, + -0.129240255802926, + -0.695197062910938, + -0.706656348185198 + ], + [ + -0.0389307310006166, + -0.683354363872845, + 0.114093740601573, + -0.720065156715167 + ], + [ + 0.699829512645892, + -0.660483039327234, + -0.0906134502486404, + -0.256495634709268 + ], + [ + -0.247004614987169, + -0.0173051736333865, + -0.968856988603354, + -0.00232094269651053 + ], + [ + 0.686727946411888, + -0.683442740560798, + -0.162422447481218, + -0.186894881004989 + ], + [ + -0.683445654095728, + -0.68672504680257, + 0.186895570103684, + -0.162421654551633 + ], + [ + 0.999999999000364, + -0.0000409124403976294, + 0.0000180400179550635, + 0.000000000711977941176485 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244517435 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392094817 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406776074 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956616596 + } + ], + "ctrl": [ + -0.258588629221833, + 1.6520414955156, + -1.67890391178554, + 0.135359579583166, + 1.2, + -0.276003320857626, + 0.018 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0313030247430178, + "qpos": [ + -0.2194371590855, + 1.63268590370419, + -1.585469039903, + 0.11142553118591, + 1.12342621035131, + -0.206969989136811, + 0.0224739652051014, + -0.0224461854067734, + 0.319999977255187, + -0.145000051894684, + -0.00010773877982357, + 0.999999999000364, + -0.0000409124403976294, + 0.0000180400179550635, + 0.000000000711977941176485 + ], + "shoe_position": [ + 0.319999977255187, + -0.145000051894684, + -0.00010773877982357 + ], + "tcp_position": [ + 0.390106838975725, + -0.0638886887000507, + 0.251147355503384 + ], + "tcp_quaternion": [ + 0.247004614987169, + 0.0173051736333865, + 0.968856988603354, + 0.00232094269651053 + ], + "time": 1.48 + } + }, + { + "compute_ms": 1.04754100902937, + "request": { + "jaw": 0.01, + "sequence": 75, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 10.662, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0479482731546382, + -0.0114356628196302, + 0.403736510260714 + ], + [ + 0.290296977184201, + -0.0692415146577721, + 0.43958956374934 + ], + [ + 0.290296977184201, + -0.0692415146577721, + 0.43958956374934 + ], + [ + 0.334878261833268, + -0.0689121279444205, + 0.360245962648293 + ], + [ + 0.39964532174725, + -0.0921869995064433, + 0.242052504745561 + ], + [ + 0.401466215268353, + -0.0488520079082555, + 0.242498656172769 + ], + [ + 0.319999977255358, + -0.145000051895505, + -0.00010773877981945 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.619672748601953, + 0.0, + 0.0, + -0.784860296256665 + ], + [ + 0.458095499376615, + -0.57057293799111, + -0.417670351392331, + -0.538652497860067 + ], + [ + -0.0358357775310941, + -0.12899103389944, + -0.695243348169224, + -0.706196712714483 + ], + [ + -0.044084052283953, + -0.676923665759336, + 0.118589703547303, + -0.72509822043757 + ], + [ + 0.697360913846709, + -0.6602186848993, + -0.0892399066937538, + -0.264263661902298 + ], + [ + -0.251341018915877, + -0.0216137479075011, + -0.967657195804857, + 0.0002991969264381 + ], + [ + 0.684026848423009, + -0.684447083325699, + -0.162442138913796, + -0.193007803646745 + ], + [ + -0.684449985400826, + -0.684023944552649, + 0.193008492828929, + -0.162441320049266 + ], + [ + 0.999999999000364, + -0.0000409124413674104, + 0.0000180400179713971, + 0.000000000746132999584188 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.80008324456138 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392131265 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406733621 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956573628 + } + ], + "ctrl": [ + -0.257882408515261, + 1.65452814807673, + -1.70890391178554, + 0.135546987186385, + 1.2, + -0.274731222099939, + 0.017 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0251263441718032, + "qpos": [ + -0.234140725010299, + 1.6436562070294, + -1.61185986731628, + 0.112709733201008, + 1.13001968047535, + -0.211766300072246, + 0.0217499279714551, + -0.0216255973989663, + 0.319999977255358, + -0.145000051895505, + -0.00010773877981945, + 0.999999999000364, + -0.0000409124413674104, + 0.0000180400179713971, + 0.000000000746132999584188 + ], + "shoe_position": [ + 0.319999977255358, + -0.145000051895505, + -0.00010773877981945 + ], + "tcp_position": [ + 0.393262169071098, + -0.0702857372162276, + 0.255381128346165 + ], + "tcp_quaternion": [ + 0.251341018915877, + 0.0216137479075011, + 0.967657195804857, + -0.0002991969264381 + ], + "time": 1.5 + } + }, + { + "compute_ms": 0.997082999674603, + "request": { + "jaw": 0.01, + "sequence": 76, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 9.121, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0502077511831514, + -0.0125732594966012, + 0.403292515673826 + ], + [ + 0.291245187152526, + -0.0729403626954387, + 0.443499724090855 + ], + [ + 0.291245187152526, + -0.0729403626954387, + 0.443499724090855 + ], + [ + 0.336833220839491, + -0.0732585594541941, + 0.364730209634887 + ], + [ + 0.402959816463177, + -0.0967088763473417, + 0.247468066922059 + ], + [ + 0.405008316854412, + -0.0549940788025214, + 0.247751673761494 + ], + [ + 0.319999977255422, + -0.14500005189581, + -0.00010773877982135 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.615247732723839, + 0.0, + 0.0, + -0.788333829908482 + ], + [ + 0.457431653255555, + -0.574728965481771, + -0.411932781211029, + -0.539216359729459 + ], + [ + -0.0459833576962864, + -0.126818418307917, + -0.695642931954231, + -0.705608624391011 + ], + [ + -0.0481905281040435, + -0.669904382975277, + 0.121597067551614, + -0.730835100302671 + ], + [ + 0.694662687866564, + -0.659724980296624, + -0.090436419206248, + -0.272080786789092 + ], + [ + -0.257508638796936, + -0.0245781003792102, + -0.965958587562038, + 0.00303727539925369 + ], + [ + 0.680889638658906, + -0.685182106602225, + -0.164707204634799, + -0.199465078398384 + ], + [ + -0.685184995367286, + -0.680886731670133, + 0.199465777190374, + -0.164706358374342 + ], + [ + 0.999999999000364, + -0.0000409124409238102, + 0.0000180400179628573, + 0.000000000758837010199002 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244570128 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392140916 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406722464 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956565092 + } + ], + "ctrl": [ + -0.257679927676621, + 1.65661355076771, + -1.71894666032694, + 0.136031689529, + 1.2, + -0.274166009830611, + 0.016 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0194451931249791, + "qpos": [ + -0.245391731189136, + 1.65244366290729, + -1.63814647159871, + 0.113718498873035, + 1.13467806638055, + -0.21576125730164, + 0.0209744890968238, + -0.0207915392148196, + 0.319999977255422, + -0.14500005189581, + -0.00010773877982135, + 0.999999999000364, + -0.0000409124409238102, + 0.0000180400179628573, + 0.000000000758837010199002 + ], + "shoe_position": [ + 0.319999977255422, + -0.14500005189581, + -0.00010773877982135 + ], + "tcp_position": [ + 0.396528468255165, + -0.0754822245341353, + 0.260620970613589 + ], + "tcp_quaternion": [ + 0.257508638796936, + 0.0245781003792102, + 0.965958587562038, + -0.00303727539925369 + ], + "time": 1.52 + } + }, + { + "compute_ms": 1.03124999441206, + "request": { + "jaw": 0.01, + "sequence": 77, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.05, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0515341911157961, + -0.0133425855424653, + 0.403016074597661 + ], + [ + 0.291367109398715, + -0.0754423131666618, + 0.447554231641923 + ], + [ + 0.291367109398715, + -0.0754423131666618, + 0.447554231641923 + ], + [ + 0.338139345705561, + -0.0763420152715549, + 0.369486601222978 + ], + [ + 0.405954096161579, + -0.0998347521862102, + 0.253345170501717 + ], + [ + 0.408114556510264, + -0.0597803451607522, + 0.253467686533791 + ], + [ + 0.319999977255585, + -0.145000051896592, + -0.0001077387798181 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.612103134866843, + 0.0, + 0.0, + -0.790777941198529 + ], + [ + 0.456703424256344, + -0.577441598217466, + -0.408121551315363, + -0.539833291185835 + ], + [ + -0.0549479162567299, + -0.123516282107313, + -0.696236833307738, + -0.704967181150331 + ], + [ + -0.0511650296114297, + -0.663046155125713, + 0.123406418246512, + -0.736561465088581 + ], + [ + 0.69195099957751, + -0.658994180103782, + -0.0935693648651479, + -0.279598388285344 + ], + [ + -0.264836405849368, + -0.026381739102801, + -0.96391576403645, + 0.00566408163139079 + ], + [ + 0.677587712562905, + -0.685595051911579, + -0.168613366844897, + -0.205921949047101 + ], + [ + -0.685597926667746, + -0.677584803822183, + 0.205922664411481, + -0.168612493190212 + ], + [ + 0.999999999000364, + -0.0000409124416765268, + 0.0000180400179753673, + 0.000000000791387869602452 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244561858 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392130513 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406734382 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956573133 + } + ], + "ctrl": [ + -0.257834921136198, + 1.65832587584014, + -1.7213336790012, + 0.136660323861535, + 1.2, + -0.274073489256914, + 0.0150000000000001 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0150209318774649, + "qpos": [ + -0.253357205851148, + 1.65770961808739, + -1.66086760044433, + 0.114664595919362, + 1.13673791020671, + -0.218958361986856, + 0.0201607786942744, + -0.01995203872468, + 0.319999977255585, + -0.145000051896592, + -0.0001077387798181, + 0.999999999000364, + -0.0000409124416765268, + 0.0000180400179753673, + 0.000000000791387869602452 + ], + "shoe_position": [ + 0.319999977255585, + -0.145000051896592, + -0.0001077387798181 + ], + "tcp_position": [ + 0.399385987498676, + -0.0793299322730659, + 0.266301708331344 + ], + "tcp_quaternion": [ + 0.264836405849368, + 0.026381739102801, + 0.96391576403645, + -0.00566408163139079 + ], + "time": 1.54 + } + }, + { + "compute_ms": 1.20270799379796, + "request": { + "jaw": 0.01, + "sequence": 78, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 9.685, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0520231943122395, + -0.013756042888647, + 0.402905623404741 + ], + [ + 0.290802264256784, + -0.0768994398288922, + 0.451457857908059 + ], + [ + 0.290802264256784, + -0.0768994398288922, + 0.451457857908059 + ], + [ + 0.338704671030198, + -0.0782479764026375, + 0.374085076216603 + ], + [ + 0.408186390000656, + -0.10155926341233, + 0.259041059359704 + ], + [ + 0.410353731950316, + -0.0631929191254786, + 0.259028090161465 + ], + [ + 0.319999977255646, + -0.145000051896883, + -0.00010773877982073 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.610060764676608, + 0.0, + 0.0, + -0.792354632347279 + ], + [ + 0.45586703277486, + -0.578911957381426, + -0.406033182881408, + -0.540539775066595 + ], + [ + -0.0624833180271732, + -0.119661890434597, + -0.696909629706477, + -0.704339289666788 + ], + [ + -0.0530782180450119, + -0.656753915020154, + 0.124336496365901, + -0.741887749963779 + ], + [ + 0.689641752490974, + -0.658125821667392, + -0.0973972925819044, + -0.285969270155925 + ], + [ + -0.271883121550384, + -0.0271021464276688, + -0.961916650512985, + 0.00783577315350655 + ], + [ + 0.674638508171178, + -0.685717089388081, + -0.173086753969204, + -0.211414124916265 + ], + [ + -0.685719951631827, + -0.674635598912721, + 0.211414859259578, + -0.17308585701314 + ], + [ + 0.999999999000364, + -0.0000409124410588822, + 0.0000180400179635977, + 0.000000000803495210842647 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.80008324456845 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392138804 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406724709 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956566697 + } + ], + "ctrl": [ + -0.258173772332497, + 1.65954612763238, + -1.72319087987243, + 0.137293581938107, + 1.2, + -0.274249421844389, + 0.0140000000000001 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0124505555250509, + "qpos": [ + -0.258517529354858, + 1.65977326567232, + -1.67915826678886, + 0.115685197000138, + 1.13813170471299, + -0.221687239072008, + 0.0193165254497746, + -0.0191109896050745, + 0.319999977255646, + -0.145000051896883, + -0.00010773877982073, + 0.999999999000364, + -0.0000409124410588822, + 0.0000180400179635977, + 0.000000000803495210842647 + ], + "shoe_position": [ + 0.319999977255646, + -0.145000051896883, + -0.00010773877982073 + ], + "tcp_position": [ + 0.401436318504249, + -0.0818263052022407, + 0.271815154596445 + ], + "tcp_quaternion": [ + 0.271883121550384, + 0.0271021464276688, + 0.961916650512985, + -0.00783577315350655 + ], + "time": 1.56 + } + }, + { + "compute_ms": 0.958999997237697, + "request": { + "jaw": 0.01, + "sequence": 79, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.55, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0520513764993708, + -0.0139240436736567, + 0.402892076858733 + ], + [ + 0.289953918287439, + -0.0775694282273569, + 0.454964122447401 + ], + [ + 0.289953918287439, + -0.0775694282273569, + 0.454964122447401 + ], + [ + 0.338849971092836, + -0.0792103602245167, + 0.378221110814533 + ], + [ + 0.409843887946418, + -0.102087391226187, + 0.264159849150763 + ], + [ + 0.411932742037453, + -0.0654308142324646, + 0.264046388990259 + ], + [ + 0.319999977255802, + -0.145000051897628, + -0.00010773877981815 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608918891336896, + 0.0, + 0.0, + -0.793232490366504 + ], + [ + 0.45515608497523, + -0.579547137656077, + -0.405126048575808, + -0.541138557404683 + ], + [ + -0.0685214084174221, + -0.115690766154171, + -0.697579849642076, + -0.703777533449664 + ], + [ + -0.0540217173829243, + -0.651265571889246, + 0.124695069848107, + -0.746582847699 + ], + [ + 0.687912769241148, + -0.657132516560817, + -0.101313354761981, + -0.291012854939942 + ], + [ + -0.278110558911619, + -0.0269038557478244, + -0.96012618829671, + 0.00940223987126731 + ], + [ + 0.672264800500226, + -0.685558705801756, + -0.177630438821223, + -0.215677365785084 + ], + [ + -0.685561557974711, + -0.672261891913754, + 0.215678119405588, + -0.177629523777712 + ], + [ + 0.999999999000364, + -0.0000409124416578251, + 0.0000180400179733038, + 0.000000000834517265110825 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244560733 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392129512 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406735427 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956574216 + } + ], + "ctrl": [ + -0.258520888194595, + 1.660328755681, + -1.72461451570289, + 0.13779380599901, + 1.2, + -0.274442542816348, + 0.0130000000000001 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0118082813453973, + "qpos": [ + -0.261398161080363, + 1.6600248433587, + -1.69368135036543, + 0.116946466619297, + 1.13934539379581, + -0.224194443585956, + 0.0184484186961384, + -0.0182678014462263, + 0.319999977255802, + -0.145000051897628, + -0.00010773877981815, + 0.999999999000364, + -0.0000409124416578251, + 0.0000180400179733038, + 0.000000000834517265110825 + ], + "shoe_position": [ + 0.319999977255802, + -0.145000051897628, + -0.00010773877981815 + ], + "tcp_position": [ + 0.402890363032739, + -0.0831736507406114, + 0.276779889269894 + ], + "tcp_quaternion": [ + 0.278110558911619, + 0.0269038557478244, + 0.96012618829671, + -0.00940223987126731 + ], + "time": 1.58 + } + }, + { + "compute_ms": 1.02362499455921, + "request": { + "jaw": 0.01, + "sequence": 80, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 11.645, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0518298633887418, + -0.0139277566795343, + 0.402932996145471 + ], + [ + 0.28904660814803, + -0.0776778830345091, + 0.457923810756018 + ], + [ + 0.28904660814803, + -0.0776778830345091, + 0.457923810756018 + ], + [ + 0.338761218295435, + -0.0794661700377911, + 0.381711829809875 + ], + [ + 0.411039443751069, + -0.101677917240871, + 0.268468510911814 + ], + [ + 0.412992769570261, + -0.066758169641662, + 0.268290042738706 + ], + [ + 0.319999977255859, + -0.145000051897905, + -0.00010773877982094 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608469218542624, + 0.0, + 0.0, + -0.793577475793087 + ], + [ + 0.454643298074615, + -0.579622601077876, + -0.405018074065489, + -0.541569452162728 + ], + [ + -0.0730947128743592, + -0.111945345916409, + -0.698190689946275, + -0.703317256257668 + ], + [ + -0.0541851516426353, + -0.646731228522707, + 0.124693858006656, + -0.750502584386217 + ], + [ + 0.686780543833141, + -0.65608609313783, + -0.104935628893575, + -0.294740626300657 + ], + [ + -0.283256893073012, + -0.0260674672552865, + -0.958633720275866, + 0.0103638809126518 + ], + [ + 0.670529482430962, + -0.68518335820777, + -0.181860868998189, + -0.21872494863004 + ], + [ + -0.685186203018393, + -0.670526575436971, + 0.218725720198719, + -0.181859941024836 + ], + [ + 0.999999999000364, + -0.0000409124410038656, + 0.0000180400179608485, + 0.000000000846055982088748 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244566954 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.72889339213763 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406726027 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956568149 + } + ], + "ctrl": [ + -0.258796821705644, + 1.66078428367281, + -1.72568447214938, + 0.138147877107, + 1.2, + -0.274551730792012, + 0.0120000000000001 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.01241774529146, + "qpos": [ + -0.262531687568914, + 1.65926390944706, + -1.70478754461029, + 0.118398552725857, + 1.14050200420857, + -0.226453601568723, + 0.0175622276957771, + -0.0174125647276126, + 0.319999977255859, + -0.145000051897905, + -0.00010773877982094, + 0.999999999000364, + -0.0000409124410038656, + 0.0000180400179608485, + 0.000000000846055982088748 + ], + "shoe_position": [ + 0.319999977255859, + -0.145000051897905, + -0.00010773877982094 + ], + "tcp_position": [ + 0.403882162240149, + -0.0836237584953147, + 0.280968700922752 + ], + "tcp_quaternion": [ + 0.283256893073012, + 0.0260674672552865, + 0.958633720275866, + -0.0103638809126518 + ], + "time": 1.6 + } + }, + { + "compute_ms": 1.03945797309279, + "request": { + "jaw": 0.01, + "sequence": 81, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 12.546, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0514827736681255, + -0.0138441255200423, + 0.403001185140388 + ], + [ + 0.288177707808136, + -0.0774983625354785, + 0.460303004993153 + ], + [ + 0.288177707808136, + -0.0774983625354785, + 0.460303004993153 + ], + [ + 0.338534304276516, + -0.0793149148908247, + 0.38451435279567 + ], + [ + 0.411849637553022, + -0.100665782198766, + 0.271910847797907 + ], + [ + 0.413641627545987, + -0.0675077877036681, + 0.271702412849094 + ], + [ + 0.319999977256008, + -0.145000051898616, + -0.00010773877981866 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608399875213261, + 0.0, + 0.0, + -0.793630639429003 + ], + [ + 0.454250662425128, + -0.579399745364862, + -0.405336816821682, + -0.541898824215676 + ], + [ + -0.0764673792847666, + -0.108717244215423, + -0.698700623164316, + -0.702958562011531 + ], + [ + -0.0538175626037963, + -0.643125563941773, + 0.124637849526002, + -0.753630271038456 + ], + [ + 0.686195817365694, + -0.65499826888367, + -0.107972970467631, + -0.297412853854065 + ], + [ + -0.287297492387397, + -0.0249509461149756, + -0.957455858939892, + 0.0107647265433926 + ], + [ + 0.669413166766059, + -0.684633927556976, + -0.1855075081993, + -0.220792576414681 + ], + [ + -0.684636767631476, + -0.669410262103116, + 0.220793363454728, + -0.185506571453709 + ], + [ + 0.999999999000364, + -0.0000409124415380691, + 0.000018040017969362, + 0.000000000875621093890547 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244560043 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392129326 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406735636 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956574893 + } + ], + "ctrl": [ + -0.258984606428107, + 1.66101691467361, + -1.72645547697521, + 0.138384044492939, + 1.2, + -0.274569117389486, + 0.0110000000000001 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0134711125983351, + "qpos": [ + -0.262706443049696, + 1.65798911392257, + -1.71293116131875, + 0.120139957867073, + 1.14164511577416, + -0.228529162776126, + 0.0166561394673585, + -0.0165508970191994, + 0.319999977256008, + -0.145000051898616, + -0.00010773877981866, + 0.999999999000364, + -0.0000409124415380691, + 0.000018040017969362, + 0.000000000875621093890547 + ], + "shoe_position": [ + 0.319999977256008, + -0.145000051898616, + -0.00010773877981866 + ], + "tcp_position": [ + 0.4045042511771, + -0.0835099861366016, + 0.284326686972092 + ], + "tcp_quaternion": [ + 0.287297492387397, + 0.0249509461149756, + 0.957455858939892, + -0.0107647265433926 + ], + "time": 1.62 + } + }, + { + "compute_ms": 0.97908399766311, + "request": { + "jaw": 0.01, + "sequence": 82, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 5.765, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0511241812453312, + -0.0137436502452178, + 0.403071829440113 + ], + [ + 0.287423051453223, + -0.0772726998111347, + 0.462120589763468 + ], + [ + 0.287423051453223, + -0.0772726998111347, + 0.462120589763468 + ], + [ + 0.338252996785517, + -0.079054790663836, + 0.386647764972298 + ], + [ + 0.412353968944267, + -0.0994409798412528, + 0.274512587172907 + ], + [ + 0.413986722500451, + -0.0680713492572861, + 0.274297683581391 + ], + [ + 0.319999977256063, + -0.14500005189888, + -0.00010773877982141 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608429107842516, + 0.0, + 0.0, + -0.793608228743856 + ], + [ + 0.453910235105305, + -0.579115171485466, + -0.405743290955451, + -0.542184007940705 + ], + [ + -0.0789482221157353, + -0.10619877657306, + -0.699087848452815, + -0.702684266384814 + ], + [ + -0.0532765909878005, + -0.640368729502568, + 0.124676126816824, + -0.756006189478592 + ], + [ + 0.685971219322237, + -0.653992439457421, + -0.110249462792737, + -0.299303243129787 + ], + [ + -0.290277691216989, + -0.0238838124209456, + -0.956583126396976, + 0.0108234827372679 + ], + [ + 0.668754503466027, + -0.684058360794325, + -0.188369407324413, + -0.222145311689306 + ], + [ + -0.684061198074358, + -0.668751601245014, + 0.222146110871355, + -0.188368464839624 + ], + [ + 0.999999999000364, + -0.000040912440899279, + 0.0000180400179572177, + 0.000000000886617891191569 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244566002 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.72889339213716 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406726601 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956569093 + } + ], + "ctrl": [ + -0.259103351682267, + 1.66111471601236, + -1.72698560294512, + 0.138528349520065, + 1.2, + -0.274517162459457, + 0.0100000000000001 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.014545626888862, + "qpos": [ + -0.26263277391309, + 1.65665935143762, + -1.71873472837621, + 0.121936811382854, + 1.14279010161898, + -0.230400618452191, + 0.0157394393294191, + -0.0156733891124958, + 0.319999977256063, + -0.14500005189888, + -0.00010773877982141, + 0.999999999000364, + -0.000040912440899279, + 0.0000180400179572177, + 0.000000000886617891191569 + ], + "shoe_position": [ + 0.319999977256063, + -0.14500005189888, + -0.00010773877982141 + ], + "tcp_position": [ + 0.404849538245127, + -0.0832045875855284, + 0.286873616260685 + ], + "tcp_quaternion": [ + 0.290277691216989, + 0.0238838124209456, + 0.956583126396976, + -0.0108234827372679 + ], + "time": 1.64 + } + }, + { + "compute_ms": 0.919667014386505, + "request": { + "jaw": 0.01, + "sequence": 83, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 2.328, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0508430249804896, + -0.0136613803225735, + 0.403127030067638 + ], + [ + 0.286855747102495, + -0.077082482774579, + 0.463423058596333 + ], + [ + 0.286855747102495, + -0.077082482774579, + 0.463423058596333 + ], + [ + 0.337991091529481, + -0.0787976310128662, + 0.388155261437759 + ], + [ + 0.412621523953832, + -0.0981948019279184, + 0.276317882025676 + ], + [ + 0.414107300964125, + -0.0685788987816624, + 0.276109458379818 + ], + [ + 0.319999977256204, + -0.145000051899556, + -0.00010773877981929 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608477731403716, + 0.0, + 0.0, + -0.793570948552042 + ], + [ + 0.453659950745812, + -0.578878088524021, + -0.406081467967668, + -0.542393444917347 + ], + [ + -0.0806969445619545, + -0.10437273233227, + -0.699362804805557, + -0.702485589274517 + ], + [ + -0.0527390407141393, + -0.638377192380704, + 0.124779449080106, + -0.757709207361206 + ], + [ + 0.68599971810035, + -0.653175331989478, + -0.111728130935751, + -0.300471624624155 + ], + [ + -0.292197009888827, + -0.0229381335704205, + -0.956023296961927, + 0.0106866789219808 + ], + [ + 0.668455378082446, + -0.683565767352, + -0.190395267953, + -0.222833774725089 + ], + [ + -0.683568603362955, + -0.668452477951333, + 0.222834582502134, + -0.19039432254729 + ], + [ + 0.999999999000364, + -0.0000409124413992939, + 0.0000180400179651658, + 0.000000000914794462445397 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.80008324455957 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392129423 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406735552 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956575366 + } + ], + "ctrl": [ + -0.259176837484437, + 1.66113709904147, + -1.72732765601045, + 0.138602071548479, + 1.2, + -0.274437636847333, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0153758149076458, + "qpos": [ + -0.262510233088763, + 1.6556137438304, + -1.7227896264604, + 0.123541429608009, + 1.14413727168424, + -0.232057123493861, + 0.014846993160429, + -0.014806888422337, + 0.319999977256204, + -0.145000051899556, + -0.00010773877981929, + 0.999999999000364, + -0.0000409124413992939, + 0.0000180400179651658, + 0.000000000914794462445397 + ], + "shoe_position": [ + 0.319999977256204, + -0.145000051899556, + -0.00010773877981929 + ], + "tcp_position": [ + 0.40499232155953, + -0.0828592464969352, + 0.288648782482266 + ], + "tcp_quaternion": [ + 0.292197009888827, + 0.0229381335704205, + 0.956023296961927, + -0.0106866789219808 + ], + "time": 1.66 + } + }, + { + "compute_ms": 0.966333987889811, + "request": { + "jaw": 0.01, + "sequence": 84, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 9.316, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0506805772112802, + -0.0136107475537341, + 0.403158930110322 + ], + [ + 0.286508578295032, + -0.0769497303270578, + 0.464258680208688 + ], + [ + 0.286508578295032, + -0.0769497303270578, + 0.464258680208688 + ], + [ + 0.337794184618079, + -0.0785751267850157, + 0.389091192937382 + ], + [ + 0.412713063038115, + -0.0970521786768648, + 0.277392946533933 + ], + [ + 0.41407200004527, + -0.068992442779159, + 0.277198476952825 + ], + [ + 0.319999977256257, + -0.145000051899808, + -0.00010773877982192 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608528696799462, + 0.0, + 0.0, + -0.793531867773153 + ], + [ + 0.453530180723323, + -0.578728741625119, + -0.406294282038287, + -0.542501958681321 + ], + [ + -0.0818073459015756, + -0.10317718200103, + -0.699540184059734, + -0.702357144305189 + ], + [ + -0.0522475929270819, + -0.637073088924078, + 0.12493270498785, + -0.758814791386198 + ], + [ + 0.686239400558326, + -0.652562545879943, + -0.112459805401319, + -0.300982393181285 + ], + [ + -0.2931318982525, + -0.0221148038848439, + -0.955759584521493, + 0.0104039546002349 + ], + [ + 0.668468820659676, + -0.68317937818557, + -0.191638516026124, + -0.222912655995897 + ], + [ + -0.68318221425356, + -0.668465922167875, + 0.222913469047597, + -0.191637570285738 + ], + [ + 0.999999999000364, + -0.0000409124407881085, + 0.0000180400179535698, + 0.000000000925274779074611 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244565259 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392136907 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.67164540672692 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956569826 + } + ], + "ctrl": [ + -0.259212116409773, + 1.66113627545436, + -1.72753503299351, + 0.138615131207064, + 1.2, + -0.274344199149897, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0158367127451022, + "qpos": [ + -0.262381784206423, + 1.6550068339962, + -1.72547280369576, + 0.124903940715569, + 1.14573679763325, + -0.233519254085303, + 0.0140577748234675, + -0.014035521652215, + 0.319999977256257, + -0.145000051899808, + -0.00010773877982192, + 0.999999999000364, + -0.0000409124407881085, + 0.0000180400179535698, + 0.000000000925274779074611 + ], + "shoe_position": [ + 0.319999977256257, + -0.145000051899808, + -0.00010773877982192 + ], + "tcp_position": [ + 0.404995030198838, + -0.0825184084634451, + 0.28971464750117 + ], + "tcp_quaternion": [ + 0.2931318982525, + 0.0221148038848439, + 0.955759584521493, + -0.0104039546002349 + ], + "time": 1.68 + } + }, + { + "compute_ms": 1.07449997449294, + "request": { + "jaw": 0.01, + "sequence": 85, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.781, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.050633478423536, + -0.0135912692381939, + 0.403168391756151 + ], + [ + 0.286367797217798, + -0.0768732978289948, + 0.46468723517862 + ], + [ + 0.286367797217798, + -0.0768732978289948, + 0.46468723517862 + ], + [ + 0.337675165981027, + -0.0783940362567358, + 0.389532410067531 + ], + [ + 0.412680990084242, + -0.0960473929338836, + 0.27784164008304 + ], + [ + 0.41393339151278, + -0.0693137402959658, + 0.277665234586002 + ], + [ + 0.319999977256391, + -0.145000051900452, + -0.00010773877981991 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608578604840281, + 0.0, + 0.0, + -0.793493592747072 + ], + [ + 0.453515370367975, + -0.578666535280729, + -0.406382874819052, + -0.54251433975518 + ], + [ + -0.0823659988993301, + -0.102532704819563, + -0.699634936550759, + -0.702291849750028 + ], + [ + -0.0518111243796821, + -0.63636980025783, + 0.125124810120033, + -0.759402967206969 + ], + [ + 0.686640597808446, + -0.652134742610908, + -0.112567744251881, + -0.300954265421025 + ], + [ + -0.293249863702945, + -0.0214075700347266, + -0.955743636875121, + 0.0100166838889229 + ], + [ + 0.668731385096442, + -0.682894259182403, + -0.192222019170513, + -0.22249597908439 + ], + [ + -0.682897096364363, + -0.668728487814297, + 0.22249679461169, + -0.192221075197933 + ], + [ + 0.999999999000364, + -0.0000409124412628347, + 0.0000180400179611341, + 0.00000000095212798780352 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244559175 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392129582 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406735397 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956575762 + } + ], + "ctrl": [ + -0.259214719185572, + 1.66114635562938, + -1.72765060452215, + 0.138576762537741, + 1.2, + -0.274240338114298, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0159183239647661, + "qpos": [ + -0.262255994061163, + 1.65482644428273, + -1.72700907265247, + 0.126028429411481, + 1.14746744052628, + -0.234803848445832, + 0.013387550637596, + -0.013376003155115, + 0.319999977256391, + -0.145000051900452, + -0.00010773877981991, + 0.999999999000364, + -0.0000409124412628347, + 0.0000180400179611341, + 0.00000000095212798780352 + ], + "shoe_position": [ + 0.319999977256391, + -0.145000051900452, + -0.00010773877981991 + ], + "tcp_position": [ + 0.404905711429343, + -0.0821992630579062, + 0.290170571780824 + ], + "tcp_quaternion": [ + 0.293249863702945, + 0.0214075700347266, + 0.955743636875121, + -0.0100166838889229 + ], + "time": 1.7 + } + }, + { + "compute_ms": 0.950000016018748, + "request": { + "jaw": 0.01, + "sequence": 86, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 12.413, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0506412779763243, + -0.0135868253909992, + 0.40316719761014 + ], + [ + 0.286351942522645, + -0.0768320738893299, + 0.46481436670586 + ], + [ + 0.286351942522645, + -0.0768320738893299, + 0.46481436670586 + ], + [ + 0.337586109343201, + -0.0782409777054157, + 0.389607441409778 + ], + [ + 0.412528618631032, + -0.0951674365270923, + 0.277827678979809 + ], + [ + 0.413692127278046, + -0.0695501735075881, + 0.277670912928639 + ], + [ + 0.319999977256489, + -0.145000051900919, + -0.00010773877981979 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608626381344969, + 0.0, + 0.0, + -0.793456947748854 + ], + [ + 0.453554213188626, + -0.578646693554783, + -0.406411126863078, + -0.542481866700489 + ], + [ + -0.0825083387375998, + -0.102306644012443, + -0.699668028847189, + -0.70227514126499 + ], + [ + -0.0514320966048223, + -0.636124118023663, + 0.125336742680159, + -0.759599596393901 + ], + [ + 0.687145699871812, + -0.651858503078563, + -0.112215363355055, + -0.300531181974428 + ], + [ + -0.292764683480254, + -0.0208015272834183, + -0.955910342487397, + 0.00956836950643379 + ], + [ + 0.669166269480602, + -0.682695130768139, + -0.192307480258908, + -0.221724367743733 + ], + [ + -0.68269796979516, + -0.669163373043283, + 0.22172518363362, + -0.192306539559998 + ], + [ + 0.999999999000364, + -0.0000409124412922467, + 0.0000180400179609651, + 0.000000000971561075611424 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244576054 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392145286 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406718181 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.7423779565594 + } + ], + "ctrl": [ + -0.25919237943765, + 1.66118001955538, + -1.72770541338614, + 0.138500754864998, + 1.2, + -0.274131776591846, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0156722603811987, + "qpos": [ + -0.262135570636603, + 1.6548492206976, + -1.7275576353936, + 0.126936540478795, + 1.14925647976748, + -0.235928308891698, + 0.0128251472059997, + -0.012819004029492, + 0.319999977256489, + -0.145000051900919, + -0.00010773877981979, + 0.999999999000364, + -0.0000409124412922467, + 0.0000180400179609651, + 0.000000000971561075611424 + ], + "shoe_position": [ + 0.319999977256489, + -0.145000051900919, + -0.00010773877981979 + ], + "tcp_position": [ + 0.404720749325405, + -0.0818986413142856, + 0.290175240833786 + ], + "tcp_quaternion": [ + 0.292764683480254, + 0.0208015272834183, + 0.955910342487397, + -0.00956836950643379 + ], + "time": 1.72 + } + }, + { + "compute_ms": 1.04358402313665, + "request": { + "jaw": 0.01, + "sequence": 87, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 6.843, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0506830092911468, + -0.0135917183781997, + 0.403159413971263 + ], + [ + 0.28640253036119, + -0.0768100225901805, + 0.464800355682686 + ], + [ + 0.28640253036119, + -0.0768100225901805, + 0.464800355682686 + ], + [ + 0.337498607007492, + -0.0780992430330206, + 0.38949739867398 + ], + [ + 0.412274733269633, + -0.094378829357663, + 0.277563227095383 + ], + [ + 0.413362447002343, + -0.0696959493219359, + 0.277427050649269 + ], + [ + 0.319999977256617, + -0.145000051901534, + -0.00010773877981864 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608672415818069, + 0.0, + 0.0, + -0.793421634581636 + ], + [ + 0.453625933552239, + -0.578653268140975, + -0.406401765830033, + -0.54242189521521 + ], + [ + -0.0824586333403022, + -0.102274976638156, + -0.699672658572325, + -0.702280979229574 + ], + [ + -0.0510911057352149, + -0.636091984037192, + 0.125549894762113, + -0.759614317060707 + ], + [ + 0.687731179416043, + -0.651678040432663, + -0.111558122440573, + -0.299827186549848 + ], + [ + -0.291868049046563, + -0.0202536349505587, + -0.956201167583782, + 0.00906417831104356 + ], + [ + 0.669728430578228, + -0.682544256932764, + -0.192060880202797, + -0.220702933598657 + ], + [ + -0.682547098344834, + -0.669725534781007, + 0.220703748442318, + -0.192059943837469 + ], + [ + 0.999999999000364, + -0.0000409124415552551, + 0.0000180400179647501, + 0.000000000997152996950228 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244559352 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392128608 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406736391 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956575558 + } + ], + "ctrl": [ + -0.259152959100085, + 1.6612340292751, + -1.72771856673727, + 0.138401526486944, + 1.2, + -0.2740230600727, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0152192245285472, + "qpos": [ + -0.262019532841148, + 1.65499761322684, + -1.72768051096929, + 0.12771684506446, + 1.15135238628565, + -0.236935128271166, + 0.0123546631310677, + -0.0123525469918475, + 0.319999977256617, + -0.145000051901534, + -0.00010773877981864, + 0.999999999000364, + -0.0000409124415552551, + 0.0000180400179647501, + 0.000000000997152996950228 + ], + "shoe_position": [ + 0.319999977256617, + -0.145000051901534, + -0.00010773877981864 + ], + "tcp_position": [ + 0.404451577879516, + -0.0815989737798276, + 0.289937102992871 + ], + "tcp_quaternion": [ + 0.291868049046563, + 0.0202536349505587, + 0.956201167583782, + -0.00906417831104356 + ], + "time": 1.74 + } + }, + { + "compute_ms": 1.24870799481869, + "request": { + "jaw": 0.01, + "sequence": 88, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 10.748, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0507590568457826, + -0.0136058755013778, + 0.403144958505356 + ], + [ + 0.286500453133141, + -0.0768010733106257, + 0.464725908046076 + ], + [ + 0.286500453133141, + -0.0768010733106257, + 0.464725908046076 + ], + [ + 0.337428698145772, + -0.0779685029590372, + 0.389307359663072 + ], + [ + 0.411988969204071, + -0.093675870526015, + 0.277190223879439 + ], + [ + 0.413011335058163, + -0.0697728437873125, + 0.27707401104957 + ], + [ + 0.31999997725671, + -0.145000051901979, + -0.00010773877981931 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608717901713229, + 0.0, + 0.0, + -0.793386738062746 + ], + [ + 0.453731680209381, + -0.578685903829364, + -0.406355293689146, + -0.542333442057903 + ], + [ + -0.0823320557024309, + -0.102320858078727, + -0.699665950294877, + -0.702295829835129 + ], + [ + -0.0507754172938601, + -0.636146844760432, + 0.125754999957569, + -0.759555612766868 + ], + [ + 0.688345728838387, + -0.651547399188765, + -0.110765650653951, + -0.298993502998834 + ], + [ + -0.290784590055701, + -0.0197404308430742, + -0.95654676134825, + 0.00853996079862002 + ], + [ + 0.670343479773337, + -0.682417949534334, + -0.191657646729242, + -0.219573923153316 + ], + [ + -0.682420793555839, + -0.670340584511988, + 0.219574736286212, + -0.191656715153905 + ], + [ + 0.999999999000364, + -0.0000409124413959153, + 0.0000180400179610984, + 0.00000000101567335864046 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.8000832445741 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392143028 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406720569 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956561273 + } + ], + "ctrl": [ + -0.259102400776746, + 1.66130370791566, + -1.72770940945466, + 0.138287942009339, + 1.2, + -0.273910624869803, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0146879036712634, + "qpos": [ + -0.261904872757596, + 1.65527289049847, + -1.72770997636819, + 0.128419360729295, + 1.15361307644115, + -0.237863112343908, + 0.0119621464065766, + -0.0119630165948089, + 0.31999997725671, + -0.145000051901979, + -0.00010773877981931, + 0.999999999000364, + -0.0000409124413959153, + 0.0000180400179610984, + 0.00000000101567335864046 + ], + "shoe_position": [ + 0.31999997725671, + -0.145000051901979, + -0.00010773877981931 + ], + "tcp_position": [ + 0.404160691061224, + -0.0813075178883382, + 0.28959330347823 + ], + "tcp_quaternion": [ + 0.290784590055701, + 0.0197404308430742, + 0.95654676134825, + -0.00853996079862002 + ], + "time": 1.76 + } + }, + { + "compute_ms": 0.961334008025006, + "request": { + "jaw": 0.01, + "sequence": 89, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.337, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0508644885238907, + -0.0136279301978306, + 0.403124762921321 + ], + [ + 0.286635203659788, + -0.076802209345861, + 0.464614864843779 + ], + [ + 0.286635203659788, + -0.076802209345861, + 0.464614864843779 + ], + [ + 0.337390351281233, + -0.0778519811192876, + 0.389077990130834 + ], + [ + 0.411722600092034, + -0.0930585346672816, + 0.276774979352301 + ], + [ + 0.41268814725772, + -0.0698061226988494, + 0.276676681683213 + ], + [ + 0.319999977256832, + -0.145000051902565, + -0.0001077387798187 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608763076832224, + 0.0, + 0.0, + -0.793352075869071 + ], + [ + 0.453866651240483, + -0.578740762686341, + -0.406277158606329, + -0.542220492873286 + ], + [ + -0.0821613632139228, + -0.102411228970958, + -0.699652728273576, + -0.702315819553305 + ], + [ + -0.0504802829937402, + -0.636252570609517, + 0.125950535087774, + -0.759454323927882 + ], + [ + 0.688945890341587, + -0.651441220011252, + -0.109950919686667, + -0.298142067329897 + ], + [ + -0.289670465180102, + -0.0192467965328147, + -0.956899183868548, + 0.00803332666309706 + ], + [ + 0.670950924340529, + -0.682308904136423, + -0.191218891247465, + -0.218437066664141 + ], + [ + -0.6823117507351, + -0.670948029541815, + 0.218437877935564, + -0.191217964495408 + ], + [ + 0.999999999000364, + -0.000040912441534959, + 0.0000180400179626183, + 0.00000000104006329492529 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244558378 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392127756 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406737279 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956576497 + } + ], + "ctrl": [ + -0.259048314461066, + 1.66137929459957, + -1.72769307792652, + 0.138171926837179, + 1.2, + -0.273799913527482, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0141528321980981, + "qpos": [ + -0.261790991081328, + 1.65565680252727, + -1.72772167845429, + 0.129061517850244, + 1.15579871827528, + -0.238754373049207, + 0.0116350540578644, + -0.0116376038505128, + 0.319999977256832, + -0.145000051902565, + -0.0001077387798187, + 0.999999999000364, + -0.000040912441534959, + 0.0000180400179626183, + 0.00000000104006329492529 + ], + "shoe_position": [ + 0.319999977256832, + -0.145000051902565, + -0.0001077387798187 + ], + "tcp_position": [ + 0.403894368950483, + -0.0810357317938346, + 0.289206671597982 + ], + "tcp_quaternion": [ + 0.289670465180102, + 0.0192467965328147, + 0.956899183868547, + -0.00803332666309706 + ], + "time": 1.78 + } + }, + { + "compute_ms": 0.94787499983795, + "request": { + "jaw": 0.01, + "sequence": 90, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.859, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0509867806565537, + -0.0136545667733855, + 0.403101232558002 + ], + [ + 0.28679063099454, + -0.0768093674035359, + 0.464484191261103 + ], + [ + 0.28679063099454, + -0.0768093674035359, + 0.464484191261103 + ], + [ + 0.337380888151993, + -0.0777492419487183, + 0.388835338071962 + ], + [ + 0.411493600150182, + -0.0925208942169673, + 0.27635723246288 + ], + [ + 0.412409579695447, + -0.0698114499613873, + 0.276274345311461 + ], + [ + 0.319999977256921, + -0.145000051902988, + -0.00010773877981961 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608807585493769, + 0.0, + 0.0, + -0.793317921041273 + ], + [ + 0.454018055409296, + -0.578808625671592, + -0.406180470786279, + -0.542093723780641 + ], + [ + -0.0819678243480716, + -0.102525523924149, + -0.699635988885705, + -0.702338433927436 + ], + [ + -0.0502044877878621, + -0.636386342473399, + 0.126134797934787, + -0.759329931761707 + ], + [ + 0.689507358146178, + -0.651346673523356, + -0.109175864294489, + -0.297334398628695 + ], + [ + -0.288611274361547, + -0.018770492527437, + -0.957232459724476, + 0.00756432227705947 + ], + [ + 0.671518221947484, + -0.682212928339869, + -0.190806725741162, + -0.217351308738566 + ], + [ + -0.682215777345387, + -0.671515327555957, + 0.217352118261328, + -0.190805803595591 + ], + [ + 0.999999999000364, + -0.0000409124413205313, + 0.0000180400179579453, + 0.00000000105771383795261 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244572398 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392141728 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.67164540672198 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956562904 + } + ], + "ctrl": [ + -0.258995603307952, + 1.66145314155636, + -1.72767692870382, + 0.13806085260261, + 1.2, + -0.273696312021984, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0136505706856703, + "qpos": [ + -0.261678784607088, + 1.65610312112078, + -1.72772906757055, + 0.129650870465434, + 1.15778585776452, + -0.23961955656575, + 0.0113624870998575, + -0.0113655736888198, + 0.319999977256921, + -0.145000051902988, + -0.00010773877981961, + 0.999999999000364, + -0.0000409124413205313, + 0.0000180400179579453, + 0.00000000105771383795261 + ], + "shoe_position": [ + 0.319999977256921, + -0.145000051902988, + -0.00010773877981961 + ], + "tcp_position": [ + 0.403667718279204, + -0.080787967181311, + 0.288815224091588 + ], + "tcp_quaternion": [ + 0.288611274361547, + 0.018770492527437, + 0.957232459724476, + -0.00756432227705947 + ], + "time": 1.8 + } + }, + { + "compute_ms": 1.00458299857564, + "request": { + "jaw": 0.01, + "sequence": 91, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 9.927, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0511137302494927, + -0.0136825521241062, + 0.403076728457316 + ], + [ + 0.286951701994258, + -0.0768187363195484, + 0.464347648350478 + ], + [ + 0.286951701994258, + -0.0768187363195484, + 0.464347648350478 + ], + [ + 0.337391596044454, + -0.0776579572365618, + 0.388597273640465 + ], + [ + 0.411303208037911, + -0.0920536974904542, + 0.27596093483703 + ], + [ + 0.412175771152572, + -0.0697974041024885, + 0.275890964734862 + ], + [ + 0.319999977257038, + -0.145000051903547, + -0.00010773877981919 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608851143850534, + 0.0, + 0.0, + -0.793284491611866 + ], + [ + 0.454173477460321, + -0.578880480489144, + -0.40607805814727, + -0.541963515720015 + ], + [ + -0.0817680940091634, + -0.102647650055443, + -0.699618081483101, + -0.702361715074297 + ], + [ + -0.0499473679501958, + -0.63653035710158, + 0.126306190419235, + -0.759197675961118 + ], + [ + 0.690019841122093, + -0.651257464198368, + -0.108469810087193, + -0.296598439785852 + ], + [ + -0.287646801039605, + -0.0183109776431681, + -0.957534872309643, + 0.00714102656405104 + ], + [ + 0.672031375034529, + -0.682127449944899, + -0.190449664083433, + -0.216344397781355 + ], + [ + -0.682130301127543, + -0.672028481005651, + 0.216345205789241, + -0.190448746209829 + ], + [ + 0.999999999000364, + -0.0000409124414199028, + 0.0000180400179587449, + 0.00000000108095829454929 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244557824 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392127682 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406737369 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956577042 + } + ], + "ctrl": [ + -0.258946846298103, + 1.66152107069346, + -1.72766342016136, + 0.137958705222644, + 1.2, + -0.273602521710099, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0131963893028747, + "qpos": [ + -0.261568969176564, + 1.65656678850757, + -1.72773380171163, + 0.130192534516282, + 1.15953669580728, + -0.240460781880133, + 0.0111352990755321, + -0.0111382021666256, + 0.319999977257038, + -0.145000051903547, + -0.00010773877981919, + 0.999999999000364, + -0.0000409124414199028, + 0.0000180400179587449, + 0.00000000108095829454929 + ], + "shoe_position": [ + 0.319999977257038, + -0.145000051903547, + -0.00010773877981919 + ], + "tcp_position": [ + 0.403480374203711, + -0.08056385379364, + 0.288442243479139 + ], + "tcp_quaternion": [ + 0.287646801039605, + 0.0183109776431681, + 0.957534872309643, + -0.00714102656405104 + ], + "time": 1.82 + } + }, + { + "compute_ms": 0.912666990188882, + "request": { + "jaw": 0.01, + "sequence": 92, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.327, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0512354799330183, + -0.0137092682447331, + 0.403053175372513 + ], + [ + 0.287106368961295, + -0.076827206038583, + 0.46421608842987 + ], + [ + 0.287106368961295, + -0.076827206038583, + 0.46421608842987 + ], + [ + 0.337412972302085, + -0.077575323951225, + 0.388376175111412 + ], + [ + 0.411146205656548, + -0.0916470450612298, + 0.275600630255477 + ], + [ + 0.411980525157654, + -0.0697688151551477, + 0.275541264311615 + ], + [ + 0.319999977257122, + -0.145000051903951, + -0.00010773877982014 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608893604045378, + 0.0, + 0.0, + -0.793251901323048 + ], + [ + 0.454322948213164, + -0.578949008249422, + -0.405980351552893, + -0.541838221913976 + ], + [ + -0.0815751455816514, + -0.102764945231628, + -0.699600861943109, + -0.702384151033701 + ], + [ + -0.0497081677935431, + -0.636670676614159, + 0.126463515444637, + -0.759069513849464 + ], + [ + 0.690480544298485, + -0.651170449763886, + -0.107844854788385, + -0.295944505938592 + ], + [ + -0.286792727085658, + -0.0178671407947011, + -0.957802133320044, + 0.00676538085896086 + ], + [ + 0.672485978577917, + -0.682050809403355, + -0.190159580709569, + -0.215426636869004 + ], + [ + -0.68205366251472, + -0.672483084874194, + 0.215427443646179, + -0.190158666729698 + ], + [ + 0.999999999000364, + -0.0000409124412001971, + 0.0000180400179540283, + 0.00000000109777986539821 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244571212 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392141089 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406722717 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956564074 + } + ], + "ctrl": [ + -0.25890297663273, + 1.66158143311682, + -1.72765296411865, + 0.137866846824996, + 1.2, + -0.273519044711755, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0127949261433108, + "qpos": [ + -0.261461917879103, + 1.65701139069692, + -1.72773603645744, + 0.130690907304083, + 1.16105521792451, + -0.241278914152198, + 0.0109459175938906, + -0.0109482952756608, + 0.319999977257122, + -0.145000051903951, + -0.00010773877982014, + 0.999999999000364, + -0.0000409124412001971, + 0.0000180400179540283, + 0.00000000109777986539821 + ], + "shoe_position": [ + 0.319999977257122, + -0.145000051903951, + -0.00010773877982014 + ], + "tcp_position": [ + 0.403326200365188, + -0.0803609951357213, + 0.288102114146708 + ], + "tcp_quaternion": [ + 0.286792727085658, + 0.0178671407947011, + 0.957802133320044, + -0.00676538085896086 + ], + "time": 1.84 + } + }, + { + "compute_ms": 1.10787499579601, + "request": { + "jaw": 0.01, + "sequence": 93, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 10.404, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0513449094828297, + -0.0137328217807629, + 0.40303197915977 + ], + [ + 0.287245936838153, + -0.0768325009044665, + 0.464097420148834 + ], + [ + 0.287245936838153, + -0.0768325009044665, + 0.464097420148834 + ], + [ + 0.337436928573151, + -0.0774987920840359, + 0.388180183127382 + ], + [ + 0.411015840000585, + -0.0912917182202606, + 0.275284680279525 + ], + [ + 0.411816245353203, + -0.0697287442886089, + 0.275233837125686 + ], + [ + 0.319999977257233, + -0.145000051904482, + -0.00010773877981979 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608934905991752, + 0.0, + 0.0, + -0.793220196581514 + ], + [ + 0.45445930294708, + -0.579008901648126, + -0.405894927059, + -0.541723861358215 + ], + [ + -0.0813983834399568, + -0.10286815007838, + -0.699585694321612, + -0.702404657710469 + ], + [ + -0.0494859656791547, + -0.636797120037619, + 0.126606117792014, + -0.758954187056261 + ], + [ + 0.690890392809036, + -0.651084045360771, + -0.107304128428903, + -0.295374093351029 + ], + [ + -0.286052435680093, + -0.0174375895436907, + -0.958033667832372, + 0.00643628868567002 + ], + [ + 0.672882401368583, + -0.681981824856627, + -0.189939852494954, + -0.214599433661579 + ], + [ + -0.681984679649872, + -0.672879507957532, + 0.214600239506533, + -0.189938942024613 + ], + [ + 0.999999999000364, + -0.000040912441287063, + 0.0000180400179546592, + 0.00000000111993262546738 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244557466 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392127863 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406737194 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956577404 + } + ], + "ctrl": [ + -0.258864081490559, + 1.66163392139136, + -1.72764529770178, + 0.137785248126486, + 1.2, + -0.273445307012031, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0124455976381736, + "qpos": [ + -0.2613577825554, + 1.65741061271767, + -1.72773608073544, + 0.131150015881251, + 1.16236190912258, + -0.242074692251489, + 0.0107880638159874, + -0.0107898201984443, + 0.319999977257233, + -0.145000051904482, + -0.00010773877981979, + 0.999999999000364, + -0.000040912441287063, + 0.0000180400179546592, + 0.00000000111993262546738 + ], + "shoe_position": [ + 0.319999977257233, + -0.145000051904482, + -0.00010773877981979 + ], + "tcp_position": [ + 0.403197916099806, + -0.0801764804311585, + 0.287803276397622 + ], + "tcp_quaternion": [ + 0.286052435680093, + 0.0174375895436907, + 0.958033667832372, + -0.00643628868567002 + ], + "time": 1.86 + } + }, + { + "compute_ms": 1.04070900124498, + "request": { + "jaw": 0.01, + "sequence": 94, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 13.403, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.051437535207903, + -0.013752021082985, + 0.403014037797873 + ], + [ + 0.287364925187622, + -0.0768331732915781, + 0.463996717219116 + ], + [ + 0.287364925187622, + -0.0768331732915781, + 0.463996717219116 + ], + [ + 0.33745753906403, + -0.0774263570419834, + 0.388013925481004 + ], + [ + 0.410905887717318, + -0.0909796715556756, + 0.275016925297327 + ], + [ + 0.411675998826319, + -0.0696794442042916, + 0.274972761109338 + ], + [ + 0.319999977257314, + -0.145000051904867, + -0.00010773877982072 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.608975034990523, + 0.0, + 0.0, + -0.793189388959718 + ], + [ + 0.454578050119916, + -0.579056809705968, + -0.405826577657436, + -0.541624220607956 + ], + [ + -0.0812438227939242, + -0.102951302301484, + -0.699573462442958, + -0.702422551786195 + ], + [ + -0.0492797148012098, + -0.63690309708272, + 0.126733904425821, + -0.75885734634682 + ], + [ + 0.691252174290569, + -0.650997513314444, + -0.106845769235505, + -0.294884131131949 + ], + [ + -0.285422693380378, + -0.0170209962752838, + -0.958230836243281, + 0.00615111874294913 + ], + [ + 0.673223465961296, + -0.681919597633395, + -0.189789131809148, + -0.213859563007356 + ], + [ + -0.681922453873657, + -0.673220572814251, + 0.213860368212863, + -0.189788224477815 + ], + [ + 0.999999999000364, + -0.0000409124410749155, + 0.0000180400179501361, + 0.00000000113596414341191 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244570236 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392140663 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406723224 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.74237795656505 + } + ], + "ctrl": [ + -0.258829875795508, + 1.66167887664267, + -1.72764001910165, + 0.137713259153954, + 1.2, + -0.273380344092685, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0121452394278407, + "qpos": [ + -0.261256600618204, + 1.65774787590938, + -1.72773444143441, + 0.131573555393586, + 1.16348187175306, + -0.242848853754064, + 0.0106565095047296, + -0.0106576807643032, + 0.319999977257314, + -0.145000051904867, + -0.00010773877982072, + 0.999999999000364, + -0.0000409124410749155, + 0.0000180400179501361, + 0.00000000113596414341191 + ], + "shoe_position": [ + 0.319999977257314, + -0.145000051904867, + -0.00010773877982072 + ], + "tcp_position": [ + 0.403089013549664, + -0.0800075710460701, + 0.287549763756005 + ], + "tcp_quaternion": [ + 0.285422693380378, + 0.0170209962752838, + 0.958230836243281, + -0.00615111874294913 + ], + "time": 1.88 + } + }, + { + "compute_ms": 1.39645897434093, + "request": { + "jaw": 0.01, + "sequence": 95, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 11.762, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0515112043223351, + -0.0137662962659747, + 0.402999793557746 + ], + [ + 0.287460694648485, + -0.0768285208311468, + 0.463916508371678 + ], + [ + 0.287460694648485, + -0.0768285208311468, + 0.463916508371678 + ], + [ + 0.337471098633686, + -0.077356621550924, + 0.387879102609009 + ], + [ + 0.41081136123196, + -0.0907041232665364, + 0.274797716155851 + ], + [ + 0.411554209352334, + -0.069622782145363, + 0.274758615209371 + ], + [ + 0.319999977257419, + -0.145000051905374, + -0.00010773877982039 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.609013997114368, + 0.0, + 0.0, + -0.793159474077427 + ], + [ + 0.454677046696938, + -0.579091119355118, + -0.405777618264039, + -0.541541118666857 + ], + [ + -0.0811144551448136, + -0.103011414912975, + -0.699564613454417, + -0.702437502676615 + ], + [ + -0.0490882964993797, + -0.636985234667099, + 0.126847290738285, + -0.75878186245801 + ], + [ + 0.691569641815779, + -0.65091063690409, + -0.10646488115685, + -0.29446901766428 + ], + [ + -0.284896406913952, + -0.0166162598579112, + -0.958396082662632, + 0.00590643486180154 + ], + [ + 0.673513330339738, + -0.681863426232943, + -0.189703181556441, + -0.213201230596614 + ], + [ + -0.681866283702996, + -0.673510437431005, + 0.213202035437471, + -0.189702277018178 + ], + [ + 0.999999999000364, + -0.0000409124411563041, + 0.0000180400179507264, + 0.00000000115707646015188 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244557174 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392128099 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406736962 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956577702 + } + ], + "ctrl": [ + -0.258799926245903, + 1.66171693787889, + -1.72763675496458, + 0.137649978293681, + 1.2, + -0.273323109223525, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0118894586561299, + "qpos": [ + -0.261158357098776, + 1.65801521490319, + -1.7277316807854, + 0.131964877458141, + 1.16443984472061, + -0.243602124992348, + 0.010546890437993, + -0.0105475708182051, + 0.319999977257419, + -0.145000051905374, + -0.00010773877982039, + 0.999999999000364, + -0.0000409124411563041, + 0.0000180400179507264, + 0.00000000115707646015188 + ], + "shoe_position": [ + 0.319999977257419, + -0.145000051905374, + -0.00010773877982039 + ], + "tcp_position": [ + 0.402994385159814, + -0.0798519532512706, + 0.287342178334789 + ], + "tcp_quaternion": [ + 0.284896406913952, + 0.0166162598579112, + 0.958396082662632, + -0.00590643486180154 + ], + "time": 1.9 + } + }, + { + "compute_ms": 0.974416005192324, + "request": { + "jaw": 0.01, + "sequence": 96, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.233, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.051566879176384, + -0.0137759078950785, + 0.402989072661193 + ], + [ + 0.287534394557362, + -0.076818840827855, + 0.463855915754631 + ], + [ + 0.287534394557362, + -0.076818840827855, + 0.463855915754631 + ], + [ + 0.337476609158542, + -0.077288886312543, + 0.387773324248939 + ], + [ + 0.410728326840533, + -0.0904592490778034, + 0.274622279830011 + ], + [ + 0.411446444167846, + -0.0695601815542239, + 0.274586889887369 + ], + [ + 0.319999977257543, + -0.145000051905967, + -0.00010773877981869 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.609051815487977, + 0.0, + 0.0, + -0.793130434449971 + ], + [ + 0.454757278580306, + -0.579112543960708, + -0.405747041181273, + -0.541473745973186 + ], + [ + -0.0810092443838115, + -0.103049481678213, + -0.69955900703647, + -0.702449643977676 + ], + [ + -0.0489103594401144, + -0.637044423471898, + 0.126947509172302, + -0.758726900259734 + ], + [ + 0.691848499688128, + -0.650823946701587, + -0.106151322068913, + -0.294118582721456 + ], + [ + -0.284459707334372, + -0.0162225710618363, + -0.95853380035297, + 0.00569707576575466 + ], + [ + 0.673758750582336, + -0.681812767572804, + -0.189672767100753, + -0.212614057411044 + ], + [ + -0.681815626084088, + -0.673755857888527, + 0.212614862122868, + -0.189671865053656 + ], + [ + 0.999999999000364, + -0.0000409124415540804, + 0.0000180400179571089, + 0.00000000118175931661708 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244578594 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392146802 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406716801 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956556955 + } + ], + "ctrl": [ + -0.258773750951522, + 1.66174886438758, + -1.72763518586293, + 0.137594419394787, + 1.2, + -0.27327259407468, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0116717488953953, + "qpos": [ + -0.261062994016911, + 1.65821617973275, + -1.72772845222055, + 0.132327274903798, + 1.16526369192023, + -0.244335117721039, + 0.0104555522182194, + -0.0104558793039608, + 0.319999977257543, + -0.145000051905967, + -0.00010773877981869, + 0.999999999000364, + -0.0000409124415540804, + 0.0000180400179571089, + 0.00000000118175931661708 + ], + "shoe_position": [ + 0.319999977257543, + -0.145000051905967, + -0.00010773877981869 + ], + "tcp_position": [ + 0.402910201012422, + -0.0797076126432592, + 0.287176128860414 + ], + "tcp_quaternion": [ + 0.284459707334372, + 0.0162225710618363, + 0.95853380035297, + -0.00569707576575466 + ], + "time": 1.92 + } + }, + { + "compute_ms": 0.960500008659437, + "request": { + "jaw": 0.01, + "sequence": 97, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 3.595, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0516127788463755, + -0.0137830562486933, + 0.402980263404763 + ], + [ + 0.287596007604638, + -0.0768068022309555, + 0.463806043162929 + ], + [ + 0.287596007604638, + -0.0768068022309555, + 0.463806043162929 + ], + [ + 0.337477064661135, + -0.0772233095607988, + 0.387683029948654 + ], + [ + 0.41064966396205, + -0.0902384471937219, + 0.274469855993529 + ], + [ + 0.411345059928137, + -0.0694910661976944, + 0.274437364934301 + ], + [ + 0.319999977257644, + -0.14500005190645, + -0.00010773877981919 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.609088495996212, + 0.0, + 0.0, + -0.793102265817639 + ], + [ + 0.454826981323769, + -0.579127246890491, + -0.405726055250388, + -0.54141519840129 + ], + [ + -0.0809177082019078, + -0.10307593319582, + -0.699555110049102, + -0.702460194245447 + ], + [ + -0.048743867985683, + -0.63709156521527, + 0.127037930878577, + -0.758682896198037 + ], + [ + 0.692103887157464, + -0.650741272300705, + -0.105872230408845, + -0.293801083616526 + ], + [ + -0.284068182789524, + -0.015838937771753, + -0.958657414805752, + 0.00550968373616255 + ], + [ + 0.673978665279498, + -0.681767669534558, + -0.189667185984153, + -0.212065938062521 + ], + [ + -0.681770528978861, + -0.673975772777023, + 0.212066742750672, + -0.18966628626253 + ], + [ + 0.999999999000364, + -0.000040912441430227, + 0.0000180400179540077, + 0.00000000120187999646848 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244557116 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392126974 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.67164540673811 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.74237795657772 + } + ], + "ctrl": [ + -0.258750753465996, + 1.66177564109646, + -1.72763494964265, + 0.137545387654962, + 1.2, + -0.273227721148718, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0114742192118469, + "qpos": [ + -0.26097049684869, + 1.6583811521554, + -1.72772530385777, + 0.132664417496756, + 1.1660202545261, + -0.245048191396194, + 0.0103794537719297, + -0.0103796032736266, + 0.319999977257644, + -0.14500005190645, + -0.00010773877981919, + 0.999999999000364, + -0.000040912441430227, + 0.0000180400179540077, + 0.00000000120187999646848 + ], + "shoe_position": [ + 0.319999977257644, + -0.14500005190645, + -0.00010773877981919 + ], + "tcp_position": [ + 0.402830231398163, + -0.0795713934199358, + 0.287031894835171 + ], + "tcp_quaternion": [ + 0.284068182789524, + 0.015838937771753, + 0.958657414805752, + -0.00550968373616255 + ], + "time": 1.94 + } + }, + { + "compute_ms": 0.960916018811986, + "request": { + "jaw": 0.01, + "sequence": 98, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 4.726, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0516543617826224, + -0.0137891995339357, + 0.402972292130924 + ], + [ + 0.287652174433196, + -0.0767941687945232, + 0.463760930613925 + ], + [ + 0.287652174433196, + -0.0767941687945232, + 0.463760930613925 + ], + [ + 0.337474765508349, + -0.0771601627151481, + 0.38759937903271 + ], + [ + 0.410571420904237, + -0.0900372689149507, + 0.27432716961184 + ], + [ + 0.411245715204915, + -0.0694161088881877, + 0.274297077029213 + ], + [ + 0.319999977257762, + -0.145000051907015, + -0.00010773877981832 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.609124055718399, + 0.0, + 0.0, + -0.793074955313285 + ], + [ + 0.454891631330433, + -0.579139313439898, + -0.405708831094867, + -0.541360881247932 + ], + [ + -0.0808328043683546, + -0.103097753344458, + -0.699551894612062, + -0.702469969278365 + ], + [ + -0.0485877790446764, + -0.637134027000107, + 0.127120530234456, + -0.758643414364774 + ], + [ + 0.692344906101132, + -0.650665211493375, + -0.105607231239464, + -0.293496893097746 + ], + [ + -0.283694289643118, + -0.0154644513619298, + -0.958775220487707, + 0.00533641702919371 + ], + [ + 0.674184484456319, + -0.681728452216891, + -0.189667604367683, + -0.211536753803572 + ], + [ + -0.681731312534412, + -0.674181592120227, + 0.211537558493502, + -0.1896667068912 + ], + [ + 0.999999999000364, + -0.0000409124416305423, + 0.0000180400179567574, + 0.00000000122540355982123 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244576524 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392144534 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406719185 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956558937 + } + ], + "ctrl": [ + -0.258729599309273, + 1.66179945776741, + -1.72763510861496, + 0.137500415257706, + 1.2, + -0.273186508546419, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0112859568531443, + "qpos": [ + -0.26088082282814, + 1.65853030870306, + -1.72772240331179, + 0.13297789312933, + 1.16674928042606, + -0.245742259578057, + 0.0103160845960089, + -0.0103161188545314, + 0.319999977257762, + -0.145000051907015, + -0.00010773877981832, + 0.999999999000364, + -0.0000409124416305423, + 0.0000180400179567574, + 0.00000000122540355982123 + ], + "shoe_position": [ + 0.319999977257762, + -0.145000051907015, + -0.00010773877981832 + ], + "tcp_position": [ + 0.402751047782271, + -0.079441597161035, + 0.286896832245826 + ], + "tcp_quaternion": [ + 0.283694289643118, + 0.0154644513619298, + 0.958775220487707, + -0.00533641702919371 + ], + "time": 1.96 + } + }, + { + "compute_ms": 1.01295800413936, + "request": { + "jaw": 0.01, + "sequence": 99, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 10.861, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0516935604029582, + -0.0137948504839015, + 0.40296477883654 + ], + [ + 0.287705253215313, + -0.0767815462698861, + 0.46371845613932 + ], + [ + 0.287705253215313, + -0.0767815462698861, + 0.46371845613932 + ], + [ + 0.33747089023379, + -0.0770995912331701, + 0.3875194621053 + ], + [ + 0.410493150278073, + -0.0898530474644761, + 0.274190087587962 + ], + [ + 0.411147709254369, + -0.0693369535095163, + 0.274161998518854 + ], + [ + 0.319999977257858, + -0.145000051907476, + -0.00010773877981925 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.609158527658882, + 0.0, + 0.0, + -0.793048477824945 + ], + [ + 0.454953184961097, + -0.579150175387028, + -0.405693325492514, + -0.541309153343774 + ], + [ + -0.0807519986073381, + -0.103117408148256, + -0.699548997666915, + -0.702479262840492 + ], + [ + -0.0484414837758838, + -0.637174405631508, + 0.127196165499205, + -0.758606179081098 + ], + [ + 0.692574276694894, + -0.650596222636972, + -0.10535066124741, + -0.293200723951667 + ], + [ + -0.283330515370444, + -0.0150987411695599, + -0.958889497153478, + 0.00517487427514231 + ], + [ + 0.674379518167522, + -0.681695029617797, + -0.189668972180627, + -0.211020930389563 + ], + [ + -0.681697890762776, + -0.674376625973228, + 0.211021735085301, + -0.189668076892598 + ], + [ + 0.999999999000364, + -0.000040912441407604, + 0.000018040017951848, + 0.00000000124457922342861 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244556279 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392126262 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406738854 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956578531 + } + ], + "ctrl": [ + -0.258709481662086, + 1.66182162034965, + -1.72763511578581, + 0.137458017101834, + 1.2, + -0.273147787191584, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0111040074413857, + "qpos": [ + -0.26079388901263, + 1.65867078907149, + -1.72771975719439, + 0.13326882254511, + 1.16746007629636, + -0.246418088856623, + 0.0102633121815049, + -0.0102632400771082, + 0.319999977257858, + -0.145000051907476, + -0.00010773877981925, + 0.999999999000364, + -0.000040912441407604, + 0.000018040017951848, + 0.00000000124457922342861 + ], + "shoe_position": [ + 0.319999977257858, + -0.145000051907476, + -0.00010773877981925 + ], + "tcp_position": [ + 0.402672271622958, + -0.0793177616472223, + 0.286766990746239 + ], + "tcp_quaternion": [ + 0.283330515370444, + 0.0150987411695599, + 0.958889497153478, + -0.00517487427514231 + ], + "time": 1.98 + } + }, + { + "compute_ms": 0.96524998662062, + "request": { + "jaw": 0.01, + "sequence": 100, + "target": [ + 0.395, + -0.075, + 0.28 + ], + "type": "step" + }, + "rpc_roundtrip_ms": 10.152, + "state": { + "body_positions": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0, + 0.0, + 0.123 + ], + [ + 0.0517310605129588, + -0.0138001889833241, + 0.402957588999172 + ], + [ + 0.287756088288904, + -0.0767691384789497, + 0.463677848870004 + ], + [ + 0.287756088288904, + -0.0767691384789497, + 0.463677848870004 + ], + [ + 0.337465944738745, + -0.0770415831203673, + 0.387442277002906 + ], + [ + 0.41041495086847, + -0.0896836714589596, + 0.274057234210002 + ], + [ + 0.411050950544689, + -0.0692550491888129, + 0.274030808858981 + ], + [ + 0.319999977257971, + -0.145000051908014, + -0.0001077387798187 + ] + ], + "body_quaternions": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.609191941069917, + 0.0, + 0.0, + -0.793022811106633 + ], + [ + 0.455012348143542, + -0.579160331488707, + -0.405678826696551, + -0.54125942304675 + ], + [ + -0.0806743499444182, + -0.103135783414665, + -0.699546288803996, + -0.70248818442807 + ], + [ + -0.0483044076756344, + -0.637213597884619, + 0.127265416594739, + -0.758570384742914 + ], + [ + 0.69279313933815, + -0.650534091000329, + -0.105100788497152, + -0.292911056106871 + ], + [ + -0.28297467555999, + -0.0147416075113652, + -0.95900092711404, + 0.00502392218406761 + ], + [ + 0.674565050236188, + -0.681667082844222, + -0.189669886004648, + -0.210516782013884 + ], + [ + -0.681669944776348, + -0.67456215816046, + 0.210517586713503, + -0.189668992855541 + ], + [ + 0.999999999000364, + -0.0000409124415391502, + 0.0000180400179533168, + 0.00000000126699799201884 + ] + ], + "contacts": [ + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.800083244574781 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.728893392143252 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.671645406720588 + }, + { + "geom1": 1.0, + "geom2": 98.0, + "normal_force_n": 0.742377956560631 + } + ], + "ctrl": [ + -0.258690171707644, + 1.66184252935881, + -1.72763485972899, + 0.137417726690394, + 1.2, + -0.273111183549101, + 0.01 + ], + "observation_origin": "privileged native simulator state", + "position_error_m": 0.0109274199472102, + "qpos": [ + -0.260709621902412, + 1.658805124953, + -1.72771729125532, + 0.133538497192737, + 1.16815503540874, + -0.247076251016051, + 0.0102193548237755, + -0.0102191823487126, + 0.319999977257971, + -0.145000051908014, + -0.0001077387798187, + 0.999999999000364, + -0.0000409124415391502, + 0.0000180400179533168, + 0.00000000126699799201884 + ], + "shoe_position": [ + 0.319999977257971, + -0.145000051908014, + -0.0001077387798187 + ], + "tcp_position": [ + 0.402593962399153, + -0.0791995899196328, + 0.286641060629888 + ], + "tcp_quaternion": [ + 0.28297467555999, + 0.0147416075113652, + 0.95900092711404, + -0.00502392218406761 + ], + "time": 2.0 + } + } + ], + "trace_limit": 256, + "wall_seconds": 3.330206 +} diff --git a/benchmarks/godot-workstation-v01/windowed-final.png b/benchmarks/godot-workstation-v01/windowed-final.png new file mode 100644 index 0000000..f600e71 Binary files /dev/null and b/benchmarks/godot-workstation-v01/windowed-final.png differ diff --git a/docs/godot-simulation-roadmap.md b/docs/godot-simulation-roadmap.md new file mode 100644 index 0000000..da3626e --- /dev/null +++ b/docs/godot-simulation-roadmap.md @@ -0,0 +1,126 @@ +# Godot robotics workstation: simulation roadmap + +## Purpose and boundary + +Build a small desktop workstation that makes robot scenes and physical assets easier to inspect, assemble, and replay. Keep the existing MuJoCo runtime as the single source of simulation truth for training, qualification, and benchmark receipts. Godot supplies the desktop scene editor, asset browser, camera views, and interaction layer; it does not replace or silently approximate the physics authority. + +This boundary keeps skill learning central. The workstation should make it easier to create useful training episodes, inspect failure, and run more episodes. It should not turn visual similarity into a claim of physical fidelity. No engine reproduces every contact, flexible material, sensor, actuator, or real-world effect. Physical transfer still requires measured assets, hardware-matched dynamics, and real-robot evaluation. + +## v0.1 anchor + +The first integration should wrap the existing live workstation behavior: MuJoCo at a fixed 2 ms physics step, 50 Hz differential-IK command updates, the current PiPER profile, and its rigid shoe proxy. Preserve the current controls, initial conditions, reset behavior, contact diagnostics, and receipt fields. Treat Godot as a new front end for this existing scene and command interface. + +This milestone is a workstation integration, not a new 1 ms learner scene, a trained manipulation skill, calibrated real-object physics, or evidence of real-robot transfer. Keep the headless MuJoCo CLI as the repeatable training and benchmark path. The desktop interface must not be required for data generation or qualification. + +## Architecture + +Use one versioned scene manifest as the boundary between editor and simulator. It should identify the robot profile and asset revisions, task, units and axes, object visual and collision assets, body transforms, mass properties, contact model, actuator/controller parameters, sensor setup, domain-randomization distributions, and provenance. Distinguish every value as measured, manufacturer-specified, estimated, or authored. Store uncertainty and measurement conditions alongside values; do not present an authored guess as a physical measurement. + +The Godot adapter reads and edits that manifest, displays GLB/USD-derived visual geometry and collision proxies, and sends bounded commands or reset requests to the MuJoCo authority. MuJoCo owns integration, contacts, constraints, actuator response, and authoritative state. Return timestamped state snapshots and diagnostics for display. Keep conversions explicit for meters, Z-up/world frames, joint order, quaternion convention, and radians. Record hashes for scene, assets, profile, code, and controller in every run receipt. + +Import visuals and physics separately. A GLB is a useful render asset; it does not by itself establish a safe or accurate collider, mass, center of mass, inertia tensor, friction, compliance, or articulated joint. Prefer simple, named collision shapes for training. Retain the source mesh, scale, transforms, and license, and record how each collider and physical property was obtained. For articulated SimReady assets, represent each rigid body and joint explicitly and verify the compiled model rather than trusting import success. + +## Training and real-time execution + +Run training headlessly with rendering disabled unless the policy consumes camera observations. When cameras are required, render only the declared sensors at their configured rate and resolution; do not render a desktop viewport per training step. Keep physics time fixed and independent of display refresh. Keep controller update rate, action hold duration, camera exposure/sampling, and policy rate as separate declared clocks. Use integer simulation ticks for scheduling. A slow renderer may delay presentation, but must never change simulated elapsed time or skip control updates. + +The desktop view interpolates between authoritative snapshots for smooth display. User actions enter through a bounded command queue and are applied on declared simulation ticks. Reset, pause, single-step, and catch-up behavior must be explicit. If the UI falls behind, show the lag and preserve simulation state; never hide dropped commands or reset history. + +## Asset and physical calibration + +For each task-critical asset, establish measured or defensible values for mass, center of mass, inertia, dimensions, contact geometry, friction, compliance/stiffness, damping, and relevant actuator or joint behavior. Include latency and observation noise where the training loop depends on them. Record instrument, procedure, units, sample count, conditions, uncertainty, and source. Where measurement is unavailable, label the value as authored or estimated and carry a plausible bounded distribution into domain randomization. + +Randomization ranges need evidence and a named purpose. Separate visual appearance changes from physical changes. Record the sampled values and seed for each episode. Randomization can improve robustness to the declared variations; it does not prove that the ranges represent reality or guarantee transfer. Never randomize away a mismatch discovered by calibration without documenting it. + +## Qualification gates + +Advance in small, reviewable stages. Every gate uses pinned scenes, seeds, and tolerances; preserve failures and per-tick traces. + +1. **Scene and asset integrity:** verify hashes, units, axes, transforms, hierarchy, joint mapping, and separation of visual meshes from collision geometry. Reject missing or ambiguous physics metadata. +2. **Simple rigid-body behavior:** compare free drop and settling, sliding, and toppling against MuJoCo reference trajectories. Check contact onset, pose, velocity, support state, and settled time. +3. **Constraints:** add a hinged object and compare hinge limits, constraint motion, and impacts. Validate opening/closing direction and joint effort conventions. +4. **Robot contact:** use a fixed gripper and rigid test object for grasp, lift, hold, release, and slip cases. Check finger/object/table contact ordering, joint motion, force/impulse diagnostics, and task outcome. Add a compliant object only after its model and measurements are available. +5. **Exact scene and command parity:** replay the same initial state and command sequence in desktop and headless paths. Verify scene hashes, action timing, state traces within declared tolerances, reset reproducibility, scorer decisions, and receipt completeness. MuJoCo remains authoritative; a Godot/Jolt-only path would need its own full qualification before it could produce separate benchmark claims. +6. **Performance and capacity:** measure the same workloads with headless simulation, camera rendering only, and the full desktop view. Report hardware and OS, runtime/build versions, scene and camera configuration, warm-up, episode count, simulated duration, and concurrent workers. Measure p50/p95 step and episode time, real-time factor (simulated seconds divided by wall seconds), render overhead, CPU/GPU use, peak memory, and missed-deadline/lag rate. Make no speed claim until these measurements are recorded and reproducible. + +Cover representative failure cases at each applicable gate: dropped objects, low/high friction, edge support, toppling, hinge collision, incomplete grasp, slip during lift, release and settle, and robot/table interference. Define success and tolerances before running the confirmation cohort. + +## Performance strategy + +The optimization objective is the least wall time and memory that keep declared +task-relevant errors below their tolerances. A faster run that changes grasp, +slip, release, or success decisions fails this constraint. Frame rate, physics +throughput, camera generation, and policy-loop latency need separate numbers. + +First remove unnecessary work: keep training headless, avoid per-step UI updates, batch state reads, use compact observation buffers, and render only cameras needed by the policy. Profile before optimizing. Keep a measured CPU baseline on the supported desktop hardware and preserve an equivalent deterministic benchmark workload. + +An optional batched backend such as Newton or MuJoCo Warp is a later investigation, not an implemented capability. First check official support for the target operating system, CPU/GPU, Python/runtime versions, and required sensor and contact APIs. In particular, do not assume a GPU backend runs on the current Mac CPU baseline. Compare it against the MuJoCo reference on the qualification suite and document any unsupported features or semantic differences before using it for training. + +## Release criteria + +The v0.1 desktop integration is ready for internal use when the existing live workstation can be opened, reset, controlled, and inspected through Godot while MuJoCo remains the only physics authority; a headless run remains reproducible; and scene/asset provenance plus timing and lag are visible in receipts. Make no claim of improved training throughput until the performance gate passes. Make no claim of physical calibration or transfer until measured asset and hardware evidence supports it. Skill success must come from a frozen task benchmark, not from a visually convincing replay. + +## Fast sim-to-real priorities + +Optimize elapsed time and compute required to reach a specified **real-task +success rate**, while enforcing separate contact/force/failure limits. Simulation +steps per second and training loss are supporting metrics. They cannot replace +real task outcomes. No hardware transfer rate has been measured for this work. + +1. **Reuse a calibrated arm profile.** Once an exact arm/gripper is selected, + measure encoder zero offsets, base and camera transforms, end-effector geometry, + command delay, velocity response and loaded tracking. Use instrumented, + conservative identification procedures with the hardware's native limits. + Keep calibration versioned and reusable across skills. The current prototype + issues no physical commands and has no hardware identification implementation. +2. **Identify only task-critical object properties.** For rigid block placement, + start with dimensions, mass, table/finger friction, compliance and contact + geometry. Use simple drop/slide/grip observations with known conditions; retain + uncertainty and distinguish identifiable properties from confounded ones. + Appearance-only footage cannot determine all these values. Deformable shoes + require a separate material model and measured deformation/contact tests. +3. **Train across measured uncertainty.** Start from demonstrated robot actions, + then vary starts, contact parameters, latency, calibration error and observation + dropout within declared ranges. Add the specific failures seen in development. + Freeze held-out tests before tuning. Use short action predictions plus current + feedback so a changing grip can interrupt the next movement; do not treat a + long predicted action sequence as permission for blind execution. +4. **Scale useful rollouts.** Keep the Godot viewport optional; render only policy + cameras at their declared rates. Reuse compiled models, buffer observations, + and profile data loading, rendering, inference and physics separately before + adding parallel workers. Evaluate any new CPU batch API or GPU backend on a + separate versioned experiment; do not upgrade the pinned 3.15.0 benchmark in + place. A host's supported parallelism and memory, not its core count alone, + determine the worker budget. +5. **Deploy a compact local policy with explicit checks.** Preserve units, frame + conventions, action rates and calibration identity between simulation and the + adapter. Measure complete observation-to-command p95/p99 latency and stale + sensor behavior. Apply independent joint/rate/contact checks supported by the + actual sensors; motor current is not automatically a calibrated force sensor. + Slow near uncertain contact and verify grip before transport. Local software + checks do not replace the arm's physical safety mechanisms. +6. **Close the loop with reality.** Once hardware is available, use a fixed budget + of controlled real trials to compare tracking, grip/retention, placement, + recovery and failures against the same simulated cases. Fit physical parameter + distributions from calibration/development data, then evaluate on held-out + trials. Update reusable profiles rather than repeatedly hand-tuning each skill. + +The immediate learning bottleneck remains acquisition/progress: the frozen +camera-to-action candidate achieved 5/64 strict simulated placements, and the +two reference-action development candidates achieved 0/4 each. The Godot adapter +does not change those scores. Complete the separately specified acquisition and +grip-progress experiment before treating additional simulation throughput as +evidence that the learned skill is ready for a physical robot. + +This strategy follows the idea of updating simulation distributions with real +observations in [SimOpt](https://arxiv.org/abs/1810.05687). The effectiveness and +required real-data budget still need measurement for our arm and task. Action +sequence models such as [ACT](https://arxiv.org/abs/2304.13705) are a relevant +baseline to compare; their published results do not establish our performance. + +## Primary references + +- [MuJoCo overview](https://mujoco.readthedocs.io/en/stable/overview.html): articulated contact dynamics, actuator models, and separation of model and state for parallel sampling. +- [Godot Jolt integration](https://docs.godotengine.org/en/stable/tutorials/physics/using_jolt_physics.html): joint-interface and reported multi-body contact-impulse limitations relevant to a future Jolt comparison. +- [SimReady GLB dataset card](https://huggingface.co/datasets/codepawl/simready-glb): separate engine-format visuals, physics metadata, collision hulls, source rights and documented conversion limitations. +- [Newton project](https://github.com/newton-physics/newton): optional GPU backend research; its documented macOS path is CPU-only. It is not installed or used by this prototype. diff --git a/docs/godot-workstation-v01.md b/docs/godot-workstation-v01.md new file mode 100644 index 0000000..4be3059 --- /dev/null +++ b/docs/godot-workstation-v01.md @@ -0,0 +1,91 @@ +# Godot workstation v0.1 + +This desktop prototype displays the existing PiPER workstation through Godot while +MuJoCo alone computes motion and contact. It adds a local command bridge and a +native-mesh viewer; it does not replace the dynamics solver or train a skill. + +The scene uses the pinned upstream arm model and an authored, rigid shoe proxy. +Its physical properties are uncalibrated. The visual export currently contains +compiled geometry and RGBA colors, not GLB materials, textures, or a general asset +importer. Physical robot control is not implemented. + +## Run locally + +Use a checkout containing this prototype, Python 3.12+, the repository's pinned +NumPy/MuJoCo dependencies, and Godot 4.7.2. The Python package alone does not +include the Godot project; keep the checkout. This initial version has been +developed on macOS/arm64. Other platforms need their own runtime checks. + +From the repository root, install the simulation dependencies and fetch the +checksum-pinned arm assets once. These two setup operations need networking. +The simulation then runs locally, without a cloud API or account. + +```sh +python -m venv .venv +source .venv/bin/activate +python -m pip install '.[arm]' +dvidia-robot-sim fetch piper --output ./robot-assets +python -m dvidia_training.godot_bridge prepare --assets ./robot-assets --output ./godot-scene +python -m dvidia_training.godot_bridge serve --assets ./robot-assets --port 8430 +``` + +In a second terminal, open the viewer. Replace the scene path with the absolute +path printed by your shell's `pwd` plus `/godot-scene`. + +```sh +godot --path integrations/godot -- --scene /absolute/path/to/godot-scene --port 8430 +``` + +The target sliders move the end-effector through bounded authored inverse +kinematics. The gripper slider changes the commanded finger opening. Pause stops +new simulation commands; Home changes the target; Reset reinitializes the entire +scene at time zero. Orbit and zoom affect only the viewer. Stop the server with +Ctrl-C. Each new connection starts a new scene; it does not resume an old run. + +The service binds only `127.0.0.1`. It has no hardware adapter. A viewer presents +the exact prepared model digest before sending commands. Every accepted command +advances ten 2 ms physics ticks, with the existing 50 Hz controller and limits. +There is only one pending command in the viewer. A slow client reduces wall-clock +progress instead of skipping simulation ticks. Paused keepalives carry no control +authority; an idle or disconnected client cannot cause background stepping. + +## Reproduce the checks + +```sh +PYTHONPATH=src python -m unittest tests.test_godot_bridge -v +godot --headless --path integrations/godot --script tests/test_coordinates.gd +PYTHONPATH=src python scripts/benchmark-godot-bridge.py --assets ./robot-assets --output ./cpu-parity.json +``` + +The benchmark compares three paired repetitions of the same six-segment tracking +sequence. Each path advances 12 simulated seconds per repetition. It compares +all 1,800 paired returned states, including contacts, exactly. The direct path is +the native Python call; the bridge path additionally encodes, validates and +decodes JSON. Its timing therefore measures the complete JSON request path, +not just physics or socket latency. Initialization and compilation are reported +separately. No viewer or camera is rendered during that benchmark. + +With the server running, an automated actual Godot client can collect a separate +receipt: + +```sh +godot --path integrations/godot -- --scene /absolute/path/to/godot-scene --port 8430 --smoke-steps 100 --smoke-output /absolute/path/to/godot-smoke.json --screenshot /absolute/path/to/godot-smoke.png +``` + +Use fresh output paths. The smoke receipt records commands and authoritative +states, permitting independent replay against the original workstation. This +is an integration and performance test, not a grasp or placement success rate. +Headless Godot tests omit actual viewport rendering and must be reported +separately from windowed execution. + +## What this establishes + +A passing comparison establishes that the adapter preserves this exact native +scene's simulated behavior under the tested commands. It does not validate that +the scene matches a real shoe or arm, that new assets are accurate, or that a +policy transfers to hardware. Reference-to-reference parity and comparison with +physical measurements are different gates. + +The next physical-asset work and performance criteria are specified in +[the simulation roadmap](godot-simulation-roadmap.md). Keep the existing +camera-to-action benchmark and its qualification result separate. diff --git a/integrations/godot/.gitignore b/integrations/godot/.gitignore new file mode 100644 index 0000000..0f10302 --- /dev/null +++ b/integrations/godot/.gitignore @@ -0,0 +1 @@ +.godot/ diff --git a/integrations/godot/README.md b/integrations/godot/README.md new file mode 100644 index 0000000..be57e36 --- /dev/null +++ b/integrations/godot/README.md @@ -0,0 +1,29 @@ +# DVIDIA Godot workstation + +A local desktop interface for the existing PiPER workstation. Godot renders the native compiled robot geometry and authored rigid shoe. MuJoCo is the only physics authority; both Godot physics servers are disabled. This does not add a learned shoe policy, calibrated materials, deformable shoes, or physical robot control. + +Run the Python bridge's `prepare` and `serve` stages first, then open this project with Godot 4.7.2: + +```sh +godot --path integrations/godot -- --scene /absolute/path/to/prepared-scene --port 8430 +``` + +The interface connects only to `127.0.0.1`. Move the three target sliders and gripper-opening slider. Drag empty space to orbit and scroll to zoom. **Home** changes the commanded target through the existing controller. **Reset** explicitly reinitializes the native scene. **Pause** waits for any outstanding control interval and then sends no step commands; a heartbeat keeps the local connection open. + +The viewer verifies the scene manifest, each declared file's size and SHA-256, the compiled model identity, and the 2 ms physics / 20 ms control clocks before enabling controls. Each accepted step advances exactly one 20 ms native control interval. Rendering does not determine the number of physics ticks. One request is outstanding at a time; network delays do not create catch-up steps. A disconnection or protocol error stops requests and appears in the interface. + +Only native mesh triangles, geom dimensions, transforms and RGBA colors are currently rendered. The project does not load arbitrary GLBs, PBR textures or physics extensions. The MuJoCo Z-up coordinate system is consistently mapped into Godot Y-up by `[x, y, z] → [x, z, -y]`; body poses remain world-space and geom transforms remain body-local. + +## Verification + +```sh +godot --headless --path integrations/godot --check-only --script main.gd +godot --headless --path integrations/godot --script tests/test_coordinates.gd +godot --headless --path integrations/godot -- \ + --scene /absolute/path/to/prepared-scene --port 8430 \ + --smoke-steps 100 --smoke-output /absolute/path/to/fresh-receipt.json +``` + +For a normal-window smoke run, omit `--headless` and optionally add `--screenshot /absolute/path/to/fresh-image.png`. Smoke mode executes three deterministic bounded target/jaw settings. Its receipt preserves initial state, up to 256 exact request/response records, model and scene identities, applied simulation time, native compute time and wall-clock elapsed time. Existing output files are preserved. Native compute time excludes rendering and socket transport; process frame count includes headless process ticks and is not a graphics benchmark. + +DVIDIA source is MIT licensed. Prepared scene exports carry the original pinned PiPER asset license and attribution alongside DVIDIA's license. No external asset license is replaced by the application license. diff --git a/integrations/godot/main.gd b/integrations/godot/main.gd new file mode 100644 index 0000000..4981283 --- /dev/null +++ b/integrations/godot/main.gd @@ -0,0 +1,800 @@ +extends Node3D +## Local renderer, never a robot physics authority. MIT, DVIDIA contributors. + +const SCHEMA := "dvidia.godot-bridge/v1" +const MAX_FILE := 64 * 1024 * 1024 +const MAX_PACKET := 1024 * 1024 +const INK := Color("25322e") +const MUTED := Color("728079") +const GREEN := Color("4e7562") +const PAPER := Color("f8f8f2") + +var peer := StreamPeerTCP.new() +var scene_data: Dictionary = {} +var body_nodes: Array[Node3D] = [] +var mesh_cache: Dictionary = {} +var incoming := PackedByteArray() +var connected := false +var hello_sent := false +var pending := false +var pending_kind := "" +var paused := false +var finished := false +var errors: Array[String] = [] +var sequence := 1 +var replies := 0 +var resets := 0 +var state_time := 0.0 +var compute_total_ms := 0.0 +var last_compute_ms := 0.0 +var last_request_us := 0 +var next_step_due_us := 0 +var started_us := 0 +var connected_us := 0 +var frame_count := 0 +var target := [0.36, -0.06, 0.27] +var jaw := 0.035 +var sliders: Array[HSlider] = [] +var value_labels: Array[Label] = [] +var status_label: Label +var time_label: Label +var compute_label: Label +var pause_button: Button +var camera: Camera3D +var marker: MeshInstance3D +var camera_yaw := -0.63 +var camera_pitch := 0.42 +var camera_distance := 1.65 +var orbiting := false +var focus := Vector3(0.26, 0.12, 0.0) +var scene_dir := "" +var port := 8430 +var smoke_steps := 0 +var smoke_output := "" +var screenshot_path := "" +var initial_sim_time := 0.0 +var initial_state: Dictionary = {} +var smoke_trace: Array[Dictionary] = [] +var pending_request: Dictionary = {} +var reset_requested := false +var scene_integrity_sha256 := "" +var verified_files: Dictionary = {} +var ready_us := 0 +var completed_us := 0 +var frame_intervals_ms: Array[float] = [] +var rpc_roundtrip_ms: Array[float] = [] + + +func _ready() -> void: + PhysicsServer3D.set_active(false) + PhysicsServer2D.set_active(false) + started_us = Time.get_ticks_usec() + _parse_args() + _build_world() + _build_ui() + if not errors.is_empty(): + _fail(errors[0]) + return + if scene_dir.is_empty(): + _fail("Choose an exported scene: --scene /absolute/path --port 8430") + return + if not _load_scene(): + return + status_label.text = "Connecting to local MuJoCo…" + var result := peer.connect_to_host("127.0.0.1", port) + if result != OK: + _fail("Cannot connect to local MuJoCo (%s)." % result) + connected_us = Time.get_ticks_usec() + + +func _parse_args() -> void: + var args := OS.get_cmdline_user_args() + var index := 0 + while index < args.size(): + var flag := args[index] + if flag not in ["--scene", "--port", "--smoke-steps", "--smoke-output", "--screenshot"] or index + 1 >= args.size(): + errors.append("Unknown or incomplete argument: " + flag) + return + var value := args[index + 1] + match flag: + "--scene": scene_dir = value + "--port": port = int(value) + "--smoke-steps": smoke_steps = int(value) + "--smoke-output": smoke_output = value + "--screenshot": screenshot_path = value + index += 2 + if port < 1024 or port > 65535 or smoke_steps < 0 or smoke_steps > 100000: + errors.append("Port or smoke step count is outside bounds.") + if (not smoke_output.is_empty() and not smoke_output.is_absolute_path()) or (not screenshot_path.is_empty() and not screenshot_path.is_absolute_path()): + errors.append("Smoke output and screenshot paths must be absolute.") + if (not smoke_output.is_empty() and FileAccess.file_exists(smoke_output)) or (not screenshot_path.is_empty() and FileAccess.file_exists(screenshot_path)): + errors.append("Smoke output and screenshot paths must be fresh files.") + + +func _build_world() -> void: + var environment_node := WorldEnvironment.new() + var environment := Environment.new() + environment.background_mode = Environment.BG_COLOR + environment.background_color = Color("e9ebe2") + environment.ambient_light_source = Environment.AMBIENT_SOURCE_COLOR + environment.ambient_light_color = Color("f1f5e9") + # Compatibility rendering is SDR. Keep the light budget below clipping; + # bright HDR-style lighting washes out native RGBA materials in this path. + environment.ambient_light_energy = 0.28 + environment.tonemap_mode = Environment.TONE_MAPPER_LINEAR + environment_node.environment = environment + add_child(environment_node) + var light := DirectionalLight3D.new() + light.rotation_degrees = Vector3(-52, -38, 0) + light.light_energy = 0.68 + light.shadow_enabled = true + light.directional_shadow_max_distance = 5.0 + add_child(light) + var fill := DirectionalLight3D.new() + fill.rotation_degrees = Vector3(-32, 130, 0) + fill.light_energy = 0.16 + add_child(fill) + camera = Camera3D.new() + camera.fov = 41 + camera.near = 0.005 + camera.far = 30 + add_child(camera) + camera.make_current() + _position_camera() + marker = MeshInstance3D.new() + var sphere := SphereMesh.new() + sphere.radius = 0.008 + sphere.height = 0.016 + marker.mesh = sphere + var material := StandardMaterial3D.new() + material.albedo_color = Color("73a27e") + material.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED + marker.material_override = material + add_child(marker) + marker.position = native_vector(target) + + +func _style(background: Color, border: Color = Color.TRANSPARENT) -> StyleBoxFlat: + var box := StyleBoxFlat.new() + box.bg_color = background + box.border_color = border + box.set_border_width_all(1) + box.set_corner_radius_all(8) + box.content_margin_left = 16 + box.content_margin_right = 16 + box.content_margin_top = 11 + box.content_margin_bottom = 11 + return box + + +func _label(text: String, size: int = 16, color: Color = INK) -> Label: + var label := Label.new() + label.text = text + label.add_theme_font_size_override("font_size", size) + label.add_theme_color_override("font_color", color) + return label + + +func _button(text: String, action: Callable) -> Button: + var button := Button.new() + button.text = text + button.custom_minimum_size.y = 42 + button.add_theme_font_size_override("font_size", 15) + button.add_theme_color_override("font_color", INK) + button.add_theme_color_override("font_hover_color", INK) + button.add_theme_stylebox_override("normal", _style(Color("eff1e9"), Color("d8ded1"))) + button.add_theme_stylebox_override("hover", _style(Color("e1e8dc"))) + button.add_theme_stylebox_override("pressed", _style(Color("d3dfcd"))) + button.pressed.connect(action) + return button + + +func _build_ui() -> void: + var layer := CanvasLayer.new() + add_child(layer) + var root := Control.new() + root.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT) + root.mouse_filter = Control.MOUSE_FILTER_IGNORE + layer.add_child(root) + var header := PanelContainer.new() + header.set_anchors_and_offsets_preset(Control.PRESET_TOP_WIDE) + header.offset_bottom = 72 + header.add_theme_stylebox_override("panel", _style(PAPER, Color("d9ded2"))) + root.add_child(header) + var top := HBoxContainer.new() + top.add_theme_constant_override("separation", 18) + header.add_child(top) + top.add_child(_label("DVIDIA", 23)) + top.add_child(_label("/ Manipulation lab", 16, MUTED)) + var spacer := Control.new() + spacer.size_flags_horizontal = Control.SIZE_EXPAND_FILL + top.add_child(spacer) + top.add_child(_label("PHYSICS MuJoCo · LOCAL COMPUTE", 13, GREEN)) + var panel := PanelContainer.new() + panel.set_anchors_and_offsets_preset(Control.PRESET_TOP_RIGHT) + panel.offset_left = -332 + panel.offset_right = -22 + panel.offset_top = 96 + panel.offset_bottom = 645 + panel.add_theme_stylebox_override("panel", _style(PAPER, Color("d9ded2"))) + root.add_child(panel) + var column := VBoxContainer.new() + column.add_theme_constant_override("separation", 15) + panel.add_child(column) + column.add_child(_label("PiPER workstation", 22)) + column.add_child(_label("Move the target. Watch the contact.", 14, MUTED)) + status_label = _label("Opening scene…", 14, GREEN) + status_label.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART + status_label.custom_minimum_size = Vector2(270, 38) + column.add_child(status_label) + for index in range(4): + var row := HBoxContainer.new() + var names := ["Target X", "Target Y", "Target Z", "Gripper target"] + var caption := _label(names[index], 14) + caption.size_flags_horizontal = Control.SIZE_EXPAND_FILL + row.add_child(caption) + var value_label := _label("", 14, MUTED) + row.add_child(value_label) + value_labels.append(value_label) + column.add_child(row) + var slider := HSlider.new() + slider.custom_minimum_size.y = 18 + slider.step = 0.001 + slider.editable = false + slider.value_changed.connect(_slider_changed.bind(index)) + sliders.append(slider) + column.add_child(slider) + var buttons := HBoxContainer.new() + buttons.add_theme_constant_override("separation", 8) + pause_button = _button("Pause", _toggle_pause) + pause_button.size_flags_horizontal = Control.SIZE_EXPAND_FILL + buttons.add_child(pause_button) + buttons.add_child(_button("Home", _home)) + buttons.add_child(_button("Reset", _reset)) + column.add_child(buttons) + time_label = _label("Simulation 0.00 s", 15) + compute_label = _label("Native step — ms", 13, MUTED) + column.add_child(time_label) + column.add_child(compute_label) + var note := _label("Synthetic rigid shoe · Research prototype\nContact and material properties are uncalibrated.", 12, MUTED) + note.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART + column.add_child(note) + var hints := _label("Drag empty space to orbit · Scroll to zoom\nGreen point: commanded target", 14, MUTED) + hints.set_anchors_and_offsets_preset(Control.PRESET_BOTTOM_LEFT) + hints.offset_left = 28 + hints.offset_top = -63 + hints.offset_bottom = -18 + root.add_child(hints) + + +static func native_vector(value: Array) -> Vector3: + return Vector3(float(value[0]), float(value[2]), -float(value[1])) + + +static func native_basis(value: Array) -> Basis: + # A proper coordinate rotation C: [x,y,z] -> [x,z,-y]. Both local + # mesh coordinates and every transform are mapped, so R' = C R C^-1. + return Basis(Quaternion(float(value[1]), float(value[3]), -float(value[2]), float(value[0]))) + + +func _valid_vector(value: Variant, length: int) -> bool: + if not value is Array or value.size() != length: + return false + for number in value: + if not (number is int or number is float) or not is_finite(float(number)): + return false + return true + + +func _valid_quaternion(value: Variant) -> bool: + if not _valid_vector(value, 4): + return false + var norm_squared := 0.0 + for number in value: + norm_squared += float(number) * float(number) + return absf(norm_squared - 1.0) < 0.00001 + + +func _load_scene() -> bool: + if not _verify_scene_files(): + return false + var decoded: Variant = JSON.parse_string(verified_files["scene.json"].get_string_from_utf8()) + if not decoded is Dictionary or decoded.get("schema") != "dvidia.asset-preview-model/v1" or not decoded.has("bridge") or not decoded.has("bodies") or not decoded.has("meshes") or not decoded.has("geoms"): + _fail("Scene metadata is incomplete.") + return false + scene_data = decoded + var bridge: Dictionary = scene_data.bridge + if bridge.get("schema") != SCHEMA or not str(bridge.get("model_sha256", "")).is_valid_hex_number(false) or str(bridge.get("model_sha256", "")).length() != 64: + _fail("Scene bridge identity is invalid.") + return false + if float(bridge.get("physics_dt", -1)) != 0.002 or float(bridge.get("control_dt", -1)) != 0.02 or scene_data.get("source", {}).get("compiled_model_sha256") != bridge.model_sha256: + _fail("Scene model source or pinned simulation clocks differ.") + return false + var info: Dictionary = scene_data.get("geometry_binary", {}) + if info.get("href") != "geometry.bin" or info.get("compression") != "none" or int(info.get("bytes", -1)) < 0 or int(info.get("bytes", MAX_FILE + 1)) > MAX_FILE: + _fail("Scene geometry framing is invalid.") + return false + var bytes: PackedByteArray = verified_files["geometry.bin"] + if bytes.size() != int(info.bytes): + _fail("Geometry file is missing or has changed size.") + return false + var hash := HashingContext.new() + hash.start(HashingContext.HASH_SHA256) + hash.update(bytes) + if hash.finish().hex_encode() != info.get("sha256"): + _fail("Geometry checksum does not match the exported scene.") + return false + if scene_data.bodies.size() < 1 or scene_data.bodies.size() > 128 or scene_data.meshes.size() > 128 or scene_data.geoms.size() > 512: + _fail("Scene inventory exceeds bounds.") + return false + for body in scene_data.bodies: + if int(body.id) != body_nodes.size(): + _fail("Body IDs must be contiguous native IDs.") + return false + var node := Node3D.new() + node.name = str(body.name) + add_child(node) + body_nodes.append(node) + for record in scene_data.meshes: + var mesh := _native_mesh(record, bytes) + if mesh == null: + return false + mesh_cache[int(record.id)] = mesh + for geom in scene_data.geoms: + if not _add_geom(geom): + return false + if not _valid_vector(bridge.get("home_target"), 3) or not bridge.get("bounds") is Array or bridge.bounds.size() != 3: + _fail("Target declaration is invalid.") + return false + target = bridge.home_target.duplicate() + jaw = float(bridge.gripper_initial) + for index in range(4): + if index < 3: + sliders[index].min_value = float(bridge.bounds[index][0]) + sliders[index].max_value = float(bridge.bounds[index][1]) + else: + sliders[index].min_value = 0 + sliders[index].max_value = 0.035 + _set_slider(index, float(target[index]) if index < 3 else jaw) + verified_files.clear() + return true + + +func _verify_scene_files() -> bool: + var seal_file := FileAccess.open(scene_dir.path_join("scene-integrity.json"), FileAccess.READ) + if seal_file == null or seal_file.get_length() > 65536: + _fail("Cannot read a bounded scene-integrity.json.") + return false + var seal_bytes := seal_file.get_buffer(seal_file.get_length()) + scene_integrity_sha256 = _sha256(seal_bytes) + var seal: Variant = JSON.parse_string(seal_bytes.get_string_from_utf8()) + if not seal is Dictionary or seal.get("schema") != "dvidia.godot-scene-integrity/v1" or not seal.get("files") is Dictionary: + _fail("Scene integrity manifest is invalid.") + return false + var expected := ["scene.json", "geometry.bin", "LICENSE", "licenses/agilex_piper/LICENSE", "licenses/agilex_piper/README.md", "README.md"] + if seal.files.size() != expected.size(): + _fail("Scene integrity inventory differs from the pinned PiPER export.") + return false + var total := 0 + for name in expected: + var record: Variant = seal.files.get(name) + if not record is Dictionary or not record.get("bytes") is float and not record.get("bytes") is int: + _fail("Scene integrity file record is invalid.") + return false + var size := int(record.bytes) + var limit := MAX_FILE if name == "geometry.bin" else (12 * 1024 * 1024 if name == "scene.json" else 65536) + var file := FileAccess.open(scene_dir.path_join(name), FileAccess.READ) + if size < 0 or size > limit or file == null or file.get_length() != size: + _fail("Missing or size-mismatched scene artifact: " + name) + return false + var payload := file.get_buffer(size) + if payload.size() != size or _sha256(payload) != record.get("sha256"): + _fail("Scene artifact checksum mismatch: " + name) + return false + total += size + if total > 96 * 1024 * 1024: + _fail("Scene artifact total exceeds bounds.") + return false + if name in ["scene.json", "geometry.bin"]: + verified_files[name] = payload + var metadata: Variant = JSON.parse_string(verified_files["scene.json"].get_string_from_utf8()) + if not metadata is Dictionary or not metadata.get("bridge") is Dictionary or metadata.bridge.get("model_sha256") != seal.get("model_sha256"): + _fail("Scene model identity differs from its integrity manifest.") + return false + return true + + +func _sha256(bytes: PackedByteArray) -> String: + var hash := HashingContext.new() + hash.start(HashingContext.HASH_SHA256) + hash.update(bytes) + return hash.finish().hex_encode() + + +func _native_mesh(record: Dictionary, bytes: PackedByteArray) -> ArrayMesh: + var count := int(record.vertex_count) + var indices := int(record.index_count) + var vertex_offset := int(record.position_byte_offset) + var index_offset := int(record.index_byte_offset) + if count < 1 or indices < 3 or indices % 3 != 0 or vertex_offset < 0 or index_offset < 0 or vertex_offset + count * 12 > bytes.size() or index_offset + indices * 4 > bytes.size(): + _fail("Native mesh byte range is invalid.") + return null + var points := PackedVector3Array() + points.resize(count) + for index in range(count): + var offset := vertex_offset + index * 12 + var value := [bytes.decode_float(offset), bytes.decode_float(offset + 4), bytes.decode_float(offset + 8)] + if not _valid_vector(value, 3): + _fail("Native mesh coordinate is nonfinite.") + return null + points[index] = native_vector(value) + var triangle_indices := PackedInt32Array() + triangle_indices.resize(indices) + for index in range(0, indices, 3): + # MuJoCo triangle winding is counterclockwise; Godot fronts are clockwise. + for corner in range(3): + var source_corner: int = [0, 2, 1][corner] + var vertex := int(bytes.decode_u32(index_offset + (index + source_corner) * 4)) + if vertex < 0 or vertex >= count: + _fail("Native triangle index is outside the mesh.") + return null + triangle_indices[index + corner] = vertex + var arrays := [] + arrays.resize(Mesh.ARRAY_MAX) + arrays[Mesh.ARRAY_VERTEX] = points + arrays[Mesh.ARRAY_INDEX] = triangle_indices + var mesh := ArrayMesh.new() + mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays) + var surface := SurfaceTool.new() + surface.create_from(mesh, 0) + surface.generate_normals() + return surface.commit() + + +func _add_geom(geom: Dictionary) -> bool: + if not _valid_vector(geom.get("position"), 3) or not _valid_quaternion(geom.get("quaternion_wxyz")) or not _valid_vector(geom.get("size"), 3) or not _valid_vector(geom.get("rgba"), 4): + _fail("Native geometry transform is invalid.") + return false + var body_id := int(geom.get("body_id", -1)) + if body_id < 0 or body_id >= body_nodes.size(): + _fail("Geometry references an unknown body.") + return false + if float(geom.rgba[3]) <= 0.0 or int(geom.group) > 2: + return true + var size: Array = geom.size + var mesh: Mesh + var scale_value := Vector3.ONE + match geom.type: + "mesh": mesh = mesh_cache.get(int(geom.mesh_id)) + "box": + var box := BoxMesh.new() + box.size = Vector3(2 * size[0], 2 * size[2], 2 * size[1]) + mesh = box + "sphere", "ellipsoid": + var sphere := SphereMesh.new() + sphere.radius = 1.0 if geom.type == "ellipsoid" else float(size[0]) + sphere.height = 2 * sphere.radius + if geom.type == "ellipsoid": + scale_value = Vector3(size[0], size[2], size[1]) + mesh = sphere + "capsule": + var capsule := CapsuleMesh.new() + capsule.radius = size[0] + capsule.height = 2 * (size[0] + size[1]) + mesh = capsule + "cylinder": + var cylinder := CylinderMesh.new() + cylinder.top_radius = size[0] + cylinder.bottom_radius = size[0] + cylinder.height = 2 * size[1] + mesh = cylinder + "plane": + var plane := PlaneMesh.new() + plane.size = Vector2(maxf(1, 2 * size[0]), maxf(1, 2 * size[1])) + mesh = plane + if mesh == null: + _fail("Unsupported or missing native geometry: " + str(geom.type)) + return false + var instance := MeshInstance3D.new() + instance.name = str(geom.name) + instance.mesh = mesh + var rgba: Array = geom.rgba + var material := StandardMaterial3D.new() + material.albedo_color = Color(rgba[0], rgba[1], rgba[2], rgba[3]).linear_to_srgb() + material.roughness = 0.7 + material.metallic = 0.12 if geom.type == "mesh" else 0.0 + material.cull_mode = BaseMaterial3D.CULL_DISABLED + if float(rgba[3]) < 1: + material.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA + instance.material_override = material + instance.transform = Transform3D(native_basis(geom.quaternion_wxyz).scaled_local(scale_value), native_vector(geom.position)) + body_nodes[body_id].add_child(instance) + return true + + +func _process(delta: float) -> void: + frame_count += 1 + if finished or not errors.is_empty(): + return + if connected and frame_intervals_ms.size() < 10000: + frame_intervals_ms.append(delta * 1000.0) + peer.poll() + var status := peer.get_status() + if status == StreamPeerTCP.STATUS_CONNECTED: + if not hello_sent: + hello_sent = true + _send({"type": "hello", "schema": SCHEMA, "model_sha256": scene_data.bridge.model_sha256}) + pending_kind = "hello" + var available := peer.get_available_bytes() + if available > 0: + if incoming.size() + available > MAX_PACKET: + _fail("Bridge packet exceeds bounds.") + return + var received := peer.get_data(available) + if received[0] != OK: + _fail("Local bridge read failed.") + return + incoming.append_array(received[1]) + while incoming.find(10) >= 0: + var end := incoming.find(10) + var message: Variant = JSON.parse_string(incoming.slice(0, end).get_string_from_utf8()) + incoming = incoming.slice(end + 1) + if not message is Dictionary: + _fail("Bridge returned invalid JSON.") + return + _receive(message) + if finished or not errors.is_empty(): + return + if connected and not pending: + if reset_requested: + reset_requested = false + _home() + pending_kind = "reset" + _send({"type": "reset", "sequence": sequence}) + elif paused and Time.get_ticks_usec() - last_request_us >= 5000000: + pending_kind = "ping" + _send({"type": "ping"}) + elif not paused and Time.get_ticks_usec() >= next_step_due_us: + if smoke_steps > 0: + _smoke_target() + # Preserve a 50 Hz deadline across render-frame quantization. There + # is never more than one outstanding step, and overdue responses + # discard the deadline rather than creating catch-up commands. + next_step_due_us += 20000 + pending_kind = "step" + _send({"type": "step", "sequence": sequence, "target": target, "jaw": jaw}) + elif status == StreamPeerTCP.STATUS_ERROR or hello_sent: + _fail("MuJoCo disconnected. Simulation stopped.") + return + if (pending and Time.get_ticks_usec() - last_request_us > 10000000) or (not hello_sent and Time.get_ticks_usec() - connected_us > 10000000): + _fail("Local MuJoCo response timed out. Simulation stopped.") + + +func _send(message: Dictionary) -> void: + pending_request = message.duplicate(true) + if peer.put_data((JSON.stringify(message) + "\n").to_utf8_buffer()) != OK: + _fail("Local bridge write failed.") + return + pending = true + last_request_us = Time.get_ticks_usec() + + +func _receive(message: Dictionary) -> void: + var received_us := Time.get_ticks_usec() + if message.get("type") == "error": + _fail("MuJoCo: " + str(message.get("message", "request rejected"))) + return + if pending and pending_kind == "ping" and message.get("type") == "pong" and message.get("model_sha256") == scene_data.bridge.model_sha256 and int(message.get("expected_sequence", -1)) == sequence: + pending = false + pending_kind = "" + return + if not pending or message.get("model_sha256") != scene_data.bridge.model_sha256: + _fail("Unsolicited response or model identity mismatch.") + return + var was_reset := pending_kind == "reset" + if pending_kind == "hello": + if message.get("type") != "ready" or message.get("schema") != SCHEMA or float(message.get("physics_dt", -1)) != float(scene_data.bridge.physics_dt) or float(message.get("control_dt", -1)) != float(scene_data.bridge.control_dt): + _fail("Local MuJoCo handshake differs from the scene.") + return + connected = true + ready_us = received_us + next_step_due_us = received_us + for slider in sliders: + slider.editable = true + else: + if message.get("type") != "state" or int(message.get("sequence", -1)) != sequence: + _fail("Bridge response sequence mismatch.") + return + sequence += 1 + if was_reset: + resets += 1 + else: + replies += 1 + last_compute_ms = float(message.get("compute_ms", 0)) + compute_total_ms += last_compute_ms + if rpc_roundtrip_ms.size() < 10000: + rpc_roundtrip_ms.append((received_us - last_request_us) / 1000.0) + var state: Variant = message.get("state") + if not state is Dictionary or not state.get("body_positions") is Array or not state.get("body_quaternions") is Array or state.body_positions.size() != body_nodes.size() or state.body_quaternions.size() != body_nodes.size(): + _fail("Native body state framing mismatch.") + return + for index in range(body_nodes.size()): + if not _valid_vector(state.body_positions[index], 3) or not _valid_quaternion(state.body_quaternions[index]): + _fail("Native body pose is nonfinite.") + return + body_nodes[index].transform = Transform3D(native_basis(state.body_quaternions[index]), native_vector(state.body_positions[index])) + var new_time := float(state.get("time", -1)) + if not is_finite(new_time) or new_time < 0: + _fail("Native simulation clock is invalid.") + return + if pending_kind == "hello": + initial_sim_time = new_time + initial_state = state.duplicate(true) + elif not was_reset and absf(new_time - state_time - float(scene_data.bridge.control_dt)) > 0.000001: + _fail("Native simulation did not advance exactly one control interval.") + return + state_time = new_time + if was_reset or (pending_kind == "step" and received_us > next_step_due_us): + next_step_due_us = received_us + 20000 + if smoke_steps > 0 and pending_kind != "hello" and smoke_trace.size() < 256: + smoke_trace.append({"request": pending_request.duplicate(true), "state": state.duplicate(true), "compute_ms": last_compute_ms, "rpc_roundtrip_ms": (received_us - last_request_us) / 1000.0}) + pending = false + pending_kind = "" + status_label.text = "Paused · MuJoCo connected" if paused else "Running · MuJoCo connected" + time_label.text = "Simulation %.2f s" % state_time + compute_label.text = "Native step %.2f ms · 20 ms simulated" % last_compute_ms + if smoke_steps > 0 and replies >= smoke_steps: + _finish_smoke() + + +func _slider_changed(value: float, index: int) -> void: + if index < 3: + target[index] = value + else: + jaw = value + value_labels[index].text = "%.0f mm" % (value * 1000) if index < 3 else "%.0f%% open" % (value / 0.035 * 100) + marker.position = native_vector(target) + + +func _set_slider(index: int, value: float) -> void: + sliders[index].set_value_no_signal(value) + _slider_changed(value, index) + + +func _toggle_pause() -> void: + if not connected: + return + paused = not paused + next_step_due_us = Time.get_ticks_usec() + 20000 + pause_button.text = "Resume" if paused else "Pause" + status_label.text = "Pausing after current step…" if paused and pending else ("Paused · MuJoCo connected" if paused else "Running · MuJoCo connected") + + +func _home() -> void: + if not connected: + return + for index in range(3): + _set_slider(index, scene_data.bridge.home_target[index]) + _set_slider(3, scene_data.bridge.gripper_initial) + + +func _reset() -> void: + if not connected: + return + reset_requested = true + status_label.text = "Resetting after current step…" + + +func _smoke_target() -> void: + # Bounded, deterministic movement and jaw changes verify more than a static + # connection. The trace preserves the exact transmitted action for replay. + var fraction := float(replies) / float(smoke_steps) + var offset := [0.0, 0.0, 0.0] + var opening := 0.035 + if fraction >= 0.333 and fraction < 0.666: + offset = [0.02, 0.025, -0.025] + opening = 0.025 + elif fraction >= 0.666: + offset = [0.035, -0.015, 0.01] + opening = 0.01 + for index in range(3): + _set_slider(index, float(scene_data.bridge.home_target[index]) + float(offset[index])) + _set_slider(3, opening) + + +func _unhandled_input(event: InputEvent) -> void: + if event is InputEventMouseButton: + if event.button_index == MOUSE_BUTTON_LEFT: + orbiting = event.pressed + elif event.pressed and event.button_index == MOUSE_BUTTON_WHEEL_UP: + camera_distance = maxf(0.45, camera_distance * 0.9) + elif event.pressed and event.button_index == MOUSE_BUTTON_WHEEL_DOWN: + camera_distance = minf(4.5, camera_distance * 1.1) + _position_camera() + elif event is InputEventMouseMotion and orbiting: + camera_yaw -= event.relative.x * 0.006 + camera_pitch = clampf(camera_pitch + event.relative.y * 0.006, 0.08, 1.35) + _position_camera() + + +func _position_camera() -> void: + if camera == null: + return + camera.position = focus + camera_distance * Vector3(cos(camera_pitch) * sin(camera_yaw), sin(camera_pitch), cos(camera_pitch) * cos(camera_yaw)) + camera.look_at(focus) + # Shift the scene away from the overlaid controls without moving its geometry. + camera.h_offset = 0.17 + + +func _fail(message: String) -> void: + if errors.is_empty() or errors[-1] != message: + errors.append(message) + paused = true + if status_label != null: + status_label.text = message + status_label.add_theme_color_override("font_color", Color("a14d43")) + for slider in sliders: + slider.editable = false + peer.disconnect_from_host() + push_error(message) + if smoke_steps > 0 or not smoke_output.is_empty(): + _finish_smoke() + + +func _finish_smoke() -> void: + if finished: + return + finished = true + completed_us = Time.get_ticks_usec() + peer.disconnect_from_host() + if not screenshot_path.is_empty() and DisplayServer.get_name() != "headless": + await RenderingServer.frame_post_draw + if FileAccess.file_exists(screenshot_path): + errors.append("Existing screenshot was preserved.") + else: + var saved := get_viewport().get_texture().get_image().save_png(screenshot_path) + if saved != OK: + errors.append("Screenshot could not be written.") + var summary := { + "schema": "dvidia.godot-client-smoke/v1", "ok": errors.is_empty(), + "client_script_sha256": FileAccess.get_sha256("res://main.gd"), + "project_sha256": FileAccess.get_sha256("res://project.godot"), + "processor": OS.get_processor_name(), "logical_processors": OS.get_processor_count(), + "expected_model_sha256": scene_data.get("bridge", {}).get("model_sha256", ""), + "scene_integrity_sha256": scene_integrity_sha256, + "step_responses": replies, "reset_responses": resets, "requested_steps": smoke_steps, + "initial_sim_time_seconds": initial_sim_time, "applied_sim_time_seconds": state_time, + "initial_state": initial_state, "trace": smoke_trace, "trace_limit": 256, + "wall_seconds": (Time.get_ticks_usec() - started_us) / 1000000.0, + "interactive_wall_seconds": (completed_us - ready_us) / 1000000.0 if ready_us > 0 else 0.0, + "process_frame_interval_ms": _distribution(frame_intervals_ms), + "rpc_roundtrip_ms": _distribution(rpc_roundtrip_ms), + "timing_scope": "Startup-inclusive wall time; ready-to-completion interactive wall; Godot process delta intervals (not GPU render time); socket request-to-parsed-response latency; native compute excludes IPC and rendering. Samples capped at 10000 per series.", + "native_compute_total_ms": compute_total_ms, "render_process_frames": frame_count, + "physics_authority": "MuJoCo only", "godot": Engine.get_version_info().string, + "errors": errors, + } + if not smoke_output.is_empty(): + if FileAccess.file_exists(smoke_output): + push_error("Existing smoke output was preserved.") + get_tree().quit(1) + return + var output := FileAccess.open(smoke_output, FileAccess.WRITE) + if output == null: + push_error("Cannot write smoke output.") + get_tree().quit(1) + return + output.store_string(JSON.stringify(summary, " ") + "\n") + var compact := summary.duplicate() + compact.erase("initial_state") + compact.erase("trace") + print(JSON.stringify(compact)) + get_tree().quit(0 if errors.is_empty() else 1) + + +func _distribution(values: Array[float]) -> Dictionary: + if values.is_empty(): + return {"samples": 0, "p50": null, "p95": null} + var ordered := values.duplicate() + ordered.sort() + return {"samples": values.size(), "p50": ordered[int(floor((ordered.size() - 1) * 0.5))], "p95": ordered[int(ceil((ordered.size() - 1) * 0.95))]} diff --git a/integrations/godot/main.gd.uid b/integrations/godot/main.gd.uid new file mode 100644 index 0000000..3922a0d --- /dev/null +++ b/integrations/godot/main.gd.uid @@ -0,0 +1 @@ +uid://dq2utwumqlgmb diff --git a/integrations/godot/main.tscn b/integrations/godot/main.tscn new file mode 100644 index 0000000..4e4d6bb --- /dev/null +++ b/integrations/godot/main.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3] + +[ext_resource type="Script" path="res://main.gd" id="1"] + +[node name="DvidiaWorkstation" type="Node3D"] +script = ExtResource("1") diff --git a/integrations/godot/project.godot b/integrations/godot/project.godot new file mode 100644 index 0000000..19e7c79 --- /dev/null +++ b/integrations/godot/project.godot @@ -0,0 +1,22 @@ +; DVIDIA Godot workstation. Rendering and interface only; MuJoCo owns physics. +config_version=5 + +[application] +config/name="DVIDIA · Manipulation lab" +run/main_scene="res://main.tscn" + +[display] +window/size/viewport_width=1280 +window/size/viewport_height=800 +window/size/window_width_override=1280 +window/size/window_height_override=800 +window/stretch/mode="canvas_items" + +[rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" +textures/default_filters/use_nearest_mipmap_filter=false +environment/defaults/default_clear_color=Color(0.94, 0.94, 0.90, 1) + +[physics] +common/physics_ticks_per_second=50 diff --git a/integrations/godot/tests/test_coordinates.gd b/integrations/godot/tests/test_coordinates.gd new file mode 100644 index 0000000..1e3d878 --- /dev/null +++ b/integrations/godot/tests/test_coordinates.gd @@ -0,0 +1,31 @@ +extends SceneTree +## Run: godot --headless --path integrations/godot --script tests/test_coordinates.gd + +const Workstation = preload("res://main.gd") + + +func _init() -> void: + var checks := 0 + for pair in [ + [[1, 0, 0], Vector3.RIGHT], [[0, 1, 0], Vector3(0, 0, -1)], + [[0, 0, 1], Vector3.UP], [[0.3, -0.2, 0.7], Vector3(0.3, 0.7, 0.2)], + ]: + assert(Workstation.native_vector(pair[0]).is_equal_approx(pair[1])) + checks += 1 + var converted := Workstation.native_basis([cos(PI / 4), 0, 0, sin(PI / 4)]) + assert((converted * Vector3.RIGHT).is_equal_approx(Vector3(0, 0, -1))) + assert(is_equal_approx(converted.determinant(), 1.0)) + checks += 2 + # body(R * local + p) must equal C*body(R*local+p), with no double axis + # conversion and no parent-body transformation of an already-world pose. + var native_rotation := Basis(Quaternion(Vector3(0.3, 0.7, -0.2).normalized(), 0.81)) + var q := native_rotation.get_rotation_quaternion() + var mapped_rotation := Workstation.native_basis([q.w, q.x, q.y, q.z]) + var local := Vector3(0.12, -0.03, 0.08) + var position := Vector3(0.26, -0.14, 0.22) + var native_result := native_rotation * local + position + var godot_result := mapped_rotation * Workstation.native_vector([local.x, local.y, local.z]) + Workstation.native_vector([position.x, position.y, position.z]) + assert(godot_result.distance_to(Workstation.native_vector([native_result.x, native_result.y, native_result.z])) < 0.000001) + checks += 1 + print(JSON.stringify({"schema": "dvidia.godot-coordinates-test/v1", "passed": checks})) + quit(0) diff --git a/scripts/benchmark-godot-bridge.py b/scripts/benchmark-godot-bridge.py new file mode 100644 index 0000000..1a60394 --- /dev/null +++ b/scripts/benchmark-godot-bridge.py @@ -0,0 +1,123 @@ +"""Compare the unchanged workstation with the local JSON bridge, without a viewer. + +Fixed workload: three paired repetitions of the six authored tracking segments. +This tests integration parity and CPU request overhead, not a learned task, +physical fidelity, socket round-trip latency, or desktop rendering performance. +""" +from __future__ import annotations + +import argparse +from hashlib import sha256 +import json +from pathlib import Path +import platform +import resource +import sys +import time + +import numpy as np + +from dvidia_training import godot_bridge as bridge, reference_sim as sim, workstation as ws + + +def encoded(value): + return json.dumps(value, sort_keys=True, separators=(",", ":"), allow_nan=False).encode() + + +def timing(values): + return {"p50_ms": float(np.median(values)), "p95_ms": float(np.percentile(values, 95)), + "maximum_ms": float(max(values))} + + +def run(assets, output): + output = Path(output) + if output.exists() or output.is_symlink(): + raise ValueError("Benchmark output must be fresh") + start = time.perf_counter() + model = ws.build_model(assets) + model_sha = sim.model_digest(model) + compile_seconds = time.perf_counter() - start + mj, _ = sim._native_imports() + protocol = ws.protocol() + results, all_equal = [], True + for repeat in range(3): + traces = {} + for mode in (("direct", "json_bridge") if repeat % 2 == 0 else ("json_bridge", "direct")): + reset_start = time.perf_counter() + if mode == "direct": + data, controller = ws.initialize(model), {} + else: + session = bridge.Session(model, model_sha) + ready = session.process(encoded({"type": "hello", "schema": bridge.SCHEMA, + "model_sha256": model_sha})) + if ready["type"] != "ready": + raise AssertionError(ready) + data = session.data + reset_seconds = time.perf_counter() - reset_start + durations, trace, segment_errors = [], [], [] + sequence = 0 + wall = time.perf_counter() + for action in protocol["actions"]: + for _ in range(action["control_steps"]): + sequence += 1 + begin = time.perf_counter_ns() + if mode == "direct": + state = ws.run_control(model, data, controller, action["target"], action["jaw"], 10) + else: + response = session.process(encoded({"type": "step", "sequence": sequence, + "target": action["target"], "jaw": action["jaw"]})) + response = json.loads(encoded(response)) + if response["type"] != "state" or response["sequence"] != sequence: + raise AssertionError(response) + state = response["state"] + durations.append((time.perf_counter_ns() - begin) / 1e6) + trace.append(state) + segment_errors.append({"segment": action["name"], "position_error_m": state["position_error_m"]}) + seconds = time.perf_counter() - wall + if any(w.number for w in data.warning) or abs(data.time - 12.) > 1e-9: + raise AssertionError("Native warnings or clock drift") + traces[mode] = trace + results.append({"repeat": repeat, "mode": mode, "intervals": sequence, + "native_ticks": sequence * 10, "simulation_seconds": float(data.time), + "wall_seconds_including_trace_collection": seconds, + "real_time_factor": float(data.time) / seconds, + "initialize_seconds_excluded_from_loop": reset_seconds, + "request_timing": timing(durations), "solver_warnings": 0, + "trace_sha256": sha256(encoded(trace)).hexdigest(), + "segment_final_errors": segment_errors}) + exact = traces["direct"] == traces["json_bridge"] + all_equal = all_equal and exact + results[-1]["paired_full_state_exactly_equal"] = exact + if sim.model_digest(model) != model_sha: + raise AssertionError("Compiled model changed during benchmark") + source = Path(bridge.__file__).parent + peak_rss = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss + report = {"schema": "dvidia.godot-bridge-benchmark/v1", "scope": __doc__.strip(), + "protocol": protocol, "compiled_model_sha256": model_sha, + "source_sha256": {name: sha256((source / name).read_bytes()).hexdigest() + for name in ("godot_bridge.py", "workstation.py", "reference_sim.py")}, + "benchmark_sha256": sha256(Path(__file__).read_bytes()).hexdigest(), + "host": {"platform": platform.platform(), "machine": platform.machine(), + "python": platform.python_version(), "numpy": np.__version__, "mujoco": mj.__version__, + "whole_process_peak_rss_bytes": int(peak_rss if sys.platform == "darwin" else peak_rss * 1024)}, + "compile_seconds": compile_seconds, "runs": results, + "paired_state_comparisons": 1800, "total_native_ticks": 36000, + "all_paired_states_exactly_equal": all_equal, "physical_accuracy_validated": False, + "learned_skill_evaluated": False, "rendering_evaluated": False, + "socket_latency_evaluated": False, "physical_robot_ready": False} + output.parent.mkdir(parents=True, exist_ok=True) + with output.open("x") as stream: + json.dump(report, stream, indent=2, allow_nan=False) + stream.write("\n") + print(json.dumps({"output": str(output), "parity": all_equal, "native_ticks": 36000, + "real_time_factors": [round(row["real_time_factor"], 2) for row in results]})) + if not all_equal: + raise SystemExit(1) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--assets", required=True) + parser.add_argument("--output", required=True) + args = parser.parse_args() + run(args.assets, args.output) diff --git a/scripts/verify-godot-client.py b/scripts/verify-godot-client.py new file mode 100644 index 0000000..8d6294c --- /dev/null +++ b/scripts/verify-godot-client.py @@ -0,0 +1,95 @@ +"""Independently replay a complete Godot smoke trace in the native workstation. + +This checks received-state parity, not whether pixels or physical hardware are +accurate. Godot JSON output rounds doubles, so numerical tolerance is explicit. +""" +from __future__ import annotations + +import argparse +from hashlib import sha256 +import json +import math +from pathlib import Path + +from dvidia_training import reference_sim as sim, workstation as ws + + +TOLERANCE = 1e-9 + + +def run(assets, receipt, output): + receipt, output = Path(receipt), Path(output) + if output.exists() or output.is_symlink(): + raise ValueError("Verification output must be fresh") + if receipt.stat().st_size > 8 * 1024 * 1024: + raise ValueError("Smoke receipt exceeds bound") + raw = receipt.read_bytes() + result = json.loads(raw) + if (result.get("schema") != "dvidia.godot-client-smoke/v1" or result.get("ok") is not True + or result.get("errors") or not 1 <= result.get("step_responses", 0) <= 256 + or result.get("step_responses") != len(result.get("trace", [])) + or result.get("requested_steps") != result["step_responses"] + or result.get("reset_responses") != 0): + raise ValueError("Require a complete successful smoke receipt with no reset") + model = ws.build_model(assets) + if sim.model_digest(model) != result["expected_model_sha256"]: + raise ValueError("Native model mismatch") + data, control = ws.initialize(model), {} + errors = {} + scalars = 0 + + def compare(actual, reference, path): + nonlocal scalars + if type(reference) in (int, float): + if type(actual) not in (int, float) or not math.isfinite(actual): + raise AssertionError("Nonfinite/invalid numeric value: " + path) + error = abs(actual - reference) + errors[path.split(".")[0]] = max(errors.get(path.split(".")[0], 0.), error) + scalars += 1 + if error > TOLERANCE: + raise AssertionError(f"{path}: {error} exceeds tolerance") + elif isinstance(reference, dict): + if type(actual) is not dict or set(actual) != set(reference): + raise AssertionError("State fields differ at " + path) + for key in reference: + compare(actual[key], reference[key], path + "." + key if path else key) + elif isinstance(reference, list): + if type(actual) is not list or len(actual) != len(reference): + raise AssertionError("State shape differs at " + path) + for a, b in zip(actual, reference): + compare(a, b, path) + elif actual != reference: + raise AssertionError("State value differs at " + path) + + compare(result["initial_state"], ws.state(model, data, ws.HOME_TARGET), "") + for index, row in enumerate(result["trace"]): + command = row["request"] + if set(command) != {"type", "sequence", "target", "jaw"} or command["type"] != "step" or command["sequence"] != index + 1: + raise ValueError("Trace contains incomplete or reordered commands") + reference = ws.run_control(model, data, control, command["target"], command["jaw"], 10) + compare(row["state"], reference, "") + if abs(result["applied_sim_time_seconds"] - data.time) > TOLERANCE: + raise AssertionError("Final clock mismatch") + report = {"schema": "dvidia.godot-client-parity/v1", "passed": True, + "scope": __doc__.strip(), "receipt_sha256": sha256(raw).hexdigest(), + "verifier_sha256": sha256(Path(__file__).read_bytes()).hexdigest(), + "workstation_sha256": sha256(Path(ws.__file__).read_bytes()).hexdigest(), + "model_sha256": result["expected_model_sha256"], "tolerance_absolute": TOLERANCE, + "received_states_checked": len(result["trace"]) + 1, + "numeric_scalars_checked": scalars, "maximum_absolute_error_by_field": errors, + "native_ticks_replayed": len(result["trace"]) * 10, + "physical_accuracy_validated": False, "pixels_validated": False} + with output.open("x") as stream: + json.dump(report, stream, indent=2, allow_nan=False) + stream.write("\n") + print(json.dumps({"passed": True, "states": report["received_states_checked"], + "scalars": scalars, "maximum_absolute_error": max(errors.values())})) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--assets", required=True) + parser.add_argument("--receipt", required=True) + parser.add_argument("--output", required=True) + args = parser.parse_args() + run(args.assets, args.receipt, args.output) diff --git a/src/dvidia_training/godot_bridge.py b/src/dvidia_training/godot_bridge.py new file mode 100644 index 0000000..48549a0 --- /dev/null +++ b/src/dvidia_training/godot_bridge.py @@ -0,0 +1,290 @@ +"""Local desktop rendering bridge; MuJoCo alone advances the pinned workstation. + +This is an authored target-tracking research interface, not a learned policy or +a hardware interface. Requests advance a fixed amount of simulation time; wall +clock delays, rendering frames and disconnected clients never advance physics. +""" +from __future__ import annotations + +import argparse +from hashlib import sha256 +import json +import math +from pathlib import Path +import re +import socket +import time + +from . import asset_preview, reference_replay, reference_sim, workstation + +SCHEMA = "dvidia.godot-bridge/v1" +INTEGRITY_SCHEMA = "dvidia.godot-scene-integrity/v1" +HOST = "127.0.0.1" +DEFAULT_PORT = 8430 +MAX_REQUEST_BYTES = 16 * 1024 +IDLE_TIMEOUT_SECONDS = 30. +MAX_SEQUENCE = 2**53 - 1 +SUBSTEPS = 10 +SCOPE = ("Desktop Godot rendering of the pinned native PiPER workstation. " + "MuJoCo alone advances 10 x 2 ms physics ticks per accepted step. " + "Authored IK and synthetic rigid shoe; no learned policy, calibrated " + "contact, deformation, hardware control or real-time qualification.") +TIMING_SCOPE = "Offline request computation only; excludes network, rendering and client scheduling." + + +class ProtocolError(ValueError): + def __init__(self, message, code="invalid_request"): + super().__init__(message) + self.code = code + + +def _json(value): + return (json.dumps(value, separators=(",", ":"), allow_nan=False) + "\n").encode("utf-8") + + +def decode_request(payload): + """Accept one bounded, finite, unique-key UTF-8 JSON object.""" + if type(payload) is not bytes or not 0 < len(payload) <= MAX_REQUEST_BYTES: + raise ProtocolError("Request must contain 1 to 16384 bytes", "request_size") + + def unique(pairs): + result = {} + for key, value in pairs: + if key in result: + raise ValueError("Duplicate key") + result[key] = value + return result + + def nonfinite(_): + raise ValueError("Nonfinite value") + + try: + value = json.loads(payload.decode("utf-8"), object_pairs_hook=unique, parse_constant=nonfinite) + json.dumps(value, allow_nan=False) + except (ValueError, UnicodeError, RecursionError, OverflowError) as exc: + raise ProtocolError("Request requires finite UTF-8 JSON with unique keys", "invalid_json") from exc + if type(value) is not dict: + raise ProtocolError("Request must be a JSON object") + return value + + +def _fields(request, fields): + if set(request) != set(fields): + raise ProtocolError("Request fields do not match the command schema") + + +def _number(value, low, high, label): + if type(value) not in (int, float) or not low <= value <= high or not math.isfinite(value): + raise ProtocolError(label + " must be a bounded finite number") + return float(value) + + +class Session: + """One client, one initialized scene, strict command authority and sequence. + + ``backend`` is injectable for transport-only tests. Production always uses + the unchanged workstation module. Invalid inputs are checked before any + dynamics; a native failure faults the session because it may have partly + advanced a control interval. + """ + + def __init__(self, model, model_sha256, *, backend=workstation): + if type(model_sha256) is not str or not re.fullmatch(r"[0-9a-f]{64}", model_sha256): + raise ValueError("Expected native model SHA256 digest") + self.model, self.model_sha256, self.backend = model, model_sha256, backend + self.data = backend.initialize(model) + self.controller_state = {} + self.target = list(workstation.HOME_TARGET) + self.jaw = .035 + self.expected_sequence = 1 + self.ready = False + self.faulted = False + + def error(self, exc): + return {"type": "error", "code": exc.code, "message": str(exc), + "expected_sequence": self.expected_sequence} + + def process(self, payload): + try: + return self.handle(decode_request(payload)) + except ProtocolError as exc: + return self.error(exc) + + def handle(self, request): + if type(request) is not dict: + raise ProtocolError("Request must be a JSON object") + if self.faulted: + raise ProtocolError("Native simulation faulted; reconnect to initialize a new scene", "simulation_fault") + kind = request.get("type") + if not self.ready: + _fields(request, ("type", "schema", "model_sha256")) + if kind != "hello" or request["schema"] != SCHEMA: + raise ProtocolError("A matching bridge hello is required before commands", "handshake_required") + if request["model_sha256"] != self.model_sha256: + raise ProtocolError("Prepared scene and running native model differ", "model_mismatch") + self.ready = True + return {"type": "ready", "schema": SCHEMA, "model_sha256": self.model_sha256, + "state": self.backend.state(self.model, self.data, self.target), + "physics_dt": workstation.TIMESTEP, "control_dt": workstation.CONTROL_DT, + "scope": SCOPE, "timing_scope": TIMING_SCOPE} + if kind == "ping": + _fields(request, ("type",)) + return {"type": "pong", "model_sha256": self.model_sha256, + "expected_sequence": self.expected_sequence} + if kind not in ("step", "reset"): + raise ProtocolError("Only step, reset and ping are supported after hello") + _fields(request, ("type", "sequence", "target", "jaw") if kind == "step" else ("type", "sequence")) + sequence = request["sequence"] + if type(sequence) is not int or not 1 <= sequence <= MAX_SEQUENCE or sequence != self.expected_sequence: + raise ProtocolError("Sequence must equal the next accepted command number", "sequence_mismatch") + if kind == "step": + target = request["target"] + if type(target) is not list or len(target) != 3: + raise ProtocolError("Target requires three coordinates") + target = [_number(value, *bounds, "Target") for value, bounds in zip(target, workstation.BOUNDS)] + jaw = _number(request["jaw"], 0., .035, "Jaw") + else: + target, jaw = list(workstation.HOME_TARGET), .035 + started = time.perf_counter() + try: + if kind == "step": + state = self.backend.run_control(self.model, self.data, self.controller_state, target, jaw, SUBSTEPS) + else: + self.data = self.backend.initialize(self.model) + self.controller_state = {} + state = self.backend.state(self.model, self.data, target) + except Exception as exc: + self.faulted = True + raise ProtocolError("Native simulation failed; this interval may have partially advanced. Reconnect to reset.", + "simulation_fault") from exc + compute_ms = (time.perf_counter() - started) * 1000 + self.target, self.jaw = target, jaw + self.expected_sequence += 1 + return {"type": "state", "sequence": sequence, "model_sha256": self.model_sha256, + "state": state, "compute_ms": compute_ms, "timing_scope": TIMING_SCOPE} + + +def handle_connection(connection, session): + """Read bounded newline frames; a disconnect discards any unissued prefix.""" + buffer = bytearray() + try: + while True: + # At most one request plus a small receive chunk is held at a time. + chunk = connection.recv(min(4096, MAX_REQUEST_BYTES + 1 - len(buffer))) + if not chunk: + return + buffer.extend(chunk) + while b"\n" in buffer: + line, _, rest = buffer.partition(b"\n") + buffer = bytearray(rest) + response = session.process(bytes(line)) + connection.sendall(_json(response)) + if session.faulted: + return + if len(buffer) > MAX_REQUEST_BYTES: + connection.sendall(_json(session.error(ProtocolError("Request exceeds 16384 bytes", "request_size")))) + return + except (ConnectionError, OSError): + # No timer or free-running stepping thread exists after a client leaves. + return + + +def prepare(assets, output): + """Export a fresh local renderer scene without running physics.""" + destination = Path(output) + if destination.exists() or destination.is_symlink(): + raise ValueError("Godot scene output must be a fresh directory") + if any(parent.is_symlink() for parent in destination.absolute().parents): + raise ValueError("Godot scene output cannot traverse a symlink") + provenance, notices = asset_preview._licenses("piper", assets) + model = workstation.build_model(assets) + digest = reference_sim.model_digest(model) + mj, _ = reference_sim._native_imports() + source = {"robot": "piper", "assets": provenance, "mujoco": mj.__version__, + "compiled_model_sha256": digest} + scene, geometry = asset_preview._scene(model, source) + if reference_sim.model_digest(model) != digest: + raise ValueError("Geometry export changed the native model") + scene["scope"] = SCOPE + scene["bridge"] = {"schema": SCHEMA, "model_sha256": digest, + "home_target": list(workstation.HOME_TARGET), + "bounds": [list(pair) for pair in workstation.BOUNDS], + "gripper_initial": .035, "physics_dt": workstation.TIMESTEP, + "control_dt": workstation.CONTROL_DT, "scope": SCOPE} + scene["geometry_binary"] = {"href": "geometry.bin", "compression": "none", "bytes": len(geometry), + "sha256": sha256(geometry).hexdigest()} + files = {"scene.json": _json(scene), "geometry.bin": geometry, + "LICENSE": reference_replay.MIT_LICENSE.encode(), **notices} + files["README.md"] = ("# DVIDIA Godot workstation scene\n\n" + SCOPE + "\n\n" + "Prepared geometry only: no physics ticks or benchmark have run. Native positions are metres " + "in Z-up coordinates; quaternions are wxyz. Binary positions are little-endian Float32 and " + "indices are little-endian UInt32. The Godot renderer maps [x,y,z] to [x,z,-y]. " + "Run the bridge separately against the same pinned local robot assets. The hello digest " + "must match this compiled model. Upstream robot notices are retained under licenses/. " + "DVIDIA code and synthetic shoes use MIT; MuJoCo is an external Apache-2.0 runtime. " + "Hashes establish artifact consistency, not authenticity or physical qualification.\n").encode() + seal = {"schema": INTEGRITY_SCHEMA, "model_sha256": digest, + "scope": "Artifact consistency only; not authenticity or physical qualification", + "files": {name: {"bytes": len(value), "sha256": sha256(value).hexdigest()} + for name, value in files.items()}} + files["scene-integrity.json"] = _json(seal) + if any(len(value) > asset_preview.MAX_FILE_BYTES for value in files.values()) or sum(map(len, files.values())) > asset_preview.MAX_TOTAL_BYTES: + raise ValueError("Godot scene exceeds the bounded export size") + destination.mkdir(parents=True, exist_ok=False) + for name, value in files.items(): + path = destination / name + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("xb") as stream: + stream.write(value) + return {"schema": SCHEMA, "output": str(destination), "model_sha256": digest, + "file_count": len(files), "bytes": sum(map(len, files.values())), + "physics_steps": 0, "scope": SCOPE} + + +def serve(assets, port=DEFAULT_PORT, *, once=False): + """Serve one local TCP client at a time, with a new scene per connection.""" + if type(port) is not int or not 1 <= port <= 65535: + raise ValueError("Port must be an integer in [1,65535]") + model = workstation.build_model(assets) + digest = reference_sim.model_digest(model) + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as listener: + listener.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + listener.bind((HOST, port)) + listener.listen(1) + print(json.dumps({"schema": SCHEMA, "status": "listening", "host": HOST, "port": port, + "model_sha256": digest, "scope": SCOPE}), flush=True) + while True: + connection, _ = listener.accept() + with connection: + connection.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + connection.settimeout(IDLE_TIMEOUT_SECONDS) + handle_connection(connection, Session(model, digest)) + if once: + return + + +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__) + sub = parser.add_subparsers(dest="command", required=True) + export = sub.add_parser("prepare", help="Export a fresh local Godot scene without physics steps") + export.add_argument("--assets", required=True, type=Path) + export.add_argument("--output", required=True, type=Path) + server = sub.add_parser("serve", help="Serve fixed-step MuJoCo physics to one loopback client") + server.add_argument("--assets", required=True, type=Path) + server.add_argument("--port", type=int, default=DEFAULT_PORT) + server.add_argument("--once", action="store_true", help="Exit after the first client disconnects") + args = parser.parse_args(argv) + try: + if args.command == "prepare": + print(json.dumps(prepare(args.assets, args.output), indent=2)) + else: + serve(args.assets, args.port, once=args.once) + except KeyboardInterrupt: + return 0 + except (ValueError, OSError, RuntimeError) as exc: + parser.exit(2, str(exc) + "\n") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/test_godot_bridge.py b/tests/test_godot_bridge.py new file mode 100644 index 0000000..ac5c0c0 --- /dev/null +++ b/tests/test_godot_bridge.py @@ -0,0 +1,270 @@ +"""Transport and authority checks; fake backend tests never assert physical accuracy.""" +from copy import deepcopy +from hashlib import sha256 +import json +from pathlib import Path +import socket +import tempfile +import threading +from types import SimpleNamespace +import unittest +from unittest.mock import MagicMock, patch + +from dvidia_training import godot_bridge as bridge + + +DIGEST = "a" * 64 + + +class FakeBackend: + def __init__(self): + self.actions = [] + self.resets = 0 + + def initialize(self, model): + self.resets += 1 + return {"time": 0., "qpos": [0.] * 15} + + def state(self, model, data, target=None): + return deepcopy(data) + + def run_control(self, model, data, controller_state, target, jaw, substeps): + self.actions.append((id(controller_state), deepcopy(target), jaw, substeps)) + controller_state["native_steps"] = controller_state.get("native_steps", 0) + substeps + data["time"] = controller_state["native_steps"] * .002 + data["qpos"][0] += .001 + return self.state(model, data, target) + + +def hello(): + return {"type": "hello", "schema": bridge.SCHEMA, "model_sha256": DIGEST} + + +def step(sequence=1): + return {"type": "step", "sequence": sequence, "target": [.32, -.145, .18], "jaw": .035} + + +class ProtocolTests(unittest.TestCase): + def setUp(self): + self.backend = FakeBackend() + self.session = bridge.Session(object(), DIGEST, backend=self.backend) + + def request(self, value): + return self.session.process(json.dumps(value).encode()) + + def test_hello_requires_matching_schema_and_model_and_never_steps(self): + for value in (step(), {**hello(), "schema": "other"}, {**hello(), "model_sha256": "b" * 64}, + {**hello(), "render_fps": 60}): + self.assertEqual(self.request(value)["type"], "error") + self.assertFalse(self.session.ready) + reply = self.request(hello()) + self.assertEqual(reply["type"], "ready") + self.assertEqual(reply["state"]["time"], 0.) + self.assertEqual(reply["model_sha256"], DIGEST) + self.assertEqual(self.backend.actions, []) + + def test_each_step_is_exactly_ten_ticks_using_persistent_controller_state(self): + self.request(hello()) + first, second = self.request(step()), self.request(step(2)) + self.assertEqual(first["state"]["time"], .02) + self.assertEqual(second["state"]["time"], .04) + self.assertEqual(self.session.controller_state["native_steps"], 20) + self.assertEqual([row[3] for row in self.backend.actions], [10, 10]) + self.assertEqual(self.backend.actions[0][0], self.backend.actions[1][0]) + self.assertEqual(second["sequence"], 2) + self.assertGreaterEqual(second["compute_ms"], 0.) + self.assertIn("excludes network", second["timing_scope"]) + + def test_bad_target_jaw_sequence_or_unknown_control_is_rejected_before_ticks(self): + self.request(hello()) + requests = [{**step(), "target": value} for value in + (None, [True, 0, .2], [.6, 0, .2], [.3, -.25, .2], [.3, 0, .01], [.3, 0], + [10**1000, 0, .2], [float("nan"), 0, .2], [.3, 0, float("inf")])] + requests += [{**step(), "jaw": value} for value in (None, True, -.001, .036, float("nan"), 10**1000)] + requests += [{**step(), "sequence": value} for value in (None, True, 0, -1, 2, 1., 2**53)] + requests += [{**step(), "substeps": 100}, {**step(), "impulse": [0, 0, .1]}, + {**step(), "render_fps": 144}, {"type": "teleport", "qpos": [0] * 15}, + {"type": "camera", "position": [1, 2, 3]}, {"type": "hello", "schema": bridge.SCHEMA}] + for value in requests: + with self.subTest(value=value): + self.assertEqual(self.request(value)["type"], "error") + self.assertEqual(self.session.expected_sequence, 1) + self.assertEqual(self.session.data["time"], 0.) + self.assertEqual(self.backend.actions, []) + self.assertEqual(self.request(step())["type"], "state") + + def test_duplicate_and_skipped_sequences_do_not_replay_commands(self): + self.request(hello()) + self.request(step()) + for sequence in (1, 3): + self.assertEqual(self.request(step(sequence))["code"], "sequence_mismatch") + self.assertEqual(self.session.data["time"], .02) + self.assertEqual(len(self.backend.actions), 1) + self.assertEqual(self.request(step(2))["state"]["time"], .04) + + def test_reset_reinitializes_without_ticks_and_sequence_remains_monotonic(self): + self.request(hello()) + self.request(step()) + reset = self.request({"type": "reset", "sequence": 2}) + self.assertEqual(reset["state"]["time"], 0.) + self.assertEqual(self.session.controller_state, {}) + self.assertEqual(self.backend.resets, 2) + self.assertEqual(len(self.backend.actions), 1) + self.assertEqual(self.request(step(3))["state"]["time"], .02) + + def test_ping_has_no_control_authority(self): + self.request(hello()) + for _ in range(20): + self.assertEqual(self.request({"type": "ping"})["type"], "pong") + self.assertEqual(self.backend.actions, []) + self.assertEqual(self.session.expected_sequence, 1) + + def test_invalid_json_and_duplicate_keys_are_rejected(self): + self.request(hello()) + for value in (b"", b"{", b"[]", b"null", b"\xff", b'{"type":"ping","type":"step"}', + b'{"type":"step","sequence":1,"target":[0.3,0,1e400],"jaw":0}', + b" " * (bridge.MAX_REQUEST_BYTES + 1), b"[" * 1200): + with self.subTest(value=value[:60]): + self.assertEqual(self.session.process(value)["type"], "error") + self.assertEqual(self.backend.actions, []) + self.assertEqual(self.session.expected_sequence, 1) + + def test_native_exception_faults_session_and_does_not_claim_rejected_before_dynamics(self): + self.request(hello()) + + def broken(*args): + self.session.data["time"] = .006 + raise RuntimeError("solver failure") + + self.backend.run_control = broken + response = self.request(step()) + self.assertEqual(response["code"], "simulation_fault") + self.assertIn("partially advanced", response["message"]) + self.assertTrue(self.session.faulted) + self.assertEqual(self.request({"type": "reset", "sequence": 1})["code"], "simulation_fault") + self.assertEqual(self.session.data["time"], .006) + + +class SocketTests(unittest.TestCase): + def setUp(self): + self.backend = FakeBackend() + self.session = bridge.Session(object(), DIGEST, backend=self.backend) + self.server, self.client = socket.socketpair() + self.client.settimeout(2) + self.thread = threading.Thread(target=bridge.handle_connection, args=(self.server, self.session), daemon=True) + self.thread.start() + self.reader = self.client.makefile("rb") + + def tearDown(self): + self.reader.close() + self.client.close() + self.server.close() + self.thread.join(timeout=2) + self.assertFalse(self.thread.is_alive()) + + def read(self): + return json.loads(self.reader.readline()) + + def test_chunked_and_combined_frames_preserve_one_command_one_interval(self): + wire = bridge._json(hello()) + for piece in (wire[:2], wire[2:17], wire[17:]): + self.client.sendall(piece) + self.assertEqual(self.read()["type"], "ready") + self.client.sendall(bridge._json(step()) + bridge._json(step(2))) + self.assertEqual(self.read()["state"]["time"], .02) + self.assertEqual(self.read()["state"]["time"], .04) + self.assertEqual(len(self.backend.actions), 2) + + def test_incomplete_command_disconnected_before_newline_never_ticks(self): + self.client.sendall(bridge._json(hello())) + self.read() + self.client.sendall(bridge._json(step())[:-1]) + self.client.shutdown(socket.SHUT_WR) + self.thread.join(timeout=2) + self.assertFalse(self.thread.is_alive()) + self.assertEqual(self.backend.actions, []) + + def test_oversize_frame_is_bounded_and_closes_without_ticks(self): + self.client.sendall(b"x" * (bridge.MAX_REQUEST_BYTES + 1)) + self.assertEqual(self.read()["code"], "request_size") + self.thread.join(timeout=2) + self.assertFalse(self.thread.is_alive()) + self.assertEqual(self.backend.actions, []) + + def test_malformed_line_can_be_followed_by_valid_handshake(self): + self.client.sendall(b"{\n" + bridge._json(hello())) + self.assertEqual(self.read()["code"], "invalid_json") + self.assertEqual(self.read()["type"], "ready") + self.assertEqual(self.backend.actions, []) + + +class ExportTests(unittest.TestCase): + def test_prepare_exports_geometry_hash_and_notices_without_initialize_or_dynamics(self): + fake_model = object() + geometry = b"little endian geometry fixture" + with tempfile.TemporaryDirectory() as tmp: + destination = Path(tmp).resolve() / "scene" + with patch.object(bridge.asset_preview, "_licenses", return_value=({"commit": "pinned"}, {"licenses/piper/LICENSE": b"upstream"})), \ + patch.object(bridge.workstation, "build_model", return_value=fake_model), \ + patch.object(bridge.reference_sim, "model_digest", return_value=DIGEST), \ + patch.object(bridge.reference_sim, "_native_imports", return_value=(SimpleNamespace(__version__="fixture"), None)), \ + patch.object(bridge.asset_preview, "_scene", return_value=({"geoms": [], "bodies": [], "meshes": []}, geometry)), \ + patch.object(bridge.workstation, "initialize") as initialize, \ + patch.object(bridge.workstation, "run_control") as dynamics: + result = bridge.prepare(Path(tmp) / "assets", destination) + self.assertEqual(result["physics_steps"], 0) + initialize.assert_not_called() + dynamics.assert_not_called() + scene = json.loads((destination / "scene.json").read_text()) + self.assertEqual(scene["bridge"]["model_sha256"], DIGEST) + self.assertEqual(scene["bridge"]["physics_dt"], .002) + self.assertEqual(scene["bridge"]["control_dt"], .02) + self.assertEqual(scene["geometry_binary"]["sha256"], sha256(geometry).hexdigest()) + self.assertEqual((destination / "geometry.bin").read_bytes(), geometry) + self.assertEqual((destination / "licenses/piper/LICENSE").read_bytes(), b"upstream") + seal = json.loads((destination / "scene-integrity.json").read_text()) + for name, record in seal["files"].items(): + payload = (destination / name).read_bytes() + self.assertEqual(len(payload), record["bytes"]) + self.assertEqual(sha256(payload).hexdigest(), record["sha256"]) + with self.assertRaisesRegex(ValueError, "fresh directory"): + bridge.prepare("unused", destination) + + def test_output_refuses_symlink_ancestor_and_existing_directory_before_native_access(self): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp).resolve() + (root / "existing").mkdir() + (root / "linked").symlink_to(root / "existing", target_is_directory=True) + with patch.object(bridge.workstation, "build_model") as build: + for path in (root / "existing", root / "linked", root / "linked/child"): + with self.subTest(path=path), self.assertRaises(ValueError): + bridge.prepare("unused", path) + build.assert_not_called() + + def test_server_port_validation_and_fixed_loopback_host(self): + self.assertEqual(bridge.HOST, "127.0.0.1") + for port in (0, -1, 65536, True, "8430"): + with self.assertRaises(ValueError): + bridge.serve("unused", port) + + def test_server_binds_loopback_sets_idle_timeout_and_once_exits(self): + listener, connection = MagicMock(), MagicMock() + listener.__enter__.return_value = listener + connection.__enter__.return_value = connection + listener.accept.return_value = (connection, ("127.0.0.1", 1234)) + connection.recv.return_value = b"" + backend = FakeBackend() + session = bridge.Session(object(), DIGEST, backend=backend) + with patch.object(bridge.socket, "socket", return_value=listener), \ + patch.object(bridge.workstation, "build_model"), \ + patch.object(bridge.reference_sim, "model_digest", return_value=DIGEST), \ + patch.object(bridge, "Session", return_value=session), patch("builtins.print"): + bridge.serve("unused", 8431, once=True) + listener.bind.assert_called_once_with(("127.0.0.1", 8431)) + connection.settimeout.assert_called_once_with(30.) + listener.accept.assert_called_once() + self.assertEqual(backend.actions, []) + + +if __name__ == "__main__": + unittest.main()