|
| | Node (const std::string &name, Frame *par=nullptr) |
| | Basic constructor for the node object.
|
| const Joint & | tJoint () |
| | Function to get reference to the frame's translational joint.
|
| const Joint & | rJoint () |
| | Function to get reference to the frame's rotational joint.
|
| void | getFMPairAtParentOrigin (clockwerk::CartesianVector< 3 > &force_parentcg__p, clockwerk::CartesianVector< 3 > &moment_parentcg__p) |
| | Function to resolve applied forces/moments into a force/moment pair in parent body frame origin.
|
| clockwerk::CartesianVector< 3 > | passthroughForce () |
| clockwerk::CartesianVector< 3 > | passthroughMoment () |
| | Frame (const std::string &name, Frame *par=nullptr, bool free=false) |
| | Constructor for the frame object.
|
| virtual | ~Frame () |
| std::vector< Frame * > | frameChildren () |
| | Return all children of the frame as a vector of frames.
|
| Frame * | getFrameByAddress (const std::string &address) |
| | Function to get an object from the graph tree by string address.
|
| Joint & | tJoint () |
| | Function to get reference to the frame's translational joint.
|
| Joint & | rJoint () |
| | Function to get reference to the frame's rotational joint.
|
| int | parent (Frame *new_parent) |
| | Function to assign the frame's parent via pointer.
|
| int | parent (Frame &new_parent) |
| Frame * | parent () |
| void | setParentRelAcceleration (clockwerk::CartesianVector< 3 > accel) |
| | Function to set parent relative acceleration of frame.
|
| void | setParentRelAngularAcceleration (clockwerk::CartesianVector< 3 > alpha) |
| | Function to set parent relative angular acceleration.
|
| clockwerk::CartesianVector< 3 > | parentRelAcceleration () |
| | Function to get the acceleration of the frame relative to parent expressed in parent coords.
|
| clockwerk::CartesianVector< 3 > | parentRelAngularAcceleration () |
| | Function to get angular acceleration relative to parent in frame coords.
|
| void | rootRelPosition (clockwerk::CartesianVector< 3 > &pos_o_root__root) const |
| | Returns the position of the frame origin wrt the root origin, in root coordinates.
|
| clockwerk::CartesianVector< 3 > | rootRelPosition () const |
| void | rootRelVelocity (clockwerk::CartesianVector< 3 > &vel_o_root__root) const |
| | Returns the velocity of the frame origin wrt the root origin, in root coordinates.
|
| clockwerk::CartesianVector< 3 > | rootRelVelocity () const |
| void | rootRelAcceleration (clockwerk::CartesianVector< 3 > &acc_o_root__root) const |
| | Returns the acceleration of the frame origin wrt the root origin, in root coordinates.
|
| clockwerk::CartesianVector< 3 > | rootRelAcceleration () const |
| void | rootRelQuaternion (clockwerk::Quaternion &quat_f_root) const |
| | Returns the quaternion representing the frame origin wrt the root frame.
|
| clockwerk::Quaternion | rootRelQuaternion () const |
| void | rootRelDCM (clockwerk::DCM &dcm_f_root) const |
| | Returns the clockwerk::DCM of the frame origin wrt the root frame.
|
| clockwerk::DCM | rootRelDCM () const |
| void | rootRelAngularVelocity (clockwerk::CartesianVector< 3 > &w_f_root__f) const |
| | Returns the angular velocity of the frame origin wrt the root, expressed in this frame's coordinates.
|
| clockwerk::CartesianVector< 3 > | rootRelAngularVelocity () const |
| void | rootRelAngularAcceleration (clockwerk::CartesianVector< 3 > &alpha_f_root__f) const |
| | Returns the angular acceleration of the frame origin wrt the root, expressed in this frame's coordinates.
|
| clockwerk::CartesianVector< 3 > | rootRelAngularAcceleration () const |
| int | calcFrameTreeExtForcesMoments () |
| | Function to recurse through the body and its children to apply external forces and moments to the "correct" body by resolving them to locations where there are degrees of freedom.
|
| int | calcFrameTreeExtAcceleration () |
| | Function to recurse through the body and its children to resolve applied external forces and moments into acceleration and angular acceleration.
|
| void | integrator (void *integ_ptr) |
| | Getter and setter for integrator pointer.
|
| void * | integrator () |
| void | setStateFromStateVector (const std::array< floating_point, 13 > &state_f_p__f) |
| | Function to set frame state based on NUM_INTEGRATED_STATES-element state vector.
|
| void | getStateAsStateVector (std::array< floating_point, 13 > &state_f_p__f) |
| | Function to return frame state as a NUM_INTEGRATED_STATES-element state vector.
|
| void | getStateVectorDot (std::array< floating_point, 13 > &state_dot) |
| | Function to get the rate of change in the frame state vector.
|
| int | setRootRelPosition (const clockwerk::CartesianVector< 3 > &pos_f_root__root) |
| | Function to set the frame's position relative to root.
|
| int | setRootRelVelocity (const clockwerk::CartesianVector< 3 > &vel_f_root__root) |
| | Function to set the frame's velocity relative to root.
|
| int | setRootRelAttitude (const clockwerk::Quaternion &quat_f_root) |
| | Function to set the frame's attitude relative to root.
|
| int | setRootRelAngularVelocity (const clockwerk::CartesianVector< 3 > &w_f_root__f) |
| | Function to set the frame's position relative to root.
|
| Frame * | getFrameRootPointer () |
| | Function to get a pointer to this frame's root frame.
|
| void | dump () |
| | Dump all information associated with the frame.
|
| | GraphTreeObject (const char *gt_nme="", GraphTreeObject **storage_array=nullptr, uint32 storage_size=0) |
| | Name-based constructor for GraphTreeObject which will have no children by default.
|
| virtual | ~GraphTreeObject () |
| | Destructor.
|
| GraphTreeObject * | parent () |
| | Functions to get object's parent/children.
|
| GraphTreeObject ** | children () |
| GraphTreeObject * | childAtIndex (uint8 i) const |
| int16 | parent (GraphTreeObject *new_parent) |
| | Function to assign the node's parent via pointer.
|
| int16 | parent (GraphTreeObject &new_parent) |
| | Function to assign the node's parent via reference.
|
| uint8 | nChildren () const |
| | Getters for number of children and descendants.
|
| uint16 | nDescendants () const |
| uint8 | capacity () const |
| const char * | name () const |
| | Getter and setter for object name.
|
| int16 | name (const char *new_name) |
| uint8 | rank () |
| | Getter for the object rank.
|
| int8 | type () |
| | Function to indicate type – -1 by default unless implemented downstream.
|
| bool | loggable () |
| | Getter for object logability flag – note no setter because should only be set by this or a derived class in its definition.
|
| GraphTreeObject * | getRootDataPointer () |
| | Get the pointer to the highest object in the graph tree.
|
| virtual int16 | str (char *output, size_t size) const |
| | Get object represented as string.
|
| virtual int16 | fromStr (const char *val) |
| | Set value of graphtreeobject from string.
|
|
| clockwerk::DataIO< clockwerk::CartesianVector< 3 > > | force = clockwerk::DataIO<clockwerk::CartesianVector<3>>(nullptr, "force", clockwerk::CartesianVector<3>({0.0,0.0,0.0})) |
| | The force applied at the node.
|
| clockwerk::DataIO< Frame * > | force_frame = clockwerk::DataIO<Frame*>(nullptr, "force_frame", nullptr) |
| | The frame in which the force is applied. Using this utility abstracts away framerotate commands and also allows forces to be applied inertially or frame locally, because rotation will occur every step.
|
| clockwerk::DataIO< clockwerk::CartesianVector< 3 > > | moment |
| | The moment applied at the node.
|
| clockwerk::DataIO< Frame * > | moment_frame = clockwerk::DataIO<Frame*>(nullptr, "moment_frame", nullptr) |
| | The frame in which the moment is applied Using this utility abstracts away framerotate commands and also allows moments to be applied inertially or frame locally, because rotation will occur every step.
|
| clockwerk::DataIO< Node * > | self_id = clockwerk::DataIO<Node*>(nullptr, "self_id", this) |
| clockwerk::DataIO< clockwerk::CartesianVector< 3 > > | pos_f_p__p |
| clockwerk::DataIO< clockwerk::CartesianVector< 3 > > | vel_f_p__p |
| clockwerk::DataIO< clockwerk::Quaternion > | quat_f_p |
| clockwerk::DataIO< clockwerk::CartesianVector< 3 > > | ang_vel_f_p__f |
| clockwerk::DataIO< Frame * > | self_id = clockwerk::DataIO<Frame*>(nullptr, "self_id", this) |
Node class to apply forces and moments to frames.
This file defines the base node class which is used to apply forces and sense accelerations at fixed locations on bodies.
The node class is a special Frame that is fully fixed to its parent (i.e. cannot be fully free) and has special handles for applying forces and moments. Because it is a simple fixed frame, it is also ideal for sensing accelerations and states, in applications such as an accelerometer.
Applying forces in the node frame is done via the force() and moment() DataIO objects. By default, forces and moments are applied in the node frame. However, passing a frame argument to the force_frame or moment_frame objects causes forces and moments to be applied in that frame – this is particularly useful for cases where the node frame is rotating but the force is not, such as gravity applied to a rotating spacecraft node.