Otus Tracker Documentation and Software Download (deprecated)
Otus Tracker Datasheet
Of you are looking for the Otus Quadcopter documentation, please click here.
You are one click away from downloading the RCbenchmark Tracking Lab, the software for the Otus Tracker.
Server and main software
We are currently offering the software, which also acts as a server, on Windows only. The client can run on any Ethernet or Wifi connected computer (Linux, Raspberry Pi, etc…). To reduce latency (<1 ms), use an Ethernet connection between the server and the client, or run the client and the server on the same machine.
Released: September 15th, 2017
You can run the software without a license key. The only limitation is that your update rate will be limited to 1 Hz. For setup information, click here.
- The trackers are shown in the software with about 0.3 s of latency on computers with slow graphic cards. This issue does not affect the time stamp or the streaming latency of the data. The display of the GUI and the server are running independently.
- The software is not signed yet: Windows will display a warning message. Please select the option ”Run anyway”.
To communicate with other software, the server streams the data through UDP packets. Those packets are read and parsed by the client. We offer example clients for the following programming languages:
They are compatible with:
- RCbenchmark 0.90.0.exe
The client codes are well documented and they are designed to be easy to implement with your software. You can also use them as a reference to implement clients in other languages. If you have clients implemented in other languages and you want to share your code with other users, please contact us! We will make your code available with the proper credits.
Released: September 19th, 2017
|Clients for RCbenchmark Tracking lab|
|ROS projects for RCbenchmark Tracking lab|
The tutorial is divided into three parts:
- Software setup (this page) (3-5 minutes)
- Hardware setup (5 minutes)
- Introduction to the software (8 minutes)
After, you may read tutorials on communication with other software such as ROS. You can follow those tutorials:
The RCbenchmark Tracking Lab and the Otus tracker are compatible with and require SteamVR. Install Steam by downloading the executable (.exe) from the official website. You will have to create an account. For more information, please see the Installing Steam page. Please note that it is preferable to install Steam on the default destination folder as shown on the Steam Setup image.
SteamVR can be installed inside the Steam software. Open Steam, go to Library and click on Tools. Search for SteamVR and double click on it to start the installation.
Download RCbenchmark Tracking Lab
Please download the RCbenchmark Tracking lab from this page.
Run RCbenchmark Tracking Lab
Double click onRCbenchmark_Tracking_Lab_2017.exe. The first time you run the software, some background configuration will be made. The software will prompt you to manually restart the software and SteamVR. You will have to do this only once after installation. While you wait a maximum of 24 hours to receive the license key by email, you can stream data and connect controllers. The only limitation is that recording and data streaming is limited to 1 Hz.
Proceed to the hardware setup section.
Note: If after restarting the program, you get the error “Headset not connected properly” on the SteamVR tools panel, you will have to do the configuration manually as explained in the expandable section below.
Note: “Not Ready” text on the SteamVR tools panel is normal and does not impact the Otus Tracker.
This section should be followed if the automatic configuration of the RCbenchmark Tracking Lab did not work.
If you are getting the error shown on the right “Headset not connected properly” after running the RCbenchmark Tracking Lab Software, it means that the Otus tracker has not been configured to function with SteamVR properly. The RCbenchmark Tracking Lab Software is supposed to fix this problem the first time you run it. If the automatic modification failed, follow these steps:
- Locate the following configuration file and open it with a text editor: C:\Program Files (x86)\Steam\steamapps\common\SteamVR\resources\settings\default.vrsettings
- If you have not installed Steam on the default path ” C:\Program Files (x86)\Steam”, then Step 1 changes accordingly.
- Search for the “requireHmd” key under “steamvr”, set the value of this key to “false” and save the file.
- If SteamVR is running, close and restart it.
- When SteamVR restarts, you will see that it is now possible to connect the Otus tracker without the HMD.
Note: “Not Ready” text is normal and does not impact the Otus Tracker.
Install the Base Stations
- The base stations should be installed at a maximum of 5 meters from each other. More than 5 meters may work, but it is outside the recommended specification.
- One base stations has to be in b _mode and the other base station has to be in _c mode. You can change the mode of operation by pressing the button at the back of the base station.
- We recommend installing the base stations at opposite corners of the room.
- To reduce occlusion, we recommend installing the base stations at a height of around 2 meters. They should be pointing slightly downward: they have a cone of vision of 120 degrees vertically and horizontally.
- More than two base stations is not supported.
- The base stations are synced optically. They have to see each other to work.
You can also see part 1 and 2 in the HTC Vive PRE Installation Guide. Part 1 will explain the room configuration. Part 2 will explain how to install the base station. The other parts in the HTC Vive PRE Installation Guide are not applicable as you are using the Otus tracker.
If you see an “!” beside the base stations icon in SteamVR, you can update your firmware. Please follow the instructions from HTC here. Tracking will work even if you do not update your firmware.
(c) 2015 Valve Corporation.
Install OTUS Tracker
Unbox your Otus tracker kit. Make sure you have all of the following:
- Otus Tracker
- USB Wireless Receiver
- USB to 3-pin Connector
- USB Extension
- USB A to USB mini
- Vibration Isolators
To test tracking, connect the Otus tracker to a USB port on your local machine via the USB A to USB mini cable. Launch the RCbenchmark Tracking Lab software. The SteamVR control panel should launch automatically. The tracker has to see at least one base station to start tracking. Two base stations in sight are required for best tracking performances.
If you are losing tracking when the robot is running, you may need to install the included foam vibration dampers. You need three dampers per tracker. The accelerometer resonates when it experiences high frequency vibrations. We cannot filter the vibrations electronically: the tracker has to be mechanically isolated. This is why we included small vibration dampers.
You can download the CAD model of the Otus tracker here (FBX, OBJ and STL). It can be used for visualisation in your software or for 3D modeling. The model has been simplified to reduce the polygon count and increase performance when used in real time visualisation.
The Otus tracker is powered from a 5V power source from your UAV or robot when used wirelessly. This is to reduce weight.
Follow the connection diagram on the following image. Connect the wireless receiver to the USB extension cable and the USB extension cable to your computer. The USB extension cable is not necessary, but it will reduce the risk of losing tracking due to electromagnetic interference.
Your Otus trackers come paired to their wireless receiver by default. If you want to pair the unit again, right click the controller icon in SteamVR and click “Pair Controller”. Then, press and hold the two buttons on the Otus tracker until the LED flashes blue. Once the LED is solid blue, the trackers are paired.
Proceed to the software setup in the next section.
The program generates a unique encrypted key based on your local machine (2). The encrypted key has to be sent to us via email to: email@example.com (1). The encrypted key can be copied by clicking the copy to clipboard icon (3). We will quickly send you your serial key. In the meantime, you can start using the demo version of the software. The only limitation is that the software will record and stream data at 1 Hz. The Pro version can stream data from 0-400 Hz. Please note that at 400 hz, the data is interpolated. The wireless link is limited to 250 Hz.
RCbenchmark Tracking Lab Setup (2/2)
Once we receive your encrypted key by email, we will send you back a serial key (4) which will unlock the Pro version of the software. You will not need the serial key next time you open the software, but we recommend that you save the serial key.
RCbenchmark Tracking Lab
The main page of the software is shown on the right. You can see the tracker in the virtual environment with its local axis attached. The right-hand ruleis used as the convention for vectors in 3D space. The white box close to the tracker is the HTC Vive base station. The program contains two main tabs: Track and Server. There is also another panel on the bottom right corner for controlling the frequency and resetting the local axis. We recommend marking a cross on the ground with tape and using that cross to reset your local frame of coordinate to the same location every time.
Go to Track >> Record. To record the results into a.txt_file you can toggle from Recording OFF to Recording ON. By default, the_TrackingData.txt_file containing the results will be saved inside an automatically generated folder containing the date and time the file was created. You can decide where to generate the results by clicking the_Open File/Folder Browser. The recording is done at the rate specified in the frequency field at the bottom right. The units are in meters and seconds. The txt file is comma separated. It can be opened by most software for analysis.
Go toTrack >> Tools. To see in-real time the numerical value of the position of the tracker you have to select the controller under Controller Information. Two types of positions are shown: Global and Local. Both are in meters. The global position is the position of the tracker with respect to the base stationb. Note that the position in the Z-Axis is the distance between the tracker and the ground. The local position is the position of the tracker with respect to a user defined frame. If we look at the example shown on the right, the Reset local axis was pressed for the selected Controller 1. The pop up at the bottom of the program shows the location of the new local axis that will be used to measure the position of the tracker with respect to that frame. The data streamed to programs connected to the RCbenchmark Tracking Lab will always be expressed in the user defined frame.
Go to Server >> Record. It is possible to stream data via UDP/IP. The advantage of using the UDP/IP versus the TCP/IP is that it has a faster speed of transfer, it is lightweight and it is more efficient for applications requiring low latency. Two fields need to be specified before streaming: IPv4 Address and Port #. The IPv4 is the address where you want to send data. By default, the IPv4 Address is set to127.0.0.1which is the loopback address. The loopback address is the address used when you want to send data back to the same computer that is sending the data. To stream data to another computer you will need its IPv4 address. You will also need to provide the destination Port number. It is set to 5400 by default.
Note:To obtain the IPv4 address on a Windows machine you need to type ipconfig on the Command Prompt (see middle picture on the right).
Note:To obtain the IPv4 address on a Linux machine you need to typehostname -Ion the terminal (see bottom picture on the right).
Data Streaming from Server to Client
To start streaming you have to toggle from Streaming OFF to Streaming ON. On the right you can see the RCbenchmark Tracking Lab as the Server streaming to a Client program. Each datagram (or packet) sent to the Client contains various data. If we look at the timestamp we can see the moment at which the datagram was created and sent. We can also see that the timestamp is related to the frequency set. For example, setting the frequency at 1 Hz means that a datagram is sent every second, while setting it at 400 Hz means 400 datagrams are sent per second or one datagram every 2.5 ms. Note that the timestamp is the time elapsed between the launch of the program and the datagram creation.
Client Source Code
We are providing you with the source codes of the client in the following languages:
- C (Windows & Linux)
- C++ (Windows & Linux)
The client source codes will take care of the deserialization of the datagrams. You can download the client source codes from this page.
Implement Your Own Client: UDP Package Content
In the case we do not have a client for your software or programming language, your can implement your own UPD client. The content of the streamed packages are shown on the right. Each package is 184 bytes. There are in total 23 data elements, each taking 8 bytes which is the standard IEEE 754 double-precision floating-point format. This is the_double _data type found in C type languages or_float _in Python. Here is a description of the data:
- Controller ID: the identification of the tracker (useful if you are using multiple trackers in your project)
- Timestamp: see part 07
- Linear Position: linear position in X,Y and Z [m]
- Linear Velocity: linear velocity in X, Y and Z [m/s]
- Linear Acceleration: linear acceleration in X, Y and Z [m/s^2] (NOT SUPPORTED YET)
- Orientation Quaternion: orientation and rotation of tracker using the unit quaternions (X, Y, Z, W) convention.
- Angular Velocity: angular velocity around X, Y and Z axes [rad/s]
- Angular Acceleration: angular acceleration around X, Y and Z axes [rad/s^2] (NOT SUPPORTED YET)
- Buttons: buttons found on the Otus tracker, when pressed value is set to 1 and when released goes back to 0
The RCbenchmark Tracking Lab software streams UDP packets over the network. See the code here.
The User Datagram Protocol (UDP) is a transport layer protocol defined to be used with an IP network layer protocol. The UDP is simple and fast which means that it has much lower bandwidth overhead and latency. However, the packets being sent may be lost or received out of order. It is a best-effort delivery meaning that no guarantees are provided for the delivery of the packages.
The Transmission Control Protocol (TCP) is a transport layer protocol defined to be used with an IP network layer protocol. The TCP offers reliable messaging meaning that even lost packages are resent until received. It uses the three-way handshake method. However, the additional services that TCP offers comes at a cost in terms of additional data overhead and delays.
The server is theRCbenchmark Tracking Lab. The server communicates with the client program via UDP/IP and TCP/IP. The role of the server is to provide the necessary data to the client.
The client can be any program that wishes to acquire data from the server. Currently, the source code is provided to connect to the UDP sockets of the server using the following programming languages: C, C++, C#, Python, MATLAB and LabVIEW. To connect to the TCP sockets of the server, a source code in C# is provided. A ROS (Robot Operating System) module is provided, as well, to interface in real-time with the server.
Table 1. RCbenchmark Tracking Lab Ports and Protocols
|5400||UDP||Kinematics w.r.t. User Defined Frame, and more (See Figure 1)|
|BYTE #||UDP PACKAGE CONTENT|
|16||Linear Position: x|
|24||Linear Position: y|
|32||Linear Position: z|
|40||Linear Velocity: x|
|48||Linear Velocity: y|
|56||Linear Velocity: z|
|64||Linear Acceleration: x|
|72||Linear Acceleration: y|
|80||Linear Acceleration: z|
|88||Orientation Quaternion: x|
|96||Orientation Quaternion: y|
|104||Orientation Quaternion: z|
|112||Orientation Quaternion: w|
|120||Angular Velocity: x|
|128||Angular Velocity: y|
|136||Angular Velocity: z|
|144||Angular Acceleration: x|
|152||Angular Acceleration: y|
|160||Angular Acceleration: z|
Figure 1.UDP Package Content
The Otus tracker has low tracking performance in the form of glitches or high noise.
The Otus tracker should have a resolution and a noise level under 1mm. Here are the main reasons the tracking performance can be poor as well as the common solutions.
- Large mirrors in the room. Cover the mirrors with sheets.
- Interferences due to a very high number of wifi networks (like in a tradeshow). Reduce the distance between the USB dongle and the Otus. If it is not sufficient, fly in another environment, or reduce the number of wifi connections.
- The USB dongle may be too close the computer and the computer EMI can confuse the wireless receiver. Use the provided USB extender with the USB dongle to increase the distance between the computer and the receiver.
- The Otus tracker too close to the base station (<70 cm). Use the tracker at a distance of 0.7m to 5 m from the base stations.
- The base stations may be mounted on flimsy supports and vibrate. Mount the base stations on the walls, or use heavy duty tripod.