You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
aba now computes the acceleration and forces, no need to do it manually anymore when there is no constraint
armature are taking into account into algorithms, through model.armature. No need to overload pinocchio anymore.
RigidContraintModel and RigidContraintData are now provided to handle fixed frame constraints.
It is not straightfoward to use the new optimized algorithms for constraint computation implemented in Pinocchio. The complexity comes from the inability to define custom jacobian for the constraints in Pinocchio:
First approach [Try hard to use provided algorithm]
The easiest way to get around this limitation is to abuse the data.J (which is the concatenation in column of the joint jacobian in world frame) by swapping the memory with the constraint Jacobian computed by Jiminy. Then, each constraint would feature an extra attributes corresponding to the associated RigidContraintModel and RigidContraintData, always assuming 6 fixed DoFs in WORLD frame whatever the actual reference frame. Jiminy Model would provide new methods getConstraintModel and getConstraintData to get the ordered vectors of RigidContraintModel and RigidContraintData attributes for all active constraints respectively. This way, it is not necessary to modify the core algorithms of Pinocchio. However, it would add empty rows in the jacobian, that may break the algorithm.
Second apporach [Reimplement the sparse decomposition algorithm]
The main issue would be code duplication.
The text was updated successfully, but these errors were encountered:
duburcqa
changed the title
[core] Take advantage of the new features introduced by Pinocchio 2.9
[core] Leveraging the new features introduced by Pinocchio 2.9
Aug 18, 2021
duburcqa
changed the title
[core] Leveraging the new features introduced by Pinocchio 2.9
[core] Leveraging new features introduced by Pinocchio 2.9
Aug 18, 2021
I suggest adopting the non-aggregated formulation in Jiminy. It would be much easier to take advantage of the sparsity in computations as in Pinocchio, correct PGS bias, and handle friction and non-penetration in solver itself instead of doing confusing index manipulations in PGS itself.
aba
now computes the acceleration and forces, no need to do it manually anymore when there is no constraintmodel.armature
. No need to overload pinocchio anymore.RigidContraintModel
andRigidContraintData
are now provided to handle fixed frame constraints.It is not straightfoward to use the new optimized algorithms for constraint computation implemented in Pinocchio. The complexity comes from the inability to define custom jacobian for the constraints in Pinocchio:
The easiest way to get around this limitation is to abuse the
data.J
(which is the concatenation in column of the joint jacobian in world frame) by swapping the memory with the constraint Jacobian computed by Jiminy. Then, each constraint would feature an extra attributes corresponding to the associatedRigidContraintModel
andRigidContraintData
, always assuming 6 fixed DoFs in WORLD frame whatever the actual reference frame. JiminyModel
would provide new methodsgetConstraintModel
andgetConstraintData
to get the ordered vectors ofRigidContraintModel
andRigidContraintData
attributes for all active constraints respectively. This way, it is not necessary to modify the core algorithms of Pinocchio. However, it would add empty rows in the jacobian, that may break the algorithm.The main issue would be code duplication.
The text was updated successfully, but these errors were encountered: