Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Installation and Compatibility

Q.

...

Can I run OpenSim application on 32 bit Windows machines?

A.  As As of release 3.3, we provide two Windows only installers (32bit and 64 bit). In general you should use the 64-bit installer on a 64-bit machine and a 32-bit on a 32-bit machine, with some exceptions (below). You can find what version of Windows you're running by following the Windows documentation found here.
Exceptions: You may need to run 32-bit version on 64-bit machine if you're using Matlab 32-bit, or if you want to use a feature (e.g. recording movies) that doesn't work on 64-bit machines out-of-the-box. 

Windows 10: OpenSim 3.3 was released before Windows 10 so we were unable to test the variety of Windows configurations (Home, Professional, etc.). We are currently testing on a Windows 10 Pro, 64-bit installation and have had no problems using OpenSim 3.3, although some users reported failing to open the view/visualization window. We are still investigating. If you have issues using Windows 10, please send a message to opensim@stanford.edu and include a description of your machine configuration and the errors you are experiencing.

Q. When trying to start OpenSim, I get a 'JVM creation failed' error. 

A. 32-bit OpenSim on a 64-bit machine may encounter an issue where the GUI's Java Virtual machine (JVM) incorrectly detects the machine as 64-bit and fails to start because it requests a large chunk of memory. To solve this, close a few other applications to free up some memory (Google Chrome is particularly resource heavy) and restart OpenSim. Once OpenSim has started you can re-open any closed applications. A forum thread on this issue can be found here.

Q. Does OpenSim work on a Mac?

A. The name OpenSim refers to two distinct entities, the OpenSim libraries (API), which are a C++ library of classes used for modeling and simulation of biological structures, and the OpenSim application (GUI) which builds on the OpenSim API. The only distribution of the GUI is on Windows (32Bit and 64Bit as of 3.1). Mac users who want to use the GUI, have successfully run OpenSim using Bootcamp, Virtual Machines, or other environments that simulate Windows on a Mac. Please see Running OpenSim on Mac OS X or Linux using a Windows Virtual Machine for more information.

The API (headers, libraries and Doxygen documentation) is available for Windows (32Bit and 64Bit as of 3.1), Mac (32Bit and 64Bit), & Linux (32Bit and 64Bit) and is available on the OpenSim Downloads page. To use the API, users will need to write a main program or a plugin or use the various tools provided as command line executables to perform modeling/simulation.  

Mac and Linux users will need to add the installation-folder/bin to their environment (LD_LIBRARY_PATH on linux, DYLD_LIBRARY_PATH on mac) and can use the command line utilities or build main programs using the API following instructions similar to those given in the developer's guide for Windows.  

If you're interested in helping to build a GUI distribution on Mac, Linux or any other platform, please contact the development team at opensim@stanford.edu.

Q. Why do I see a big red ball when I launch OpenSim?

A. Please see the info on this user forum post: https://simtk.org/forum/message.php?msg_id=5418

Q. I installed the application, but when I launch it I get "Required library failed to load. Check that the dynamic library osimJavaJNI is in your PATH". What could be wrong? 

A. You likely picked not to add OpenSim to your PATH while doing installation. If this is the case you can fix it by either reinstalling or adding the directory where you installed OpenSim to your PATH Environment variable. To check if OpenSim is already in the PATH, open a command prompt shell on windows and type C:\>echo %PATH% You should see the installation-directory/bin in the list of directories.  

Q. Do you need Matlab to run OpenSim?

A. No. You only need Matlab to use the Matlab scripting. If you don't have Matlab, you can still use the application or GUI, the GUI or python scripting shell, and the API. 

Q: Do I have to uninstall the previous version of OpenSim before installing a new version?

A. No. You can keep old installations of OpenSim to compare your results.

Q: Where can I download previous releases of OpenSim?

A. You can access all previous releases through the OpenSim Downloads Page. Directly under the current version is the drop down menu 'List all previous releases'.

Q: Can I run OpenSim from a USB drive?

