0% found this document useful (0 votes)
30 views8 pages

Biomechanical ToolKit Open-Source Framework To

The Biomechanical ToolKit (BTK) is an open-source framework designed to visualize and process biomechanical data from motion capture systems using standard and proprietary file formats, particularly the C3D format. It provides a C++ API, bindings for high-level languages like Matlab, Octave, and Python, and a standalone application called Mokka, all of which are cross-platform and accessible on major operating systems. The BTK aims to facilitate data sharing and improve analysis within the biomechanics community by offering cost-effective tools for handling motion analysis data.

Uploaded by

1mail4sourabh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views8 pages

Biomechanical ToolKit Open-Source Framework To

The Biomechanical ToolKit (BTK) is an open-source framework designed to visualize and process biomechanical data from motion capture systems using standard and proprietary file formats, particularly the C3D format. It provides a C++ API, bindings for high-level languages like Matlab, Octave, and Python, and a standalone application called Mokka, all of which are cross-platform and accessible on major operating systems. The BTK aims to facilitate data sharing and improve analysis within the biomechanics community by offering cost-effective tools for handling motion analysis data.

Uploaded by

1mail4sourabh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 1 1 4 ( 2 0 1 4 ) 80–87

journal homepage: [Link]/journals/cmpb

Biomechanical ToolKit: Open-source framework to


visualize and process biomechanical data

Arnaud Barre a , Stéphane Armand b,∗


a Laboratory of Movement Analysis and Measurement (LMAM), EPFL, Lausanne, Switzerland
b Willy Taillard Laboratory of Kinesiology, Geneva University Hospitals and Geneva University, Geneva, Switzerland

a r t i c l e i n f o a b s t r a c t

Article history: C3D file format is widely used in the biomechanical field by companies and laboratories to
Received 2 July 2013 store motion capture systems data. However, few software packages can visualize and mod-
Received in revised form ify the integrality of the data in the C3D file. Our objective was to develop an open-source
10 January 2014 and multi-platform framework to read, write, modify and visualize data from any motion
Accepted 13 January 2014 analysis systems using standard (C3D) and proprietary file formats (used by many compa-
nies producing motion capture systems). The Biomechanical ToolKit (BTK) was developed
Keywords: to provide cost-effective and efficient tools for the biomechanical community to easily deal
Open-source with motion analysis data. A large panel of operations is available to read, modify and pro-
C3D cess data through C++ API, bindings for high-level languages (Matlab, Octave, and Python),
User–computer interface and standalone application (Mokka). All these tools are open-source and cross-platform and
Motion capture systems run on all major operating systems (Windows, Linux, MacOS X).
Biomechanics © 2014 Elsevier Ireland Ltd. All rights reserved.

of applications based on this type of data, it was necessary


1. Introduction to standardize the data storage of all the raw data as well as
other information required to interpret it. In the 1980s, the
Motion capture systems produce a large variety of data (3D
company Motion Lab Systems (Baton Rouge, USA) proposed to
marker trajectory, angular speed, linear acceleration) that is
use a unique file format named C3D [30]. This file format can
used in life sciences, animation, or engineering domains. For
embed raw coordinates of 3D points, raw analog data, system
the biomechanical community, these data are often coupled
configuration (EMG channel, force plate, etc.), trial information
and synchronized with other devices such as force-plates and
(sample rate, date, filename, etc.), subject information (name,
EMG systems. These data are the basis for most computations
age, physical parameter), and computed data (angle, moment,
and analysis in biomechanics [1,15,25,34]. It is used to com-
power, EMG envelope, etc.).
pute kinematic and kinetic data during different movements
Whereas the C3D file format is a must in biomechanics due
or to analyze muscle activity in different applications such
to its storage facilities, very few companies use it as their main
as clinical gait analysis (a standardized clinical examination
file format, while others companies use their own proprietary
that involves measurement of a patient’s gait pattern in order
file formats. This point limits greatly the potential to share
to identify and understand gait deviations, with the final aim
data between laboratories that have different acquisition sys-
of supporting therapeutic decisions) (CGA) [28] and muscu-
tems. Nevertheless, some companies propose to export data
loskeletal modeling [14]. To support sharing and development
into the C3D file format. However, the C3D file cannot be read


