This wiki is intended for older versions of Motive. For the latest documentation, please refer to
docs.optitrack.com

Data Streaming

THIS PAGE IS UNDER CONSTRUCTION THIS PAGE IS UNDER CONSTRUCTION THIS PAGE IS UNDER CONSTRUCTION THIS PAGE IS UNDER CONSTRUCTION

THIS PAGE IS UNDER CONSTRUCTION THIS PAGE IS UNDER CONSTRUCTION THIS PAGE IS UNDER CONSTRUCTION THIS PAGE IS UNDER CONSTRUCTION


Back to the Main Page --->  Back to Motive Documentation

Data Streaming pane

Motive offers multiple options to stream tracking data onto external applications in real-time. Streaming plugins are available for Autodesk Motion Builder, 3ds Max, Maya (VCS), VRPN, and trackd, and they can be downloaded from the OptiTrack website. For other streaming options, the NatNet SDK enables users to build custom clients to receive capture data. All of the listed streaming options do not require separate licenses to use. Common motion capture application rely on real-time tracking, and the OptiTrack system is designed to deliver data at an extremely low latency even when streaming to third-party pipelines. This page covers configuring Motive to broadcast frame data over a selected server network. Detailed instructions on specific streaming protocols are included in the PDF documentation that ships with the plugin or the SDK.


Streaming in Motive

  • Open the Data Streaming Pane in Motive
  • Select the network interface address for streaming data.
  • Select desired data types to stream under streaming options.
  • When streaming skeletons, set the appropriate bone naming convention for client application.
  • Stream live or playback captures


Streaming IP Address

It is important to select the network adapter (interface, IP Address) for streaming data. Most Motive Host PCs will have multiple network adapters - one for the camera network and one (or more) for the local area network (LAN). Motive will only stream over the selected adapter (interface). Select the desired interface using the Data Streaming Pane in Motive. The interface can be either over a local area network (LAN) or on a same machine (localhost, local loopback). If both server (Motive) and client application are running on the same machine, set the network interface to the local loopback address (127.0.0.1). When streaming over a LAN, select the IP address of the network adapter connected to the LAN. This will be the same address the Client application will use to connect to Motive. Note that firewall or anti-virus software can block network traffic, so it is important to make sure these applications are disabled or configured to allow access for both server (Motive) and Client applications.

Stream MobuSkeleton Device.png Stream SampleClient.png Stream WinFormApp.png

Examples of Client applications connecting to network interface.

Streaming Options

Before starting to broadcast data onto the selected network interface, define which data types to stream. Under streaming options, there are settings where you can include or exclude specific data types and syntax. Set only the necessary criteria to true. For most applications, the default settings will be appropriate.

Bone Naming Convention

When streaming skeleton data, bone naming convention formats annotations for each segment when data is streamed out. Appropriate convention should be configured to allow client application to properly recognize segments. For example, when streaming to Autodesk pipelines, the naming convention should be set to FBX.


Coordinate System Convention

Motive (1.7+) uses a right-handed coordinate system with y-axis directing upwards. However, coordinate system used in client applications may not always agree with the convention used in Motive. In this case, the coordinate system in streamed data needs to be modified to a compatible convention. For client applications with a different ground plane definition, Up Axis can be changed under Advance Network Settings. For compatibility with left-handed coordinate systems, simplest method is to rotate the capture volume 180 degrees on y-axis when defining the ground plane during Calibration#Ground Plane and Origin. Understand the axis convention used in both Motive and client applications to make adjustments accordingly.

Motive1.7Coordinate-LFrameImplications.png Calib Square.jpg


NatNet Streaming

NatNet is a client/server networking protocol which allows sending and receiving data across a network in real-time. It utilizes UDP along with either Unicast or Multicast communication for integrating and streaming reconstructed 3D data, rigid body data, and skeleton data from OptiTrack systems to client applications. Within the API, a class for communicating with OptiTrack server applications is included for building client protocols. Using the tools provided in NatNet API, capture data can be used in various application platforms. Please refer to the NatNet User Guide For more information on using NatNet and its API references.

Stream Nat.png

Remote Triggering

If desired, Motive can be controlled remotely by sending either NatNet commands or XML broadcast messages through the UDP communication protocol, which enables client applications to trigger Motive commands. Sending NatNet commands is recommended because they are not only more robust but they offer more control options compared to XML messages, where only start and stop commands can be triggered.

When triggering via XML syntax messages, Remote Trigger setting under Advanced Network Settings must be set to true. The XML message syntax is shown below.

To use XML Triggering

  • Command Port: Data Streaming Pane -> Advance Network Settings -> Command Port + 2. This defaults to 1512 (1510 + 2).


XML syntax for the packet

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<CaptureStart>
    <TimeCode VALUE="12 13 14 14 0 0 1 1"/>
    <Name VALUE="RemoteTriggerTest_take01"/>
    <Notes VALUE=""/><Description VALUE=""/>
    <DatabasePath VALUE="S:/shared/testfolder/"/>
    <PacketID VALUE="0"/>
    <HostName VALUE="optional host name" />
    <ProcessID VALUE="optional process id" />
</CaptureStart>

<?xml version="1.0" encoding="utf-8"?>
<CaptureStop>
    <Name VALUE="TakeName" />
    <Notes VALUE="cTake notes go here if any." />
    <Assets VALUE="skel1, skel2, sword" />
    <TimeCode VALUE="00:00:00:00" />
    <HostName VALUE="optional host name" />
    <ProcessID VALUE="optional process id" />
</CaptureStop>

Streaming Protocols

Streaming Protocol Markers Rigid Bodies Skeletons Description Download
NatNet SDK Y Y Y Runs local or over network. The SDK includes multiple API references to build client and server protocols, and more.


C/C++ or VB/C#/.NET or Matlab

Download
Autodesk MotionBuilder Plugin Y Y Y Runs local or over network. Allows streaming both recorded data and real-time capture data for markers, rigid bodies, and skeletons.

Comes with Motion Builder Resources: OptiTrack Optical Device OptiTrack Skeleton Device OptiTrack Insight VCS

Download
Visual3D Y N N With a Visual3D license, you can download Visual3D server application which is used to connect OptiTrack server to Visual3D application. Using the plugin, Visual 3D receives streamed marker data to solve precise skeleton models for biomechanics applications.


C-Motion wiki: NaturalPoint OptiTrack Plugin.

C-Motion Website
3ds Max Plugin N Y N Runs local or over network. This plugin allows Autodesk 3ds Max to receive skeletons and rigid bodies from the OptiTrack server application such as Motive. Download
VRPN N Y N Runs local or over network. Sample implementation for VRPN Streaming.

VRPN Github

Download
trackd N Y N Runs local or over network. Implementation of the trackd module.

trackd website

Download
Motive API Y Y N Runs Motive heedlessly. Best Motive command/control. Also provides access to camera imagery and other data elements not available in the other streams.


C/C++

Within Motive
VCS:Maya N Y N Separate license is required. Streams capture data into Autodesk Maya for using Virtual Camera System. Download