Karlsruhe Institute of Technology (KIT) Logo

Master Motor Map

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

MMM Sensor Plug-ins

Overview of the specific XML format of currently available sensor plug-ins in the MMMCore library.

See <Sensors> tag for the basic structure of a sensor plug-in in XML.
See MMM Sensor Plug-In-Architecture for creating new or using these plug-ins.

Kinematic sensor

The MMM::KinematicSensor contains the joint angles (in radian) of defined joints of the model.
Here is an example:

<Sensor type="Kinematic">
<Configuration>
<Joint name="BLNx_joint"/>
<Joint name="BLNy_joint"/>
<Joint name="BLNz_joint"/>
<Joint name="BPx_joint"/>
...
</Configuration>
<Data>
<Measurement timestep="0">
<JointPosition>-0.473327 -0.205552 0.129906 -0.269275 ...</JointPosition>
</Measurement>
<Measurement timestep="0.01">
<JointPosition>-0.479974 -0.169804 0.129084 -0.231622 ...</JointPosition>
</Measurement>
...
</Data>
</Sensor>

Modelpose sensor

The MMM::ModelPoseSensor contains the three dimensional positions (in milimetres) and orientations (in radian) of the model over time.
Here is an example:

<Sensor type="ModelPose">
<Configuration/>
<Data>
<Measurement timestep="0">
<RootPosition>-207.544 310.945 985.613</RootPosition>
<RootRotation>0.142681 0.0206156 1.60173</RootRotation>
</Measurement>
<Measurement timestep="0.01">
<RootPosition>-207.086 310.998 985.213</RootPosition>
<RootRotation>0.126483 0.0202315 1.60235</RootRotation>
</Measurement>
...
</Data>
</Sensor>

Motion Capture Marker sensor

The MMM::MoCapMarkerSensor stores the three dimensional positions of labeled and unlabeled (optional 'name'-attribute) motion capture markers over time.
Here is an example:

<Sensor type="MoCapMarker">
<Configuration/>
<Data>
<Measurement timestep="0">
<MarkerPosition name="C7">-90.1671 305.29 1562.98</MarkerPosition>
<MarkerPosition name="CLAV">-288.239 292.549 1508.42</MarkerPosition>
...
<MarkerPosition>-98.7991 332.125 1173.42</MarkerPosition>
...
</Measurement>
...
</Data>
</Sensor>

Whole Body Dynamics sensor

The MMM::WholeBodyDynamicSensor consists of the three dimensional position of the center of mass (in milimetres) and a three dimensional vector for the angular momentum of the model over time.
Here is an example:

<Sensor type="WholeBodyDynamic">
<Configuration/>
<Data>
<Measurement timestep="0">
<CenterOfMass>-27.8787 -24.6191 923.165</CenterOfMass>
<AngularMomentum>482.554 549.811 6.7935</AngularMomentum>
</Measurement>
...
</Data>
</Sensor>

Acceleration sensor

The MMM::IMUSensor comprises measurements in the three axial directions on user-defined positions on the model. Therefor the sensor contains the model segment and an adapted transformation matrix to calculate the correct position relative to the selected segment.
Here is an example:

<Sensor type="IMU">
<Configuration>
<Segment name="RWsegment_joint"/>
<Offset unit="mm">
<Matrix4x4>
<row1 c1="0" c2="0" c3="1" c4="0" />
<row2 c1="0" c2="-1" c3="0" c4="10" />
<row3 c1="1" c2="0" c3="0" c4="200"/>
<row4 c1="0" c2="0" c3="0" c4="1" />
</Matrix4x4>
</Offset>
</Configuration>
<Data>
<Measurement timestep="0">
<Acceleration>113.281 -1.95312 -1005.86</Acceleration>
</Measurement>
...
</Data>
</Sensor>

Force sensor

The MMM::Force1DSensor measures forces coming from or affecting the motion. The sensor position on the model is configured just as defined in the acceleration sensor.
Here is an example:

<Sensor type="Force1D">
<Configuration>
<Segment name="RWsegment_joint"/>
<Offset unit="mm">
<Matrix4x4>
<row1 c1="1" c2="0" c3="0" c4="0" />
<row2 c1="0" c2="1" c3="0" c4="10" />
<row3 c1="0" c2="0" c3="1" c4="200"/>
<row4 c1="0" c2="0" c3="0" c4="1" />
</Matrix4x4>
</Offset>
</Configuration>
<Data>
<Measurement timestep="0">
<Force>1.078</Force>
</Measurement>
...
</Data>
</Sensor>

Environmental Contact sensor

The MMM::EnvironmentalContactSensor includes contacts of model segments to subjects, objects or the environment over the period of a motion. A specified segment contact in a measurement is valid till the next measurement. In addition his contact type can be further described by a string.
Here is an example:

<Sensor type="EnvironmentalContact">
<Configuration/>
<Data>
<Measurement timestep="0">
<Contact segment="RAsegment_joint">plain</Contact>
<Contact segment="LAsegment_joint">plain</Contact>
...
</Measurement>
<Measurement timestep="0.1"/>
<Measurement timestep="0.7">
<Contact segment="LAsegment_joint">plain</Contact>
...
</Measurement>
...
</Data>
</Sensor>
KoroiBot Logo WALK-MAN Logo Xperience Logo SecondHands Logo TimeStorm Logo I-SUPPORT Logo
PACO-PLUS Logo SFB-588 Logo SPP1527 Logo