diff options
| author | Sébastien Crozet <developer@crozet.re> | 2024-05-25 10:36:34 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-25 10:36:34 +0200 |
| commit | 62379de9ecc81fb42b7c2a0d2b8e3e1b02d63f38 (patch) | |
| tree | 0d94615e68ea7423259729c0ede49b240cb4f638 /src/dynamics/solver | |
| parent | af1ac9baa26b1199ae2728e91adf5345bcd1c693 (diff) | |
| download | rapier-62379de9ecc81fb42b7c2a0d2b8e3e1b02d63f38.tar.gz rapier-62379de9ecc81fb42b7c2a0d2b8e3e1b02d63f38.tar.bz2 rapier-62379de9ecc81fb42b7c2a0d2b8e3e1b02d63f38.zip | |
feat: add simple inverse-kinematics solver for multibodies (#632)
* feat: add a simple jacobian-based inverse-kinematics implementation for multibodies
* feat: add 2d inverse kinematics example
* feat: make forward_kinematics auto-fix the root’s degrees of freedom
* feat: add 3d inverse kinematics example
* chore: update changelog
* chore: clippy fixes
* chore: more clippy fixes
* fix tests
Diffstat (limited to 'src/dynamics/solver')
| -rw-r--r-- | src/dynamics/solver/velocity_solver.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dynamics/solver/velocity_solver.rs b/src/dynamics/solver/velocity_solver.rs index b0bafb8..9d5c279 100644 --- a/src/dynamics/solver/velocity_solver.rs +++ b/src/dynamics/solver/velocity_solver.rs @@ -251,8 +251,9 @@ impl VelocitySolver { .rows(multibody.solver_id, multibody.ndofs()); multibody.velocities.copy_from(&solver_vels); multibody.integrate(params.dt); - // PERF: we could have a mode where it doesn’t write back to the `bodies` yet. - multibody.forward_kinematics(bodies, !is_last_substep); + // PERF: don’t write back to the rigid-body poses `bodies` before the last step? + multibody.forward_kinematics(bodies, false); + multibody.update_rigid_bodies_internal(bodies, !is_last_substep, true, false); if !is_last_substep { // These are very expensive and not needed if we don’t |