A. If you would like to run OpenSim on a Windows machine, but you don't have install privileges, you can try running OpenSim from a USB drive. This may be useful for instructors of biomechanics courses, for example, allowing students to run OpenSim on library computers. To set up the drive, insert the USB drive and install OpenSim, selecting a path the USB drive as your install directory. Note that you must do this on a Windows machine. After installing you can then run OpenSim from another Windows machine. You will likely need to update the Geometry folder under Edit -> Preferences, to the appropriate path on the new machine.

Visualization and Graphics

Q. Why can't I launch the GUI's visualizer in Windows?

...

version 4.0 we're only supporting 64 bit windows machines as these are the most commonly used Windows platform. If you have 32 bit windows machine you can build the API from sources or use an earlier version (e.g. OpenSim 3.3)

Q. Does OpenSim work on a Mac?

A. Starting with OpenSim 4.0, we provide a version of the graphical user interface compatible with Mac.

Q. Do you need Matlab to run OpenSim?

A. No. You only need Matlab to use the Matlab scripting. If you don't have Matlab, you can still use the application or GUI, the GUI or python scripting shell, and the API.

Q: Do I have to uninstall the previous version of OpenSim before installing a new version?

A. No. You can keep old installations of OpenSim to compare your results.

Q: Where can I download previous releases of OpenSim?

A. You can access all previous releases through the OpenSim Downloads Page. Directly under the current version is the drop down menu 'List all previous releases'.

Q: Can I run OpenSim from a USB drive?

A. If you would like to run OpenSim on a Windows machine, but you don't have install privileges, you can try running OpenSim from a USB drive. This may be useful for instructors of biomechanics courses, for example, allowing students to run OpenSim on library computers. To set up the drive, insert the USB drive and install OpenSim, selecting a path the USB drive as your install directory. Note that you must do this on a Windows machine. After installing you can then run OpenSim from another Windows machine. You will likely need to update the Geometry folder under Edit > Preferences..., to the appropriate path on the new machine.

Visualization and Graphics

Q. Why can't I launch the GUI's Visualizer Window?


A: The OpenSim GUI has been unable to launch the visualizer on some 
Windows and Mac machines. The most common reasons are:
  • No WebGL support: some older machines do not support Hardware Accelerated Graphics rendering used by the new OpenSim Visulaization. Unfortunately, no workaround is available for this, you'll either need to upgrade your graphics card, update drivers, or revert to earlier version.
  • Collision with other applications on Mac: OpenSim internally uses a third party library that happens to collide with some rarely used applications on Mac (e.g., RescueTime and Contexts). We are investigating workarounds to resolve this issue. If you have a similar issue, please report it.

Q. How do I tell OpenSim where to locate the bone/geometry files? 

A. Open Edit/Preferences and edit the entry for "Paths: Geometry Search Path". This entry is a semicolon-separated list of directories. See User Preferences for more information.

Q. What are .vtp, .stl, .obj files? 

A. These are the geometry files corresponding to the bones and other objects used by your model. The "vtp" format is a format used by VTK which was used by earlier versions of OpenSim for visualization. vtp files come in two flavors (ASCII, Binary) we only support ASCII format. Both .stl, .obj are standard mesh file formats as well.  

Q. My meshes look different in 4.0 than they did in earlier versions of OpenSim

A. In version 4.0 we switched from using vtk (for parsing mesh files) to native parsers built into the SimTK libraries. Some STL, OBJ files are not handled by the SimTK parsers, which try to build closed meshes from these files for contact purposes. For example, files with multiple solids, or no solids may not be handled the same in 4.0.

Q. OpenSim loads many models in the same graphics window, how do I know which one I'm working on now? 

A. Although many models are loaded, only a single model can be marked as "Current". This is indicated in bold in the navigator.  

Q. I can't pick some objects in the Graphics window, is this a bug? 

A. Picking is restricted to "Current model" (by default non-current models are dimmed out). If you want to pick on a non-current model you'll have to make it current first.   

Q. I can't pick some Muscle Points in the Visualizer window why? 

