FCL
0.6.0
Flexible Collision Library
|
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 <interp_motion.h>
Public Member Functions | |
InterpMotion () | |
Default transformations are all identities. | |
InterpMotion (const Matrix3< S > &R1, const Vector3< S > &T1, const Matrix3< S > &R2, const Vector3< S > &T2) | |
Construct motion from the initial rotation/translation and goal rotation/translation. | |
InterpMotion (const Transform3< S > &tf1_, const Transform3< S > &tf2_) | |
InterpMotion (const Matrix3< S > &R1, const Vector3< S > &T1, const Matrix3< S > &R2, const Vector3< S > &T2, const Vector3< S > &O) | |
Construct motion from the initial rotation/translation and goal rotation/translation related to some rotation center. | |
InterpMotion (const Transform3< S > &tf1_, const Transform3< S > &tf2_, const Vector3< S > &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. | |
S | computeMotionBound (const BVMotionBoundVisitor< S > &mb_visitor) const |
Compute the motion bound for a bounding volume along a given direction n, which is defined in the visitor. | |
S | computeMotionBound (const TriangleMotionBoundVisitor< S > &mb_visitor) const |
Compute the motion bound for a triangle along a given direction n, which is defined in the visitor. | |
void | getCurrentTransform (Transform3< S > &tf_) const |
Get the rotation and translation in current step. | |
void | getTaylorModel (TMatrix3< S > &tm, TVector3< S > &tv) const |
const Vector3< S > & | getReferencePoint () const |
const Vector3< S > & | getAngularAxis () const |
S | getAngularVelocity () const |
const Vector3< S > & | getLinearVelocity () const |
Public Member Functions inherited from fcl::MotionBase< S > | |
virtual bool | integrate (S dt) const =0 |
Integrate the motion from 0 to dt. | |
void | getCurrentTransform (Matrix3< S > &R, Vector3< S > &T) const |
Get the rotation and translation in current step. | |
void | getCurrentTransform (Quaternion< S > &Q, Vector3< S > &T) const |
void | getCurrentRotation (Matrix3< S > &R) const |
void | getCurrentRotation (Quaternion< S > &Q) const |
void | getCurrentTranslation (Vector3< S > &T) const |
const std::shared_ptr< TimeInterval< S > > & | getTimeInterval () const |
Protected Member Functions | |
void | computeVelocity () |
Quaternion< S > | deltaRotation (S dt) const |
Quaternion< S > | absoluteRotation (S dt) const |
Protected Attributes | |
Transform3< S > | tf1 |
The transformation at time 0. | |
Transform3< S > | tf2 |
The transformation at time 1. | |
Transform3< S > | tf |
The transformation at current time t. | |
Vector3< S > | linear_vel |
Linear velocity. | |
S | angular_vel |
Angular speed. | |
Vector3< S > | angular_axis |
Angular velocity axis. | |
Vector3< S > | reference_p |
Reference point for the motion (in the object's local frame) | |
Protected Attributes inherited from fcl::MotionBase< S > | |
std::shared_ptr< TimeInterval< S > > | time_interval_ |
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.