|
| | Body (const std::string &name, Frame *par=nullptr) |
| | Parent constructor for the body object.
|
| 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 | getFMPairAtParentOrigin (clockwerk::CartesianVector< 3 > &force_parentcg__p, clockwerk::CartesianVector< 3 > &moment_parentcg__p) |
| | Function to resolve passthrough forces/moments into a force/moment pair in parent body frame origin.
|
| clockwerk::CartesianVector< 3 > | externalForce () |
| | Getters for force and moment stuff.
|
| clockwerk::CartesianVector< 3 > | externalMoment () |
| clockwerk::CartesianVector< 3 > | passthroughForce () |
| clockwerk::CartesianVector< 3 > | passthroughMoment () |
| void | dump () |
| | Dump all information associated with the frame.
|
| | 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.
|
Class to define a body as a frame with mass and inertia.
This file defines the base body class which forms the basis for 6-DOF dynaics. Bodies are special invocations of the Frame object with mass and inertia, which allows them to interact with frames freely.
For the individual body, inertia is assumed to be about the frame center.
TODO For now, the body class enforces the following constraints in order to make things simpler and verify dynamics.
- Bodies may only be children of frames
- Nodes may only be children of bodies
- Joints are restricted to fully free or fully locked
Unless otherwise noted units should be assumed metric