A. Only objects that are pickable in the Visualizer window are Path Points and Markers. Moving Muscle Points are special Path Points that have Splines describing their trajectories so they can't be picked and dragged from the GUI.

Importing and Exporting Data

Q. Would it be possible to open a C3D file directly in OpenSim?

A. Currently, the OpenSim Plotter can load and plot the forces from a C3D file. 

Q. Can one extract the muscle force magnitudes, points of origin and direction of action? 

A. OpenSim muscles provide access to their force and their GeometryPath, which includes their point of origin. Using this information, you can compute the direction of action. Use the OpenSim scripting interfaces to access this information. You can also use OpenSim Analyses or Reporters to obtain some of this information. Depending on your needs and programming experience you may write your own code to export this data. Alternatively there is a plugin https://simtk.org/projects/force_direction that
allows exporting of these forces/line-of-actions to files for interface to FEA. Please check the website for the proper version that is compatible with your OpenSim installation.

Q: Is it possible to get position over time data from a model? For example can I track a point on the shank of the leg as the model is moving?

A. Yes, one can obtain the position of a point over time using the "location" Output on Point objects (e.g., Markers and Stations). 

Q: Can we import a Solidworks model into OpenSim? For example, a prosthetic socket.

A. There are multiple steps to importing a CAD model into OpenSim. Getting the Geometry is straightforward, since you can export individual parts to stl/obj files that are read directly by OpenSim (when attached to an Body in OpenSim model .osim file). Joints/Constraints/masses are not imported; however, and you need to reimplement them on your own using OpenSim objects (Joints, Constraints, etc.).

Muscle Models

Q. What muscle models are included in OpenSim and what do you have to develop yourself? Are there some generic muscle models available I can use to get going?

A. There are many muscle models implemented in OpenSim. 

One of the most commonly used muscles is the Thelen2003Muscle, based on the model described in Thelen, 2003.

Thelen DG. Adjustment of muscle mechanics model parameters to simulate dynamic contractions in older adults. J Biomech Eng. 2003; 125(1):70-7.

We've also added some new muscle models. Watch Matt Millard's webinar to find out more. 

Q. Do OpenSim muscle models account for the delay within activation dynamics in your model? If yes, how?

A. Yes, the muscle models in OpenSim model the electro-mechanical delay between muscle excitation (or the electrical neural signal sent to the motor-neuron junction) and activation (i.e., the level of force production). From more details on the theory behind our muscle models, check out this great review paper by Felix Zajac: Zajac FE. Muscle and tendon: properties, models, scaling, and application to biomechanics and motor control. Crit Rev Biomed Eng. 1989, 17(4):359-411.

Q. Is there any way that you can incorporate stretch activation of muscle to try and get the model to predict the activation of muscle before foot strike?

A. Sure! You could develop a custom controller in the OpenSim API that is based upon the stretch of muscle or tendons in the model and map that back to predicted activations. 

Q. Is the orientation (i.e., pennation angle) or constitution of fibers (e.g., slow vs. fast) taken into account in the muscle models?

A.  Yes, we do model the orientation, or pennation angle, of muscle fibers, but no, we do not currently model slow versus fast twitch fibers. For more details on the theory behind these muscle models, check out this great review paper by Felix Zajac: Zajac FE. Muscle and tendon: properties, models, scaling, and application to biomechanics and motor control. Crit Rev Biomed Eng. 1989;17(4):359-411.

Q. Can the geometry of the muscles be changed? Like wrapping around bones/other muscles?

A. When defining a muscle in OpenSim you specify a geometry path. This path can wrap only around "wrap objects" (simplified geometry to speed up path computation). Currently supported types are: Sphere, Cylinder, Ellipsoid,Torus or parts of these objects. Arbitrary meshes can not be specified as wrap objects. 

Plotting

Q. How can I import data into OpenSim Plotter? 

A. Under Y-Quantity, select "Load file..." and then you can read data files in the storage or motion format.   

Q. Can I export data from a plot into a ASCII file for processing by Matlab or use in Excel? 

A. Under the "curves list", right click on the top level node and select "Export Data...". OpenSim will prompt you for a file name to save the data into. This file can be later re-imported into OpenSim or used by other applications.

