Describir: Contact-Implicit Modeling and Simulation of a Snake Robot on Compliant and Granular Terrain