Raw File
function w = walksw2(varargin)
% WALKSW2 Create a simple 2-d walking gait
%   w = walksw2 creates a default sw2 gait
%   w = walksw2('normal') creates a normal sw2 gait, speed 1.25 m/s, 1.8 Hz
%   w = walksw2('slow') creates a slow sw2 gait, speed 0.1, Kp = 0
switch nargin
case 0
  % if no arguments, create a default gait
  % Here are default parameters
  w.parms.P = 0.001; w.parms.Kp = 0.125; 
  w.parms.gamma = 0;
  w.N = 4; % 2-d simple walking model has 4 states
  w.xstar = []; % if fixed point not known
  w.xstar = [0.030701 0.061402 -0.0325631 -6.13654e-005];
  w.parent = [];
  w = class(w, 'walksw2');
  [w, cnvrg] = gradsearch(w, [], 'info', 0);
case 1
  if isa(varargin{1}, 'walksw2')
    w = varargin{1}; 
  elseif isempty(varargin{1}) % we want an empty object
    % empty objects are used when another object inherits methods from
    % the walksw2 class
    w.parms = [];
    w.N = []; w.xstar = []; w.parent = [];
    w = class(w, 'walksw2');
  elseif strcmp(varargin{1}, 'normal')
    % Here is a gait that gives equivalent of speed 1.25 m/s, 1.8 Hz
    % P = 0.1877, Kp = 2.5127, xstar = [ 0.355461 0.710921 -0.505623 -0.122482 ]
    fname = which('walksw2/private/normal.mat'); loadvar = load(fname);
    w = loadvar.w; 
  elseif strcmp(varargin{1}, 'normalgrav')
    % Here is a gait that gives equivalent of speed 1.25 m/s, 1.8 Hz
    % with gravity power only
    fname = which('walksw2/private/normalgrav.mat'); loadvar = load(fname);
    w = loadvar.w; 
  elseif strcmp(varargin{1}, 'slow')
    % Here is a gait that gives speed 0.1, with
    % no hip spring
    % P = 0.04, Kp = 0, xstar = [ 0.194589 0.389178 -0.202961 -0.0151771 ]
    fname = which('walksw2/slowgait.mat'); loadvar = load(fname);
    w = loadvar.w; w = class(w, 'walksw2');
  else
    fprintf(1,[' ''' varargin{1} ''' is not a valid saved object name.  Returning base constructor.']);
    w = walksw2;
  end
end
back to top