Connecting to the IFL Network
Information regarding the networking setup of the Vicon system and IFL PC
Last updated
Information regarding the networking setup of the Vicon system and IFL PC
Last updated
The IFL's network is, in essence, one big IP network where all the Vicon cameras, the PC, router, and any devices a user connects to it (such as a laptop, aircraft) are hosts ("nodes") on that network. This network is a local area network (LAN) configured by the IFL team that is totally distinct from any of GT's networks such as eduroam.
Data is/can be sent around the network using any one of multiple "Internet Protocol (IP protocol)" options in the form of "packets" of a certain size. The most common IP protocol in general use is TCP (transmission control protocol) which is, amongst many other things, used widely for internet applications such as browsing, streaming, etc. TCP focuses on accuracy of data transmission and guarantees its delivery in the order it was sent... packets are not just sent and forgotten; the receiving host verifies that the content was sent correctly and requests re-transmission of any that were corrupted during transmission. All this happens behind the scenes. Because of its focus on guaranteed accurate delivery of packets, TCP is not the fastest way to send data over a network and latency can be added. Enter UDP (user datagram protocol)... UDP is similar to TCP but doesn't have these accuracy-guaranteeing functions. Instead, data is sent out and immediately forgotten about; it's on the user of the data to ensure it is accurate enough to use. In practice, provided you have an orthodox setup with good quality of connection and hardware, you will lose little to no packets using UDP. The major upside of using UDP is its speed; in a real-time decision making application (i.e. flight control) any late or disordered packets once fixed are too late to do anything with anyway so we prioritize speed (low latency) and focus on transmission quality a priori. This is why Vicon Tracker is set up to use UDP and any time-critical communications you wish to perform over the network using your own code should use UDP, not TCP. A more thorough breakdown of the differences between TCP and IP can be found here.
Much like your physical home address that sets it apart from everyone else in the street/city/county/country, any IP network and its hosts need an address; an "IP address". There are multiple ways to define an IP address but the IFL uses a "Class C IPv4" system as shown below (original credit) and described in more detail here:
Note that this address system defines the local "private" IP address only. Since the IFL PC is connected to the internet it also has a "public" IP address for the outside world (eduroam).
IP addresses can be automatically assigned, for example by your home router, or configured to be static, which is what the IFL does (so that our code can thus also be static). The network ID and subnet mask were chosen, fairly arbitrarily, by Vicon and GTAE-IT when the IFL network was installed, and are configured as follows:
Network ID: 192.168.10.xx
Subnet mask: 255.255.255.0
The host ID is to be selected by the user with any number up to 255 allowed (since the host ID is 8 bits), with exceptions as follows (full IP address shown):
192.168.10.1 - IFL1 PC Vicon Ethernet Card Physical Port 1 (for connection to the cameras)
192.168.10.2 - IFL1 PC Vicon Ethernet Card Physical Port 2 (for connection to the WiFi router)
192.168.10.3 - TP Link WiFi Router (configured as a Wireless Access Point)
It is advisable to select your host ID as something somewhat unique/personal to avoid the (admittedly unlikely) event that someone else has picked the same number and happens to be within range of the WiFi router when you are also connected. For example, if everyone picked the next available host ID, #4 (192.168.10.4) and one of Professor Rogers students was benching above the IFL in MK207, there would quite likely be an IP address conflict on the network resulting in a conflict and potentially severe consequences.
Since many different applications/services can be sharing data over an IP connection it is not enough to define the IP address, a unique ID is required to define that specific service (for us, the Vicon service). This ID is called the port number and can take any value between 0 and 65535. You often define the port via concatenation on the end of the IP address, for example 192.168.10.2:51001.
Many port numbers are actually globally standardized to avoid different applications having to be configured on every network, so these should not be selected for use in your application. A list of these reserved ports can be found here but as a rule of thumb you can safely select anything above 49152 since these ports cannot be reserved (see: ephemeral ports).
When Vicon Tracker is on and tracking, it will always be outputting data on port 801 regardless of what settings you pick. However, you can also configure a UDP stream for yourself by going to System > Local Vicon System > Show Advanced and scrolling down to the "UDP Object Stream" section shown in the image below. Here you will choose the desired settings as follows:
Enabled: YES
Data Block Size: 256 in most cases (larger blocks bog down the network unnecessarily but may be required when tracking many objects)
Object Per Port:
If you are tracking a single object, NO.
If you are tracking multiple objects AND want to have a dedicated port for each object, YES. In this case each object will be on a port numbered sequentially beginning at the number specified below.
IP Address:
If you are accessing the UDP stream on the IFL PC you will select localhost. This is a special IP address used to denote "this machine", thus eliminating the need to transmit over hardware.
If you are accessing the UDP stream on a remote device you will select 192.168.10.2. This is the address for the physical RJ45 port on the Vicon network card on the back of the IFL PC, through which the Tracker UDP stream will be transmitted to other hosts on the network.
The fastest and most reliable connection to the IFL network is via a wired connection. This is useful for many things including if you want to connect your own laptop/PC running custom code such as a ground control station, setting up a Linux machine for running ROS, using a static piece of equipment such as an antenna tracker, or if you have a ground robot that doesn't need a wireless connection.
To implement a wired connection you have three options:
Directly connect your device to the second ethernet port on the back of the IFL PC using an ethernet cable (one is already present, usually plugged into the TP Link router but this can be unplugged for your own use).
Connect the second ethernet port on the back of the IFL PC using an ethernet cable to the blue INTERNET port on the back of the TP Link router and then connect any of the yellow ethernet ports to your device using another ethernet cable. This approach is useful if you want to have both wired and wireless connections.
Bring your own network switch and connect it to the second ethernet port on the back of the IFL PC using an ethernet cable, then connect your device(s) to that switch using additional ethernet cables. This approach is useful if you have multiple wired devices and want to use a switch of higher quality than the TP Link wired ports.
In any of the above cases you will need to then configure your device with a static IP. This is operating system dependent (or in the case of embedded applications, language/library dependent), but the Windows 10 instructions are as follows:
Make the physical ethernet cable connection
Go to Control Panel > Network and Internet > Network Connections (or type View Network Connections in the Windows search bar)
Right click on the ethernet connection and hit Properties
Select the "Internet Protocol version 4" in the scroll window and hit Properties
Select "Use the following address" and enter your IP address as 192.168.10.xxx, where xxx is your desired host ID subject to the addressing constraints outlined above. Enter 255.255.255.0 as the subnet mask.
Default gateway and DNS server settings can be left alone since they are not used in our network
Hit OK and your connection should be ready to go. You can check you are successfully connected by opening a command prompt (type cmd in the Windows search bar) and typing 'ping 192.168.10.2'. If you have a successful connection you will see reply readouts from the Vicon ethernet card with performance statistics.
Many applications, most notably aerial robots requiring real time access to the Vicon data stream, will require a wireless connection to the IFL network. To facilitate this, the IFL provides a standard TP Link WiFi "router". This "router" is actually not a router since it is configured in its firmware as a Wireless Access Point (WAP). In short, this means it doesn't perform any internet connectivity, firewalling, or IP address assignment, it merely serves as a portal for wireless connections to the network.
To configure your wireless connection follow these steps:
Connect the second ethernet port on the back of the IFL PC using an ethernet cable to the blue INTERNET port on the back of the TP Link router, if it isn't already connected.
On your remote device set up a WiFi connection with the TP Link router using the default SSID and password printed on its label.
Set up your remote device using a static IP address as described in the previous section