|
AGX Dynamics 2.42.2.1
|
IMU sensor output data where IMUOutput::Field is used to define the data available. More...
#include <IMUOutput.h>
Inheritance diagram for agxSensor::IMUOutput:Public Types | |
| enum | Field : int32_t { ACCELEROMETER_X_F64 , ACCELEROMETER_Y_F64 , ACCELEROMETER_Z_F64 , GYROSCOPE_X_F64 , GYROSCOPE_Y_F64 , GYROSCOPE_Z_F64 , MAGNETOMETER_X_F64 , MAGNETOMETER_Y_F64 , MAGNETOMETER_Z_F64 , SENSOR_0_X_F64 , SENSOR_0_Y_F64 , SENSOR_0_Z_F64 , SENSOR_1_X_F64 , SENSOR_1_Y_F64 , SENSOR_1_Z_F64 , SENSOR_2_X_F64 , SENSOR_2_Y_F64 , SENSOR_2_Z_F64 , SENSOR_3_X_F64 , SENSOR_3_Y_F64 , SENSOR_3_Z_F64 , SENSOR_4_X_F64 , SENSOR_4_Y_F64 , SENSOR_4_Z_F64 , SENSOR_5_X_F64 , SENSOR_5_Y_F64 , SENSOR_5_Z_F64 , SENSOR_6_X_F64 , SENSOR_6_Y_F64 , SENSOR_6_Z_F64 , SENSOR_7_X_F64 , SENSOR_7_Y_F64 , SENSOR_7_Z_F64 , SENSOR_8_X_F64 , SENSOR_8_Y_F64 , SENSOR_8_Z_F64 , SENSOR_9_X_F64 , SENSOR_9_Y_F64 , SENSOR_9_Z_F64 , SENSOR_MAX_X_F64 = ( ( ( 1 << 30 ) - 3 ) / 3) * 3 , SENSOR_MAX_Y_F64 = SENSOR_MAX_X_F64 + 1 , SENSOR_MAX_Z_F64 = SENSOR_MAX_X_F64 + 2 , NUM_FIELDS } |
| using | FieldVector = std::vector< Field > |
Public Member Functions | |
| IMUOutput ()=default | |
| Default constructor. | |
| IMUOutput & | add (Field field) |
| Add new field. | |
| template<Field... field> | |
| void | build () |
| Add one or more fields, build a matching data structure. | |
| virtual const BinaryOutputBuffer & | getData () override |
| virtual size_t | getElementSize () const override |
| "Element size" is the summed data size of the currently added fields. | |
| virtual bool | hasUnreadData (bool markAsRead=true) override |
| void | setPaddingValue (const agx::Real &value) |
| Set value to use for padding when no underlying signal data can be found. | |
Public Member Functions inherited from agxSensor::SystemNode | |
| SystemNode (const SystemNode &)=delete | |
| Disallow direct copying of nodes. | |
| virtual | ~SystemNode ()=default |
| bool | addChild (SystemNode *child) |
| Add unique child to this node. | |
| virtual bool | addNotification () |
| Called when this system node has been added to a sensor environment. | |
| bool | appendChild (SystemNode *child) |
| Append child to vector of children, silently. | |
| virtual void | cleanup ()=0 |
| The sensor environment is being put down, clean everything. | |
| virtual void | complete () |
| Complete the execution of this system, finishing the integration forward in time. | |
| bool | detachChild (SystemNode *child) |
| Detach/erase child from vector of children, silently. | |
| virtual bool | eraseAndConnect () |
| Erase this node from the tree and connect its children to the current parent of this node. | |
| virtual void | execute (const CallbackData &data) |
Execute this system, integrating it data.dt forward in time. | |
| template<typename T > | |
| T * | findChild (bool recurse=true) const |
| Find child of given type. | |
| template<typename PredicateT > | |
| SystemNode * | findChild (PredicateT pred, bool recurse=true) const |
Find child given predicate pred. | |
| template<typename T > | |
| T * | findParent () const |
| template<typename PredicateT > | |
| SystemNode * | findParent (PredicateT pred) const |
| Find parent given predicate. | |
| template<typename T > | |
| T * | getChild () const |
| Searches children for a node of given type. | |
| SystemNode * | getChild (size_t index) const |
| bool | getEnable () const |
| Environment * | getEnvironment () const |
| const agx::Name & | getName () const |
| size_t | getNumChildren () const |
| SystemNode * | getParent () const |
| SystemNode * | getRoot () const |
| bool | hasChild (const SystemNode *child, bool recurse=true) const |
| virtual bool | insertParent (SystemNode &parent) |
| Inserts new parent to this node. | |
| virtual bool | onAdd (agx::Referenced &instance) |
| Called when an object has been added to the sensor environment. | |
| virtual void | onChildAdded (SystemNode &child) |
Called when child has been added to this parent. | |
| virtual void | onChildRemoved (SystemNode &child) |
Called when child has been removed from this parent. | |
| virtual bool | onRemove (agx::Referenced &instance) |
| Called when an object has been removed from the sensor environment. | |
| bool | removeChild (SystemNode *child) |
| Remove child from this node. | |
| virtual void | removeNotification () |
| Called when this system node is being removed from a sensor environment. | |
| virtual void | result (const CallbackData &data) |
If necessary assemble, and fetch results related to this system node after a step by data.dt has been completed. | |
| void | setEnable (bool enable) |
| Enable/disable this node. | |
| void | setName (const agx::Name &name) |
| Assign name to this node. | |
| virtual void | synchronize (const CallbackData &data) |
| Synchronization from the main thread. | |
| virtual void | synchronizeGraphics (const agxRender::RenderManager &renderManager) |
| At the very end of a step, synchronize any graphics related aspects of the system node. | |
| template<typename VisitorT > | |
| SystemNode * | visitBf (VisitorT visitor) const |
Visit the tree from, including, this node until callback returns true - using breadth first traversal. | |
| template<typename VisitorT > | |
| void | visitChildren (VisitorT visitor, bool recurse=true) const |
Visit all children with func as void( const SystemNode& child ). | |
| template<typename VisitorT > | |
| SystemNode * | visitChildrenBf (VisitorT visitor) const |
Visit the tree from the children of this node until callback returns true - using breadth first traversal. | |
| template<typename VisitorT > | |
| SystemNode * | visitChildrenDf (VisitorT visitor) const |
Visit the tree from the children of this node until callback returns true - using depth first traversal. | |
| template<typename T , typename VisitorT > | |
| void | visitChildrenOfType (VisitorT visitor, bool recurse=true) const |
Visit all children with func as void( const T& child ). | |
| template<typename VisitorT > | |
| SystemNode * | visitDf (VisitorT visitor) const |
Visit the tree from, including, this node until callback returns true - using depth first traversal. | |
Public Member Functions inherited from agx::Referenced | |
| Referenced () | |
| Default constructor. | |
| Referenced (const Referenced &) | |
| template<typename T > | |
| T * | as () |
| Subclass casting. | |
| template<typename T > | |
| const T * | as () const |
| template<typename T > | |
| T * | asSafe () |
| Safe subclass casting, return nullptr if template type does not match. | |
| template<typename T > | |
| const T * | asSafe () const |
| int | getReferenceCount () const |
| template<typename T > | |
| bool | is () const |
| Subclass test. | |
| Referenced & | operator= (const Referenced &) |
| Assignment operator. Will increment the number of references to the referenced object. | |
| void | reference (void *ptr=nullptr) const |
| Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it. | |
| void | unreference (void *ptr=nullptr) const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
| void | unreference_nodelete () const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
Public Member Functions inherited from agxStream::Serializable | |
| virtual | ~Serializable () |
| Destructor for normal C++ use but hidden from SWIG bindings. | |
| virtual const char * | getClassName () const |
| bool | getEnableSerialization () const |
| bool | getEnableUuidGeneration () |
| agx::UInt32 | getIndex () const |
| This index is given at creation of this object. | |
| virtual StorageAgent * | getStorageAgent () const =0 |
| agx::Uuid | getUuid () const |
| bool | isFinished () const |
| void | setEnableSerialization (bool flag) |
| Set to false to disable serialization of this object. | |
| void | setFinished () |
| Tells this class that it is restored correctly and should not be deleted during destruction of an Archive. | |
| void | setUuid (const agx::Uuid &uuid) |
| Explicitly set a Uuid on a serializable object. | |
Public Member Functions inherited from agxSensor::ISensorOutput | |
| ISensorOutput ()=default | |
| Default constructor. | |
| virtual const BinaryOutputBuffer & | getData ()=0 |
| Returns access to the sensor output data. | |
| virtual size_t | getElementSize () const =0 |
| "Element size" is the summed data size of the currently added sensor output fields. | |
| virtual bool | hasUnreadData (bool markAsRead=true)=0 |
| template<typename T > | |
| BinaryOutputView< T > | view () |
| View over data. | |
Static Public Member Functions | |
| static const char * | getFieldName (Field field) |
| static size_t | sizeOf (Field field) |
Static Public Member Functions inherited from agx::Referenced | |
| template<typename T > | |
| static bool | ValidateCast (const Referenced *object) |
Static Public Member Functions inherited from agxStream::Serializable | |
| static void | setEnableUuidGeneration (bool flag) |
| Specify if there should be UUID:s generated for each new Serializable object. By default it is enabled. | |
Static Public Member Functions inherited from agxSensor::ISensorOutput | |
| template<typename T > | |
| static bool | verifySize (size_t elementSize) |
| Checks whether sizeof(T) == elementSize and issues a warning if it is not. | |
Additional Inherited Members | |
Protected Member Functions inherited from agx::Referenced | |
| virtual | ~Referenced () |
| Destructor. | |
| void | allocateObserverVector () const |
| void | deleteUsingDeleteHandler () const |
Protected Member Functions inherited from agxStream::Serializable | |
| Serializable () | |
| Default constructor. | |
| Serializable (const Serializable &other) | |
| Copy constructor. | |
| void | generateUuid () |
Static Protected Member Functions inherited from agx::Referenced | |
| static DeleteHandler * | getDeleteHandler () |
| static void | setDeleteHandler (DeleteHandler *handler) |
| Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to. | |
Protected Attributes inherited from agx::Referenced | |
| Mutex | m_mutex |
| ObserverContainer | m_observers |
| AtomicValue | m_refCount |
IMU sensor output data where IMUOutput::Field is used to define the data available.
It's possible to pack data into a custom type, e.g.,
struct MyIMUOutput { agx::Real accelerometer; agx::Real gyroscopeRoll, gyroscopePitch; }
IMUOutputRef output = new IMUOutput(); output->build<IMUOutput::ACCELEROMETER_Z_F64, IMUOutput::GYROSCOPE_X_F64, IMUOutput::GYROSCOPE_Y_F64>();
... // Run sensor
auto view = output->view<MyIMUOutput>(); for ( const MyIMUOutput& value : view ) ...
Definition at line 50 of file IMUOutput.h.
| using agxSensor::IMUOutput::FieldVector = std::vector<Field> |
Definition at line 119 of file IMUOutput.h.
| enum agxSensor::IMUOutput::Field : int32_t |
| Enumerator | |
|---|---|
| ACCELEROMETER_X_F64 | 1x 64-bit floating point accelerometer x-axis output. |
| ACCELEROMETER_Y_F64 | 1x 64-bit floating point accelerometer y-axis output. |
| ACCELEROMETER_Z_F64 | 1x 64-bit floating point accelerometer z-axis output. |
| GYROSCOPE_X_F64 | 1x 64-bit floating point gyroscope x-axis output. |
| GYROSCOPE_Y_F64 | 1x 64-bit floating point gyroscope y-axis output. |
| GYROSCOPE_Z_F64 | 1x 64-bit floating point gyroscope z-axis output. |
| MAGNETOMETER_X_F64 | 1x 64-bit floating point magnetometer x-axis output. |
| MAGNETOMETER_Y_F64 | 1x 64-bit floating point magnetometer y-axis output. |
| MAGNETOMETER_Z_F64 | 1x 64-bit floating point magnetometer z-axis output. |
| SENSOR_0_X_F64 | 1x 64-bit floating point x-axis output from the first sensor in the IMU. |
| SENSOR_0_Y_F64 | 1x 64-bit floating point y-axis output from the first sensor in the IMU. |
| SENSOR_0_Z_F64 | 1x 64-bit floating point z-axis output from the first sensor in the IMU. |
| SENSOR_1_X_F64 | 1x 64-bit floating point x-axis output from the second sensor in the IMU. |
| SENSOR_1_Y_F64 | 1x 64-bit floating point y-axis output from the second sensor in the IMU. |
| SENSOR_1_Z_F64 | 1x 64-bit floating point z-axis output from the second sensor in the IMU. |
| SENSOR_2_X_F64 | |
| SENSOR_2_Y_F64 | |
| SENSOR_2_Z_F64 | |
| SENSOR_3_X_F64 | |
| SENSOR_3_Y_F64 | |
| SENSOR_3_Z_F64 | |
| SENSOR_4_X_F64 | |
| SENSOR_4_Y_F64 | |
| SENSOR_4_Z_F64 | |
| SENSOR_5_X_F64 | |
| SENSOR_5_Y_F64 | |
| SENSOR_5_Z_F64 | |
| SENSOR_6_X_F64 | |
| SENSOR_6_Y_F64 | |
| SENSOR_6_Z_F64 | |
| SENSOR_7_X_F64 | |
| SENSOR_7_Y_F64 | |
| SENSOR_7_Z_F64 | |
| SENSOR_8_X_F64 | |
| SENSOR_8_Y_F64 | |
| SENSOR_8_Z_F64 | |
| SENSOR_9_X_F64 | |
| SENSOR_9_Y_F64 | |
| SENSOR_9_Z_F64 | |
| SENSOR_MAX_X_F64 | 1x 64-bit floating point x-axis output from the last possibly added sensor. |
| SENSOR_MAX_Y_F64 | 1x 64-bit floating point y-axis output from the last possibly added sensor. |
| SENSOR_MAX_Z_F64 | 1x 64-bit floating point z-axis output from the last possibly added sensor. |
| NUM_FIELDS | (Number of fields indicator) |
Definition at line 53 of file IMUOutput.h.
|
default |
Default constructor.
| void agxSensor::IMUOutput::build |
Add one or more fields, build a matching data structure.
Definition at line 199 of file IMUOutput.h.
References add().
|
overridevirtual |
Implements agxSensor::ISensorOutput.
|
overridevirtual |
"Element size" is the summed data size of the currently added fields.
Implements agxSensor::ISensorOutput.
|
static |
| field | - data field |
|
overridevirtual |
| markAsRead | - true to reset unread state, resulting in hasUnreadData returning false until new data is available. False to not mark the current data as read. |
Implements agxSensor::ISensorOutput.
| void agxSensor::IMUOutput::setPaddingValue | ( | const agx::Real & | value | ) |
Set value to use for padding when no underlying signal data can be found.
| value | - value to use when padding in case of missing underlying signal |
|
static |
| field | - data field |