Vizard 7 » Reference » Input Devices » Position and Orientation Trackers » Polhemus
7.6

Polhemus plug-in

This plug-in provides support for the Polhemus Patriot, Patriot Wireless, Liberty, Liberty LATUS, G4, MinuteMan, and Fastrak tracking devices.

Initialization

The Polhemus plug-in is implemented as a Vizard extension. Once the Polhemus extension is added, the following methods/constants are available on the extension object:

Method

Description

<polhemus>.addPatriot()

<polhemus>.addLiberty()

Returns the next available Patriot/Liberty sensor. The Patriot/Liberty sensor provides 6DOF data. If a Stylus is attached, the sensor also provides button data.

<polhemus>.addMinuteMan()

Returns the next available MinuteMan sensor. The MinuteMan sensor provides 3DOF orientation data.

<polhemus>.addPatriotWireless(marker=0, receptor=1)

<polhemus>.addLibertyLatus(marker=0, receptor=1)

Returns a Patriot Wireless/Liberty LATUS sensor. If marker is 0, the next available launched marker is returned. If marker is greater than 0, then the specified marker is returned. If the marker is not already launched, the plug-in will attempt to launch it on the specified receptor. The Patriot Wireless/Liberty LATUS provides 6DOF data.

<polhemus>.addG4()

Returns the next available G4 sensor. You must specify the path to your G4 source config file with the <polhemus>.setG4Config() command before attempting to add a G4 sensor.

<polhemus>.setG4Config(config)

Set the G4 source config file (.g4c) for all subsequent connection attempts.

<polhemus>.addFastrak(port=1,baudRate=115200)

Returns the next available Fastrak sensor. If the Fastrak is connected over serial, the specified port and baudRate will be used to establish a connection. Otherwise, if the Fastrak is connected over USB, the specified parameters will be ignored. The Fastrak sensor provides 6DOF data.

<polhemus>.HEMI_POS_X

<polhemus>.HEMI_NEG_X

<polhemus>.HEMI_POS_Y

<polhemus>.HEMI_NEG_Y

<polhemus>.HEMI_POS_Z

<polhemus>.HEMI_NEG_Z

<polhemus>.HEMI_AUTO

 

Hemisphere tracking constants. Used by the <patriot>.setHemisphere() and <fastrak>.setHemisphere() commands. See below.

<polhemus>.STYLUS_MOUSE

<polhemus>.STYLUS_POINT

Patriot Stylus modes. Used by the <patriot>.setStylusMode() command. See below.

The Patriot sensor objects have the following methods in addition to the standard extension sensor methods:

Method

Description

<patriot>.setHemisphere(vec)

Set the hemisphere tracking vector to the specified vector. You can use the predefined hemisphere constants above. The default is <polhemus>.HEMI_AUTO.

<patriot>.setStylusMode(mode)

Set the Stylus mode using one of the predefined constants above. The default is <polhemus>.STYLUS_MOUSE.

The G4 sensor objects have the following methods in addition to the standard extension sensor methods:

Method

Description

<g4>.getHubSensorID()

Returns a tuple containing the (hub,sensor) ID of the G4 sensor. The hub/sensor IDs use 0-based indices.

The Fastrak sensor objects have the following methods in addition to the standard extension sensor methods:

Method

Description

<fastrak>.setHemisphere(vec,auto=False)

Set the hemisphere tracking vector to the specified vector. You can use the predefined hemisphere constants above, except for <polhemus>.HEM_AUTO. To enable automatic hemisphere tracking set the auto parameter to True. When enabling automatic hemisphere tracking, the specified vector should be set to the hemisphere the sensor is currently in. By default, Vizard will set the automatic hemisphere tracking on in the +Y hemisphere.

Note: The Polhemus Patriot and Fastrak must be powered and initialized in a particular way. The sensors must be placed in the +Z hemisphere (in terms of Vizard's standard coordinate system, +X in terms of the default Polhemus coordinates) both during the device power-up (until the green LED light is steadily on) and the initial Vizard connection. Thereafter, the sensors can be placed anywhere and automatic hemisphere tracking is robust.

Note: When launching a Patriot Wireless/Liberty LATUS marker, the marker should be placed 12-14 inches behind the receptor with the front of the marker aligned with the tail of the receptor.  The marker and the receptor should be oriented with the same orientation.

Note: Older versions of the Fastrak USB driver were unstable and would frequently cause crashes. The latest drivers appear to fix these issues. If you are experiencing problems connecting to your Fastrak over USB, contact Polhemus support and make sure you have the latest USB drivers.

Example

The following example shows how to create the Polhemus extension:

polhemus = viz.add('polhemus.dle')

The next example shows how to connect to 2 Patriot sensors:

patriot1 = polhemus.addPatriot()
patriot2 = polhemus.addPatriot()

This example show how to connect to 2 Patriot Wireless markers that have been already launched:

patriot1 = polhemus.addPatriotWireless()
patriot2 = polhemus.addPatriotWireless()

The following code shows how to add Patriot Wireless markers 1 & 2 that have not been launched:

patriot1 = polhemus.addPatriotWireless(1)
patriot2 = polhemus.addPatriotWireless(2)

The following code shows how to connect to 2 G4 sensors:

polhemus.setG4Config('config.g4c')
sensor1 = polhemus.addG4()
sensor2 = polhemus.addG4()

The next example shows how to connect to a MinuteMan sensor:

mm = polhemus.addMinuteMan()

To connect to 2 Fastrak sensors, use the following code:

fastrak1 = polhemus.addFastrak()
fastrak2 = polhemus.addFastrak()