58 : velocity_(translate.vel())
59 , translation_(translate.pos())
60 , rotation_(rot.rotation())
61 , angvel_(rot.rotationRate())
67 , translation_(translation)
68 , rotation_(rot.rotation())
69 , angvel_(rot.rotationRate())
74 static KinematicTransform Identity();
78 _AST_DEF_KINEMATICTRANSFORM_PROPERTIES
79 _AST_DEF_KINEMATICROTATION_PROPERTIES
85 KinematicTransform& compose(
const KinematicTransform& next);
91 KinematicTransform composed(
const KinematicTransform& next)
const;
97 KinematicTransform operator*(
const KinematicTransform& next)
const;
103 KinematicTransform& operator*=(
const KinematicTransform& next);
108 KinematicTransform inverse()
const;
112 void getInverse(KinematicTransform& inversed)
const;
122 void transformPositionVelocity(
const Vector3d& position,
const Vector3d& velocity, Vector3d& positionOut, Vector3d& velocityOut);
128 CartState transformPositionVelocity(
const CartState& state);
130 Vector3d velocity_{};
131 Vector3d translation_{};
141A_ALWAYS_INLINE
void KinematicTransform::setIdentity()
143 velocity_ = Vector3d::Zero();
144 translation_ = Vector3d::Zero();
145 rotation_ = Rotation::Identity();
146 angvel_ = Vector3d::Zero();
161 Vector3d vector = next.translation() * this->matrix();
163 Vector3d translation = this->translation() + vector;
164 Vector3d velocity = this->velocity() + next.velocity() * this->matrix()
165 + this->rotationRate().cross(vector);
188 this->kinematicRotation().transformVectorVelocity(-this->translation(), -this->velocity(), inversed.translation(), inversed.velocity());
189 this->kinematicRotation().
getInverse(inversed.kinematicRotation());
192A_ALWAYS_INLINE
void KinematicTransform::transformPositionVelocity(
const Vector3d &position,
const Vector3d &velocity, Vector3d &positionOut, Vector3d &velocityOut)
196 Vector3d relPos = position - this->getTranslation();
198 this->getRotation().transformVector(relPos, positionOut);
200 Vector3d velDiff = velocity - this->getVelocity() - this->getRotationRate().cross(relPos);
202 this->getRotation().transformVector(velDiff, velocityOut);
207 this->kinematicRotation().transformVectorVelocity(
208 position - this->translation(),
209 velocity - this->velocity(),