Scaling and Customizing Models

Q. What anthropometric database is used for model scaling?

A. OpenSim does not use a database for scaling. The model is scaled based on measurements of experimental markers. See How Scaling Works for more information.

Q. When you are scaling a generic model to match a particular subject, how do you account for the difference in bone length, like, if someone has a proportionally shorter tibia?

A. Scaling in OpenSim scales each body segment independently based on measurements of markers placed on that segment. See the section on Scaling for more details.

Q. Why have some studies with OpenSim scaled the model's muscle strength? Does this reflect the model's development from cadaver data?

A. Yes, the optimal force or max strength of the muscles in the model used in many studies are based on Delp, 1990 (see reference below), which determined muscle parameters from cadavers. While the strength of the model was not increased to study running (Hamner et al., 2010), other researchers have noticed that the "strength" (i.e., optimal force) of the muscles has to be increased for movements with higher forces and accelerations, like running and cutting, or for pathological gaits, such as crouch gait.  Delp SL et al., An interactive graphics-based model of the lower extremity to study orthopedic surgical procedures. IEEE Trans Biomed Eng. 1990; 37(8):757-67.

Q. Are muscle forces or strength scaled based on the subject's weight (compared to the generic model weight)?

A. No, the scale tool in OpenSim does not automatically scale muscle forces based on the geometric based scaling (i.e., scaling based on distance measurements between markers) or the mass scaling. However, you can scale muscle forces in the model based manually if you have a criterion for doing this. See the Scripting chapter for info about how to do this with a script.

Q. How can you incorporate BIODEX data into your simulations to scale models?

A. BIODEX data can be used to determine the strength, or torque generating capacity of your subject. Researchers have used this information to modify the optimal muscle forces used in their model. For

Update: The latest OpenSim Installer (OpenSim-3.3.0-win64VC13P.exe) has been updated to include the Visual C++ Redistributable installer. 

Q. I imported a model from SIMM but the bones don't show up what's wrong? 

A. You likely are missing the bone files that go with your model, try reimporting with the bones located in a directory under your .jnt file.   

Q. How do I tell OpenSim where to locate the bone/geometry files? 

A. Open Edit/Preferences and edit the entry for "Geometry Path" which is a semicolon separated list of directories and add the desired path. See User Preferences for more information.

Q. What are .vtp files? 

A. These are the geometry files corresponding to the bones and other objects used by your model. The "vtp" format is a format used by VTK which is the component used by OpenSim for visualization.

Q. OpenSim loads many models in the same graphics window, how do I know which one I'm working on now? 

A. Although many models are loaded, only a single model can be marked as "Current". This is indicated by the dropdown in the application toolbar and also in the navigator.  

Q. I can't pick some objects in the Graphics window, is this a bug? 

A. Picking is restricted to "Current model" (by default non-current models are dimmed out). If you want to pick on a non-current model you'll have to make it current first.   

Q. I can't pick some Muscle Points in the Graphics window why? 

A. Moving Muscle Points are special Muscle Points that have Splines describing their trajectories so they can't be picked and dragged from the GUI.

Importing and Exporting Data

Q. Would it be possible to open a C-3D file directly in OpenSim?

A. This is a popular feature request, and we are working on getting it implemented for a future release of OpenSim. For utilities that other users have developed, see the OpenSim Utilities library. 

Q. Can one extract the muscle force magnitudes, points of origin and direction of action? 

A. While this is not currently a pre-packaged analysis in OpenSim, it is definitely possible to extract this information with a plug-in or a custom API main program. See the OpenSim Utilities library for tools other researchers have been working on.

Q: Is it possible to get position over time data from a model? For example can I track a point on the shank of the leg as the model is moving.?

A. Yes! If you have a motion or simulation you can use the Analysis tool to run a Kinematics or PointKinematics analysis. See the Analyses chapter for more information.

Muscle Models

Q. What muscle models are included in OpenSim and what do you have to develop yourself? Are there some generic muscle models available I can use to get going?

