Simbody  3.5
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

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.

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.

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
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: