Karlsruhe Institute of Technology (KIT) Logo

Master Motor Map

Whole-body human reference model and tools for unifying representations of whole-body human motion

Data Structures | Typedefs | Functions | Variables
MMM Namespace Reference

A template that can be used as a superclass of a class hierarchy that wants to provide a factory method which allows instantiation of objects based on a string identifier. More...

Data Structures

class  AbstractFactoryMethod
 
class  AbstractMotion
 An interface for all motion classes. More...
 
class  AbstractMotionSegment
 
class  ActionLabelAnnotation
 
class  ActionLabelAnnotationFactory
 
class  ActionObject
 
class  AnnotationFactory
 
class  AttachedSensor
 
class  BasicKinematicSensor
 
class  BasicModelPoseSensor
 
class  BasicSensor
 The templated interface with already implemented methods for implementing new sensor classes. More...
 
class  BimanualAnnotationFactory
 
class  CommentEntry
 
class  Converter
 An interface for all converter classes. A converter maps an input motion to an output motion. Two main applications are intended with converters. More...
 
class  ConverterFactory
 
class  CustomPose
 
class  CustomSensor
 
class  CustomSensorFactory
 
class  CustomSensorMeasurement
 
struct  DetectorContext
 
class  EnvironmentalContactSensor
 
class  EnvironmentalContactSensorFactory
 
class  EnvironmentalContactSensorMeasurement
 
class  FactoryPluginLoader
 A templated class for easy plugin loading from libraries with unique ids. More...
 
class  Force1DSensor
 
class  Force1DSensorFactory
 
class  Force1DSensorMeasurement
 
class  Force3DSensor
 
class  Force3DSensorFactory
 
class  Force3DSensorMeasurement
 
class  IAttachedSensor
 
class  IMUSensor
 
class  IMUSensorFactory
 
class  IMUSensorMeasurement
 
class  InterpolatableSensor
 The templated interface with already implemented methods for implementing new interpolatable sensor classes. More...
 
class  InterpolatableSensorMeasurement
 Template for interpolatable sensor measurements. More...
 
class  KinematicSensor
 
class  KinematicSensorConfiguration
 
class  KinematicSensorFactory
 
class  KinematicSensorMeasurement
 
class  LegacyMarkerData
 A data entry of a MarkerMotion. More...
 
class  LegacyMotion
 A Motion defines a series of MotionFrame snapshots. More...
 
class  LegacyMotionConverter
 Converter for create a motion from the model pose and kinematics of a legacy motion. More...
 
class  LegacyMotionReaderC3D
 This legacy reader parses a Vicon C3D data file and creates a MarkerMotion object. More...
 
class  LegacyMotionReaderXML
 The generic XML reader for legacy MMM motions. The following XML tags are initially supported by this reader: "comments", "description","joint_order","motion". Custom tag processors can be registered in order to read other data. Unknown tags are ignored by default. More...
 
struct  LoadModelStrategy
 
class  MarkerBasedConverter
 
class  MarkerData
 Stores three-dimensional position of unlabeled and labeled motion capture markers. More...
 
class  MarkerMotion
 This calls defines a Cartesian motion of a set of markers. More...
 
class  MoCapMarkerSensor
 
class  MoCapMarkerSensorFactory
 
class  MoCapMarkerSensorMeasurement
 
class  ModelPoseSensor
 
class  ModelPoseSensorFactory
 
class  ModelPoseSensorMeasurement
 
class  ModelProcessor
 A processor to adapt a generic model to user specific demands. More...
 
class  ModelProcessorFactory
 
class  ModelProcessorFactoryWinter
 
class  ModelProcessorWinter
 
class  ModelReaderXML
 This reader parses a model file in order to generate an MMM Model. The model syntax is compatible with the Simox::VirtualRobot package. More...
 
class  Motion
 Stores a recorded motion with a corresponding virtual model and real measurements. More...
 
class  MotionAnnotation
 The public interface for the annotation classes. More...
 
class  MotionContactDetector
 
class  MotionEntry
 
class  MotionFrame
 
class  MotionFrameEntry
 
class  MotionObserver
 
class  MotionReaderC3D
 This reader parses a Vicon C3D data file and creates a PrefixMarkerData object. More...
 
class  MotionReaderXML
 A generic xml reader for motions in the mmm dataformat. More...
 
class  MotionRecording
 
class  MotionRecordingContactDetector
 
class  MotionRecordingSegment
 
class  MotionSegment
 