Corresponding author at: Willy Taillard Laboratory of Kinesiology, University Hospitals of Geneva, 4 Rue Gabrielle-Perret-Gentil, 1211
Geneva 14, Switzerland. Tel.: +41 022 37 27 827.
E-mail address: [Link]@[Link] (S. Armand).
0169-2607/$ – see front matter © 2014 Elsevier Ireland Ltd. All rights reserved.
[Link]
c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 1 1 4 ( 2 0 1 4 ) 80–87 81

afterward by their software. This restricts the potential for (COM). Moreover, accessing the data configuration (markers’
sharing or reusing data. Other companies propose to export label, analog’s offset, events’ time, etc.) requires knowledge of
data into readable ASCII file formats (e.g., CSV, TXT, DAT) but the exact internal structure of the C3D format. Other Matlab
the conversion to a C3D file using an external software applica- (Mathworks, Natick, USA) and Labview (National Instruments,
tion is then more difficult due to the large possibilities in the Austin, USA) packages exist but they rely on the C3Dserver
storage structures of the ASCII file formats. Another limita- SDK. No SDK was found for the open-source programming
tion is the development of software packages with specialized languages Octave [21] and Python [24], which are today widely
data processing. Companies often propose in their software used in scientific applications [38].
the possibility to compute joint kinematics and kinetics based Although the standardized C3D file format already exists
on specific biomechanical models [9,16]. However, they could in the biomechanics field, the software solutions associated
not integrate the last published biomechanical developments with this file format and its availability for the biomechan-
and many scientists in biomechanics prefer to use the raw ical community needs to be improved. This is particularly
data and their own models and computation methods. Hav- true for facilitating data exchange between laboratories, and
ing easy and fast access to raw data from any file format is to bridge the gap between motion analysis software and sci-
primordial for the biomechanical community where the C3D entific software. Therefore, our objective was to develop and
file format will be used to share contents. disseminate free, open-source, and cross-platform framework
Furthermore, the need to standardize and visualize data able to read, to visualize and to process biomechanical data
has already been recognized in biomechanics [23]. In the based on standard and proprietary file formats.
field of the musculo-skeletal modeling, open-source and
multi-platform software applications are used (OpenSim [10],
OpenMaf [34], and NMS Physiome [32]). They give the opportu- 2. Methods
nity for the community to work on sharable musculo-skeletal
models but also on the underlying algorithms which can 2.1. Framework presentation
be improved in a standardized way. Regarding CGA, a web-
based repository has been proposed to facilitate the sharing The general picture of the framework is presented in Fig. 1.
of gait data [33]. This web-based software provides the abil- C++ is chosen as the programming language for the develop-
ity to upload C3D file onto a remote server and compare ment due the possibility of directly generating machine code
gait patterns with other uploaded data. However, for ethical compared to other languages such as Java, C#, or Python which
reasons, not everyone is able to transfer and share patients’ generate byte code executed by a virtual machine (i.e., inter-
data. A standalone application would be more appropriate, but preter). The C language was not taken into consideration as
no open-source project related to CGA proposes such a tool. the authors wanted an object-oriented language to facilitate
Numerous advantages can be identified in a standardized and the writing of the application programming interface (API).
open-source approach [12]: quality assurance, sharing data, The project relies on free and open-source libraries or soft-
collaborative research, education, clinical consultation and ware packages selected for their performance but also for their
improvement of data analysis. This would be beneficial for popularity in the open-source community. Internal data stor-
the community around CGA. age and matrix computations use the Eigen library [13] which
Some software packages, independent of acquisition sys- is known as the fastest free matrix library. The compilation
tems, can visualize and process the C3D file format. These process is controlled by CMake [18] which is able to generate
packages can be split in two categories: (1) standalone appli- makefiles for most of the compilers. The development process
cations for the end user and; (2) software development kit relies on hundreds of unit tests implemented with CxxTest [8]
(SDK) for programmers. For the first category, three products and the code quality is tested using the tool Cppcheck [7]. Doc-
are known to display or process the content of a C3D file. The umentation of the code can be obtained using Doxygen [11].
Windows applications MLSviewer (Motion Lab Systems, Baton All the source code uses a revision control system to maintain
Rouge, USA) [20] and C3Deditor (Motion Lab Systems, Baton historical versions of files. Source code, user instructions, and
Rouge, USA) [5] can display the structure of a C3D file and tutorials are available online [2].
plot data into a 2D chart. The latter has also signal-processing As the biomechanical community is separated into pro-
features (e.g., low/high/band filters and gap filling). However, grammers and end-users, the project is separated in three
without the possibility to display marker trajectories and force parts with; (1) BTK Core (i.e., a C++ library), (2) BTK Bindings
platform data into a 3D environment, a full analysis of biome- (i.e., functions for scientific programming languages) and, (3)
chanical data would be lacking. Another standalone Windows Mokka (i.e., standalone application with dedicated user inter-
application (Visual3D, C-Motion, Germantown, USA) [35] offers face).
the possibility to visualize and modify the integrality of the
C3D file. However, this application goes beyond the require- 2.1.1. BTK core
ments and the budgets of many people or laboratories, who The core of the project is represented by a C++ library which
only want to visualize and/or process raw signals. For the contains all the classes to represent internally an acquisi-
second category, one SDK was found (C3Dserver, Motion Lab tion, to read and write files and to do processing on loaded
Systems, Baton Rouge, USA) [6] to give access to C3D content data. An acquisition is represented internally as a collection
from several programming languages (C++, C#, Excel, Matab, of points, analog channels, events and metadata. The points
Labview). However, this SDK works only on Microsoft Windows store 3D time series mostly to represent marker trajectories,
32-bit due to the use of the Microsoft component object model while the analog channels stores 1D times series. The events
82 c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 1 1 4 ( 2 0 1 4 ) 80–87

