I really like this. I just learned to my dismay that I'd failed to upvote; that's remedied now.
Back in 2010 I used NDSolve
to do a similar type of path-tracking, with the goal of reaching a target configuration from an initial one. The "object" in question was much simpler than the mechanisms shown here, and even so there was some trouble in getting NDSolve
to respect algebraic conditions. Possibly the internals have improved in the meanwhile. Or maybe my problem was harder than I thought. In any case, it is good to see NDSolve
handling this.
I tried to come up with a way to automate selection of six independent differential equations. It seems like this should be easy, but the methods I tried did not deliver. So I am proposing this as an open question here: given an overdetermined differential (algebraic) system, find a subsystem that is exactly determined.
Other things to consider might be enforcing of constraints (so the mechanism doesn't fly apart), keeping accelerations and jerks below some threshold (so it doesn't break down or wear out prematurely), etc. Since the thing is deterministic, I guess this amounts to aspects of the design, choices of fixed lengths, etc. In terms of enforcing algebraic constraints, the Projection
method of NDSolve
might be useful.
I'm already well past the limitations of my knowledge in this area, so I'll stop here and let others do the heavy lifting. Easier on my back that way...