class  MotionSegmentation
 
class  MotionSegmentObserver
 
class  MultipleFactoryPluginLoader
 A templated class for easy plugin loading from libraries having same ids but different locations. More...
 
class  NaturalLanguageAnnotation
 
class  PrefixMarkerData
 Stores motion capture data at certain times grouping them by their motion prefix in the c3d file. More...
 
class  ProcessedModelWrapper
 
class  RootOrientation
 A standard entry: The root orientation as RPY angles. More...
 
class  RootOrientationAcc
 A standard entry: The acceleration of the root Orientation. More...
 
class  RootOrientationVel
 A standard entry: The velocity of the root orientation. More...
 
class  RootPosition
 A standard entry: The root position (3d) of the model given in millimeters. More...
 
class  RootPositionAcc
 A standard entry: The acceleration of the root position. More...
 
class  RootPositionVel
 A standard entry: The velocity of the root position. More...
 
class  SegmentationFactory
 
class  Sensor
 The public interface for the sensor classes. More...
 
class  SensorFactory
 
class  SensorMeasurement
 The public interface for the sensor measurement classes. More...
 
class  SMCloneable
 
struct  TestHelper
 
class  UnknownMotionAnnotation
 
class  UnknownSensor
 Models unknown sensor types loaded from XML. More...
 
class  UnknownSensorMeasurement
 Models unknown sensor measurements loaded from XML. More...
 
class  UnlabeledMarkerData
 A data entry of an UnlabeledMarkerMotion. More...
 
class  UnlabeledMarkerMotion
 
class  WholeBodyDynamicSensor
 
class  WholeBodyDynamicSensorFactory
 
class  WholeBodyDynamicSensorMeasurement
 
class  XMLMotionFrameTagProcessor
 
class  XMLMotionTagProcessor
 Use this interface to register custom Motion XML tags. To be used for tags within a <Motion> ... </Motion> structure. More...
 

Typedefs

typedef std::vector< AbstractMotionPtr > AbstractMotionList
 
typedef std::shared_ptr< AbstractMotionAbstractMotionPtr
 
typedef std::shared_ptr< AbstractMotionSegmentAbstractMotionSegmentPtr
 
typedef std::weak_ptr< AbstractMotionSegmentAbstractMotionSegmentWeakPtr
 
typedef std::shared_ptr< AnnotationFactoryAnnotationFactoryPtr
 
typedef std::shared_ptr< BasicKinematicSensorBasicKinematicSensorPtr
 
typedef std::shared_ptr< BasicModelPoseSensorBasicModelPoseSensorPtr
 
typedef std::shared_ptr< CommentEntryCommentEntryPtr
 
typedef std::shared_ptr< ConverterFactoryConverterFactoryPtr
 
typedef std::shared_ptr< ConverterConverterPtr
 
typedef std::shared_ptr< CustomPoseCustomPosePtr
 
typedef std::vector< CustomSensorPtr > CustomSensorList
 
typedef std::shared_ptr< CustomSensorMeasurementCustomSensorMeasurementPtr
 
typedef std::shared_ptr< CustomSensorCustomSensorPtr
 
typedef std::map< std::string, std::map< std::string, std::map< float, float > > > DistanceMap
 DistanceMap node name -> (other motion name -> (timestep -> distance))
 
typedef std::vector< EnvironmentalContactSensorPtr > EnvironmentalContactSensorList
 
typedef std::shared_ptr< EnvironmentalContactSensorMeasurementEnvironmentalContactSensorMeasurementPtr
 
typedef std::shared_ptr< EnvironmentalContactSensorEnvironmentalContactSensorPtr
 
typedef std::vector< Force1DSensorPtr > Force1DSensorList
 
typedef std::shared_ptr< Force1DSensorMeasurementForce1DSensorMeasurementPtr
 
typedef std::shared_ptr< Force1DSensorForce1DSensorPtr
 
typedef std::vector< Force3DSensorPtr > Force3DSensorList
 
typedef std::shared_ptr< Force3DSensorMeasurementForce3DSensorMeasurementPtr
 
typedef std::shared_ptr< Force3DSensorForce3DSensorPtr
 
typedef std::shared_ptr< IAttachedSensorIAttachedSensorPtr
 
typedef std::vector< IMUSensorPtr > IMUSensorList
 
typedef std::shared_ptr< IMUSensorMeasurementIMUSensorMeasurementPtr
 
typedef std::shared_ptr< IMUSensorIMUSensorPtr
 