Fig. 1 – General representation of the framework.

correspond to a significant time in the acquisition (e.g., foot an acquisition is wrapped as a Matlab handle. It is then
strike, toe off). The metadata contain hierarchical information passed to other MEX files which will extract (set) internal
that cannot be stored as time series or events (e.g., force plat- data as (from) native Matlab matrices or structures. The bind-
form location, subject’s label). The data processing is realized ing for Octave uses the same source code than the Matlab
by building a pipeline composed of filters able to transform binding as the application contains an interface to compile
the data to reach the desired output. The general idea under MEX files. On the top of these bindings, an emulation of
these operations is to construct a pipeline with a set of blocks C3Dserver was also implemented and validated to run it on
able to process acquisition’s data. Each block is linked together any operating system (Microsoft Windows, MacOS X, Linux)
by the content of the acquisition or a subset. The developer and architecture (32/64-bit). The Python binding is realized
does not need to manage data inside the pipeline as this is with the SWIG compiler interface [31] which generates the
done automatically. When the pipeline is constructed, the user wrapping code to access the underlying C/C++ code and to
only needs to execute it and every out-of-date filter will be map C++ data type to native Python data type. Compared to
recursively processed. This gives many possibilities when a other tools known to create Python binding from C++ code
large set of data needs to be processed automatically. The file (i.e., Boost [4] and SIP [29]), SWIG is also capable to cre-
readers and writers are special filters to load or save the inter- ate binding for other programming languages like Java and
nal representation of an acquisition. Except for the C3D file C#.
format implemented from its open specifications, the propri-
etary file formats are implemented in different ways. Some of 2.1.3. Mokka
them are obtained from reverse engineering, others translated Finally, for scientists with non-programming skills or for peo-
from Matlab code given by researchers and companies, others ple who would like to visualize 3D or 2D data in a dedicated
implemented using documentation given by companies, or by and adapted user interface, the software Mokka (MOtion Kine-
wrapping the code of the open-source library Open3DMotion matic & Kinetic Analyzer) is also proposed as an open-source
[22] for the file formats of the Codamotion company (Charn- and cross-platform standalone application. The visualization
wood Dynamics Ltd., Leicestershire, UK). of 3D contents and 2D charts is based on the VTK library [26]
which relies on OpenGL: the industry standard for high perfor-
2.1.2. BTK bindings mance graphics. The development of the user interface is real-
Three bindings are proposed for scientific applications the ized with the Qt framework [3] to provide cross-platform and
most common used in the scientific community (Matlab, standalone applications. Mokka relies on BTKCore to provide
Octave and Python) [38]. The Matlab binding is implemented cross-platform and standalone applications. Mokka permits
using the Matlab External Interface [19] to create Matlab exe- to load/save/process acquisitions’ data. The user interface is
cutable files (MEX files). Only the C++ object representing designed to be able (1) to reach all available information stored
c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 1 1 4 ( 2 0 1 4 ) 80–87 83