A. There are many muscle models implemented in OpenSim. 

One of the most commonly used muscles is the Thelen2003Muscle, based on the model described in Thelen, 2003.

Thelen DG. Adjustment of muscle mechanics model parameters to simulate dynamic contractions in older adults. J Biomech Eng. 2003; 125(1):70-7.

We've also added some new muscle models. Watch Matt Millard's webinar to find out more. 

Q. Do OpenSim muscle models account for the delay within activation dynamics in your model? If yes, how?

A. Yes, the muscle models in OpenSim model the electro-mechanical delay between muscle excitation (or the electrical neural signal sent to the motor-neuron junction) and activation (i.e., the level of force production). From more details on the theory behind our muscle models, check out this great review paper by Felix Zajac: Zajac FE. Muscle and tendon: properties, models, scaling, and application to biomechanics and motor control. Crit Rev Biomed Eng. 1989, 17(4):359-411.

Q. Is there any way that you can incorporate stretch activation of muscle to try and get the model to predict the activation of muscle before foot strike?

A. Sure! You could develop a custom controller in the OpenSim API that is based upon the stretch of muscle or tendons in the model and map that back to predicted activations. 

Q. Is the orientation (i.e., pennation angle) or constitution of fibers (e.g., slow vs. fast) taken into account in the muscle models?

A.  Yes, we do model the orientation, or pennation angle, of muscle fibers, but no, we do not currently model slow versus fast twitch fibers. For more details on the theory behind these muscle models, check out this great review paper by Felix Zajac: Zajac FE. Muscle and tendon: properties, models, scaling, and application to biomechanics and motor control. Crit Rev Biomed Eng. 1989;17(4):359-411.

Plotting

Q. How can I import data into OpenSim Plotter? 

A. Under Y-Quantity, select "Load file..." and then you can read data files in the storage or motion format.   

Q. Can I export data from a plot into a ASCII file for processing by Matlab or use in Excel? 

A. Under the "curves list", right click on the top level node and select "Export Data...". OpenSim will prompt you for a file name to save the data into. This file can be later re-imported into OpenSim or used by other applications.

Scaling and Customizing Models

Q. What anthropometric database is used for model scaling?

A. OpenSim does not use a database for scaling. The model is scaled based on measurements of experimental markers. See How Scaling Works for more information.

Q. When you are scaling a generic model to match a particular subject, how do you account for the difference in bone length, like, if someone has a proportionally shorter tibia?

A. Scaling in OpenSim scales each body segment independently based on measurements of markers placed on that segment. See the section on Scaling for more details.

Q. Why have some studies with OpenSim scaled the model's muscle strength ? Does this reflect the model's development from cadaver data?

A. Yes, the optimal force or max strength of the muscles in the model used in many of are studies are based on Delp, 1990 (see reference below), which determined muscle parameters from cadavers. While the strength of the model was not increased to study running (Hamner et al., 2010) , other researchers have noticed that the "strength" (i.e., optimal force) of the muscles has to be increased for movements with higher forces and accelerations, like running and cutting, or for pathological gaits, such as crouch gait.  Delp SL et al., An interactive graphics-based model of the lower extremity to study orthopaedic surgical procedures. IEEE Trans Biomed Eng. 1990; 37(8):757-67.

Q. Are muscle forces or strength scaled based on the subject's weight (compared to the generic model weight)?

A. No, the scale tool in OpenSim does not automatically scale muscle forces based on the geometric based scaling (i.e., scaling based on distance measurments between markers) or the mass scaling. However, you can scale muscle forces in the model based manually if you have a criterion for doing this. See the Scripting chapter for info about how to do this with a script.

Q. How can you incorporate BIODEX data into your simulations to scale models?

A. BIODEX data can be used to determine the strength, or torque generating capacity of your subject. Researchers have used this information to modify the optimal muscle forces used in their model. For an example, check out the paper by Anderson & Pandy from 2001. They explain, "Values of peak isometric muscle force and tendon slack length were adjusted so that the maximum isometric torqueangle torque angle curves for each joint in the model matched average torque-angle curves measured for the five subjects." Anderson FC, Pandy MG. Dynamic optimization of human walking. J Biomech Eng. 2001;123(5):381-90.

