Problem I keep hitting: a mobility / traverse claim can look fine on firm
ground (or a firm sim) and then die on soft soil — after you’ve already
spent hardware time.
I open-sourced a small referee for that check (not a Gazebo plugin, not a
ROS package yet):
same body · two soils · Safe must allow · Hostile must refuse
Rust Bekker sinkage · you pass URDF + optional soils JSON
Repo:
Two frozen runs (soft teaching · not field MEASURED):
-
Dual separates (open skid-steer URDF · owned soil ids):
ha-production-gate/docs/examples/08_stranger_urdf_owned_soils.md at main · StanByriukov02/ha-production-gate · GitHub
Safe ~9.5 mm ALLOW · Hostile ~69 mm REFUSE -
Third-party Fetch Robotics URDF — Gate FAILS under declared contact
(Safe also refuses). PASS is not the product; truth before hardware is:
ha-production-gate/docs/examples/09_external_fetch_owned_soils.md at main · StanByriukov02/ha-production-gate · GitHub
Minimal command shape:
ha-dual-socket --urdf your_robot.urdf --kind wheeled_base
–soils your_safe_hostile.json
Happy to take technical pushback. Not asking for endorsement — asking
whether this Safe/Hostile framing is useful before you cut metal or trust
a firm-soil green.