Table 1 – Supported file format with read (R) and/or write (W) operations.
Format Company owner R/W Implementation
ANB Motion Analysis Corp. R/W Reverse engineering
ANC Motion Analysis Corp. R/W Reverse engineering
ANG BTS Bioengineering R Based on Matlab script furnished by the company
BSF AMTI Inc. R From documentation furnished by the company
C3D Public domain R/W From online specifications
CAL Motion Analysis Corp. R/W Reverse engineering
CLB Contec Inc. R Reverse engineering
DAT Kistler R Reverse engineering
EMF Ascension Technology R Reverse engineering
EMG Delsys Inc. R Based on Matlab script furnished by the company
EMG BTS Bioengineering R Based on Matlab script furnished by a contributor
GR* BTS Bioengineering R Based on Matlab script furnished by a contributor
MOM BTS Bioengineering R Based on Matlab script furnished by a contributor
MDF Charnwood Dynamics Ltd. R Using the open-source library Open3DMotion
PWR BTS Bioengineering R Based on Matlab script furnished by a contributor
RAH BTS Bioengineering R Based on Matlab script furnished by a contributor
RAW BTS Bioengineering R Based on Matlab script furnished by a contributor
RIC BTS Bioengineering R Based on Matlab script furnished by a contributor
RIF BTS Bioengineering R Based on Matlab script furnished by a contributor
TDF BTS Bioengineering R Based on Matlab script furnished by the company
TRB Motion Analysis Corp. R Reverse engineering
TRC Motion Analysis Corp. R/W Reverse engineering
XLS Motion Analysis Corp. R Reverse engineering
XMOVE Charnwood Dynamics Ltd. R Using the open-source library Open3DMotion

in the loaded acquisition file(s); (2) to manipulate easily time 3.2. Matlab and octave bindings
series data; (3) undo/redo all the data processing.
More than 100 high level functions are implemented to access
2.2. Framework performance to the acquisition data or to transform then. Each part of an
acquisition (points, analog channels, events, metadata) can be
To test the performance of the framework and particularly the accessed and modified. Others functions gave a simple way to
implementation of the C3D file format, the emulation of the merge proprietary file formats and create a C3D file (Fig. 2).
C3Dserver SDK is tested against the original (version 1.144.0)
in its free and commercial version. The difference between 3.3. Python bindings
both versions is the introduction of a delay in each command
executed by the free version of C3Dserver. The tests are per- All the C++ classes are wrapped in Python namespace ‘btk’ and
formed on Matlab R2009a (Windows XP SP3, Intel Core 2 Quad use the same API. Hence the pipeline design implemented in
CPU Q4900 @ 2.66 GHz 2.67 GHz, 3.24 GB of RAM – Physical C++ is also available within Python (Fig. 3). Python scientific
Address Extension). The benchmark is composed of 8 tests, packages (like SciPy [27]) can be applied directly onto the data
each repeated 10 times and averaged: extracted from an acquisition (Fig. 4).

1. Open C3D File 3.4. Mokka


