-
Notifications
You must be signed in to change notification settings - Fork 214
The Parallel transport direction in computing Jacobian #1126
In semi-explicit Euler integration, I am confused about the Jtransport part of calcDiff:
crocoddyl/include/crocoddyl/core/integrator/euler.hxx
Lines 76 to 115 in 0500e39
Let us take
I understand the first part of the code is computing JintegrateTransport to do the transportation, i.e. left multiply
state_->JintegrateTransport(x, d->dx, d->Fu, second); If I understand correctly,
Therefore, we are transporting vectors from tangent space at
But in the documentation of JintegrateTransport, it says:
This function performs the parallel transportation of an input matrix whose columns are expressed in the tangent space at
$x\oplus\delta x$ to the tangent space at$x$ point.
It is the reverse of my argument above.
What is wrong with my arguments?
Thanks!
All reactions
Replies: 1 comment 2 replies
But in the documentation of
JintegrateTransport, it says:This function performs the parallel transportation of an input matrix whose columns are expressed in the tangent space at x⊕δx to the tangent space at x point.
It is the reverse of my argument above. What is wrong with my arguments?
Thanks for raising this question. Indeed, the documentation is wrong, it should be the other way around. Could you help us creating a PR that fixes this issue?
All reactions
Sure, no problem!
BTW, in the implementation of JintegrateTransport of StateMultibodyTpl, it calls Pinocchio's pinocchio::dIntegrateTransport which says
this functions transforms a tangent vector expressed at
$q\oplus v$ to a tangent vector expressed at$q$
crocoddyl/include/crocoddyl/multibody/states/multibody.hxx
Lines 211 to 229 in 0500e39
I don't know whether Pinocchio's documentation is wrong or if I should call Pinocchio reversely.
All reactions
Pinocchio documentation seems to be wrong, our code is correct and tested.