karl3@writeme.com wrote:
> karl3@writeme.com wrote:
> > karl3@writeme.com wrote:
> > let's think about my old walking algorithm ^_^
> > the (emotional/executive) problem with the walking algorithm is a few fold
> > 1 producing or facilitating a set of geometric (or physics or dynamics)
> > primitives sufficient to enable step planning
> > 2 writing and wiring a small-depth plan solver to resolve which foot to
> > move first in edge situations
> > 3 combining everything with a physical or simulated armature, and then
> > debugging it
> > now part 2 has prerequisites that are also significant:
> > 2a defining the state of a step of sufficient use to fully plan a good step
> > 2b defining and sufficiently coding the uses of the various constraints of
> > the system: joint extremes, center of mass positioning
> > 2b also has subparts
> > 2b-1: [i don't quite remember but one runs into it when trying to do the
> > whole thing together]
> > 2b-2: annotating an armature with sufficient structured information (limb
> > graph in 3-space with mass) to derive the various constraints
> > something that's missing in here may be the utilization of paths of motion
> > through areas where constraints are continuously satisfied in the same
> > manner. doing this is kinda what makes the system analytically solvable on
> > an arduino by a disabled guy -- the constraints only matter at the points
> > in these paths where they change, i.e. when the structure would fall or
> > reach a joint extreme
> > :D
> > _now_ a lot of this is already done for the specific thing i was doing it
> > for, in the fuzzytew/toywalker github repo, but work towards the specific
> > goal is roughly lost. {so ... ummmmmmmmmmmmmmmmmmmmmmmm <this algorithm is
> > not in the repo.
> > the big blocks for this algorithm involved combining the planner w--
> > so the algorithm could be reoriented/refactored in various manners, and
> > doing so could be useful to generalize components since the original wasn't
> > made;
> but the original plan was for it to be conditioned on a path of motion of the
> center of mass, and an environment in which it must step through.
>
> then in the planner, it considers each foot to lift first -- opening n
> branches of a decision tree. in each branch, one foot is carrying no weight,
> so the center of mass must be moved to prevent fall. the center of mass is
> moved as far as it can go along planned path (note if you have a "head" full
> of sensors it might make more sense to plan the motion of the head rather
> than the center of mass, of course many people train RL models and use model
> inference hardware), and the lifted foot is moved to the best spot to support
> the center of mass for the next length of path (i was going to use a
> heuristic that assumed roughly straight paths to start with, basically you
> can predict the location of the armature along the path in the future and
> place the foot so that it has the largest range of motion, kinda; this could
> also be done with a feedback loop if a better solution is needed in a pinch).
>
> rather than busy waiting, it ideally uses its runtime to consider further
> steps in the future, but since it became so hard to implement the decision
> tree exploration strategy doesn't matter at this point
>
> then it picks the foot to pick that provides for the path to succeed, using a
> heuristic (like longest length covered) to break ties :)
>
> i was going to start with only static concerns rather than dynamic concerns,
> so the center of mass would be kept above the convex polygon enclosed by the
> unlifted feet.
>
> and there's the spot of confusion >(
so i found myself at the toywalker repo sad to discover other attempts to work
on haven't reached/stayed github. likely relates having issues very quickly
when engaging code ... next bit was going/trying to add was geometric
primitives for convex polygon to calculate center of mass constraint