stack-of-tasks / pinocchio

A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
http://stack-of-tasks.github.io/pinocchio/
BSD 2-Clause "Simplified" License
1.8k stars 379 forks source link

Integrating Second-Order derivatives of dynamics in Pinocchio #1808

Closed shubhamsingh91 closed 1 year ago

shubhamsingh91 commented 1 year ago

Hi Pinocchio developers We recently published our work on the second-order derivatives of Inverse dynamics for bodies with multi-DoF joints and fixed/floating base in the IROS 2022 conference. Link to the paper is below.

For accuracy and run-time check we also implemented the derivatives in Pinocchio (my own fork) and Featherstone's spatialv2 library. Now with the increasing use of DDP for optimization in legged robots, this could be a useful addition to Pinocchio, since Pinocchio is at the heart of Crocoddyl and probably other libraries. @cmastalli also mentioned that it'd be a good addition and will accelerate the use of DDP in this field. On a side note, we also extended this to get Forward dynamics derivatives w.r.t configuration and velocity.

So I was wondering, how do I go about contributing this to Pinocchio? Do I simply create a unit-test like the ones present for first-order derivatives and then open a PR? or Is there a better way for this? @jcarpent Could you guide me here?

Thanks for all the development you guys do.

https://arxiv.org/abs/2203.01497

jcarpent commented 1 year ago

Very nice initiative @shubhamsingh91. You should follow the same strategy as in previous developments in Pinocchio:

I hope I do not forget something. By the way, do you have documentation for the forward dynamics wrt configuration and velocity vectors?

Justin

shubhamsingh91 commented 1 year ago

Thanks for the quick response @jcarpent . Forward Dynamics derivatives are still in works. We are finalizing the algorithm and running some tests. I will put something on arxiv at the time of the PR to provide a background for the algorithm. For now I will work on the Inverse Dynamics derivatives and create a PR for that. Shubham

shubhamsingh91 commented 1 year ago

@jcarpent Opened the PR. Feel free to ask any questions regarding the code. Thanks

jcarpent commented 1 year ago

Solved via #1860 and #1840.