Comment on page
Real Time Applications
In many cases, IFL users will need to use Vicon data in real time (such as in real-time onboard/offboard control, synchronizing data, or ground control visualization). To facilitate this, Vicon Tracker continuously outputs onto the local network over a UDP stream, which can be accessed by the user directly or by using Vicon's DataStream SDK.
Over time the IFL team and its users have developed, and will continue to develop, code that covers many of the functionalities future users may wish to perform. This code can be found in the IFL repo and described in the IFL Codebase section of this Gitbook.
Since the Vicon data stream is being output over the well-defined UDP IP protocol, this stream can be directly accessed, parsed, and used by any device/application with the ability to connect to the network. Many great off-the-shelf libraries exist to facilitate this, such as:
- Python: "import socket"
- C/C++: "include <sys/socket.h>"
- MATLAB: udpport()
- Simulink: "UDP Receive" block in the Instrument Control Toolbox
See the Shared Code section of this Gitbook and the IFL repo for existing direct UDP implementations.
Vicon's DataStream SDK provides a library of tools that simplifies the process of accessing the UDP stream and offers enhanced functionality (such as the ability to interrogate Tracker for information regarding the system's health and performance). Note that DataStream SDK requires an operating system (Windows 32/64-bit, Linux, or Mac), it is not for embedded applications. Once downloaded you will be able to develop applications in C, C++, .NET, Python, or MATLAB. Vicon provide examples for each of these options in the download.
As of April 2021 there is only one viable ROS package named "Vicon Bridge" developed by ETH Zurich, that is unfortunately only included in EOL distros (the latest being Jade). This package is in fact an interface to the DataStream SDK, so developing a version in-house shouldn't be too difficult for those with good knowledge of ROS.