API  4.5
For C++ developers
OpenSim::OpenSenseUtilities Class Reference

Static Public Member Functions

static void rotateOrientationTable (OpenSim::TimeSeriesTable_< SimTK::Quaternion_< double >> &quaternionsTable, const SimTK::Rotation_< double > &rotationMatrix)
 Apply the passed in Rotation matrix to a TimeSeriesTable of Quaternions. More...
 
static TimeSeriesTable_< SimTK::Quaternion_< double > > createOrientationsFileFromMarkers (const std::string &markersFile)
 Create Orientations as a TimeSeriesTable based on passed in markerFile. More...
 
static SimTK::Transform formTransformFromPoints (const SimTK::Vec3 &op, const SimTK::Vec3 &xp, const SimTK::Vec3 &yp)
 form a Transform from 3 points origin (op), along x (xp - op), along y(yp - op) More...
 
static std::vector< OpenSim::IMU *> addModelIMUs (Model &model, std::vector< std::string > &paths)
 Add IMUs to passed in model and return references to them based on paths specification. More...
 
Convert Table of Quaternions into a Table for Rotations
static OpenSim::TimeSeriesTable_< SimTK::Rotation_< double > > convertQuaternionsToRotations (const OpenSim::TimeSeriesTable_< SimTK::Quaternion_< double >> &qauternionsTable)
 Convert a TimeSeriesTable with quaternions as data elements into a TimeSeriesTable of Rotation matrices. More...
 
static SimTK::Vec3 computeHeadingCorrection (OpenSim::Model &model, const SimTK::State &state, OpenSim::TimeSeriesTable_< SimTK::Quaternion_< double >> &quatTimeSeries, const std::string &baseIMU, const SimTK::CoordinateDirection)
 Compute a SimTK::Vec3 of Space-fixed XYZ Euler angles that aligns the specified baseIMU and CoordinateDirection combination with the positive X-axis (= typically forward) direction of the base segment in OpenSim model. More...
 

Member Function Documentation

◆ addModelIMUs()

static std::vector< OpenSim::IMU* > OpenSim::OpenSenseUtilities::addModelIMUs ( Model model,
std::vector< std::string > &  paths 
)
static

Add IMUs to passed in model and return references to them based on paths specification.

  • If "paths" refer to user specified list of frames, then one new "{Frame}_imu" is added to the model and returned in result.

◆ computeHeadingCorrection()

static SimTK::Vec3 OpenSim::OpenSenseUtilities::computeHeadingCorrection ( OpenSim::Model model,
const SimTK::State &  state,
OpenSim::TimeSeriesTable_< SimTK::Quaternion_< double >> &  quatTimeSeries,
const std::string &  baseIMU,
const SimTK::CoordinateDirection   
)
static

Compute a SimTK::Vec3 of Space-fixed XYZ Euler angles that aligns the specified baseIMU and CoordinateDirection combination with the positive X-axis (= typically forward) direction of the base segment in OpenSim model.

Base segment is typically the segment attached directly to Ground. baseIMU is assumed to be placed on Base segment. Passed in state places the model in the same configuration as the first frame of the passed in table of quaternions quatTimeSeries.

◆ convertQuaternionsToRotations()

static OpenSim::TimeSeriesTable_<SimTK::Rotation_<double> > OpenSim::OpenSenseUtilities::convertQuaternionsToRotations ( const OpenSim::TimeSeriesTable_< SimTK::Quaternion_< double >> &  qauternionsTable)
static

Convert a TimeSeriesTable with quaternions as data elements into a TimeSeriesTable of Rotation matrices.

Referenced by OpenSim::MocoOrientationTrackingGoal::setRotationReference().

◆ createOrientationsFileFromMarkers()

static TimeSeriesTable_<SimTK::Quaternion_<double> > OpenSim::OpenSenseUtilities::createOrientationsFileFromMarkers ( const std::string &  markersFile)
static

Create Orientations as a TimeSeriesTable based on passed in markerFile.

◆ formTransformFromPoints()

static SimTK::Transform OpenSim::OpenSenseUtilities::formTransformFromPoints ( const SimTK::Vec3 &  op,
const SimTK::Vec3 &  xp,
const SimTK::Vec3 &  yp 
)
static

form a Transform from 3 points origin (op), along x (xp - op), along y(yp - op)

◆ rotateOrientationTable()

static void OpenSim::OpenSenseUtilities::rotateOrientationTable ( OpenSim::TimeSeriesTable_< SimTK::Quaternion_< double >> &  quaternionsTable,
const SimTK::Rotation_< double > &  rotationMatrix 
)
static

Apply the passed in Rotation matrix to a TimeSeriesTable of Quaternions.

The rotation is done in place so the table passed in is modified


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