2. Access C3D Header data
3. Access C3D Event data Within Mokka, acquisition data can be easily visualized with
4. Access C3D Parameter data different views: 3D view, chart (analog/point), multimedia
5. Access C3D Point values (GetPointData) (video) and console (Fig. 5). The time bar gives direct access
6. Access C3D Point range (GetPointDataEx) to the visualization of a specific frame. It is also possible
7. Access C3D Analog values (GetAnalogData) to create or manipulate acquisition events (heel strike, toe
8. Access C3D Analog range (GetAnalogDataEx) off, etc.). Numerous options are available such as multiple
selections, expand/collapse charts, modify appearance of the
The C3D file tested in this benchmark contains 26 points
with 450 frames and 16 analog channels with 1800 frames. % Matlab code
hTRB = btkReadAcquisition('[Link]');
hANB = btkReadAcquisition('[Link]');
3. Results hCAL = btkReadAcquisition('[Link]');
hXLS = btkReadAcquisition('[Link]');
h = btkMergeAcquisitions(hTRB, hANB, hCAL, hXLS);
3.1. BTK core
btkWriteAcquisition(h, 'Gait.c3d');

Currently, more than 20 files format coming from the most Fig. 2 – Script to load and merge motion analysis data in
used motion analysis systems are implemented (Table 1). BTK using the Matlab/Octave binding.
84 c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 1 1 4 ( 2 0 1 4 ) 80–87

Fig. 4 – Example of the use of Python binding to filter an


analog channel.

Fig. 3 – Script to load and merge motion analysis data in


BTK using the Python binding.

charts, modify the horizontal unit axis of the charts (frame, (EMG) channels [17]. All these operations are non-destructive
time, cycle), modify/add events, save configurations, etc. and can be reverted with the possibility to return to the
At this time, Mokka integrates data processing for points, original data. There is also the possibility to create a new
analog signals, and events. It is possible, for example, to filter, analog channel each time you post-process EMG signals to
rectify, scale, remove offset, or compute envelop for analog see the effect of each step (Fig. 6).

Fig. 5 – Extraction and visualization of motion analysis data in Mokka.


c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 1 1 4 ( 2 0 1 4 ) 80–87 85

Fig. 6 – Data processing on analog channels. The example shows each steps to filter, rectify, scale, and compute envelop an
EMG channel.

Table 2 – Result of the benchmarks against the free version of C3Dserver.


Operation C3Dserver BTK Ratio
Time (s) Time (s)
Open C3D File 0.005 0.009 0.568
Access C3D Header data 0.019 0.004 4.558
Access C3D Event data 0.021 0.002 12.416
Access C3D Parameter data 1.224 0.294 4.167
Access C3D Point values (GetPointData) 2.357 0.133 17.761
Access C3D Point range (GetPointDataEx) 0.590 0.048 12.178
Access C3D Analog values (GetAnalogData) 2.359 0.698 3.382
Access C3D Analog range (GetAnalogDataEx) 0.593 0.114 5.221

