StructuresComp / dismech-rods

DisMech: A discrete differential geometry-based physical simulator for soft robots and structures
GNU General Public License v3.0
24 stars 6 forks source link

Question: Actuated joints possible #17

Open alexswerner opened 3 weeks ago

alexswerner commented 3 weeks ago

Thanks for providing this piece of software. It looks promising!

I'm new to the world of soft robotics and am trying to understand the concepts. After reading the paper and the code, I wonder if there is a straight forward way to implement an actuated idealized revolute joint. The current meaning of joint in the code is a connection between two elastic rods, which makes sense. Also there is a way to bend these segments using e.g. the KappaBarController.

For the use case I'm thinking about, I would ideally need a compact revolute joint which has no approximation of continuum mechanics attached. Right now I try to approximate this with an elastic rod which is very compliant, but that seems not a good solution. Problematic is especially that this makes it hard to define the position and velocity states of this revolute joint.

Any pointers are appreciated!

QuantuMope commented 1 week ago

It sounds like you need a rigid body revolute joint. Unfortunately, DisMech at its current state does not have any rigid body modelling, but this (along with rigid links) is definitely a high priority TODO on our list.

As a temporary solution you may be able to use a high stiffness elastic joint and change the natural curvature accordingly. The higher the stiffness, the more "idealized" it will be. Though you will have to be wary of inertial effects and change the natural curvature slowly over time.

Hope this helps. Will keep this open until we make some real progress on rigid dynamics.