ModelSpace
All Classes Namespaces Functions Variables Enumerations Pages
clockwerk::Body< T > Class Template Reference

Forward declaration of frame types. More...

#include <Body.hpp>

Inheritance diagram for clockwerk::Body< T >:
Collaboration diagram for clockwerk::Body< T >:

Public Member Functions

 Body (const std::string &name, Frame< T > *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 (CartesianVector< T, 3 > &force_parentcg__p, CartesianVector< T, 3 > &moment_parentcg__p)
 Function to resolve passthrough forces/moments into a force/moment pair in parent body frame origin.
 
CartesianVector< T, 3 > externalForce ()
 Getters for force and moment stuff.
 
CartesianVector< T, 3 > externalMoment ()
 
CartesianVector< T, 3 > passthroughForce ()
 
CartesianVector< T, 3 > passthroughMoment ()
 
Joint< T > & tJoint ()
 Function to get reference to the frame's translational joint.
 
Joint< T > & rJoint ()
 Function to get reference to the frame's rotational joint.
 
int parent (Frame< T > *new_parent)
 Function to assign the frame's parent via pointer.
 
Frame< T > * parent ()
 
int parent (GraphTreeObject *new_parent)
 Function to assign the node's parent via pointer.
 
int parent (GraphTreeObject &new_parent)
 Function to assign the node's parent via reference.
 
void setParentRelAcceleration (CartesianVector< T, 3 > accel)
 Function to set parent relative acceleration of frame.
 
void setParentRelAngularAcceleration (CartesianVector< T, 3 > alpha)
 Function to set parent relative angular acceleration.
 
CartesianVector< T, 3 > parentRelAcceleration ()
 Function to get the acceleration of the frame relative to parent expressed in parent coords.
 
CartesianVector< T, 3 > parentRelAngularAcceleration ()
 Function to get angular acceleration relative to parent in frame coords.
 
void rootRelPosition (CartesianVector< T, 3 > &pos_o_root__root)
 Returns the position of the frame origin wrt the root origin, in root coordinates.
 
CartesianVector< T, 3 > rootRelPosition ()
 
void rootRelVelocity (CartesianVector< T, 3 > &vel_o_root__root)
 Returns the velocity of the frame origin wrt the root origin, in root coordinates.
 
CartesianVector< T, 3 > rootRelVelocity ()
 
void rootRelAcceleration (CartesianVector< T, 3 > &acc_o_root__root)
 Returns the acceleration of the frame origin wrt the root origin, in root coordinates.
 
CartesianVector< T, 3 > rootRelAcceleration ()
 
void rootRelQuaternion (Quaternion< T > &quat_f_root)
 Returns the quaternion representing the frame origin wrt the root frame.
 
Quaternion< T > rootRelQuaternion ()
 
void rootRelDCM (DCM< T > &dcm_f_root)
 Returns the DCM of the frame origin wrt the root frame.
 
DCM< T > rootRelDCM ()
 
void rootRelAngularVelocity (CartesianVector< T, 3 > &w_f_root__f)
 Returns the angular velocity of the frame origin wrt the root, expressed in this frame's coordinates.
 
CartesianVector< T, 3 > rootRelAngularVelocity ()
 
void rootRelAngularAcceleration (CartesianVector< T, 3 > &alpha_f_root__f)
 Returns the angular acceleration of the frame origin wrt the root, expressed in this frame's coordinates.
 
CartesianVector< T, 3 > rootRelAngularAcceleration ()
 
void integrator (void *integ_ptr)
 Getter and setter for integrator pointer.
 
void * integrator ()
 
void setStateFromStateVector (const std::array< T, 13 > &state_f_p__f)
 Function to set frame state based on NUM_INTEGRATED_STATES-element state vector.
 
void getStateAsStateVector (std::array< T, 13 > &state_f_p__f)
 Function to return frame state as a NUM_INTEGRATED_STATES-element state vector.
 
void getStateVectorDot (std::array< T, 13 > &state_dot)
 Function to get the rate of change in the frame state vector.
 
int setRootRelPosition (const CartesianVector< T, 3 > &pos_f_root__root)
 Function to set the frame's position relative to root.
 
int setRootRelVelocity (const CartesianVector< T, 3 > &vel_f_root__root)
 Function to set the frame's velocity relative to root.
 
int setRootRelAttitude (const Quaternion< T > &quat_f_root)
 Function to set the frame's attitude relative to root.
 
int setRootRelAngularVelocity (const CartesianVector< T, 3 > &w_f_root__f)
 Function to set the frame's position relative to root.
 
Frame< T > * getFrameRootPointer ()
 Function to get a pointer to this frame's root frame.
 
std::vector< GraphTreeObject * > & children ()
 
unsigned int nChildren ()
 Getters for number of children and descendants.
 
unsigned int nDescendants ()
 
std::string name () const
 Getter and setter for object name.
 
int name (const std::string &new_name)
 
int rank ()
 Getter for the object rank.
 
virtual int 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.
 
std::string address ()
 Getter for object's string address.
 
std::vector< std::string > search (const std::string &address)
 Function to search through the graph tree by string address.
 
GraphTreeObjectgetByAddress (const std::string &address)
 Function to get an object from the graph tree by string address.
 
void dump (bool recursive=false)
 Function to dump the graph node, optionally including descendents.
 
void graphNodeInfo ()
 Function to return all info associated with a given graph node.
 
void recurseGraphNodeInfo (unsigned int counter)
 Function to recurse through graph tree and print all node info.
 
virtual int header (void *logger)
 Function to pass headers for this object to the logger.
 
virtual std::vector< std::string > header_info () const
 
void findLoggable (std::vector< GraphTreeObject * > &matches)
 Function to find all loggable parameters in this node and its children.
 
virtual int log (void *logger)
 Function to log data to a logger.
 
void lock (bool recursive=true)
 Function to lock the graph tree object and its children to changes.
 
void unlock (bool recursive=true)
 Function to unlock the graph tree and its children for changes.
 
bool locked ()
 Function to return whether graph tree object is locked.
 

Public Attributes

clockwerk::DataIO< T > mass = clockwerk::DataIO<T>(nullptr, "mass", 1.0)
 Signal/parameter for the body's mass.
 
clockwerk::DataIO< Matrix< T, 3, 3 > > inertia
 Signal/parameter for the body's inertia.
 
clockwerk::DataIO< T > composite_mass = clockwerk::DataIO<T>(nullptr, "composite_mass", 1.0)
 Signal/parameter for the body's composite mass.
 
clockwerk::DataIO< Matrix< T, 3, 3 > > composite_inertia
 Signal/parameter for the body's composite inertia.
 
clockwerk::DataIO< Body< T > * > self_id = clockwerk::DataIO<Body<T>*>(nullptr, "self_id", this)
 
clockwerk::DataIO< CartesianVector< T, 3 > > pos_f_p__p
 
clockwerk::DataIO< CartesianVector< T, 3 > > vel_f_p__p
 
clockwerk::DataIO< Quaternion< T > > quat_f_p
 
clockwerk::DataIO< CartesianVector< T, 3 > > ang_vel_f_p__f
 

Protected Member Functions

void _calcCompositeMassInertiaCM ()
 Function to recurse through children and calculate body composite inertia.
 
void _calcAppliedForceMoment (const CartesianVector< T, 3 > &force, const CartesianVector< T, 3 > &moment)
 Function to resolve forces and moments to body frame as applied and passed through.
 
void recalculateDescendants ()
 Function to recursively re-calculate the number of descendants of a given node on the tree.
 
void recalculateRank ()
 Function to recursively re-calculate the rank of a given node on the tree.
 
std::vector< std::string > decomposeAddress (std::string address)
 Function to decompose a string into a series of substrings via indexing.
 
void findMatches (const std::vector< std::string > &subaddresses, const unsigned int &num_subaddresses, unsigned int index, bool match_found, std::vector< GraphTreeObject * > &matches)
 Function to find all addresses mathcing the set of substrings @parem subaddresses A vector of subaddresses to match.
 
std::vector< GraphTreeObject * > searchNodes (const std::string &address)
 Function to search through the graph tree by string address.
 
int addChild (GraphTreeObject *child)
 Function to add a child to the graph tree object.
 
int removeChild (GraphTreeObject *child)
 Function to remove a child from the graph node's children.
 

Protected Attributes

CartesianVector< T, 3 > _ext_force__b
 Applied external force and moment on the body.
 
CartesianVector< T, 3 > _ext_moment__b
 
CartesianVector< T, 3 > _passthrough_force__b
 Passthrough force on the body – force not applied here but passed on to parent body.
 
CartesianVector< T, 3 > _passthrough_moment__b
 
CartesianVector< T, 3 > _acc_f_p__p
 Internal variables to store accelerations applied to this frame. Note: these are not states. They are temporary variables and treated slightly differently.
 
CartesianVector< T, 3 > _alpha_f_p__f
 
Joint< T > _t_joint
 Translational and rotational joints relating this frame to its parent. Set locked by default.
 
Joint< T > _r_joint
 Translational.
 
void * _integrator_ptr
 Rotational.
 
Frame< T > * _parent
 Variable to hold our parent.
 
std::vector< GraphTreeObject * > _children
 Pointers to the object's children – automatically set to an empty vector, and can be increased to any size.
 
std::string _name = DEFAULT_NAME
 String name for object.
 
uint16_t _num_descendants = 0
 Total number of descendants (includes children of children) of the tree, again not including the tree itself.
 
uint8_t _num_children = 0
 Number of direct children of the tree (not including the tree itself)
 
uint8_t _rank = 0
 Rank for how far down on the graph tree the object is – starts at zero and maxes out at 256 via variable size.
 
uint8_t _graph_tree_type = BASE_GRAPH_TREE
 Variable to store graph tree object type.
 
bool _locked = false
 Variable to lock the graph tree object and prevent structural updates.
 
bool _loggable = false
 Variable to indicate whether the selected object is loggable. Set to false by default.
 

Detailed Description

template<typename T>
class clockwerk::Body< T >

Forward declaration of frame types.

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

Constructor & Destructor Documentation

◆ Body()

template<typename T >
clockwerk::Body< T >::Body ( const std::string &  name,
Frame< T > *  par = nullptr 
)

Parent constructor for the body object.

Parameters
nameThe name of the body
parThe frame parent. Default is nullptr

Member Function Documentation

◆ addChild()

int clockwerk::GraphTreeObject::addChild ( GraphTreeObject child)
protectedinherited

Function to add a child to the graph tree object.

Parameters
childA pointer to the graph tree object to add to the tree
Returns
An error code corresponding to success/failure

◆ address()

std::string clockwerk::GraphTreeObject::address ( )
inherited

Getter for object's string address.

Returns
Returns the string address for the object

◆ calcFrameTreeExtAcceleration()

template<typename T >
int clockwerk::Body< T >::calcFrameTreeExtAcceleration ( )

Function to recurse through the body and its children to resolve applied external forces and moments into acceleration and angular acceleration.

Note
Implicitly applies acceleration/ang accel to the body frame
Assumes calcBodyTreeForcesMoments has been called to calculate forces/moments
Specific implementation of this function for body class. Overwrites frame class implementation

◆ calcFrameTreeExtForcesMoments()

template<typename T >
int clockwerk::Body< T >::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.

Note
Specific implementation of this function for body class. Overwrites frame class implementation

◆ decomposeAddress()

std::vector< std::string > clockwerk::GraphTreeObject::decomposeAddress ( std::string  address)
protectedinherited

Function to decompose a string into a series of substrings via indexing.

Parameters
addressThe address to be decomposed
Returns
A vector of strings containing each delimeter-separated substring

◆ dump()

void clockwerk::GraphTreeObject::dump ( bool  recursive = false)
inherited

Function to dump the graph node, optionally including descendents.

Parameters
recursiveParameter indicating whether to dump only one node (default/false) or the entire tree (true)
Note
Recursive dumps the whole tree... be careful what you wish for

◆ findLoggable()

void clockwerk::GraphTreeObject::findLoggable ( std::vector< GraphTreeObject * > &  matches)
inherited

Function to find all loggable parameters in this node and its children.

Parameters
matchesExpandable vector to hold all matches in the tree

◆ findMatches()

void clockwerk::GraphTreeObject::findMatches ( const std::vector< std::string > &  subaddresses,
const unsigned int &  num_subaddresses,
unsigned int  index,
bool  match_found,
std::vector< GraphTreeObject * > &  matches 
)
protectedinherited

Function to find all addresses mathcing the set of substrings @parem subaddresses A vector of subaddresses to match.

Parameters
num_subaddressesThe number of subaddresses to match
indexThe index of subaddresses to search in
match_foundVariable indicating whether a match was found higher in the tree
matchesImplicit return of all matches to the specified address

◆ getByAddress()

GraphTreeObject * clockwerk::GraphTreeObject::getByAddress ( const std::string &  address)
inherited

Function to get an object from the graph tree by string address.

Parameters
addressThe exact string address to access the variable with
Returns
Pointer to the graph tree object at the address, or nullptr if address is not valid or returns

◆ getFMPairAtParentOrigin()

template<typename T >
void clockwerk::Body< T >::getFMPairAtParentOrigin ( CartesianVector< T, 3 > &  force_parentcg__p,
CartesianVector< T, 3 > &  moment_parentcg__p 
)

Function to resolve passthrough forces/moments into a force/moment pair in parent body frame origin.

Parameters
force_parentcg__pImplicit return of passthrough force applied to this body in the parent body frame
moment_parentcg__pImplicit return of passthrough moment applied to this body in the parent body frame, RESOLVED TO A FORCE/MOMENT COUPLE AT THE PARENT FRAME LOCATION

◆ getFrameRootPointer()

Frame< T > * clockwerk::Frame< T >::getFrameRootPointer ( )
inherited

Function to get a pointer to this frame's root frame.

Returns
Pointer to root frame. Pointer to self if this frame is root

◆ getStateAsStateVector()

void clockwerk::Frame< T >::getStateAsStateVector ( std::array< T, 13 > &  state_f_p__f)
inherited

Function to return frame state as a NUM_INTEGRATED_STATES-element state vector.

Parameters
stateReturn of NUM_INTEGRATED_STATES-element state vector as [pos][vel][quat][omega]

◆ getStateVectorDot()

void clockwerk::Frame< T >::getStateVectorDot ( std::array< T, 13 > &  state_dot)
inherited

Function to get the rate of change in the frame state vector.

Parameters
state_dotRate of change in each element of the state vector

◆ header()

◆ header_info()

virtual std::vector< std::string > clockwerk::GraphTreeObject::header_info ( ) const
inlinevirtualinherited

Reimplemented in clockwerk::Time.

◆ lock()

void clockwerk::GraphTreeObject::lock ( bool  recursive = true)
inherited

Function to lock the graph tree object and its children to changes.

Parameters
recursiveFlag to indicate whether lock should be recursive

◆ log()

◆ parent() [1/3]

int clockwerk::Frame< T >::parent ( Frame< T > *  new_parent)
inherited

Function to assign the frame's parent via pointer.

Parameters
new_parentThe new parent to assign the node to
Returns
Error code corresponding to success/failure
Note
This function is the only method to ADD or REMOVE a node from a tree. To add, pass the address to a GraphTreeObject to this function. To remove, pass a nullptr. Note that parents for objects on an existing tree can be reassigned

◆ parent() [2/3]

int clockwerk::GraphTreeObject::parent ( GraphTreeObject new_parent)
inherited

Function to assign the node's parent via reference.

Parameters
new_parentThe new parent to assign the node to
Returns
Error code corresponding to success/failure
Note
This function is the only method to ADD or REMOVE a node from a tree. To add, pass the address to a GraphTreeObject to this function. To remove, pass a nullptr. Note that parents for objects on an existing tree can be reassigned

◆ parent() [3/3]

int clockwerk::GraphTreeObject::parent ( GraphTreeObject new_parent)
inherited

Function to assign the node's parent via pointer.

Parameters
new_parentThe new parent to assign the node to
Returns
Error code corresponding to success/failure
Note
This function is the only method to ADD or REMOVE a node from a tree. To add, pass the address to a GraphTreeObject to this function. To remove, pass a nullptr. Note that parents for objects on an existing tree can be reassigned

◆ parentRelAcceleration()

CartesianVector< T, 3 > clockwerk::Frame< T >::parentRelAcceleration ( )
inlineinherited

Function to get the acceleration of the frame relative to parent expressed in parent coords.

Returns
Accel relative to parent in parent coords

◆ parentRelAngularAcceleration()

CartesianVector< T, 3 > clockwerk::Frame< T >::parentRelAngularAcceleration ( )
inlineinherited

Function to get angular acceleration relative to parent in frame coords.

Returns
Angular accel relative to parent in frame coords

◆ recurseGraphNodeInfo()

void clockwerk::GraphTreeObject::recurseGraphNodeInfo ( unsigned int  counter)
inherited

Function to recurse through graph tree and print all node info.

Returns
String containing all recursive graph node information in tab cascade format

◆ removeChild()

int clockwerk::GraphTreeObject::removeChild ( GraphTreeObject child)
protectedinherited

Function to remove a child from the graph node's children.

Parameters
childThe child to remove
Returns
Success/fail error code based on whether the child is present

◆ rJoint()

Joint< T > & clockwerk::Frame< T >::rJoint ( )
inlineinherited

Function to get reference to the frame's rotational joint.

Returns
The frame's rotational joint

◆ rootRelAcceleration()

void clockwerk::Frame< T >::rootRelAcceleration ( CartesianVector< T, 3 > &  acc_o_root__root)
inherited

Returns the acceleration of the frame origin wrt the root origin, in root coordinates.

Parameters
acc_o_root_rootImplicit return of acceleration of origin relative to root, in root
Returns
Error code corresponding to success/failure
Note
Overloaded for explicit and implicit return

◆ rootRelAngularAcceleration()

void clockwerk::Frame< T >::rootRelAngularAcceleration ( CartesianVector< T, 3 > &  alpha_f_root__f)
inherited

Returns the angular acceleration of the frame origin wrt the root, expressed in this frame's coordinates.

Parameters
alpha_f_root__fImplicit return of angular acceleration relative to root, expressed in f frame
Returns
Error code corresponding to success/failure
Note
Overloaded for explicit and implicit return

◆ rootRelAngularVelocity()

void clockwerk::Frame< T >::rootRelAngularVelocity ( CartesianVector< T, 3 > &  w_f_root__f)
inherited

Returns the angular velocity of the frame origin wrt the root, expressed in this frame's coordinates.

Parameters
w_f_root__fImplicit return of angular velocity relative to root, expressed in f frame
Returns
Error code corresponding to success/failure
Note
Overloaded for explicit and implicit return

◆ rootRelDCM()

void clockwerk::Frame< T >::rootRelDCM ( DCM< T > &  dcm_f_root)
inherited

Returns the DCM of the frame origin wrt the root frame.

Parameters
att_f_rootImplicit return of attitude relative to root
Returns
Error code corresponding to success/failure
Note
Overloaded for explicit and implicit return

◆ rootRelPosition()

void clockwerk::Frame< T >::rootRelPosition ( CartesianVector< T, 3 > &  pos_o_root__root)
inherited

Returns the position of the frame origin wrt the root origin, in root coordinates.

Parameters
pos_o_root_rootImplicit return of position of origin relative to root, in root
Returns
Error code corresponding to success/failure
Note
Overloaded for explicit and implicit return

◆ rootRelQuaternion()

void clockwerk::Frame< T >::rootRelQuaternion ( Quaternion< T > &  quat_f_root)
inherited

Returns the quaternion representing the frame origin wrt the root frame.

Parameters
att_f_rootImplicit return of attitude relative to root
Returns
Error code corresponding to success/failure
Note
Overloaded for explicit and implicit return

◆ rootRelVelocity()

void clockwerk::Frame< T >::rootRelVelocity ( CartesianVector< T, 3 > &  vel_o_root__root)
inherited

Returns the velocity of the frame origin wrt the root origin, in root coordinates.

Parameters
vel_o_root_rootImplicit return of velocity of origin relative to root in root
Returns
Error code corresponding to success/failure
Note
Overloaded for explicit and implicit return

◆ search()

std::vector< std::string > clockwerk::GraphTreeObject::search ( const std::string &  address)
inherited

Function to search through the graph tree by string address.

Parameters
address`The address or address chunk to search for
Returns
A vector of string addresses meeting the criteria specified by address

◆ searchNodes()

std::vector< GraphTreeObject * > clockwerk::GraphTreeObject::searchNodes ( const std::string &  address)
protectedinherited

Function to search through the graph tree by string address.

Parameters
address`The address or address chunk to search for
Returns
A vector of objects addresses meeting the criteria specified by address

◆ setParentRelAcceleration()

void clockwerk::Frame< T >::setParentRelAcceleration ( CartesianVector< T, 3 >  accel)
inlineinherited

Function to set parent relative acceleration of frame.

Parameters
accelacceleration of frame relative to parent in parent frame coords

◆ setParentRelAngularAcceleration()

void clockwerk::Frame< T >::setParentRelAngularAcceleration ( CartesianVector< T, 3 >  alpha)
inlineinherited

Function to set parent relative angular acceleration.

Parameters
alphaangular accel of the frame relative to parent in parent frame coords

◆ setRootRelAngularVelocity()

int clockwerk::Frame< T >::setRootRelAngularVelocity ( const CartesianVector< T, 3 > &  w_f_root__f)
inherited

Function to set the frame's position relative to root.

Parameters
w_f_root__fAngular velocity of this frame wrt root frame origin, as specified in this frame
Note
If parent is not yet assigned, will throw error
With great power comes great responsibility. This thing will set ang vel to whatever you want, minimal questions asked, independent of if you later change attitude, etc.

◆ setRootRelAttitude()

int clockwerk::Frame< T >::setRootRelAttitude ( const Quaternion< T > &  quat_f_root)
inherited

Function to set the frame's attitude relative to root.

Parameters
quat_f_rootAttitude of this frame wrt root frame
Note
If parent is not yet assigned, will throw error
With great power comes great responsibility. This thing will set attitude to whatever you want, minimal questions asked, independent of if you later change attitude, etc.

◆ setRootRelPosition()

int clockwerk::Frame< T >::setRootRelPosition ( const CartesianVector< T, 3 > &  pos_f_root__root)
inherited

Function to set the frame's position relative to root.

Parameters
pos_f_root__rootPosition of this frame wrt root frame origin, as specified in the root frame
Note
If parent is not yet assigned, will throw error
With great power comes great responsibility. This thing will set position to whatever you want, minimal questions asked, independent of if you later change attitude, etc.

◆ setRootRelVelocity()

int clockwerk::Frame< T >::setRootRelVelocity ( const CartesianVector< T, 3 > &  vel_f_root__root)
inherited

Function to set the frame's velocity relative to root.

Parameters
vel_f_root__rootVelocity of this frame wrt root frame origin, as specified in the root frame
Note
If parent is not yet assigned, will throw error
With great power comes great responsibility. This thing will set velocity to whatever you want, minimal questions asked, independent of if you later change attitude, etc.

◆ setStateFromStateVector()

void clockwerk::Frame< T >::setStateFromStateVector ( const std::array< T, 13 > &  state_f_p__f)
inherited

Function to set frame state based on NUM_INTEGRATED_STATES-element state vector.

Parameters
stateNUM_INTEGRATED_STATES-element state vector as [pos][vel][quat][omega]

◆ tJoint()

Joint< T > & clockwerk::Frame< T >::tJoint ( )
inlineinherited

Function to get reference to the frame's translational joint.

Returns
The frame's translational joint

◆ type()

virtual int clockwerk::GraphTreeObject::type ( )
inlinevirtualinherited

Function to indicate type – -1 by default unless implemented downstream.

Returns
Int indicating frame type – unimplemented always -1

◆ unlock()

void clockwerk::GraphTreeObject::unlock ( bool  recursive = true)
inherited

Function to unlock the graph tree and its children for changes.

Parameters
recursiveFlag to indicate whether unlock should be recursive

Member Data Documentation

◆ _integrator_ptr

void* clockwerk::Frame< T >::_integrator_ptr
protectedinherited

Rotational.

Pointer to the integrator that is integrating this frame. Nullptr if unused

◆ ang_vel_f_p__f

clockwerk::DataIO<CartesianVector<T, 3> > clockwerk::Frame< T >::ang_vel_f_p__f
inherited

Angular velocity of the frame with respect to parent, in frame coordinates

◆ composite_inertia

template<typename T >
clockwerk::DataIO<Matrix<T, 3, 3> > clockwerk::Body< T >::composite_inertia
Initial value:
= clockwerk::DataIO<Matrix<T, 3, 3>>(nullptr, "composite_inertia",
clockwerk::Matrix<T, 3, 3>({{1.0,0.0,0.0},{0.0,1.0,0.0},{0.0,0.0,1.0}}))
Class for inter-object communication.
Definition DataIO.hpp:46
Matrix math implementation.
Definition Matrix.hpp:54

Signal/parameter for the body's composite inertia.

Note
Is calculated – should not be modified

◆ composite_mass

template<typename T >
clockwerk::DataIO<T> clockwerk::Body< T >::composite_mass = clockwerk::DataIO<T>(nullptr, "composite_mass", 1.0)

Signal/parameter for the body's composite mass.

Note
Is calculated – should not be modified

◆ inertia

template<typename T >
clockwerk::DataIO<Matrix<T, 3, 3> > clockwerk::Body< T >::inertia
Initial value:
= clockwerk::DataIO<Matrix<T, 3, 3>>(nullptr, "inertia",
clockwerk::Matrix<T, 3, 3>({{1.0,0.0,0.0},{0.0,1.0,0.0},{0.0,0.0,1.0}}))

Signal/parameter for the body's inertia.

◆ pos_f_p__p

clockwerk::DataIO<CartesianVector<T, 3> > clockwerk::Frame< T >::pos_f_p__p
inherited

Position of the frame with respect to parent, in parent coordinates

◆ quat_f_p

clockwerk::DataIO<Quaternion<T> > clockwerk::Frame< T >::quat_f_p
inherited

Attitude quaternion of the frame with respect to parent

◆ vel_f_p__p

clockwerk::DataIO<CartesianVector<T, 3> > clockwerk::Frame< T >::vel_f_p__p
inherited

Velocity of the frame with respect to parent, in parent coordinates. Note that this is the velocity IN the parent frame, which takes into account rotation.


The documentation for this class was generated from the following files: