Porting notes
Created by: jmirabel
Here is a list of points that should be taken care of. I'll keep updating it. If you have a better idea on where to put it, let me know.
- Typedefs:
-
Transform3f
is now ase3::SE3
object. Unlikefcl::Transform3f
, the constructor does not initialize itself to identity.transform
becomesact
.actInv
applies the inverse transformation. -
vector3_t
becomes an Eigen vector -
JointPtr_t
is a boost shared_ptr
-
- Comparing joint position:
m2p::se3(
jointModel->currentTransformation() * jointModel->linkInJointFrame()
).isApprox(
jointPinocchio->currentTransformation() * jointPinocchio->robot()->model().getFramePlacement(jointModel->linkName())
)
- Conversion of joints (
se3::JointIndex <-> hpp::pinocchio::JointPtr_t
)
se3::JointIndex jointIndex = jointptr->index();
hpp::pinocchio::JointPtr_t jointptr (new JointPtr_t (device, jointIndex));
- Jacobian:
joint->jacobian()
now returns the jacobian of the center of the joint, expressed in the joint frame. In HPP, it was the center of the joint, expressed in the world frame. So to convert it (not always required):
JacHPP.topRows<3>() == jointPin->currentTransformation().rotation() * JacPinocchio.topRows<3>();
JacHPP.bottomRows<3>() == jointPin->currentTransformation().rotation() * JacPinocchio.bottomRows<3>();