|
MULTIBODY SIMULATION SOFTWARE - API documentation |
#include <CHframeMoving.h>


Public Member Functions | |
| ChFrameMoving (const ChVector< Real > &mv=VNULL, const ChQuaternion< Real > &mq=QUNIT) | |
| ChFrameMoving (const ChVector< Real > &mv, ChMatrix33< Real > &ma) | |
| ChFrameMoving (const ChCoordsys< Real > &mc) | |
| ChFrameMoving (const ChFrameMoving< Real > &other) | |
| ChFrameMoving< Real > & | operator= (const ChFrameMoving< Real > &other) |
| bool | operator== (const ChFrameMoving< Real > &other) const |
| bool | operator!= (const ChFrameMoving< Real > &other) const |
| ChFrameMoving< Real > | operator>> (const ChFrameMoving< Real > &Fb) const |
| ChFrameMoving< Real > | operator * (const ChFrameMoving< Real > &Fb) const |
| ChFrameMoving< Real > & | operator%= (const ChFrameMoving< Real > &T) |
| ChFrameMoving< Real > & | operator *= (const ChFrameMoving< Real > &T) |
| ChCoordsys< Real > | GetCoord_dt () |
| ChCoordsys< Real > | GetCoord_dtdt () |
| ChVector< Real > | GetPos_dt () |
| ChVector< Real > | GetPos_dtdt () |
| ChQuaternion< Real > | GetRot_dt () |
| ChQuaternion< Real > | GetRot_dtdt () |
| ChVector< Real > | GetWvel_loc () const |
| ChVector< Real > | GetWvel_par () const |
| ChVector< Real > | GetWacc_loc () const |
| ChVector< Real > | GetWacc_par () const |
| virtual void | SetCoord_dt (const ChCoordsys< Real > &mcoord_dt) |
| virtual void | SetPos_dt (const ChVector< Real > &mvel) |
| virtual void | SetRot_dt (const ChQuaternion< Real > &mrot_dt) |
| virtual void | SetWvel_loc (const ChVector< Real > &wl) |
| virtual void | SetWvel_par (const ChVector< Real > &wp) |
| virtual void | SetCoord_dtdt (const ChCoordsys< Real > &mcoord_dtdt) |
| virtual void | SetPos_dtdt (const ChVector< Real > &macc) |
| virtual void | SetRot_dtdt (const ChQuaternion< Real > &mrot_dtdt) |
| virtual void | SetWacc_loc (const ChVector< Real > &al) |
| virtual void | SetWacc_par (ChVector< Real > &ap) |
| void | Compute_Adt (ChMatrix33< Real > &mA_dt) const |
| void | Compute_Adtdt (ChMatrix33< Real > &mA_dtdt) |
| ChMatrix33< Real > | GetA_dt () |
| ChMatrix33< Real > | GetA_dtdt () |
| void | ConcatenatePreTransformation (const ChFrameMoving< Real > &T) |
| void | ConcatenatePostTransformation (const ChFrameMoving< Real > &T) |
| ChVector< Real > | PointSpeedLocalToParent (const ChVector< Real > &localpos) const |
| ChVector< Real > | PointSpeedLocalToParent (const ChVector< Real > &localpos, const ChVector< Real > &localspeed) const |
| ChVector< Real > | PointAccelerationLocalToParent (const ChVector< Real > &localpos) const |
| ChVector< Real > | PointAccelerationLocalToParent (const ChVector< Real > &localpos, const ChVector< Real > &localspeed, const ChVector< Real > &localacc) const |
| ChVector< Real > | PointSpeedParentToLocal (const ChVector< Real > &parentpos, const ChVector< Real > &parentspeed) const |
| ChVector< Real > | PointAccelerationParentToLocal (const ChVector< Real > &parentpos, const ChVector< Real > &parentspeed, const ChVector< Real > &parentacc) const |
| void | TrasformLocalToParent (const ChFrameMoving< Real > &local, ChFrameMoving< Real > &parent) const |
| void | TrasformParentToLocal (const ChFrameMoving< Real > &parent, ChFrameMoving< Real > &local) const |
| bool | Equals (const ChFrameMoving< Real > &other) const |
| bool | Equals (const ChFrameMoving< Real > &other, Real tol) const |
| virtual void | Invert () |
| ChFrameMoving< Real > | GetInverse () |
| virtual void | StreamOUT (ChStreamOutAscii &mstream) |
| virtual void | StreamOUT (ChStreamOutBinary &mstream) |
| virtual void | StreamIN (ChStreamInBinary &mstream) |
Public Attributes | |
| ChCoordsys< Real > | coord_dt |
| ChCoordsys< Real > | coord_dtdt |
A 'frame' coordinate system has a translation and a rotation respect to a 'parent' coordinate system, usually the absolute (world) coordinates.
Differently from a simple ChCoordsys() object, however, the ChFrame implements some optimizations because each ChFrame stores also a 3x3 rotation matrix, which can speed up coordinate transformations when a large amount of vectors must be transfomed by the same coordinate frame.
| chrono::ChFrameMoving< Real >::ChFrameMoving | ( | const ChVector< Real > & | mv = VNULL, |
|
| const ChQuaternion< Real > & | mq = QUNIT | |||
| ) | [explicit] |
Construct from pos and rot (as a quaternion).
| chrono::ChFrameMoving< Real >::ChFrameMoving | ( | const ChVector< Real > & | mv, | |
| ChMatrix33< Real > & | ma | |||
| ) | [explicit] |
Construct from pos and rotation (as a 3x3 matrix).
| chrono::ChFrameMoving< Real >::ChFrameMoving | ( | const ChCoordsys< Real > & | mc | ) | [explicit] |
Construct from a coordsys.
| chrono::ChFrameMoving< Real >::ChFrameMoving | ( | const ChFrameMoving< Real > & | other | ) |
Copy constructor, build from another frame.
| ChFrameMoving<Real>& chrono::ChFrameMoving< Real >::operator= | ( | const ChFrameMoving< Real > & | other | ) |
Assignment operator: copy from another frame.
| bool chrono::ChFrameMoving< Real >::operator== | ( | const ChFrameMoving< Real > & | other | ) | const |
Returns true for identical frames.
| bool chrono::ChFrameMoving< Real >::operator!= | ( | const ChFrameMoving< Real > & | other | ) | const |
Returns true for different frames.
| ChFrameMoving<Real> chrono::ChFrameMoving< Real >::operator>> | ( | const ChFrameMoving< Real > & | Fb | ) | const |
The '>>' operator transforms a coordinate system, so transformations can be represented with this syntax: new_frame = old_frame >> tr_frame; For a sequence of transformations, i.e. a chain of coordinate systems, you can also write this (like you would do with a sequence of Denavitt-Hartemberg matrix multiplications, but in the _opposite_ order...) new_frame = old_frame >> frame3to2 >> frame2to1 >> frame1to0; This operation is not commutative. Also speeds and accelerations are transformed.
| ChFrameMoving<Real> chrono::ChFrameMoving< Real >::operator * | ( | const ChFrameMoving< Real > & | Fb | ) | const |
The '*' operator transforms a coordinate system, so transformations can be represented with this syntax: new_frame = tr_frame * old_frame; For a sequence of transformations, i.e. a chain of coordinate systems, you can also write this (just like you would do with a sequence of Denavitt-Hartemberg matrix multiplications!) new_frame = frame1to0 * frame2to1 * frame3to2 * old_frame; This operation is not commutative. Also speeds and accelerations are transformed.
| ChFrameMoving<Real>& chrono::ChFrameMoving< Real >::operator%= | ( | const ChFrameMoving< Real > & | T | ) |
Performs pre-multiplication of this frame by another frame, for example: A=T means A'=T*A
| ChFrameMoving<Real>& chrono::ChFrameMoving< Real >::operator *= | ( | const ChFrameMoving< Real > & | T | ) |
Performs post-multiplication of this frame by another frame, for example: A*=T means A'=A*T
| ChCoordsys<Real> chrono::ChFrameMoving< Real >::GetCoord_dt | ( | ) |
Return both current rotation and translation speeds as a coordsystem object, with vector and quaternion
| ChCoordsys<Real> chrono::ChFrameMoving< Real >::GetCoord_dtdt | ( | ) |
Return both current rotation and translation accelerations as a coordsystem object, with vector and quaternion
| ChVector<Real> chrono::ChFrameMoving< Real >::GetPos_dt | ( | ) |
Return the current speed as a 3d vector.
| ChVector<Real> chrono::ChFrameMoving< Real >::GetPos_dtdt | ( | ) |
Return the current acceleration as a 3d vector.
| ChQuaternion<Real> chrono::ChFrameMoving< Real >::GetRot_dt | ( | ) |
Return the current rotation speed as a quaternion.
| ChQuaternion<Real> chrono::ChFrameMoving< Real >::GetRot_dtdt | ( | ) |
Return the current rotation acceleration as a quaternion.
| ChVector<Real> chrono::ChFrameMoving< Real >::GetWvel_loc | ( | ) | const |
Computes the actual angular speed (expressed in local coords).
| ChVector<Real> chrono::ChFrameMoving< Real >::GetWvel_par | ( | ) | const |
Computes the actual angular speed (expressed in parent coords).
| ChVector<Real> chrono::ChFrameMoving< Real >::GetWacc_loc | ( | ) | const |
Computes the actual angular acceleration (expressed in local coords).
| ChVector<Real> chrono::ChFrameMoving< Real >::GetWacc_par | ( | ) | const |
Computes the actual angular acceleration (expressed in parent coords).
| virtual void chrono::ChFrameMoving< Real >::SetCoord_dt | ( | const ChCoordsys< Real > & | mcoord_dt | ) | [virtual] |
Set both linear speed and rotation speed as a single ChCoordsys derivative.
| virtual void chrono::ChFrameMoving< Real >::SetPos_dt | ( | const ChVector< Real > & | mvel | ) | [virtual] |
Set the linear speed.
| virtual void chrono::ChFrameMoving< Real >::SetRot_dt | ( | const ChQuaternion< Real > & | mrot_dt | ) | [virtual] |
Set the rotation speed as a quaternion. Note: the quaternion must already satisfy dot(q,q_dt)=0
| virtual void chrono::ChFrameMoving< Real >::SetWvel_loc | ( | const ChVector< Real > & | wl | ) | [virtual] |
Set the rotation speed from given angular speed (expressed in local csys)
| virtual void chrono::ChFrameMoving< Real >::SetWvel_par | ( | const ChVector< Real > & | wp | ) | [virtual] |
Set the rotation speed from given angular speed (expressed in parent csys)
| virtual void chrono::ChFrameMoving< Real >::SetCoord_dtdt | ( | const ChCoordsys< Real > & | mcoord_dtdt | ) | [virtual] |
Set both linear acceleration and rotation acceleration as a single ChCoordsys derivative.
| virtual void chrono::ChFrameMoving< Real >::SetPos_dtdt | ( | const ChVector< Real > & | macc | ) | [virtual] |
Set the linear acceleration.
| virtual void chrono::ChFrameMoving< Real >::SetRot_dtdt | ( | const ChQuaternion< Real > & | mrot_dtdt | ) | [virtual] |
Set the rotation acceleration as a quaternion derivative. Note: the quaternion must already satisfy dot(q,q_dt)=0
| virtual void chrono::ChFrameMoving< Real >::SetWacc_loc | ( | const ChVector< Real > & | al | ) | [virtual] |
Set the rotation acceleration from given angular acceleration (expressed in local csys)
| virtual void chrono::ChFrameMoving< Real >::SetWacc_par | ( | ChVector< Real > & | ap | ) | [virtual] |
Set the rotation speed from given angular speed (expressed in parent csys)
| void chrono::ChFrameMoving< Real >::Compute_Adt | ( | ChMatrix33< Real > & | mA_dt | ) | const |
Computes the time derivative of rotation matrix, mAdt.
| void chrono::ChFrameMoving< Real >::Compute_Adtdt | ( | ChMatrix33< Real > & | mA_dtdt | ) |
Computes the 2nd time derivative of rotation matrix, mAdtdt.
| ChMatrix33<Real> chrono::ChFrameMoving< Real >::GetA_dt | ( | ) |
Computes and returns an Adt matrix (-note: prefer using Compute_Adt() directly for better performance)
| ChMatrix33<Real> chrono::ChFrameMoving< Real >::GetA_dtdt | ( | ) |
Computes and returns an Adt matrix (-note: prefer using Compute_Adtdt() directly for better performance)
| void chrono::ChFrameMoving< Real >::ConcatenatePreTransformation | ( | const ChFrameMoving< Real > & | T | ) |
Apply a transformation (rotation and translation) represented by another ChFrameMoving T. This is equivalent to pre-multiply this frame by the other frame T: this'= T * this;
| void chrono::ChFrameMoving< Real >::ConcatenatePostTransformation | ( | const ChFrameMoving< Real > & | T | ) |
Apply a transformation (rotation and translation) represented by another ChFrameMoving T in local coordinate. This is equivalent to post-multiply this frame by the other frame T: this'= this * T;
| ChVector<Real> chrono::ChFrameMoving< Real >::PointSpeedLocalToParent | ( | const ChVector< Real > & | localpos | ) | const |
Given the position of a point in local frame coords, and assuming it is sticky to frame, return the speed in parent coords.
| ChVector<Real> chrono::ChFrameMoving< Real >::PointSpeedLocalToParent | ( | const ChVector< Real > & | localpos, | |
| const ChVector< Real > & | localspeed | |||
| ) | const |
Given the position of a point in local frame coords, and assuming it has a frame-relative speed localspeed, return the speed in parent coords.
| ChVector<Real> chrono::ChFrameMoving< Real >::PointAccelerationLocalToParent | ( | const ChVector< Real > & | localpos | ) | const |
Given the position of a point in local frame coords, and assuming it is sticky to frame, return the acceleration in parent coords.
| ChVector<Real> chrono::ChFrameMoving< Real >::PointAccelerationLocalToParent | ( | const ChVector< Real > & | localpos, | |
| const ChVector< Real > & | localspeed, | |||
| const ChVector< Real > & | localacc | |||
| ) | const |
Given the position of a point in local frame coords, and assuming it has a frame-relative speed localspeed and frame-relative acceleration localacc, return the acceleration in parent coords.
| ChVector<Real> chrono::ChFrameMoving< Real >::PointSpeedParentToLocal | ( | const ChVector< Real > & | parentpos, | |
| const ChVector< Real > & | parentspeed | |||
| ) | const |
Given the position of a point in parent frame coords, and assuming it has an absolute speed parentspeed, return the speed in local coords.
| ChVector<Real> chrono::ChFrameMoving< Real >::PointAccelerationParentToLocal | ( | const ChVector< Real > & | parentpos, | |
| const ChVector< Real > & | parentspeed, | |||
| const ChVector< Real > & | parentacc | |||
| ) | const |
Given the position of a point in parent frame coords, and assuming it has an absolute speed parentspeed and absolute acceleration parentacc, return the acceleration in local coords.
| void chrono::ChFrameMoving< Real >::TrasformLocalToParent | ( | const ChFrameMoving< Real > & | local, | |
| ChFrameMoving< Real > & | parent | |||
| ) | const |
This function transforms a frame from 'this' local coordinate system to parent frame coordinate system, and also transforms the speed and acceleration of the frame.
| local | frame to transform, given in local frame coordinates |
| parent | transformed frame, in parent coordinates, will be stored here |
| void chrono::ChFrameMoving< Real >::TrasformParentToLocal | ( | const ChFrameMoving< Real > & | parent, | |
| ChFrameMoving< Real > & | local | |||
| ) | const |
This function transforms a frame from the parent coordinate system to 'this' local frame coordinate system.
| parent | frame to transform, given in parent coordinates |
| local | transformed frame, in local coordinates, will be stored here |
| bool chrono::ChFrameMoving< Real >::Equals | ( | const ChFrameMoving< Real > & | other | ) | const |
Returns true if coordsys is identical to other coordsys.
| bool chrono::ChFrameMoving< Real >::Equals | ( | const ChFrameMoving< Real > & | other, | |
| Real | tol | |||
| ) | const |
Returns true if coordsys is equal to other coordsys, within a tolerance 'tol'.
| virtual void chrono::ChFrameMoving< Real >::Invert | ( | ) | [virtual] |
The trasformation (also for speeds, accelerations) is inverted in place. That is if w=A*v, then A.Invert();v=A*w;
Reimplemented from chrono::ChFrame< Real >.
| virtual void chrono::ChFrameMoving< Real >::StreamOUT | ( | ChStreamOutAscii & | mstream | ) | [virtual] |
Method to allow serializing transient data into in ascii as a readable item, for example "chrono::GetLog() << myobject;"
Reimplemented from chrono::ChFrame< Real >.
Reimplemented in chrono::ChBody, and chrono::ChMarker.
| virtual void chrono::ChFrameMoving< Real >::StreamOUT | ( | ChStreamOutBinary & | mstream | ) | [virtual] |
Method to allow serializing transient data into a persistent binary archive (ex: a file).
Reimplemented from chrono::ChFrame< Real >.
Reimplemented in chrono::ChBody, and chrono::ChMarker.
| virtual void chrono::ChFrameMoving< Real >::StreamIN | ( | ChStreamInBinary & | mstream | ) | [virtual] |
Operator to allow deserializing a persistent binary archive (ex: a file) into transient data.
Reimplemented from chrono::ChFrame< Real >.
Reimplemented in chrono::ChBody, and chrono::ChMarker.
| ChCoordsys<Real> chrono::ChFrameMoving< Real >::coord_dt |
Rotation and position speed, as vector+quaternion.
| ChCoordsys<Real> chrono::ChFrameMoving< Real >::coord_dtdt |
Rotation and position acceleration, as vector+quaternion.
CHRONO::ENGINE