MoMP - Modular Motion Processor
What is MoMP?
MoMP is a gizmo/framework designed to process motion data delivered by - for example - a wiimote.
It features a modular design with makes it easy to write new interfaces for accelerometers
(so called motion receivers) and new modules for motiondata processing and interpretation.
A gesture recognition module-chain consiting of a smoother, a direction-equivalence-filter and
a hmm module is already implemented.
MoMP ist Open Source Software (released under LGPLv3) and hosted by sourceforce.net
Tell me more!
MoMP is a modular, easy extensible sofware written in C++ and aimed at developers. It is a hybrid
of framework and actual application for motion data processing (the source of the motion data can -
for example - be a wiimote or SUN Spot).
The design is modular and thought to be extensible:
- The process of motion receiving is done in distinct classes. At the moment MoMP features
motion receivers using wiiuse,
CWiid (whilst not working somehow) and random data
input for testing purposes
- The motion data is passed to a motion observer which will then process it. Already
implemented is a module-chain consisting of several process modules and one output module.
- The process modules get frames containing misc data as input and generate frames as
output. Current modules are a module to smooth the accelerometer data, a module to filter
vectors which point to similar directions (this is to reduce data for the next module) and a
module implementing a discrete left to right hidden markov model.
- Each module can have a visualzer to visualize and control the module. The suggested way is
to use gtkmm, but you can choose freely here. Want to use NCurses or OpenGL? Just do it
Although there exist solutions for gesture recognition using accelerometer devices (one of them being
AGR), MoMPs approach is more general. The disjunction of motion
receiving and processing makes it easy to adapt MoMP to your own needs. For example, if you want to use
a different device to collect motion data, you just have to write one class and that's it. If you want to
use neural nets instead of hmms for the gesture recognition, you will need to write one module and the
work is done.
Why not call it MMP?
Because the name mmp is already taken at sourceforge - see for yourself.
Also, momp sound funny.
Requirement
Litte is known about this, but you need at least:
Build Tools
Libraries:
Hardware:
Technically, you don't really need anything for this - you could use the random-motion-receiver as input,
but then you wont have any control over the motion which will be processed. Anyway, this might help:
- a bluetooth dongle
- a wiimote
Help
Not much here yet. In the meantime, check the doxygen-generated documentation:
here.
Download
No Release yet, but you can get the sourcecode via SVN.
Look here for more information.