Simbody  3.7
SimTK::ObservedPointFitter Class Reference

This class attempts to find the configuration of an internal coordinate model which best fits a set of observed data. More...

Static Public Member Functions

static Real findBestFit (const MultibodySystem &system, State &state, const Array_< MobilizedBodyIndex > &bodyIxs, const Array_< Array_< Vec3 > > &stations, const Array_< Array_< Vec3 > > &targetLocations, Real tolerance=0.001)
 Find the configuration of a MultibodySystem which best fits a set of target locations for stations. More...
 
static Real findBestFit (const MultibodySystem &system, State &state, const std::vector< MobilizedBodyIndex > &bodyIxs, const std::vector< std::vector< Vec3 > > &stations, const std::vector< std::vector< Vec3 > > &targetLocations, Real tolerance=0.001)
 For compatibility with std::vector; requires extra copying. More...
 
static Real findBestFit (const MultibodySystem &system, State &state, const Array_< MobilizedBodyIndex > &bodyIxs, const Array_< Array_< Vec3 > > &stations, const Array_< Array_< Vec3 > > &targetLocations, const Array_< Array_< Real > > &weights, Real tolerance=0.001)
 Find the configuration of a MultibodySystem which best fits a set of target locations for stations. More...
 
static Real findBestFit (const MultibodySystem &system, State &state, const std::vector< MobilizedBodyIndex > &bodyIxs, const std::vector< std::vector< Vec3 > > &stations, const std::vector< std::vector< Vec3 > > &targetLocations, const std::vector< std::vector< Real > > &weights, Real tolerance=0.001)
 For compatibility with std::vector; requires extra copying. More...
 

Detailed Description

This class attempts to find the configuration of an internal coordinate model which best fits a set of observed data.

The inputs to the algorithm are as follows:

  • A MultibodySystem which describes the model to fit
  • A set of points (called "stations") whose locations are defined relative to particular bodies
  • The target location for each station, defined relative to ground
  • (optional) A weight for each station, giving its relative importance for fitting

The output is a State giving the set of internal coordinates that best fit the stations to the target locations.

Member Function Documentation

◆ findBestFit() [1/4]

static Real SimTK::ObservedPointFitter::findBestFit ( const MultibodySystem system,
State state,
const Array_< MobilizedBodyIndex > &  bodyIxs,
const Array_< Array_< Vec3 > > &  stations,
const Array_< Array_< Vec3 > > &  targetLocations,
Real  tolerance = 0.001 
)
static

Find the configuration of a MultibodySystem which best fits a set of target locations for stations.

This is identical to the other form of findBestFit(), but assumes every station has a weight of 1.

◆ findBestFit() [2/4]

static Real SimTK::ObservedPointFitter::findBestFit ( const MultibodySystem system,
State state,
const std::vector< MobilizedBodyIndex > &  bodyIxs,
const std::vector< std::vector< Vec3 > > &  stations,
const std::vector< std::vector< Vec3 > > &  targetLocations,
Real  tolerance = 0.001 
)
inlinestatic

For compatibility with std::vector; requires extra copying.

◆ findBestFit() [3/4]

static Real SimTK::ObservedPointFitter::findBestFit ( const MultibodySystem system,
State state,
const Array_< MobilizedBodyIndex > &  bodyIxs,
const Array_< Array_< Vec3 > > &  stations,
const Array_< Array_< Vec3 > > &  targetLocations,
const Array_< Array_< Real > > &  weights,
Real  tolerance = 0.001 
)
static

Find the configuration of a MultibodySystem which best fits a set of target locations for stations.

Parameters
systemthe MultibodySystem being analyzed
stateon exit, this State's Q vector contains the values which provide a best fit
bodyIxsa list of MobilizedBodyIndexs corresponding to the bodies for which stations are defined
stationsthe list of stations for each body. stations[i][j] is the location of the j'th station for the body given by bodyIxs[i], given in that body's reference frame.
targetLocationsthe target locations for each body, given relative to ground. targetLocations[i][j] is the target for stations[i][j].
weightsweights[i][j] is the weight to use for stations[i][j] when performing the fitting
tolerancethe distance tolerance within which the best fit should be found
Returns
the RMS distance of points in the best fit conformation from their target locations

◆ findBestFit() [4/4]

static Real SimTK::ObservedPointFitter::findBestFit ( const MultibodySystem system,
State state,
const std::vector< MobilizedBodyIndex > &  bodyIxs,
const std::vector< std::vector< Vec3 > > &  stations,
const std::vector< std::vector< Vec3 > > &  targetLocations,
const std::vector< std::vector< Real > > &  weights,
Real  tolerance = 0.001 
)
inlinestatic

For compatibility with std::vector; requires extra copying.


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