You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*Motivation: There is a lot of research and educational content based on the SLIP model but no shared code or initiative
13
+
that allows playing with the model control without implementing everything from scratch. The ideal scenario is for this repo to become a mechanism for people to contribute different approaches to SLIP control, visualization, debugging,
14
+
and educational tools.*
15
+
16
+
### Main Features
17
+
The repository offers python class objects with several utility functions to create SLIP models and plan passive or controlled trajectories, plus visualization tools for these trajectories. The main classes are:
18
+
19
+
-`SlipModel`: a python class representation of a SLIP model. The class enables the generation of passive
20
+
trajectories by integration of the hybrid-dynamics differential equations governing SLIP, and some additional utility
21
+
functions for visualization and state handling.
22
+
23
+
-`SlipGaitCycle` and `SlipGaitCycleCtrl`: python classes representing a full gait cycle (flight and stance phases) of
24
+
a SLIP model. The class provides an intuitive interface to storing the cartesian and polar trajectories of the SLIP
25
+
gait cycle model, along with accessors to full-cycle cartesian trajectories, foot contact positions, touch-down/take-off leg angles, and more. The controlled version is intended to store both the passive and controlled trajectories of the model.
26
+
-`SlipTrajectory`: a class containing a sequence of consecutive `SlipGaitCycle`s, ensuring continuity in the trajectory. This class helps in saving and restoring a trajectory, plotting, and more.
27
+
28
+
-`SlipTrajectoryTree`: a tree data structure intended to be used to plan multi-cycle trajectories.
29
+
It offers the capability to store multiple possible trajectories emerging from different future touch down angles,
30
+
selection of the most optimal and some plotting utilities.
31
+
32
+
- Plotting: both for control development, debugging and especially for education, visual aid of the model dynamics and response. In utils, you will find plotting and (soon) animating utility functions to generate rich visualizations of
33
+
`SlipTrajectory`s and `SlipTrajectoryTree`s.
34
+
35
+
The structure and functions of the classes are based on what I found useful when developing a multi-cycle
36
+
trajectory planner for SLIP. Any modifications and enhancements are more than welcome. Submit a PR! :).
37
+
38
+
### Controllers
39
+
40
+
In the `slip_control/controllers` you will find single-cycle and multi-cycle trajectory control controllers. There
41
+
is only one controller so far, but I encourage you to contribute many:
42
+
43
+
-[x] Differentially Flat optimal control of SLIP: A controller of an extended version of the SLIP model using hip torque and leg force actuation. Details in [[3]] (Chapter 4.1). This controller is an adapted version of [[2]].
44
+
45
+
### Instalation
46
+
47
+
This repo is still in early development therefore, there is no release, but installation is easy through pip via:
By far, the best summary of the SLIP model and its control is [[1]]. For the model, biomechanical foundations [[4]] offers a
72
+
a great introduction to the value of SLIP as a generic locomotion model.
73
+
74
+
-[[1]] Geyer, H., et al. "Gait based on the spring-loaded inverted pendulum." Humanoid Robotics: A Reference. Springer Netherlands, 2018. 1-25.
75
+
-[[2]] Chen, Hua, Patrick M. Wensing, and Wei Zhang. "Optimal control of a differentially flat two-dimensional spring-loaded inverted pendulum model." IEEE Robotics and Automation Letters 5.2 (2019): 307-314.
76
+
-[[3]] Ordoñez Apraez, Daniel Felipe. Learning to run naturally: guiding policies with the Spring-Loaded Inverted Pendulum. MS thesis. Universitat Politècnica de Catalunya, 2021.
77
+
-[[4]] Full, Robert J., Claire T. Farley, and Jack M. Winters. "Musculoskeletal dynamics in rhythmic systems: a comparative approach to legged locomotion." Biomechanics and neural control of posture and movement. Springer, New York, NY, 2000. 192-205.
0 commit comments