3.5. Framework performance close to the commercial version of C3Dserver. The more
important differences are the accessing of the parameter
The result of the benchmarks (cf. Tables 2 and 3) shows data (C3Dserver: 0.009 s; BTK: 0.293 s), the accessing of data’s
that the implementation of the framework gives access times values one by one for the points (CD3server: 0.021 s; BTK:

Table 3 – Result of the benchmarks against the commercial version of C3Dserver.


Operation C3Dserver BTK Ratio
Time (s) Time (s)
Open C3D File 0.004 0.008 0.430
Access C3D Header data 0 0.001 0.162
Access C3D Event data 0 0.001 0.233
Access C3D Parameter data 0.009 0.293 0.031
Access C3D Point values (GetPointData) 0.021 0.132 0.161
Access C3D Point range (GetPointDataEx) 0.022 0.049 0.452
Access C3D Analog values (GetAnalogData) 0.028 0.696 0.041
Access C3D Analog range (GetAnalogDataEx) 0.080 0.112 0.717
86 c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 1 1 4 ( 2 0 1 4 ) 80–87

0.293 s) and the analog channels (C3Dserver: 0.028s; BTK: The framework is usable on all major operating sys-
0.696s). On the other hand, the same tests realized with tems (Windows, Linux, MacOS X), distributed as a standalone
the free version of C3Dserver shows that BTK is 3–12 times application or for scientific programming languages: Matlab,
faster. Octave, and Python. Finally, the project has been released
under the New BSD license, which gives the possibility to
any person, laboratory or company to use the code without
4. Discussion the need to neither acknowledge the authors nor pay fees or
licenses.
With this work we have presented a new open-source and
cross-platform framework to visualize and process biome-
Conflict of interest statement
chanical data in a cost-effective and efficient manner useable
as a standalone application or integrated in scientific applica-
We do not have any financial or personal relationships with
tions. Commercial tools already exist as standalone applica-
other individuals or organizations that could inappropriately
tion (Visual3D) or bindings for other languages (C3DServer) to
influence our article.
process C3D files. However, these tools are expensive or need
to know exactly the internal structure of the C3D file format
to access to data configuration. The goal of the Biomechanical Acknowledgements
ToolKit was to provide a layer between data acquisition and
data analysis. It relies directly on the content of an acquisi- We acknowledge all the persons who contributed to this
tion and not on the internal storage of a file format. This gives project: Alice Bonnefoy-Mazure, Raphael Dumas, Fabien
great flexibility to add new acquisition file format or to create Leboeuf, Mathieu Lempereur, Florent Moissonet, Didier
new processing tools. Other open-source projects created with Pradon, Vincent Pomero, Patrick Salvia, Katia Turcot and the
SimTK (e.g., OpenSim, OpenMM) give access to numerous tools SOFAMEA (Francophone Society of Movement Analysis in Chil-
to model the human body and are far of the possibility pro- dren and Adults). We acknowledge also all the companies
posed by BTK. However, they rely on computed kinematic and which send us code, documentation or software license to
kinetic data, not on raw acquisition data. The development integrate their file format or to compare results: AMTI, BTS
of the current framework proposes to fill this gap. Indeed, it Bioengineering, Codamotion, Delsys Inc. and Motion Lab Sys-
provides the opportunity to share data for collaborative works tems. We acknowledge Charlotte Elsworth for improving the
between laboratories that have different motion capture sys- English.
tems or to merge data from different systems.
The results of this study show that implementation for the references
reading and accessing of data in a C3D file are close to the
commercial version of C3Dserver. The differences for the load-
ing of the file (operation #1 “Open C3D file”) can be explained [1] A. Ancillao, M. Galli, S.L. Vimercati, G. Albertini, An
by the way BTK is implemented and how data are stored in optoelectronic based approach for handwriting capture,
C++ objects. After the loading of the acquisition each element Comput. Methods Programs Biomed. 111 (2013) 357–365.
can be accessed independently without the need to extract [2] [Link]
information from C3D parameters. The use of the emulation [3] J. Blanchette, M. Summerfield, C++ GUI Programming with
of C3Dserver for the benchmark can also explain poor results Qt 4, Prentice Hall, Stoughton, Massachusetts, USA, 2006.
[4] [Link]
(operations #5 and #7), as the binding of BTK for Matlab does
[5] [Link] c3d [Link]
not have function to extract single value for requested specific [6] [Link] c3d [Link]
frame. Indeed, the API proposed by BTK is at a higher level. [7] [Link]
Fewer commands are required to access or modify acquisi- [8] [Link]
tion data compared to C3Dserver. The implementation of a [9] R.B. Davis, S. Ounpuu, D. Tyburski, J.R. Gage, A gait data
benchmark tool in C++ to compare the native API of BTK and collection and reduction technique, Hum. Mov. Sci. 10 (1991)
575–587.
C3Dserver should give similar results between both libraries,
[10] S.L. Delp, F.C. Anderson, A.S. Arnold, P. Loan, A. Habib, C.T.
but this is beyond the scope of this study as its goal is to
John, et al., OpenSim: open-source software to create and
provide new tools for scientists and not only an open-source analyze dynamic simulations of movement, IEEE Trans.
implementation of the C3Dserver SDK. Biomed. Eng. 54 (2007) 1940–1950.
Future steps in the development of the framework include: [11] [Link]
(1) integration of kinematic and kinetic computations with the [12] S. Dudoit, R.C. Gentleman, J. Quackenbush, Open source
biomechanical models selected by commercial software and software for the analysis of microarray data, Biotechniques
(Suppl.) (2003) 45–51.
the biomechanical community [9,16,36,37], (2) Python console
[13] [Link]
inside Mokka to process acquisition data with custom algo- [14] A. Erdemir, S. McLean, W. Herzog, A.J. van den Bogert,
rithms, (3) Plug-in integration for custom developments in Model-based estimation of muscle forces exerted during
Mokka. Other standalone applications could be also devel- movements, Clin. Biomech. (Bristol, Avon) 22 (2007) 131–154.
oped for the analysis of data between trials, subjects or groups. [15] S. Herrmann, M. Kaehler, R. Souffrant, R. Rachholz, J.
This could help scientists to avoid technical difficulties or data Zierath, D. Kluess, et al., HiL simulation in biomechanics: a
management and focus directly on the data analysis and inter- new approach for testing total joint replacements, Comput.
Methods Programs Biomed. 105 (2012) 109–119.
pretation.
c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 1 1 4 ( 2 0 1 4 ) 80–87 87

[16] M.P. Kadaba, H.K. Ramakrishnan, M.E. Wootten, J. Gainey, G. [29] [Link]
Gorton, G.V. Cochran, Repeatability of kinematic, kinetic, [30] [Link]
and electromyographic data in normal adult gait, J. Orthop. [31] [Link]
Res. 7 (1989) 849–860. [32] D. Testi, P. Quadrani, M. Viceconti, PhysiomeSpace: digital
[17] P. Konrad, The ABC of EMG – A Practical Introduction to library service for biomedical data, Philos. Trans. A: Math.
Kinesiological EMG, Noraxon USA Inc., Scottsdale, Arizona, Phys. Eng. Sci. 368 (2010) 2853–2861.
USA, 2005. [33] O. Tirosh, R. Baker, J. McGinley, GaitaBase. Web-based
[18] K. Martin, B. Hoffman, Mastering CMake, A Cross-Platform repository system for gait analysis, Comput. Biol. Med. 40
Build System (Paperback), Kitware Inc, 2003. (2010) 201–207.
[19] [Link] doc/matlab/[Link] [34] M. Viceconti, C. Zannoni, D. Testi, M. Petrone, S. Perticoni, P.
[20] [Link] c3d [Link] Quadrani, et al., The multimod application framework: a
[21] [Link] rapid application development tool for computer aided
[22] [Link] medicine, Comput. Methods Programs Biomed. 85 (2007)
[23] G. Paul, S. Wischniewski, Standardisation of digital human 138–151.
models, Ergonomics 55 (2012) 1115–1118. [35] [Link]
[24] [Link] [36] G. Wu, P.R. Cavanagh, ISB recommendations for
[25] F. Rousseau, E. Oubel, J. Pontabry, M. Schweitzer, C. standardization in the reporting of kinematic data, J.
Studholme, M. Koob, et al., BTK: an open-source toolkit for Biomech. 28 (1995) 1257–1261.
fetal brain MR image processing, Comput. Methods [37] G. Wu, S. Siegler, P. Allard, C. Kirtley, A. Leardini, D.
Programs Biomed. 109 (2013) 65–73. Rosenbaum, et al., ISB recommendation on definitions of
[26] W. Schroeder, K. Martin, B. Lorensen, Visualization Toolkit joint coordinate system of various joints for the reporting of
An Object-Oriented Approach To 3D Graphics, Kitware Inc, human joint motion—Part I: Ankle, hip, and spine.
2006. International Society of Biomechanics, J. Biomech. 35 (2002)
[27] [Link] 543–548.
[28] S.R. Simon, Quantification of human motion: gait [38] M. Yang, H. Zheng, H. Wang, S. McClean, D. Newell, iGAIT: an
analysis-benefits and limitations to its application to clinical interactive accelerometer based gait analysis system,
problems, J. Biomech. 37 (2004) 1869–1880. Comput. Methods Programs Biomed. 108 (2012) 715–723.

You might also like