Fix the translation jacobian.
This commit is contained in:
@@ -6667,6 +6667,11 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm
|
||||
}
|
||||
// Only calculate if the localPosition is non-zero.
|
||||
if (btInverseDynamics::maxAbs(localPosition) > 0.0) {
|
||||
// Write the localPosition into world coordinates.
|
||||
btInverseDynamics::mat33 world_rotation_body;
|
||||
tree->getBodyTransform(clientCmd.m_calculateJacobianArguments.m_linkIndex + 1, &world_rotation_body);
|
||||
localPosition = world_rotation_body * localPosition;
|
||||
// Correct the translational jacobian.
|
||||
btInverseDynamics::mat33 skewCrossProduct;
|
||||
btInverseDynamics::skew(localPosition, &skewCrossProduct);
|
||||
btInverseDynamics::mat3x jac_l(3, numDofs + baseDofs);
|
||||
|
||||
Reference in New Issue
Block a user