Table of Contents
RT Plugin Vicon DataStream
Overview
The Vicon™ DataStream™ Plugin is used in Visual3D Server™, and Visual3D RT™, it connects to Vicon™ DataStream™ software.
The Vicon™ DataStream™ Plugin talks to Vicon Nexus 1.7.x, 1.8.x, 2.0 and 2.1.
Plugin Interface
The “Plugin Help” button leads to this web page should you need to reference this page in the future.
The “About Plugin” button has details on the plugin being used including version, release date, copy right, support contact information and the hardware SDK version.
Frame Info
Current frame The current frame number on the top left hand side on the screen (where it currently reads 004971) keeps a count of the current frame which is assigned by the hardware or software system.
Missed frames The missed frames number is on the bottom left (where it currently reads 000729). Whenever there is a gap in frames sent by the hardware of software system a blank frame is inserted. The dropped frames count keeps a record of both the number of frames which are blank.
Hardware time The hardware time number is on the top, in the centre (where it currently reads 004.6). This time stamp is created by the hardware being used and is how long, in milliseconds, the hardware has been running.
Server time The server time number is on the bottom, in the centre (where it currently reads 004.6). This time stamp is created by the server and is how long, in milliseconds, it has been connected to the hardware or software which is streaming to it.
Hardware latency The hardware latency is on the top right hand side (where it currently reads 000.0 ms). This indicated the delay created by the hardware system.
Server latency The hardware latency is on the top right hand side (where it currently reads 000.0 ms). This indicates any delay introduced by the server.
Hardware
Stream Mode
The Stream Mode controls how Visual3DServer receives data from Vicon DataStream. The stream mode must be set before connecting to Vicon, once the programs are connected the stream mode drop down menu will become greyed out and will remain inaccessible until you disconnect the programs. There are three options for the stream mode ClientPull, ServerPush and ClientPullPreFetch.
- The ClientPull setting has Visual3DServer approaching the Vicon program at regular intervals determined by the Thread Sleep in order to collect frame data. This setting is useful when you want to control the frequency with which Visual3DServer collects new frames. However, since processing must be momentarily stopped while the Server looks for new data the lower the Thread Sleep goes the more likely there will be delays in the Server.
- The ServerPush setting had the Vicon program send every new frame of data to Visual3DServer. This setting is useful if you do not want Vicon to drop frames since the most recent data will always be sent. However, if Visual3DServer cannot read the data at the rate it is being sent then it will eventually begin to drop frames.
- The ClientPullPreFetch setting is a combination of the two modes. The Vicon program preemptively pulls the data which is to be sent to Visual3DServer and stores the data. This prevents the buffers in either program from filling up and dropping frames and the programs are less likely to stall. However, this does increase the amount of network traffic by requesting frames that may not be used.
The stream defaults to for Visual3DServer is ClientPullPreFetch mode as this is considered the safest option. If performance is a problem, then try varying the mode to see which works best for your particular setup.
Below is the technical explanation for the three modes as provided by Vicon in it's “Vicon DataStream SDK Manual.” Please see Vicon should you wish to know more of the technical details concerning these modes.
In “ClientPull” mode, the Client waits for a call to GetFrame(), and then request the latest frame of data from the Server. This increases latency, because we need to send a request over the network to the Server, the Server has to prepare the frame of data for the Client, and then we need to send the data back over the network. Network bandwidth is kept to a minimum, because the Server only sends what you need. We are very unlikely to fill up our buffers, and Server performance is unlikely to be affected. The GetFrame() method blocks the calling thread until the frame has been received. In “ServerPush” mode, the Server pushes every new frame of data over the network to the Client. The Server will try not to drop any frames. This results in the lowest latency we can achieve. If the Client is unable to read data at the rate it is being sent, then it is buffered, firstly in the Client, then on the TCP/IP connection, and then at the Server. Once all buffers have filled up then frames may be dropped at the Server and the performance of the Server may be affected. “ClientPullPreFetch” is an enhancement to “ClientPull” mode. A thread in the SDK continuously and preemptively does a “ClientPull” on your behalf, storing the latest requested frame in memory. When you next call GetFrame(), the SDK returns the last requested frame which we had cached in memory. GetFrame() does not need to block the calling thread. As with normal “ClientPull”, buffers are unlikely to fill up, Server performance is unlikely to be affected. Latency is slightly reduced, but network traffic may increase if we request frames on behalf of the Client which are never used.
IP Address
The IP address and Port allows Visual3DServer to locate the data that is being broadcast. Both of these need to be set before connecting to Vicon. Once the programs are connected the IP address and Port fields will become greyed out and will remain inaccessible until you disconnect the programs. The ServerIP address must be entered into the dialogue box in the hardware tab. The IP address used in the image above is 192.168.1.105. Vicon™ does allow for the “localhost” or 127.0.0.1 shortcuts to be used. If you need help finding the IP address of the computer running the data capture see Trouble Shooting. The Port number is a port which has been chosen by Vicon to broadcast data from. Vicon currently uses port number 801 which is the default in Visual3DServer. Do not change this value or you will not be able to connect to the Vicon program. If you have inputted the correct IP address and Port number 801 and are receiving an error message please contact support@c-motion.com.
Vicon System File
The Vicon System File is a file generated by Vicon Nexus which provides Visual3DServer with the location of the force platforms. This file needs to be available to Visual3DServer in order for it to be able to calculate forces. A new systems file should be generated each time that there is a change in the location of either the force platforms or one of the cameras. The systems file needs to be generated from Vicon Nexus by the user, saved to disk (with a unique and descriptive name), and then loaded to the Visual3DServer using the Browse button next to the System File text box. For more details on how to generate a System File in Vicon Nexus see the documentation provided with your Nexus software.
Subframes
Because force platforms generate data at a higher frequency than current camera hardware can there is the creation of subframes. These are frames which contain data from the force platforms but not from the cameras. If the Subframe checkbox is selected then Visual3DServer will accept and stream to any clients the subframes produced by the force platforms. If you are using a biofeedback client that uses force data to generate heel strikes and toe offs it is highly recommended that you leave this checkbox selected.
Signals
C3D Params
Force Platform
3D View
The right hand side of the screen provides a real-time 3D graphical representation of the data being streamed.
Save 3D View
This button allows you to save what is currently being displayed in the 3D view graphics area. The image can be saved in a number of standard formats, such as .bmp, .ico, .jpeg, .jpg, .pbm, .pgm, .png, .ppm, .tif, .tiff, .wbmp, .xbm, or .xpm. This function is ideal for producing graphics for papers or presentations. Saved images can be edited with 3rd party graphics programs if needed.
Copy 3D View to clipboard
This button allows you to copy what is currently being displayed in the 3D view graphics area to the clipboard. This allows you to paste the image into any program that supports copy and paste. This is useful for working with presentation or graphics editing software.
Reset camera 3D View
This button brings the 3D viewer back to it's beginning position. You may find that having used the rotation, translation, and zooming capabilities of the 3D view you have lost track of where you are in the graphics, which can make returning to a proper view of your data challenging. The reset view button removes this frustration and reorients you.
3D View Preferences
This button allows you to change how the graphics that are presented to you. Changes happen in real time. At the bottom is the “Restore Defaults” button which resets all of the options to their standard setting.
= Scene =
Lighting on - When selected graphics that are suppose to be 3 dimensional have shadows to help simulate shape. When not selected objects are one solid color.
Reset camera view on connect - When this box is selected and you connect or reconnect to hardware the camera view will reset to it's default.
Alpha-blending on - When this box is selected the graphics are slightly transparent and allow you to see what is behind them
Anti-ailiasing on - When this box is selected all the lines in the graphics are smooth. If it is not selected the lines that are not either horizontal or vertical change directions portion by portion.
= Background =
Color - This allows you to change the background color to anyone you chose.
= Floor =
When the check box next to the floor is not checked the floor will not appear in the 3D View. In this case all the bellow options will be greyed out as they will have no effect if the floor is not present.
X-size - This allows you to customize how many panels the floor is composed of in the x direction. the minimum is 1 and maximum is 100. The default size is 5.00.
Y-size - This allows you to customize how many panels the floor is composed of in the y direction. the minimum is 1 and maximum is 100. The default size is 5.00.
X-offset - This allows you to shift the entire floor along the x-axis either in the positive or negative direction. The maximum value allowed is 100 and the minimum value is -100. The default setting is 3.00.
Y-offset - This allows you to shift the entire floor along the y-axis either in the positive or negative direction. The maximum value allowed is 100 and the minimum value is -100. The default setting is 3.00.
Z-offset - This allows you to shift the entire floor along the z-axis either in the positive or negative direction. The maximum value allowed is 100 and the minimum value is -100. The default setting is -0.01.
Color - This allows you to change the floor color to anyone you chose.
Show grid - This allows you to remove the grid lines from the floor by unchecking the checkbox.
Grid line width - This allows you to change the thickness of the gridlines. The minimum value is 1 and the maximum value is 10. The default width is 2.00.
Grid color - This allows you to change the grid line color to anyone you chose.
= Axes =
When the check box next to the axis is not checked the axis will not appear in the 3D View. In this case all the bellow options will be greyed out as they will have no effect if the axis is not present.
Line width - This allows you to change the thickness of the axis lines. The minimum value is 1 and the maximum value is 10. The default value is 2.00.
X-Axis Color - This allows you to change the x-axis line color to anyone you chose.
Y-Axis Color - This allows you to change the y-axis line color to anyone you chose.
Z-Axis Color - This allows you to change the z-axis line color to anyone you chose.
= Force Plates =
When the check box next to the force plates is not checked the force plates will not appear in the 3D View. In this case all the bellow options will be greyed out as they will have no effect if the force plates are not present.
Plate Color - This allows you to change the force plate color to anyone you chose.
Show labels - This allows you to remove the force plate label, (such as FP1, FP2 . . . etc) from the 3D view.
Label Color - This allows you to change the force plate label color to anyone you chose.
Show forces - When checked the forces will be show in the 3D view using arrows.
Force Type A Color - This allows you to change the color of the raw force arrows to anyone you chose.
Force Type B Color - This allows you to change the color of the force structure arrows to anyone you chose.
= Tracking Markers =
When the check box next to the tracking markers is not checked the tracking markers will not appear in the 3D View. In this case all the bellow options will be greyed out as they will have no effect if the tracking markers are not present.
Radius - This allows you to change the radius of the markers. The maximum value is 0.100 the minimum value is 0.001. The default radius is 0.020.
Marker Color - This allows you to change the color of the marker color to anyone you chose.
Show Labels - This allows you to remove the marker labels from the 3D view.
Label Color - This allows you to change the color of the label to anyone you chose.
= Segment Markers =
When the check box next to the segment markers is not checked the segment markers will not appear in the 3D View. In this case all the bellow options will be greyed out as they will have no effect if the segment markers are not present.
Radius - This allows you to change the radius of the markers. The maximum value is 0.100 the minimum value is 0.001. The default radius is 0.020.
Marker Color - This allows you to change the color of the marker color to anyone you chose.
Show Labels - This allows you to remove the marker labels from the 3D view.
Label Color - This allows you to change the color of the label to anyone you chose.
= Segment Lines =
When the check box next to the segment lines is not checked the segment lines will not appear in the 3D View. In this case all the bellow options will be greyed out as they will have no effect if the segment lines are not present.
Line Width - This allows you to change the thickness of the segment lines. The minimum value is 1 and the maximum value is 10. The default value is 1.00.
Color - This allows you to change the color of the segment lines to anyone you chose.
= Segment Geometry =
When the check box next to the segment geometry is not checked the segment geometry will not appear in the 3D View. In this case all the bellow options will be greyed out as they will have no effect if the segment geometry is not present.
Color - This allows you to change the color of the segment geometry to anyone you chose.
= Segment Bones =
When the check box next to the segment bones is not checked the segment bones will not appear in the 3D View. In this case all the bellow options will be greyed out as they will have no effect if the segment bones are not present.
Color - This allows you to change the color of the segment bones to anyone you chose.