typedef std::shared_ptr< KinematicSensorConfigurationKinematicSensorConfigurationPtr
 
typedef std::vector< KinematicSensorPtr > KinematicSensorList
 
typedef std::shared_ptr< KinematicSensorMeasurementKinematicSensorMeasurementPtr
 
typedef std::shared_ptr< KinematicSensorKinematicSensorPtr
 
typedef std::shared_ptr< LegacyMarkerDataLegacyMarkerDataPtr
 
typedef std::shared_ptr< LegacyMotionConverterLegacyMotionConverterPtr
 
typedef std::vector< LegacyMotionPtr > LegacyMotionList
 
typedef std::shared_ptr< LegacyMotionLegacyMotionPtr
 
typedef std::shared_ptr< LegacyMotionReaderC3DLegacyMotionReaderC3DPtr
 
typedef std::shared_ptr< LegacyMotionReaderXMLLegacyMotionReaderXMLPtr
 
typedef std::shared_ptr< MarkerBasedConverterMarkerBasedConverterPtr
 
typedef std::shared_ptr< MarkerDataMarkerDataPtr
 
typedef std::shared_ptr< MarkerInfo > MarkerInfoPtr
 
typedef std::shared_ptr< MarkerMotionMarkerMotionPtr
 
typedef std::vector< MoCapMarkerSensorPtr > MoCapMarkerSensorList
 
typedef std::shared_ptr< MoCapMarkerSensorMeasurementMoCapMarkerSensorMeasurementPtr
 
typedef std::shared_ptr< MoCapMarkerSensorMoCapMarkerSensorPtr
 
typedef std::vector< ModelPoseSensorPtr > ModelPoseSensorList
 
typedef std::shared_ptr< ModelPoseSensorMeasurementModelPoseSensorMeasurementPtr
 
typedef std::shared_ptr< ModelPoseSensorModelPoseSensorPtr
 
typedef std::shared_ptr< ModelProcessorFactoryModelProcessorFactoryPtr
 
typedef std::shared_ptr< ModelProcessorFactoryWinterModelProcessorFactoryWinterPtr
 
typedef std::shared_ptr< ModelProcessorModelProcessorPtr
 
typedef std::shared_ptr< ModelProcessorWinterModelProcessorWinterPtr
 
typedef VirtualRobot::RobotPtr ModelPtr
 
typedef std::shared_ptr< ModelReaderXMLModelReaderXMLPtr
 
typedef std::vector< MotionAnnotationPtr > MotionAnnotationList
 
typedef std::shared_ptr< MotionAnnotationMotionAnnotationPtr
 
typedef std::shared_ptr< MotionEntryMotionEntryPtr
 
typedef std::shared_ptr< MotionFrameEntryMotionFrameEntryPtr
 
typedef std::shared_ptr< MotionFrameMotionFramePtr
 
typedef std::shared_ptr< MotionObserverMotionObserverPtr
 
typedef std::shared_ptr< MotionMotionPtr
 
typedef std::shared_ptr< MotionReaderC3DMotionReaderC3DPtr
 
typedef std::shared_ptr< MotionReaderXMLMotionReaderXMLPtr
 
typedef std::shared_ptr< MotionRecordingMotionRecordingPtr
 
typedef std::shared_ptr< MotionRecordingSegmentMotionRecordingSegmentPtr
 
typedef std::weak_ptr< MotionRecordingMotionRecordingWeakPtr
 
typedef std::vector< MotionSegmentationPtr > MotionSegmentationList
 
typedef std::shared_ptr< MotionSegmentationMotionSegmentationPtr
 
typedef std::weak_ptr< MotionSegmentationMotionSegmentationWeakPtr
 
typedef std::vector< MotionSegmentPtr > MotionSegmentList
 
typedef std::shared_ptr< MotionSegmentObserverMotionSegmentObserverPtr
 
typedef std::shared_ptr< MotionSegmentMotionSegmentPtr
 
typedef std::map< std::string, std::map< float, std::string > > MultiContactChanges
 MultiContactChanges node name -> timestep where the contact changes including the first timestep -> motion name of new contact.
 
typedef std::map< std::string, std::map< float, std::string > > MultiContacts
 MultiContacts node name -> timestep -> motion name of the nearest contact.
 
typedef std::map< std::string, int > NodeDepths
 NodeDepths node name -> child depth.
 
typedef std::shared_ptr< PrefixMarkerDataPrefixMarkerDataPtr
 
