User Tools

Site Tools


other:visual3dserver:plugins:rt_plugin_x-io

RT Plugin X-IO

Development in Progress; Not available of release yet


Overview

This hardware plugin interfaces to the x-IMU inertial measurments units from x-io (www.x-io.co.uk). These sensors report nine channels of raw movement data (accelerometer, gyroscope, and magnetometer, each having x, y, and z axes). The x-io plugin works in tandem with C-Motion's Visual3D Server. Complete description of this software is available at https://www.c-motion.com/v3dwiki/index.php?title=Visual3DServer_Overview. Once Visual3D Server is started, the x-io plugin appears as a tab at the top of the main window. The main control panel of the x-io plugin looks like this:


(Illustration: The main window of the x-io hardward plugin showing its three tabs.)

The main, central element of the window has three tabs: Hardware, Signals, and C3D Parameters.

Hardware Tab

This tab controls the physical state of the sensors. At the very top is a status message for the hardware. Below that is a popup menu item to choose the rate of data sampling. Allowable data rates are 32, 64, 128, 256, and 512 Hz.

(Illustration: The popup menu to select the sensor data rate in Hertz.)

Directly below that menu is a box to select the number of sensors to be connected. The allowable range is 1 to 12 sensors.

(Illustration: Clicking the mouse on the number of sensors.)

To the right of the number of sensors is a popup menu list of the sensors and the serial port to which each is connected. When the number of sensors is changed, the length of this popup menu changes accordingly.

(Illustration: The list of sensors currently available for connection.) To the right of the sensor list is a box to choose which serial port each sensor is connected to. When this box's arrows are clicked with the mouse, the COM port setting changes accordingly in the list to the left. Each time the selection is changed in the sensor list, the “Serial Port” box number changes to reflect whatever was selected for that port.


(Illustration: Clicking the mouse on the serial port number assigns that port to the currently selected sensor.)

The data rate, number of sensors, and serial port for each sensor are automatically saved as user settings for whenever the program starts up.

To determine which sensor is connected to which COM port, use Windows Device Manager. In Device Manager, expand the item “Ports (COM and LPT).” Then plug in the first sensor and note the port number that appears when it is plugged in. Repeat for each sensor and then return to the plugin. To the right of the “Number of sensors” box is a menu list of however many sensors were chosen. They are listed as “Sensor 1” through whatever number was chosen. To the right of that menu is another box labeled “Serial Port.” Click the mouse on the arrows of this box until it reads the number of the serial port for Sensor 1. Then select “Sensor 2” from the menu and change the number in the “Serial Port” box, and so on, until all sensors have been assigned a port. If you then select any sensor in the sensor menu, the “Serial Port” box will change to show the number you assigned. The serial port number must be at least 2 and less than 100.

Connecting the Sensors

Once the elements of the Hardware tab have been set, the next step is to connect the sensors. This is accomplished by clicking the mouse on the long “Connect to Hardware” button at the top of the window. A menu of available hardware is presented, from which the x-io item is selected. This initiates the connection process. Many things can go wrong during hardware connection, and thus several message windows will appear depending on the success or failure of the connection. The first error check confirms that each sensor has been assigned a serial port. If this is not the case, an error will be reported, and the connection will not be completed.

(Illustration: Error message generated when one or more sensors has not been assigned to a serial port.)

If all the hardware parameters are valid, then a confirmation appears with the number of sensors and the serial ports that were selected for each. The “OK” button will attempt to connect the sensors, and the “Cancel” button terminates the connection process.

(Illustration: Confirmation message of the sensors that will be connected.) If there are problems with the hardware, such as a sensor that is not connected, or a port number that is assigned incorrectly, an error message will appear. Otherwise a status message in the upper left corner of the hardware tab will indicate the connection was successful, and a status message above that will continuously show how many frames of data have been read from the sensors. Once the sensors are connected, the “Signals” tab may be selected to view incoming data.

Signals Tab

This tab plots and tabulates all incoming channels of data. Its primary purpose is troubleshooting data problems. For example, you can see if each channel of data is responsive, or if the magnitude of a known sensor input appears to be correct. This tab is also useful to confirm that each sensor was mounted to the correct body segment. The Signals tab looks like this:


(Illustration: The Hardware tab showing the table and graph of incoming data. The accelerometer of Sensor 1 has been selected.)

The upper table has a row for each data type coming from the sensor (i.e. accerometer, gryoscope, etc). There is a column for each axis of that sensor. Clicking the mouse on a data row sends that data to the graph below. The example above shows that the data table row for the accelerometer of Sensor 1 has been selected in blue, and the x, y, and z axes thereof are plotted below. In this case, the sensor was given three quick shakes in the z-direction.

Synchronizing Multiple Sensors

Many, though not all applications in biomechanics require that data samples from multiple inertial sensors be collected simultaneously. Since the x-io sensors function as essentially autonomous units, they do not have a common clock signal for data sampling. Therefore, the C-Motion plugin for x-io offers the option to synchronize data using the analog input port on the x-IMU device. The physical pinouts for this are described in Chapter 14 of the x-IMU manual, with the logical settings for the analog inputs being described in Section 14.3. To make the synchronization work, a switched DC signal of 3 to 5 volts should be applied across pin AX0 and the ground pin on each x-IMU sensor's analog connection block. When data collection commences, the input signal should drop to zero volts, and the data stream from each sensor will be clipped at that data sample.

other/visual3dserver/plugins/rt_plugin_x-io.txt · Last modified: 2024/07/17 15:44 by sgranger