mi-lib / roki

RoKi - Robot Kinetics library
MIT License
12 stars 7 forks source link

rkChainLinkZeroAcc() is now available. #12

Closed zhidao closed 1 year ago

zhidao commented 2 years ago

@categoryik rkChainLinkZeroAcc() has been newly defined in rk_chain.c. It computes the acceleration of a point on a link and the angular acceleration of the same link with respect to the inertia frame at zero-joint acceleration. It is equivalent with J dot q dot. See test/jacobi_test.c for how to use it.

categoryik commented 2 years ago

Thank you for your work. I have understood the name come from following equation when $\ddot{\mathbf{q}}=\mathbf{0}$. $$\ddot{\mathbf{p}}=\dot{\mathbf{J}}\ddot{\mathbf{q}}+\dot{\mathbf{J}}\dot{\mathbf{q}}$$

zhidao commented 2 years ago

Right:)

categoryik commented 1 year ago

We found that rkChainLinkZeroAcc() includes Gravity effects because rkChainUpdateRate() is used in rkChainLinkZeroAcc(). it should be rkchainUpdateRateZeroGravity().

pull request : https://github.com/mi-lib/roki/pull/20

zhidao commented 1 year ago

Thank you for your pointing out. As I replied to the pull request from you, I implemented rkChainLinkZeroAcc0G() in another way. The idea is to implement rkChainLinkZeroAccG() to accept an acceleration of field, which can be either RK_GRAVITY6D or ZVEC6DZERO, and added rkChainLinkZeroAcc() and rkChainLinkZeroAcc0G() as macros. The same method has been used for rkChainUpdateRate(), rkChainUpdateID(), and rkChainID() families.