typedef std::shared_ptr< ProcessedModelWrapperProcessedModelWrapperPtr
 
typedef std::shared_ptr< RootOrientationAccRootOrientationAccPtr
 
typedef std::shared_ptr< RootOrientationRootOrientationPtr
 
typedef std::shared_ptr< RootOrientationVelRootOrientationVelPtr
 
typedef std::shared_ptr< RootPositionAccRootPositionAccPtr
 
typedef std::shared_ptr< RootPositionRootPositionPtr
 
typedef std::shared_ptr< RootPositionVelRootPositionVelPtr
 
typedef std::shared_ptr< SegmentationFactorySegmentationFactoryPtr
 
typedef std::shared_ptr< SensorFactorySensorFactoryPtr
 
typedef std::vector< SensorPtr > SensorList
 
typedef std::shared_ptr< SensorMeasurementSensorMeasurementPtr
 
typedef std::shared_ptr< SensorSensorPtr
 
typedef std::shared_ptr< UnknownMotionAnnotationUnknownMotionAnnotationPtr
 
typedef std::shared_ptr< UnknownSensorMeasurementUnknownSensorMeasurementPtr
 
typedef std::shared_ptr< UnknownSensorUnknownSensorPtr
 
typedef std::shared_ptr< UnlabeledMarkerDataUnlabeledMarkerDataPtr
 
typedef std::shared_ptr< UnlabeledMarkerMotionUnlabeledMarkerMotionPtr
 
typedef std::vector< WholeBodyDynamicSensorPtr > WholeBodyDynamicSensorList
 
typedef std::shared_ptr< WholeBodyDynamicSensorMeasurementWholeBodyDynamicSensorMeasurementPtr
 
typedef std::shared_ptr< WholeBodyDynamicSensorWholeBodyDynamicSensorPtr
 
typedef std::shared_ptr< XMLMotionFrameTagProcessorXMLMotionFrameTagProcessorPtr
 
typedef std::shared_ptr< XMLMotionTagProcessorXMLMotionTagProcessorPtr
 

Functions

ActionLabel ActionLabelFromString (const std::string &label)
 
Failure FailureFromString (const std::string &failure)
 
BOOST_EXTENSION_EXPORT_DECL SensorFactoryPtr getFactory ()
 
MotionType getMotionTypeFromModel (const std::string &modelName)
 
BOOST_EXTENSION_EXPORT_DECL std::string getVersion ()
 
bool hasNode (ModelPtr model, const std::string &nodeName)
 
template<class Sensor >
std::string NAME_STR ()
 
void savitzkyGolayFilter (const Eigen::Ref< const Eigen::MatrixXd > positions, Eigen::MatrixXd &vel, Eigen::MatrixXd &acc, unsigned int window, unsigned int order, double timestepDelta)
 
std::filesystem::path xml_path (const std::filesystem::path &path)
 

Variables

template class MMM_IMPORT_EXPORT AbstractFactoryMethod< ConverterFactory, void * >
 
template class MMM_IMPORT_EXPORT AbstractFactoryMethod< ModelProcessorFactory, void * >
 
std::set< std::string > mmmJointNamesToInvert
 

Detailed Description

A template that can be used as a superclass of a class hierarchy that wants to provide a factory method which allows instantiation of objects based on a string identifier.

The main MMM namespace.

The first template argument is the base class of your class hierarchy. The second argument is the parameter type for the initialisation function each subclass has to provide. If you need multiple constructor arguments it is recommended to use a boost::tuple.

Variable Documentation

◆ mmmJointNamesToInvert

std::set<std::string> MMM::mmmJointNamesToInvert
Initial value:
= {"LSCz_joint", "LSCy_joint", "LSz_joint", "LSy_joint", "LEz_joint", "LWy_joint",
"LHz_joint", "LHy_joint", "LAz_joint", "LAy_joint", "LMrot_joint",
"RSCz_joint", "RSCy_joint", "RSz_joint", "RSy_joint", "REz_joint", "RWy_joint",
"RHz_joint", "RHy_joint", "RAz_joint", "RAy_joint", "RMrot_joint",
"BPz_joint", "BPy_joint", "BTz_joint", "BTy_joint",
"BUNz_joint", "BUNy_joint", "BLNz_joint", "BLNy_joint"}
KoroiBot Logo WALK-MAN Logo Xperience Logo SecondHands Logo TimeStorm Logo I-SUPPORT Logo
PACO-PLUS Logo SFB-588 Logo SPP1527 Logo