Walking Linkage Optimization

The OptWalker class is a front end for optimizing the dimensions of a walking linkage. It has been use primarily for Jansen, but had been used for Klann in the past, and could be used for others.

It is research grade code, and I tended to just poke parameters into the optimizer using the debugger, rather than write proper I/O.

The main parameters of interest are in WalkerMetric a :

_contactThresh
Amount above lowest point of cycle to be considered above the ground. Within this distance of the lowest point of the walking cycle, the foot is considered to be close enough to be touching the ground.
_dutyCycleWeight
Multiplier for how important the active walking part of the cycle is. Larger numbers tend to place a greater percentage of the cycle with the foot "on the ground".
_lenWeight
Multiplier for how important the length of the active part of the walking cycle is.
_reachWeight
Multiplier for how important it is that the closest point on the walking cycle is far away from the center of the linkage. i.e. How far out is the minimum reach of the foot.
_stepHeightWeight
Weight for how important it is that the foot step high above the ground when in its return cycle. (The height of each step)
_stepMetric._heightWeight
Weight for how important the flatness of the active part of the step is. A lower number (like 0.2) allows more curvature/oscillation in step height while the foot is in contact with the ground. A higher number (like 2) tries to make the walking phase of the orbit flatter.
_trackWeight
Weight for how important it is that the walking (on ground) phase of the orbit be shaped like a tank track. We try to make the bottom part of the step curve up at the edges like a tank track on a pulley, and the bottom part of the tread be flat.
While running, there are a few local variables that I often change in main to control the run :
best
Set this to a low number to force new output for a maxima. Sometimes when we get degenerate high metrics, it will stop saving possible optimizations until this parameter relaxes to a more reasonable value. Resetting this to a small number forces optimization output to start again.
reset
Set this to true to re-start the whole search from the seed linkage configuration

Aaron Birenboim
Last modified: Thu May 16 17:04:35 MDT 2013