Linear interpolation motion Each Motion is assumed to have constant linear velocity and angular velocity The motion is R(t)(p - p_ref) + p_ref + T(t) Therefore, R(0) = R0, R(1) = R1 T(0) = T0 + R0 p_ref - p_ref T(1) = T1 + R1 p_ref - p_ref. More...
#include <hpp/fcl/ccd/motion.h>
Public Member Functions | |
InterpMotion () | |
Default transformations are all identities. | |
InterpMotion (const Matrix3f &R1, const Vec3f &T1, const Matrix3f &R2, const Vec3f &T2) | |
Construct motion from the initial rotation/translation and goal rotation/translation. | |
InterpMotion (const Transform3f &tf1_, const Transform3f &tf2_) | |
InterpMotion (const Matrix3f &R1, const Vec3f &T1, const Matrix3f &R2, const Vec3f &T2, const Vec3f &O) | |
Construct motion from the initial rotation/translation and goal rotation/translation related to some rotation center. | |
InterpMotion (const Transform3f &tf1_, const Transform3f &tf2_, const Vec3f &O) | |
bool | integrate (double dt) const |
Integrate the motion from 0 to dt We compute the current transformation from zero point instead of from last integrate time, for precision. | |
FCL_REAL | computeMotionBound (const BVMotionBoundVisitor &mb_visitor) const |
Compute the motion bound for a bounding volume along a given direction n, which is defined in the visitor. | |
FCL_REAL | computeMotionBound (const TriangleMotionBoundVisitor &mb_visitor) const |
Compute the motion bound for a triangle along a given direction n, which is defined in the visitor. | |
void | getCurrentTransform (Transform3f &tf_) const |
Get the rotation and translation in current step. | |
void | getTaylorModel (TMatrix3 &tm, TVector3 &tv) const |
const Vec3f & | getReferencePoint () const |
const Vec3f & | getAngularAxis () const |
FCL_REAL | getAngularVelocity () const |
const Vec3f & | getLinearVelocity () const |
Protected Member Functions | |
void | computeVelocity () |
Quaternion3f | deltaRotation (FCL_REAL dt) const |
Quaternion3f | absoluteRotation (FCL_REAL dt) const |
Protected Attributes | |
Transform3f | tf1 |
The transformation at time 0. | |
Transform3f | tf2 |
The transformation at time 1. | |
Transform3f | tf |
The transformation at current time t. | |
Vec3f | linear_vel |
Linear velocity. | |
FCL_REAL | angular_vel |
Angular speed. | |
Vec3f | angular_axis |
Angular velocity axis. | |
Vec3f | reference_p |
Reference point for the motion (in the object's local frame) |
Linear interpolation motion Each Motion is assumed to have constant linear velocity and angular velocity The motion is R(t)(p - p_ref) + p_ref + T(t) Therefore, R(0) = R0, R(1) = R1 T(0) = T0 + R0 p_ref - p_ref T(1) = T1 + R1 p_ref - p_ref.
fcl::InterpMotion::InterpMotion | ( | ) |
Default transformations are all identities.
fcl::InterpMotion::InterpMotion | ( | const Matrix3f & | R1, |
const Vec3f & | T1, | ||
const Matrix3f & | R2, | ||
const Vec3f & | T2 | ||
) |
Construct motion from the initial rotation/translation and goal rotation/translation.
fcl::InterpMotion::InterpMotion | ( | const Transform3f & | tf1_, |
const Transform3f & | tf2_ | ||
) |
fcl::InterpMotion::InterpMotion | ( | const Matrix3f & | R1, |
const Vec3f & | T1, | ||
const Matrix3f & | R2, | ||
const Vec3f & | T2, | ||
const Vec3f & | O | ||
) |
Construct motion from the initial rotation/translation and goal rotation/translation related to some rotation center.
fcl::InterpMotion::InterpMotion | ( | const Transform3f & | tf1_, |
const Transform3f & | tf2_, | ||
const Vec3f & | O | ||
) |
Quaternion3f fcl::InterpMotion::absoluteRotation | ( | FCL_REAL | dt | ) | const [protected] |
FCL_REAL fcl::InterpMotion::computeMotionBound | ( | const BVMotionBoundVisitor & | mb_visitor | ) | const [inline, virtual] |
Compute the motion bound for a bounding volume along a given direction n, which is defined in the visitor.
Implements fcl::MotionBase.
References fcl::BVMotionBoundVisitor::visit().
FCL_REAL fcl::InterpMotion::computeMotionBound | ( | const TriangleMotionBoundVisitor & | mb_visitor | ) | const [inline, virtual] |
Compute the motion bound for a triangle along a given direction n, which is defined in the visitor.
Implements fcl::MotionBase.
References fcl::TriangleMotionBoundVisitor::visit().
void fcl::InterpMotion::computeVelocity | ( | ) | [protected] |
Quaternion3f fcl::InterpMotion::deltaRotation | ( | FCL_REAL | dt | ) | const [protected] |
const Vec3f& fcl::InterpMotion::getAngularAxis | ( | ) | const [inline] |
References angular_axis.
FCL_REAL fcl::InterpMotion::getAngularVelocity | ( | ) | const [inline] |
References angular_vel.
void fcl::InterpMotion::getCurrentTransform | ( | Transform3f & | tf_ | ) | const [inline, virtual] |
const Vec3f& fcl::InterpMotion::getLinearVelocity | ( | ) | const [inline] |
References linear_vel.
const Vec3f& fcl::InterpMotion::getReferencePoint | ( | ) | const [inline] |
References reference_p.
Implements fcl::MotionBase.
References angular_axis, angular_vel, fcl::generateTaylorModelForCosFunc(), fcl::generateTaylorModelForLinearFunc(), fcl::generateTaylorModelForSinFunc(), fcl::Transform3f::getQuatRotation(), fcl::Transform3f::getRotation(), fcl::MotionBase::getTimeInterval(), fcl::hat(), linear_vel, reference_p, tf1, fcl::Quaternion3f::transform(), and fcl::Transform3f::transform().
bool fcl::InterpMotion::integrate | ( | double | dt | ) | const [virtual] |
Integrate the motion from 0 to dt We compute the current transformation from zero point instead of from last integrate time, for precision.
Implements fcl::MotionBase.
Vec3f fcl::InterpMotion::angular_axis [protected] |
Angular velocity axis.
Referenced by getAngularAxis(), and getTaylorModel().
FCL_REAL fcl::InterpMotion::angular_vel [protected] |
Angular speed.
Referenced by getAngularVelocity(), and getTaylorModel().
Vec3f fcl::InterpMotion::linear_vel [protected] |
Linear velocity.
Referenced by getLinearVelocity(), and getTaylorModel().
Vec3f fcl::InterpMotion::reference_p [protected] |
Reference point for the motion (in the object's local frame)
Referenced by getReferencePoint(), and getTaylorModel().
Transform3f fcl::InterpMotion::tf [mutable, protected] |
The transformation at current time t.
Referenced by getCurrentTransform().
Transform3f fcl::InterpMotion::tf1 [protected] |
The transformation at time 0.
Referenced by getTaylorModel().
Transform3f fcl::InterpMotion::tf2 [protected] |
The transformation at time 1.