feat: add ROS-free standalone test, MuJoCo DER evaluation, and update .gitignore#83
feat: add ROS-free standalone test, MuJoCo DER evaluation, and update .gitignore#83muhammad-mahad wants to merge 1 commit into
Conversation
… .gitignore standalone_test.py — run the TrackDLO CPD-LLE pipeline on a synthetic catenary sequence without ROS or a physical camera. Requires only numpy, matplotlib, and the compiled trackdlo_cpp pybind11 extension already in pybind_ext/. eval/mujoco_eval.py — hardware-free evaluation using adapteddlo_muj as a physics-accurate DER simulator (MuJoCo 3.x). DER node positions serve as ground-truth; synthetic point clouds sampled from capsule- segment surfaces are fed to TrackDLO. Demonstrates 16 mm mean tracking error at ~19 ms/frame on a 0.8 m, 30-segment cable under gravity with 20 cm endpoint manipulation. .gitignore — suppress *.pdf result plots and MUJOCO_LOG.TXT.
|
Following up with a bit more context in case it's useful. These two scripts are fully additive — The motivation: I wanted to be able to exercise the registration → sorting → CPD pipeline without a robot or a ROS stack, so it's reproducible on any machine. Happy to split this into a smaller PR (just the standalone test) or adjust to fit the repo's conventions — whatever's easiest to review. @tbretl no rush, just flagging since the repo's been quiet; glad it was useful to reproduce TrackDLO either way. |
Summary
TrackDLO currently requires a physical robot setup (ROS, RealSense camera) to run any evaluation. This PR adds two hardware-free scripts and a
.gitignoreupdate.standalone_test.pyA minimal ROS-free smoke test for the
trackdlo_cpppybind11 backend.reg → sort_pts → cpd_llepipeline and reports per-frame tracking error vs ground truthnumpy,matplotlib, and the compiledtrackdlo_cpp.soalready inpybind_ext/— nothing else requiredeval/mujoco_eval.pyA higher-fidelity evaluation using the adapteddlo_muj Discrete Elastic Rod (DER) simulator (MuJoCo 3.x).
mujoco ≥ 3.0,numpy,matplotlib,adapteddlo_muj.gitignoreAdded
*.pdfandMUJOCO_LOG.TXTto suppress generated outputs from both scripts.Test plan
python standalone_test.py→ runs to completion, prints mean/max error, savestrackdlo_standalone_results.pdfpython eval/mujoco_eval.py→ runs to completion, prints mean/max error, saveseval/mujoco_eval_results.pdfgit statusshows no new untracked files after both runs