Links

OptiTrack Peripheral API

The OptiTrack Peripheral API is an open C++ API that can be used to create 'plugin' devices. Custom built plugin DLL's will allow you to initialize and synchronize external devices with the OptiTrack motion capture system in Motive. After building a custom plugin device using the API, the library must be placed in the \device folder within the Motive install directory in order to initialize and integrate desired peripheral devices. For integrating AMTI and Bertec force plates and NI-DAQ devices, the existing BiomechDevicePlugin.dll that installs with the peripheral module can be utilized.Note: The OptiTrack Peripheral API is available in Motive versions 1.10 and above.The following features are supported by the Peripheral API:
  • Real-time synchronized data collection from peripheral hardware device and the OptiTrack motion capture system into Motive Take (TAK) files and the open standard C3D file format.
  • Motive UI access to device properties and event settings under the Devices pane, allowing the users to configure the device in Motive.
  • Real-time display of live device data in Motive's scope view in the Graph View pane.
  • Captured data review in Motive's 2D Graphing windows in the Graph View pane.

Contents

The Peripheral API folder is installed with the Motive software. It can be found in the Motive install directory, which is located in C:\Program Files\OptiTrack\Motive\PeripheralAPI by default.
Folder
Contents
\example
Visual Studio Example Device project and source code showing Peripheral API usage.
\include
API headers (include in your project)
\lib
Peripheral API / Motive import library (link to your project)
ClassDiagram
Class relationship diagram of Plugin Devices to Motive Plugin Library.
Readme.txt
Peripheral API release notes.

Requirements

The following components are required for using the OptiTrack Peripheral API.
  • Microsoft Windows 7, 8, or 10.
  • Microsoft Visual Studio 2013 ( Recommended )
If you plan to use a newer version of Microsoft Visual Studio, you'll need to download Windows SDK 8.1 and the VC++ 2015.3v140 toolset (x86,x64).

Retarget Solution

Downloads/Installs
  • You can download the Windows SDK 8.1 from this link.
  • To download the v140 Toolset, you can modify your existing install of VS, or upon first downloading add the toolset from the Individual Components tab.
  • Once you have the Windows SDK 8.1 and v140 Toolset downloaded, you'll need to retarget the OptiTrackPeripheralExample solution.
Retargetting Steps
  1. 1.
    In Visual Studio, right click Solution 'OptiTrackPeripheralExample', or whatever you named the copy as.
  2. 2.
    Select 'Retarget Solution'​
  3. 3.
    For the Windows SDK Version dropdown, select 8.1.
  4. 4.
    For the Platform Toolset dropdown, select v140 or No Upgrade (if VS has already loaded v140 as the default).
  5. 5.
    Click OK
  6. 6.
    This should now be ready to build without errors.

Usage

The following guideline can be used to create and apply custom device plugin DLLs in Motive:
  1. 1.
    Copy the OptiTrackPeripheralExample project and modify the code in the lines where indicated in the sample.Edit the 'REQUIRED' and 'OPTIONAL' sections.​ Changes made in the .cpp files are reflected in the Devices and Properties panes.
    Edit the 'REQUIRED' and 'OPTIONAL' sections. Click image to enlarge.
    Changes made in the .cpp files are reflected in the Devices and Properties panes.
  2. 2.
    Build the sample, which produces a plugin DLL. Copy this DLL to the <Motive install folder>\devices subfolder.
  3. 3.
    If your plugin has external dependencies (e.g. driver / SDK dlls), make sure these are on your system path, or in the Motive install directory.
  4. 4.
    Launch Motive. Your device should appear in the Devices pane in Motive. If it does not, check the Motive Log pane for error notifications.
  5. 5.
    When a peripheral device is detected in Motive, real-time collected data can be monitored from the real-time plotting of the Graph View pane in the Live mode.

Class Diagram

Click image to enlarge