Generating Simulations

Q. What are typical settings that are modified during

...

RRA?

A. RRA is an optimization algorithm whose goal is to minimize the non-physical “residual” forces acting on a dynamic simulation. The settings modified for RRA are the inputs to the optimization algorithm, which include the excitation limits (i.e., min/max controls) for the residual actuators along with the tracking weights for each of the coordinates (i.e., joint angles). See Getting Started with RRA for more information.

...

Q. Does OpenSim support python scripting? (or only MATLAB?)

A. Yes, OpenSim version 3.2 and later supports scripting in Python, Jython (an implementation of Python in Java), and MATLAB. In the OpenSim application, the scripting shell is a Jython shell. All scripting capabilities use a technique (called wrapping) to invoke the OpenSim C++ API from Python, Java, or MATLAB.

Q. Is there full documentation on how the API is exposed to Scripting?

A. You should be able to leverage the extensive Doxygen documentation of the OpenSim API to use it in Scripts. You'll also find the examples included with the distribution as well as the help page on Scripting (Common Scripting Commands) helpful.

Q. Is the MATLAB interface only for 32 bit MATLAB or will it work for 64 bit as well?

Q. Should OpenSim be running when doing scripting from another language like MATLAB/python?

A. No, the OpenSim application and the scripting interface both utilize the same libraries, but are unrelated otherwise. While scripting in the GUI, you have access to all the API and some GUI functionality (e.g. control of view, plotter, loading models, motions, etc.). While in MATLAB you have access to the API and you can use the MATLAB tools for plotting and the API Visualizer. You can also use the scripting interface from a standalone Python or Jython shell but you have access to neither the GUI functionality nor MATLAB's. See Common Scripting Commands for more information.

...

A. You can invoke almost any menu command and many other functions (e.g. Plotting) from the GUI scripting layer, but not all dialogs/tools/options are exposed. Please consult the page Common Scripting Commands#GUIScriptingShell for Scripting in the GUI for specific examples.

Q. Do you provide a debug mode when scripting?

...

An example using parsing (not recommended for OpenSim 3.0):

Code Block
% get initial and inal time from first and last entry in time column
initial_time = trcData(1,1);
final_time=trcData(end,1);
    
