this is quite literally the only useful source I've been able to find. And it's a bit hand-wavy in its explanation. What I'm presently thinking is something like a chain of, say, 5 links, where each link is a rectangle. Motors would "crinkle" the tail of the chain to form a zig-zag, then "crinkle" it in the other direction. The net result would (hopefully) be some forward momentum. Something like this:
Code: Select all
start: "crinkle" one way: "crinkle" the other way:
| | |
| | |
| \ /
| / \
| \ /
The motors that cause the "crinkling" need to keep track of the energy they take to move (I'm thinking of grading the user based on distance traveled per unit energy), and probably have some maximum force they're allowed to exert. I'm familiar with the theory of how this works, but I've never actually implemented motors before, so I'm not entirely sure how it would work.
So I think I have all the pieces to simulate this, but I'm having a hard time putting them all together. Consider a single rectangular rigid body spinning in a fluid about its geometric center. Should drag cause any linear motion, or will it just act as a dampening effect on the body's rotational inertia? The drag forces on one end of the spinning body will point in the opposite direction to the drag forces on the opposite end of the body, so I need a way of taking that in to account in the final equation.
Another test case would be a long rectangle moving along one of its surface normals. The drag force wouldn't cause any torque at all, and would instead only serve to slow the body's motion.
The drag constant "b" depends on the cross-sectional area of the body as it travels through the liquid, so it sounds like I need to run an integral along the length of body, but I have no idea what such an integral would look like or how it would work. The final product should allow me to express the rotation, angular velocity, position, and velocity of each of the links in the fish chain as an analytic equation.
So I guess I'm just having a hard time getting started. Any advice anyone could offer would be greatly appreciated.