Simple-Robotics / aligator

A versatile and efficient framework for constrained trajectory optimization
https://simple-robotics.github.io/aligator/
BSD 2-Clause "Simplified" License
106 stars 15 forks source link

Nonlinear centroidal dynamics for locomotion #125

Closed edantec closed 7 months ago

edantec commented 8 months ago

This PR introduces a set of cost functions and dynamics to model a nonlinear centroidal problem with unilateral fixed contacts. Two dynamics are proposed: one with contact forces as control, the other with jerk of contact forces as control. The state of the system is defined to be the concatenation of CoM position, linear momentum and angular momentum (dim 9). The control is of size max_num_contact * 3.

Cost functions include state regularization, linear and angular acceleration and friction cone.

This PR is mainly intended to spark a discussion about how centroidal dynamics should be handled in Aligator. Advices and improvements are welcomed!

ManifoldFR commented 8 months ago

@edantec I did a proper rebase on devel after fixing the Changelog over there.

edantec commented 7 months ago

A struct has been added for contact_map. An annoying bug remains where we cannot access contact_poses from contact_map in Python, I am investigating it.

ManifoldFR commented 7 months ago

@edantec please check if your compiler has warnings turned on, clang yells about integer conversion warnings on my end.

I fixed them and pushed a commit.

ManifoldFR commented 7 months ago

All seems correct to me. Thanks for your contribution again!

ManifoldFR commented 7 months ago

I think merging this PR would justify making a new release (0.4.2 or 0.5.0 ?) @jorisv !

jorisv commented 7 months ago

0.5.0 since we added new feature. I setup the pre-commit and I release.