diff --git a/README.md b/README.md index b174f6e..c3f71c4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,11 @@ # arm-lab +[![Main CI](https://github.com/Dylan-Gallagher/arm-lab/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Dylan-Gallagher/arm-lab/actions/workflows/ci.yml?query=branch%3Amain) + A serial-chain manipulator stack written **from scratch in Rust** — no ROS, no MoveIt, no kinematics library, no off-the-shelf planner. +**Evidence index (simulation; sampled where collision claims are involved; no hardware validation):** [multi-scene report](docs/multi_query_results.md) · [planning CSV](docs/multi_query_planning.csv) · [tracking CSV](docs/multi_query_tracking.csv) · attached payload [protocol](docs/attached_payload_protocol.md) / [results](docs/attached_payload_results.md) · [robustness report](docs/robustness_results.md) · [main CI](https://github.com/Dylan-Gallagher/arm-lab/actions/workflows/ci.yml?query=branch%3Amain) · [citation](CITATION.cff) + ![Demo 3 — UR5e pick-and-place around a pillar. IK, RRT-Connect, scalar S-curve time law, PD + velocity feedforward](docs/demo3.gif) The kinematic chain (offsets, joint axes, limits, end-effector site) is **extracted from the compiled MuJoCo model** — never hand-entered as DH parameters — so the geometry used by the algorithms is guaranteed identical to the one the physics simulates. Forward kinematics, geometric Jacobians, damped-least-squares inverse kinematics, RRT-Connect with shortcutting, and a rest-to-rest 7-phase scalar S-curve are implemented in this repo. Robot collision checks call `mj_collision` on interpolated joint-space states; Demo 3 additionally uses explicit, pair-scoped `mj_geomDistance` queries for an EE-attached cube proxy. The independent `k` + `urdf-rs` stack is used **only inside the test suite** as a cross-check of FK. diff --git a/docs/attached_payload_results.md b/docs/attached_payload_results.md index 8aac37c..0851710 100644 --- a/docs/attached_payload_results.md +++ b/docs/attached_payload_results.md @@ -7,6 +7,13 @@ original arm collision predicate and RRT-Connect algorithm, then adds a second, pair-scoped predicate during the carry only: the 50 mm cube proxy must remain at least 5 mm from the named `floor`, `table`, and `pillar` geoms at sampled states. +Targeted reproduction (after configuring the MuJoCo shared-library path as +described in the repository README): + +```bash +cargo test --release -p arm-lab --test pickplace attached_cube_blocks_straight_carry_and_planned_path_is_sampled_clear -- --exact --nocapture +``` + ## Fixed-query result All figures below are deterministic geometry/path fields from seed `20260816`;