Skip to content

Roadmap

Alzathar edited this page Feb 25, 2017 · 2 revisions

Milestones

The following list presents different milestones planned for OpenMA. This gives you a good picture of where the focus will be put during development. You can see the advancements in the Milestones tab. Any addition can be requested by submitting an issue or a pull request at any time.

Any contribution is welcomed to help in the development of each milestone!

v0.1

Code name: Knock knock, I am ready for a first release

  • Generic C++ data structure to store the content of a movement acquisition:
    • Trial
    • TimeSequences (e.g. marker, analog, event, force, pose)
    • Hardware (e.g. force plate)
  • Functions to read/write from/to a C3D file
  • Force plate implementation and management (types 2, 3, 4, 5)
    • Wrench computation at different location (e.g COP, PWA)
    • Soft reset integration
  • CMake script to integrate OpenMA in a third party product
  • Documentation
    • Build guide
    • General concepts
      • Data stored for movement acquisitions
    • C++ reference
    • Contributors
    • Benchmarks and validation

v0.2

Code name: Let simplify third party integration

  • Dynamic plug-in mechanism to add new file formats
  • Dynamic plug-in mechanism to add new hardwares
  • Documentation
    • Plug-in loading mechanism
    • Tutorial to implement a plug-in

v0.3

Code name: OpenMA + SWIG = Python bindings

  • Implement wrapping functions and classes to used OpenMA within Python
    • Design an API close to pure Python library (e.g. no iterators, etc.)
    • Focus on native Python types (e.g. list, array, NumPy)
  • Documentation
    • Build guide
    • Python reference
    • Python tutorials to retrieve and modify data
  • Binary
    • OpenMA for Python 2.7 32/64-bit (Linux, MacOS, Windows)
    • OpenMA for Python 3.x 32/64-bit (Linux, MacOS, Windows)

v0.4

Code name: OpenMA + SWIG = Matlab bindings

  • Implement wrapping functions and classes to used OpenMA within Matlab
    • Use the same API in Matlab than the one designed in Python
    • Focus on native Matlab types (e.g. Matrix, Cell)
    • Take into account the 1-based index
  • Documentation
    • Build guide
    • Matlab reference
    • Matlab tutorials to retrieve and modify data
  • Binary
    • OpenMA for Matlab R2008b and greater 32/64-bit (MacOS, Windows)

v0.5

Code name: I can do like Biomechanical ToolKit

  • Merge trials
  • Concat trials
  • Plugin for the Motion Analysis Corp. formats: ANB, ANC, CAL, TRB, TRC, XLS
    • Improve the ASCII parsers to be more robust (see issue #59)
    • Improve the CAL parser as its content can be more general
  • Plugin for the Ascension Technology Corp. format: EMF
  • Plugin for the AMTI Inc. format: BSF
  • Plugin for the BTS Bioengineering formats: ANG, EMG, GR*, MOM, PWR, RAH, RAW, RIC, RIF, TDF
    • Improve the TDF parser to support analog channels with different sample frequency.
  • Plugin for the Content Inc. format: CLB
  • Plugin for the Delsys Inc. format: EMG
  • Plugin for the Charnwood Dynamics Ltd (Codamotion) formats: MDF, XMOVE
  • Bindings
    • Update of the Python and Matlab bindings
  • Documentation
    • Supported formats
    • Difference between merge and concat operations

v0.6

Code name: OpenMA + SWIG = R bindings

  • Implement wrapping functions and classes to used OpenMA within Matlab
    • Use the same API in R than the one designed in other bindings
    • Focus on native R types (e.g. Matrix, List)
    • Take into account the 1-based index
  • Documentation
    • R reference
    • R tutorials
  • Binary
    • OpenMA for R 3.3.2 greater 32/64-bit (Linux, MacOS, Windows)

v0.7

Code name: Let's introduce raw data processing

  • New 'processing' module
    • Trim/cut/resize operations on trial.
    • Reorientation of a trial (e.g modify the vertical axis)
    • Butterworth filter on TimeSequence objects
    • GCV filter on TimeSequence objects
    • Analog data processing (e.g rectification, envelope)
    • Dynamic plug-in mechanism to add new algorithms
  • Bindings
    • Update of the bindings to access the content of the 'processing' module
  • Documentation
    • Tutorials associated with data processing

v0.8

Code name: Did you say biomechanical models?

  • New 'body' module
    • Create your own model
    • Adapt existing model definitions
    • Predefined models
      • Plug-in gait and these variants (KAD and KADMed)
      • Lyon Whole Body Model (Dumas et al.)
    • Pose estimator (non-optimal, least-square)
    • Inverse dynamics computation
    • Body segment inertial parameters estimation
      • Dempster
      • Dumas, McConville, and Young
    • Extract joint kinematics and kinetics
    • Dynamic plug-in mechanism to add new models and components
  • Bindings
    • Update of the bindings to access the content of the 'body' module
  • Documentation
    • Concepts behind the 'body' module
      • Model template and these components (e.g. Segments, Joints, Probes)
      • Calibration steps
      • Fitting (reconstruction) step
    • Tutorials

v0.9

Code name: I detect, you detect, we detect

  • New 'analysis' module
    • C++ structure to represent a task cycle
    • Data interpolation
    • Task event detection algorithms
      • Gait event detection: Zeni et al. (2007)
      • Gait event detection: Bruening and ridge (2014)
    • Outcome scores (e.g. GPS, GDI)

v1.0

Code name: What is this Multibody Kinematic Optimization?

  • Pose estimator based on joint constraint
Clone this wiki locally