Open JurajLieskovsky opened 2 years ago
Hi! Rapier uses a symplectic Euler integration scheme. For multibodies (based on reduced-coordinates joints) we derived the equations of motions manually taking the reduced coordinates into account, and construct a full NxN
(where N
is the number of degrees of freedoms) mass matrix that we invert at each timestep. So the external and inertial forces applied to multibodies are integrated in a linearly-implicit way. For contacts and impulse-based joints, the constraints solver is based on PGS with Baumgarte stabilization (using implicit springs for stabilization).
Regarding hard-real-time applications, it depends on your workload and the efficiency of your device. I personally never tried Rapier in a performance-constrained environment, so benchmarking is the best way to figure out if it’s suitable to your use-case. Rust in general is very suitable for hard real-time application (it is as suitable as any other native languages like C/C++).
So I would imagine that for each "reduced-coordinate joint" you have a 6xn
matrix and len 6
vector (lets say S
and c
) where the acceleration of the body succeeding the joint is a = S*\ddot{q} + c
?
This is correct.
@sebcrozet Would it be possible to provide other, higher order integration methods (like Verlet or Forest Ruth) or maybe even a custom integrator? It would be useful in some high fidelity simulations (like orbital simulations, in which symplectic Euler is very inaccurate)
Hi, I've developed some methods for modelling and controlling cable driven robots which I would like to implement in a library that can run in real-time. I have two questions