xmlDoc.getElementsByTagName('IKTool').item(0).getAttributes.item(0).setValue(name);
xmlDoc.getElementsByTagName('marker_file').item(0).getFirstChild.setNodeValue([trialsForIKPath markerFile{1}]);
xmlDoc.getElementsByTagName('output_motion_file').item(0).getFirstChild.setNodeValue([results_folder '\' name '_ik.mot']);
xmlDoc.getElementsByTagName('time_range').item(0).getFirstChild.setNodeValue([num2str(initial_time) ' ' num2str(final_time)]);

...

Code Block
% Get trc data to determine time range
markerData = MarkerData(markerDateFileName);
    
% Get initial and intial time 
initial_time = markerData.getStartFrameTime();
final_time = markerData.getLastFrameTime();
    
% Setup the the ikTool for this trial
ikTool.setName(name);
ikTool.setMarkerDataFileName(fullpath);
ikTool.setStartTime(initial_time);
ikTool.setEndTime(final_time);ikTool for this trial
ikTool.setName(name);
ikTool.setMarkerDataFileName(fullpath);
ikTool.setStartTime(initial_time);
ikTool.setEndTime(final_time);

The code snippet above is take from the example "setupAndRunIKBatchExample.m".

OpenSense

Q. Can OpenSense be used for both lower and upper extremity movements?

A. Yes, OpenSense can be used for both lower and upper extremity movements, although for any population, movement, or musculoskeletal model of interest, you should be sure that you or others have validated the pipeline for the measures you are interested in. To use OpenSense for your use case, make sure to use a model that has the bodies and joints relevant for your dataset and research question.

Q. OpenSense gives joint angles as outputs. Can it also be used to estimate other quantities, such as spatiotemporal (distance and time) metrics or kinetics (including ground reaction forces)?

A. Currently, the OpenSense tools provide only joint angles as outputs; however, the results from the IMU Inverse Kinematics tool can be used with other OpenSim tools to estimate other quantities. For instance, the inverse kinematics results can be used with the Body Kinematics and Point Kinematics tools to calculate the position, velocities, and accelerations of bodies or points in the model throughout the motion. Careful validation should be done when doing this since, unlike markers, positions are not directly measured by IMUs.

Estimating kinetics, such as ground reaction forces or joint moments, from IMU data is a very active area of research, and OpenSense does not currently provide tools to estimate kinetics directly. Workflows that use physics-based simulations to estimate kinetics have been developed to address this. OpenSim Moco is our software package that generates simulations using an advanced optimization technique called direct collocation, and a Moco example was developed to generate simulations using accelerometer and gyroscope data. Other approaches being researched include using statistical and machine learning techniques to estimate kinetics, without physics-based simulation.

Q. Can OpenSense be used in real-time?

A. Yes, OpenSense can be used in real-time. We provide one such workflow with OpenSenseRT, which uses open-source software and hardware to compute the motions of body segments based on IMU data using a microcontroller worn on the body. Instructions and other details can be found on the OpenSenseRT documentation page.

Q. What import options are there for OpenSense? Which IMU devices can be used for OpenSense?

A. OpenSense requires IMU orientations expressed as quaternions as input into the tools, so sensor fusion must be performed before importing data. We provide import tools for Xsens and APDM systems through our API (C++, MATLAB, and Python) to create an OpenSim storage file, and we have an OpenSense MATLAB example that shows this step with Xsens data. For other IMUs or if you want to use different sensor fusion algorithms, users can create custom import tools by matching the format in any example files provided with OpenSense. 

For users comfortable with using the OpenSim API, if you can obtain IMU quaternions from an API with your IMU system, you can instead populate an OpenSim TimeSeriesTableQuaternion (TimeSeriesTableQuaterion API entry and TimeSeriesTable API documentation) and use the Table with the OpenSense tools directly, without using the import tools discussed above to generate a file.

As user needs evolve, we may add other import options in the future.

Q. How does the IMU Placer work? Does it only consider orientation of the IMU or also the position? When should the Heading Correction option be used?

A. The IMU Placer tool uses the IMU calibration data to find the orientations of the IMU frames relative to an OpenSim model’s body segments. It does not consider the positions of the IMUs. 

The Heading Correction option within the IMU Placer tool allows for the user to indicate a specific axis of an IMU that should be aligned with the model’s forward direction. This is helpful to ensure the IMU orientations on the OpenSim model are correct in cases when the participant was not facing in the same direction as the model’s forward direction (usually the positive X direction in OpenSim). More details can be found on the IMU Placer documentation page.

Q. Can I scale my OpenSim model using OpenSense?

A. OpenSense does not provide any tools to scale OpenSim models. Models can be scaled either by using marker data or using manual scaling factors. Find out more about scaling at the Scaling documentation page. For some applications where you are only studying kinematics, it may not be necessary to scale your musculoskeletal model. If taking this approach, validation for your particular population and simulation pipeline should be conducted.

Q. For the IMU Placer and IMU Inverse Kinematics tools, how do you determine the rotations between IMU space to OpenSim space?

A. Transforming data from IMU to OpenSim space depends on the individual lab setup, and there are a couple of places to start that can be helpful. First, check the documentation for your IMU system as it can have helpful information about the coordinate system it uses. Second, visualization tools in the OpenSim GUI can help as well by visualizing the IMU orientations and comparing them to the OpenSim ground frame. IMU data can be visualized in the GUI by going to File -> “Preview Sensor Data…”. Using this feature with a calibration trial, or any other trial where the IMU orientations in the lab space are straightforward, can help figure out what rotations are neededThe code snippet above is take from the example "setupAndRunIKBatchExample.m".

OpenSim vs SIMM

Q. What is the relationship between SIMM and OpenSim

...