Overview of available command line tools in MMMTools which can be used with MMM Data Format. These tools can be found in MMMTools/build/bin. Some projects (marked with *) also contain corresponding graphical user interface plugins which are included in the MMMViewer.
See [Legacy] MMM Tools page for an overview of available tools for legacydataformat.
See MMMLegacyMotionConverter to convert these legacy motions to the currently used dataformat.
dae2mmm
Convertes a .dae robot file created with RobotEditor to a Virtual Robot xml file, which can then be used in the MMM framework
Executing dae2mmm:
./dae2mmm roboteditor_model.dae
MMMC3DConverter*
The MMMC3DConverter takes a motion from a c3d data format file and creates a corresponding motion in the MMM Data Format containing only the motion capture marker positions in the MoCapMarkerSensor and no model. See MMM::MotionReaderC3D.
The following commandline options are available:
- ––inputMotion <motionFileName.c3d>
Motion data in c3d specification.
- ––motionName <motionName>
Name of the new motion. This option will also take a list of marker prefix tags, separated with ';' if matched with corresponding marker prefixes (same size) in the markerPrefix option.
- ––markerPrefix <tomarkerPrefix>
(Optional) Marker prefix to specify which motion in the c3d file shall be converted. Can be empty if the c3d file contains a single motion with no marker prefix. This option will also take a list of marker prefix tags, separated with ';' if matched with corresponding motion names (same size) in the motionName option.
- ––sensorName <sensorName>
(Optional) Name for the created MoCapMarkerSensor.
- ––sensorDescription <sensorDescription>
(Optional) Description for the created MoCapMarkerSensor.
- ––outputMotion <motionname.xml>
(Optional) output motion path and filename. Otherwise the filename will be the same.
MMMMotionConverter*
The MMMConverter can be used to apply different converters in order to convert motions from one model to another. Both conversions are supported (Recording of human motion -> MMM and MMM -> robot).
A more detailled description of the underlying process can be found here.
The following commandline options are available:
- ––inputMotion <motion.xml>
Motion data in MMM Data Format containing either the MoCapMarkerSensor or the KinematicSensor and ModelPoseSensor.
- ––motionName <motionName>
(Optional) Name of the motion in the file to convert. Empty/not found name will result in taking the first motion in the file for the convertation process.
- ––sensorPlugins <pluginfolders>
(Optional) directories (not "MMMCore/build/sensorPluginLibs") containing additional sensor plugins seperated with ';'.
- ––converterPlugins <pluginfolders>
(Optional) directories (not "MMMCore/build/converterPluginLibs") containing additional converter plugins seperated with ';'.
- ––converterName <converterName>
(Optional) Tag to specifiy the converter to use from the imported plugins if not NloptConverter.
- ––converterConfigFile <converterConfigFile.xml>
Path to a specific Converter Config File.
- ––outputModelFile <model.xml>
Output model file that should be used for conversion. (Could be an MMM model for Vicon->MMM converters or a robot model for MMM->Robot converters)
- ––outputModelProcessor <modelprocessor>
(Optional) Tag that specifies the ModelProcessor that converts the output model before applying the converter.
- ––outputModelProcessorConfigFile <modelprocessor.xml>
(Optional) Config file for the output Model Processor.
- ––outputMotion <motionname.xml>
(Optional) output motion path and filename. Otherwise the filename will be 'MMMConverter_output.xml'.
MMMDataGloveConverter*
Using recorded data glove data, a Kinematic sensor containing joint angle values for a hand is created and added to the corresponding motion. Therefore a special configuration file is needed to map the data to the mmm reference (or robot) model. An example configuration file for the right hand of the CyberGlove can be found at MMMTools/data/DataGloveConverterRightHandWithoutDIP2MMMConfig.xml.
The following commandline options are available:
- ––inputMotion <motion.xml>
Motion data in MMM Data Format containing a model. Optional if ––mode test is used.
- ––motionName <motionName>
(Optional) Name of the motion in the file to convert. Empty/not found name will result in taking the first motion in the file for the convertation process.
- ––mode test
(Optional) Can be used to test the given data, if no applicable input motion file is available.
- ––timestepDelta <float>
(Optional) Timestep delta to the given motion data. Equals 0.0 if empty.
- ––sensorPlugins <pluginfolders>
(Optional) directories (not "MMMCore/build/sensorPluginLibs") containing additional sensor plugins seperated with ';'.
- ––config <Config.xml>
Configuration file for converter, mostly specifing the mapping from data file to model of the motion. An example can be found at MMMTools/data/DataGloveConverterRightHandWithoutDIP2MMMConfig.xml.
- ––data <Data.*>
Data file of a specific task performed via a data glove. The file needs to contain rows of joint angles for every different timestep.
- ––outputMotion <motionname.xml>
(Optional) output motion path and filename. Otherwise it will be saved as MMMDataGloveConverter_output.xml.
MMMJoinMotions
MMMJoinMotions is used to two join two motions each from a different MMM data format file. See Join motions.
The joined motion will replace the corresponding motion in the first file. The files can contain multiple motions, but only one can be joined in an execution and the motions need to be specified by their name.
The following commandline options are available:
- ––inputMotion1 <motion1.xml>
Motion data in MMM specification.
- ––inputMotion2 <motion2.xml>
Motion data in MMM specification.
- ––motionName1 <motionname1>
(Optional) name of the motion to join. This is needed when <motion1.xml> contains multiple motions.
- ––motionName2 <motionname2>
(Optional) name of the motion to join. This is needed when <motion2.xml> contains multiple motions.
- ––sensorPlugins <pluginfolders>
(Optional) directories (not "MMMCore/build/sensorPluginLibs") containing additional sensor plugins seperated with ';'.
- ––outputMotion <motionname.xml>
(Optional) output motion path and filename. Otherwise replaces <motion1.xml>.
MMMIMUConverter/MMMForceXDConverter*
These converters can be used to convert various formats of saved acceleration or force sensor data on subjects or objects during a performed motion to the mmm motion file.
The following commandline options are available:
- ––inputMotion <motion.xml>
Motion data in MMM specification.
- ––motionName <motionname>
(Optional) name of the motion to join. This is needed when the motion file contains multiple motions.
- ––dataFile <data.*>
File containing the acceleration/force data.
- ––sensorConfigurationFile <sensorConfigurationFile.xml>
XML-File containing the segment name and an transformation matrix. Here is an example: <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>
- ––ignoreFirstLine "true"
(Optional) If the first line of the data file shall be ignored.
- ––splitMeasurements <char>
(Optional) First split of the data file to differentiate between timesteps. If empty the file will be split by newline ("\n")
- ––splitMeasurementsByRegex <regex>
(Semi-Optional) Second split of the data file by given regex. Either splitMeasurementsByRegex or splitMeasurementsByDelimiter need to be used.
- ––splitMeasurementsByDelimiter <char>
(Semi-Optional) Second split of the data file by given delimiter. Either splitMeasurementsByRegex or splitMeasurementsByDelimiter need to be used.
- ––indexes <indexes>
Index for timestep (first index) and specifics sensor data (e.g. acceleration_x followed by acceleration_y ...) seperated by ';'.
- ––timestamp <timestamp_format>
(Optional) Changing of timestamp format not yet implemented. Just include any parameter to use the following timestamp format H:M:S.MS
- ––sensorName <sensorName>
(Optional) Name for the created sensor.
- ––sensorDescription <sensorDescription>
(Optional) Description for the created sensor.
- ––outputMotion <motionname.xml>
(Optional) output motion path and filename. Otherwise saved as <motion.xml>
- ––sensorPlugins <pluginfolders>
(Optional) directories (not "MMMCore/build/sensorPluginLibs") containing additional sensor plugins seperated with ';'.
- ––timestepDelta <delta>
(Optional) Floating point offset in seconds to set the specific time delta between the sensor data recording and the motion's recording.
MMMPlot*
MMMPlot can be used to plot motion data over time, e.g. joint angles. This standalone version only features loading motions in MMM2.0 specifictation while the plugin for the MMMViewer offers multiple import motion options and also visualizing the motion at specific timesteps, see MMMPlot
The following commandline options are available:
- ––inputMotions <motion.xml>
(Optional) Motions in MMM specification. Multiple motions split by ';' possible.
- ––sensorPlugins <pluginfolders>
(Optional) directories (not "MMMCore/build/sensorPluginLibs") containing additional sensor plugins seperated with ';'.
- ––plotPlugins <pluginfolders>
(Optional) directories (not "MMMTools/build/sensorPlotPluginLibs") containing additional sensor plugins seperated with ';'.
MMMSynchronize*
MMMSynchronize is used to synchronize the sensor measurement data of all sensors on the same specific time intervall via interpolation, see Synchronize sensor data in MotionTools.
The following commandline options are available:
- ––inputMotion <motion.xml>
Motion data in MMM specification.
- ––timefrequency <float>
Intervall for synchronisation. E.g. for timefrequency 0.1 all sensors' measurement of the given motion will contain timestep 0.0, 0.1, 0.2, 0.3, ... .
- ––sensorPlugins <pluginfolders>
(Optional) directories (not "MMMCore/build/sensorPluginLibs") containing additional sensor plugins seperated with ';'.
- ––outputMotion <motionname.xml>
(Optional) output motion path and filename. Otherwise replaces <motion.xml>.
MMMWholeBodyDynamicCalculator*
The MMMWholeBodyDynamicCalculator takes a motion file in MMM specification and calculates the angular momentum and center of mass of every contained motion from model pose and kinematics if the corresponding sensors exist. The calculated data is added as additional WholeBodyDynamicSensor.
The following commandline options are available:
- ––inputMotion <motion.xml>
Motion data in MMM specification.
- ––sensorPlugins <pluginfolders>
(Optional) directories (not "MMMCore/build/sensorPluginLibs") containing additional sensor plugins seperated with ';'.
- ––outputMotion <motionname.xml>
(Optional) output motion path and filename. Otherwise replaces <motion.xml>.
MMMLegacyMotionConverter*
The MMMLegacyMotionConverter can be used to convert all motions' kinematic and modelpose (non extended datatypes) from [Legacy] MMM Data Format to MMM Data Format.
The following commandline options are available:
- ––inputMotion <legacymotion.xml>
The motion data in Legacy MMM specification.
- ––outputMotion <motionname.xml>
(Optional) output motion path and filename. Otherwise the motion is saved as ***_v2.xml.