Vizard 7 » Reference » Input Devices » Position and Orientation Trackers » Motion Analysis EvaRT/Cortex
7.6

Motion Analysis EvaRT/Cortex plug-in

This plug-in provides support for the Motion Analysis EvaRT and Cortex motion capture systems.

Initialization

The Motion Analysis plug-in is implemented as a Vizard extension. For the EvaRT software, use the evart.dle extension file. For the Cortex software, use the cortex.dle extension file. When creating the extension, you must specify the IP address or hostname of the EvaRT/Cortex server as the mesg argument. The extension object has the following methods:

Method

Description

<evart>.getBodyList()

Returns a list of all the 6DOF bodies.

<evart>.getBody(val)

Returns a body from the specified index or name. Name is case sensitive.

<evart>.getMarkerList()

Returns a list of all the 3DOF bodies.

<evart>.getMarker(val)

Returns a marker from the specified index or name. Name is case sensitive.

<evart>.getFrameNumber()

Returns the frame number for last received frame of data.

The EvaRT/Cortex body objects are extension sensors, which can be used like any sensor object. In addition to the standard extension sensor methods, the body objects also have the following methods:

Method

Description

<body>.getMarkerList()

Returns a list of all the 3DOF markers that make up the body.

<body>.getMarker(val)

Returns a marker from the specified index or name that belongs to the body. Name is case sensitive.

<body>.getSegmentList()

Returns a list of all the 6DOF segments that make up the body hierarchy.

<body>.getSegment(val)

Returns a segment from the specified index or name. Name is case sensitive.

<body>.getRootSegmentList()

Returns a list of all the root segments of the body. Root segments have no parent segment.

The EvaRT/Cortex segment objects are extension sensors which contain both position and rotation data. Segment objects have the following methods, in addition to the standard extension sensor methods:

Method

Description

<segment>.getChildren()

Returns a list of all the segments that are direct children of the segment.

<segment>.getParent()

Returns the parent of the segment or None if the segment is a root segment.

Note: The position and rotation data of segment objects are in local coordinates systems. This means the data is relative to the parent segment.

The EvaRT/Cortex marker objects are extension sensors which only contain position data. They can be used like any standard sensor object.

Example

The following example shows how to connect to an EvaRT server and get a handle to the first 2 bodies:

evart = viz.add('evart.dle',0,'192.168.0.2')
body1 = evart.getBody(0)
body2 = evart.getBody(1)

The following example shows how to iterate through all the marker objects of the first body and print their positions:

for m in body1.getMarkerList():
    print( m.getPosition())

Note: A Cortex server can only connect to one client at a time. To ensure that Vizard is able to connect, close all other client applications of Cortex (e.g. MotionBuilder)