Variable Hopper Analysis

-- SanjayDastoor - 28 Apr 2006

Moved Muscle stuff to ArtificialMuscles? (private)

--MarkCutkosky 21 Mar06

Starting a New Page on ArtificialMuscleIntegration issues

--MarkCutkosky 15 Mar 2006

Here are some slides & link to a movie that illustrate one advantage of having tunable leg stiffness for stable open-loop trotting. Values of mass, stiffness, damping are chosen to be similar to those of Sprawlita.

-- JonathanKarpick - 16 Mar 2006

Second simulation that has a maximum spring extension:

  • (DO NOT unzip into same folder as the files below... the filenames are the same).


-- JonathanKarpick - 08 Mar 2006

Running some sims - realize that we should really be looking at max foot height per stride versus body height per stride. With a weak spring and the same actuator force, the body can get pretty far off the ground while the foot is still on the ground...

ss_var_fn.pdf - Hopping height vs. Activation Frequency for a variety of hopper natural frequencies.

Without a maximum leg extension, the hopper hops higher with lower natural frequencies - the spring extends a lot until the foot lifts off of the ground.

In other words, without a max leg extension, there's no optimal stiffness in terms of hopping height for a given force level and a given damping ratio.

Changing the natural frequency of the hopper does change when the hopper enters and leaves period-2 hopping. The lower the natural frequency, the earlier (in terms of actuation frequency) the hopper goes to period-2 (and the earlier it returns to period-1).

Code is attached in the zip file here: (updated 7pm 3/8/06)

Description of contents:

  • load_constants.m: Settings for the dimensions and physical constants of the hopper
  • hopper_multi_run.m: Runs a set of simulations varying natural freq and creates a data structure (data)
  • hopper_multi_run_add.m: Runs some more simulations of varying natural freq and adds them to the existing data structure.
  • hopper_sim.m: Run this script to conduct a single simulation
  • hopper_ode.m: The file that is called by ode45 from hopper_sim.m
  • hopper_events.m: Determines when to switch between GROUND/AIR states and FORCE ON/FORCE OFF states.
  • hopper_air.m: equations of motion while airborne
  • hopper_ground.m: equations of motion while on the ground
  • hopper_plot.m: plots single run time history - send it a "data" structure - i.e.: hopper_plot(data(50,2))
  • hopper_multi_plot.m: plots Steady State Height vs. Frequency and Periodicity vs. Frequency
  • check_ss_period.m: determines when the system is in steady state and records periodicity and hopping height - currently just checks that the height at intervals of the actuation period is the same (within ss_tolerance) over a number of periods

-- JonathanKarpick - 01 Mar 2006

I found some of Jorge's old dashpod Matlab code, and have modified it for an even simpler hopper. (Jorge had limits on the extension of the spring/damper/actuator, and some modeling of actuator dynamics).


  • As I increased the activation frequency, I noticed that the simulation was skipping some activation periods - this appears to be associated with my implementation of the period generator and the value of RelTol in hopper_sim.m (the odeset command)
    • Figure 3 generated by hopper_plot.m shows the activation pattern - check for gaps to ensure that this problem is not occurring.

Working on:

  • tool to automatically determine steady state hopping height (and periodicity...)
  • movie maker
  • state space trajectory plot

-- JonathanKarpick - 02 Mar 2006

Initial change in hopping height vs. frequency with varying k:

This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback