Back to contents pageHow to set up a Ubisense system (1)

How to set up a Ubisense system (1)

Summary

This article shows how to set up a simple Ubisense real-time location system on Windows, starting at the beginning. Links to explanations of computing and other technical terms are included - some are more widely known than others! If you haven't heard of a specific term before, click the link. You won't need to read more than the first couple of sentences for a real benefit. Please report broken links to support@ubisense.net.

When you need to do some action, this is an example of the format used.



Prerequisites

None. You can use this article on its own.



Guide

You should have access to the following:



1) Extract your software release

On your server machine, create a folder called something like "Ubisense release", where you will keep your Ubisense software. It is a good idea to keep this separate from any files you might create later, for example backups of your system or log files. There is potentially going to be a lot of data produced by your location system, so it is recommended that you keep things where they are easy to find. Save and extract your download in your new folder.

The first file you should find in the software release is the release note text file. This includes a list of supported platforms, installation instructions and any changes made since the previous release.

The next file you need to access is the setup executable, located in your download at something similar to setup/windows/Setup.Exe. Run Setup.Exe by double-clicking on it (or, equivalently, run UbisenseSetup.msi).



2) Install the Ubisense software

When you run the setup program, you will see something similar to this:



Each item displays a short description when you click on it. The main point to note is that the "Servers" item might not be selected by default. This is because in general, you will have one server machine and as many client machines as you want. Select "Servers" to be installed on your machine The other item that might not be selected by default is "Developer", which you should install if you have purchased a Ubisense Developer Licence. You will never need to de-select any of the items that are selected by default.

Click through the installer to install the Ubisense software.



3) Start Platform Control

By default, the Ubisense software is now installed in something similar to C:/Program Files/Ubisense 2.1. Shortcuts to the programs with a user-interface are installed in your start menu folder, so you should access the Ubisense software via Start > All Programs > Ubisense 2.1.

Click on Start > All Programs > Ubisense 2.1 > Platform Control. This is the only Ubisense program with a user interface that will start successfully at this point because it is the program that you use to run the core services required by other Ubisense software.

One thing you could try at this point is running one of the other Ubisense programs, for example "Map". You will repeatedly get a warning message and the program won't start properly. The reason for the warning is that you haven't started any services yet. Then, if you get a similar warning in future, you will know why.



4) Install licences

The first time you run Platform Control, you will get a warning about licences. Please do not take a screenshot of the message. The warning message is automatically copied to your clipboard, so you should be able to use Ctrl-v to paste the message into an email to support@ubisense.net.

When you receive your licence installer, you should save it in or next to the folder where you put the Ubisense software download for safe keeping. Extract and run the licence installer.



5) Start the Ubisense platform

If you restart Platform Control, it should now go straight to the main window without displaying the licence warning. The various controls are described in detail in the help manual, but here is a quick summary of the controls in version 2.1.7, described for new users. Read these through for now without changing anything - instructions will follow after:

In Platform Control, click on "Browse" and choose where to keep your dataset. The dataset directory entered in Platform Control will be populated with some files that you will not want to touch, so make sure the last part of the text in the box includes some sort of indication that it is a Ubisense dataset folder (don't just call it "Ubisense"...). Now, start the UbisenseCoreServer service only. Its status should change to (and remain steady as) "running".

There is now one further program that will start: Service Manager. Click on Start > All Programs > Ubisense 2.1 > Service Manager. We currently have no services installed in the dataset, and there are also no controllers running. Back in Platform Control, Start UbisenseServiceController. You should see the name of your machine appear in the "Controllers" list in Service Manager.


In our simple setup, your "core server" is the same computer as your "service controller", but you can actually have as many controllers as you need to distribute the load. After starting only UbisenseServiceController (not UbisenseCoreServer since there can be only one of these) on other machines on the network, you would use Service Manager to configure this.

You can now install the rest of the services, which will be run on the controller (see next instructions).



6) Install services to your dataset

Services are installed to your dataset using the Service Installer wizard.

This means that some of the files that you downloaded and saved in your "Ubisense release" directory are going to be automatically copied into folders within the "dataset" directory you chose in Platform Control. They will then be run automatically.

Click on Start > All Programs > Ubisense 2.1 > Service Installer. The download you saved earlier contains the service executables, so browse to setup/packages and click "Next". You should see a set of packages. You will probably never need to do anything other than install all the available packages. Click on "Select All" and then "Next", and click through to "Finish". As services are installed, you will see the progress bar move. It might take some time, since some of the files being copied are quite large, in particular in the "UBootstrap.xml" package. This package contains the code that will run on your sensors.

Service Installer allows you to select any XML file and attempt to install its package, which may or may not exist, depending on whether you actually browsed to the Ubisense "packages" directory! If you get any error messages, you probably browsed to the wrong place.



7) Mount your sensors

If you have 4 sensors, a simple configuration is a square with sides in the range of 10-30m. Mount the sensors at the corners of the square, near the ceiling for good line of sight across the tracked space. The sensors should point towards the floor in he middle of the space, and should have no roll. You must use a spirit level across the back of the sensor case to ensure there is no roll.





8) Start a DHCP server

If your server and sensors are connected to an existing network with a DHCP server, go to the next section. If you are at all unsure, do not follow the instructions in this section. You will break the existing network if you run another DHCP server on it. If you continue with this section, remember to stop the DHCP server before connecting to another network.

Software DHCP servers can be freely downloaded, for example from here. If you use this one, you should read the instructions in the readme, but you should only need a very simple configuration. You need to set it up to use the same subnet mask as the network card on your server, and set the "IPPOOL" to use a range of addresses on the same subnet.



9) Connect your sensors to the platform

You now need to connect the sensors to your server machine. "Master" and "Slave" sensors are physically the same. The minimum requirement for your network cables is CAT5e. Connect them as follows:



We have not connected anything to the other ports on the sensor yet. If your sensors are easily accessible, wait until the section on connecting timing cables. This will make it clear what the cables are for, and what will work, or not, if any of your cables are faulty. If your sensors are less accessible and it would save you time to connect all the cables at the same time, go to the section on timing cables now, then come back here.



9) Boot sensors

You need to add your sensors to a "Location Engine Cell", or "Sensor Cell". This is done in Location Engine Config (LEC). Click on Start > All Programs > Ubisense 2.1 > Location Engine Configuration. Create a new Location Engine cell: click on Cell > New. If you plugged in your sensors correctly, you should see their MAC addresses in the "Available Sensors" section. Select LocationEngineCell 0001, then drag the available sensors onto the map (anywhere will do).

Sensors should now start booting (flashing green light). Look at the "Log" tab in LEC to see log messages coming from the sensors. When they are booted, if you didn't skip ahead and connect timing cables, the sensor light flashes red/green continuously. This indicates that it is running, but there is no "timing signal". Look at the "Sensor Status" tab in LEC. Your sensors should be in the table with an indication that the timing signal is missing, but the "Last Seen" time should be updated regularly, and the IP address should be as expected from your DHCP settings. If anything doesn't make sense, check you have done everything in the instructions, and that your cables are connected correctly.



10) Configure sensor flags

A sensor "flag" refers to a piece of software configuration that tells the sensor what to do. Double-click on a sensor in LEC to open the sensor properties dialog for that sensor. Go to the "Flags" tab. There are 3 flags that you need to know about now:

Generally, a cell must have exactly one "timing source" and exactly one "master" sensor. This may or may not be the same sensor. It becomes an important choice if you need to set up a Ubisense system in a difficult environment with many obstacles to radio signals (metal walls and so on). For our simple single-cell example, it almost certainly makes no difference which sensor(s) you choose.


Factors affecting the choice of master sensor include that it needs to be able to communicate with Ubisense tags thoughout the cell via a conventional radio channel. Factors affecting the choice of timing source sensor include that it might need to receive a timing signal from an adjacent cell, wirelessly or via a cable.


Check the "Timing source", "Master" and "Reboot" flags for one of your sensors.

You now need to configure the cell to be the generator of a timing signal:

Double-click on the cell and check the "Generator" flag in the cell properties "Radio" tab.

This means that the cell will generate a timing signal - it doesn't receive it from any other cell. The chosen sensor should reboot and get a steady green light, and be "Running" in the "Sensor Status" tab in LEC.



11) Connect timing cables

Now you should have one sensor with a steady green light and the rest should be flashing red/green/red/green... This indicates that sensors are not receiving a "timing signal" (more on what this is coming up). "Timing cables" should be at least shielded Cat5e. Of the 6 ports on the sensor, the top-right is the "input". Any of the 6 is an identical "output" from the timing source. Connect timing cables as follows:



Now, all your sensors should have a steady green light and "Running" should be shown in the "Sensor Status" tab in LEC. Anything else should be treated as requiring some action.

At any time your system is running, any sensor without a steady green light needs you to do something to fix it.

Now you have connected your sensors, you should really check again that they are level (zero roll) and pointing sensibly, probably at the middle of the cell. Decide how accurate you want to be: if you are going to dismantle the system at the end of this guide, just make sure sensors have not moved significantly since you levelled them before and carry on with the survey. If you are going to leave the system in place for a while, be more careful and orientate sensors as best you can. If you are setting up a permanent system or you require good accuracy, practise until you can get the sensors perfectly level and orientated correctly. You must ensure they cannot move or be knocked into a different orientation by anything. Finally, tie up cables so they don't pull on the sensor.



12) Power thresholds

A power threshold refers to the UWB signal received by the sensor. If the received signal strength falls below the threshold, it is rejected as random noise. Power thresholds have default values that may well work for your simple setup, or they could produce completely useless results, depending on your radio environment. For optimum results, you should always follow the instructions in this section to calibrate the thresholds.

Remove any Ubisense tags that are awake from your cell. Only if you have woken any up by holding the button until the light on the tag goes out - either put them in a metal box, move them far away, remove their batteries or put them in deep sleep (LEC "Tags" tab > Tag menu > Battery... > "Deep Sleep" button).

In LEC "Sensor and Cells", right-click on the cell > Incident Power Plot... . This displays the UWB received at each sensor. You must see no spikes in the graphs for this to work. Spikes mean there is a Ubisense tag awake in the vicinity of the sensor. If you see only noise, wait until the "Set Thresholds" button becomes enabled. The threshold value is shown as a horizontal red line on the graph. Basically, it needs to be above the noise that is coming in on the graphs. Click "Set Thresholds" to set the thresholds automatically . Then, if you want, you can bring the tag(s) back to see the spikes in the received power, and confirm that they are well above the threshold line.







13) Survey sensor positions

You need to decide on a co-ordinate system. You are going to find the positions of the sensors and at least one other point in the middle of the cell. These points will be saved in your dataset. The other information that the system needs will be computed automatically when you calibrate the cell: the orientation of the sensors and the length of the timing cables.

If you have a total station, go ahead and measure the positions of the sensors. Get at least one additional reference point in full view of each sensor. Ideally, this will be one point, maybe marked on a desk or tripod where you can easily place a tag, in the middle of the cell.

If you only have a laser distance measuring device, LEC provides a mechanism to get your reference points. To start, you will define (0, 0, 0) at the bottom corner of the room and (x, 0, 0) or (0, y, 0) at an adjacent corner. Measure the length of the wall to get the second coordinate. If your wall is 20m along your x-axis, you will have the reference points (0, 0, 0) and (20, 0, 0) defined at the bottom corners. Take the height of the room if you are more likely to get a line of sight to the top corners. Always define the floor to be z = 0.

To add a reference point in LEC, in the "Sensor and Cells" tab, click on Map > Add survey points.... Read the instructions in the dialog carefully. To add any points for which you already have coordinates, just type in the coordinates to the "Candidate 1" text boxes, then type in the names for the survey point group and point names. The group name could be something like the name of the room you are in. Get into the habit of using unambiguous point names that are marked on the real-world reference point. Ideally, if you can, you should mark reference points permanently with a point name label and reflective laser target:




If you are just using a distance measuring device, you will now need to use the LEC tool to compute the positions of the sensors and your additional reference in the middle of the cell. You might need to get several intermediate reference points, depending on available lines of sight and required accuracy. Measure 3 distances from each new point as instructed in the dialog. For example, to get your first reference point after the room corners, the 3 distances will be to the 2 room corners discussed above, plus the height. Choose the candidate point that matches, and click on "Add survey point" save it. Repeat until you get all the sensors and a point in the middle of the cell, double-checked as you require. Again, if you are going to dismantle the setup once you have finished going through this guide, just make sure the points are approximately correct.

It might even be interesting to see what happens if you deliberately get sensor positions wrong, maybe by a few centimetres, then by several metres or so they are incorrectly swapped. You would see that you always get high accuracy at the point where you calibrate the cell, which can be very misleading later!



14) Enter sensor positions

You should now see your survey points in the "Sensor and Cells" tab of LEC. Click on the map and press "3" to go into 3D mode to check both heights and positions are correct.



You need to put the sensors at their surveyed position using the "Sensor Properties" dialog where you set the flags earlier. Double-click on a sensor, and select the "General" tab. This is where you edit the position of the sensor. Click on "Position at surveyed" to select its survey point. You can (but don't do it now) use "Point at surveyed" to set its approximate orientation to point at your survey point in the middle of the cell. Repeat the process to set the (x, y, z) coordinates of all your sensors using your survey points. You should never find yourself needing to type directly into the text boxes to set the sensor position, but to be flexible, you can if you want.



15) Calibrate sensor orientations

The next piece of information currently missing from your setup should be clear from the map: sensor orientations. If you haven't changed them, sensors will all be pointing along the x-axis. Orientations are computed automatically by using one of the calibration wizards in LEC. The basic idea is that you put a Ubisense tag in a known position, tell LEC what that position is, then it takes readings of the AoA from the tag and tells you the orientation of the sensor from the average of set of measurements. If the calibration succeeds, you save the results. Otherwise, you make sure the sensor can see the tag and try again. You will never need to average any calibration results yourself - it is all done by one of the services through LEC.

We are going to use the "Orientation calibration" tool to get our sensor orientations. Make a note of the tag id you are going to use, and make sure the tag is "awake". Tags are shipped in "deep sleep" mode to save battery life. To wake one up, press and hold the tag button until the light goes out. The light on the tag should flash occasionally without you pressing the button when it is awake.



There is another type of "sleep" mode that a tag can go into when it doesn't move. To disable this whilst we do the calibration, set the "Disable sleep" flag on the master in the same way you made it the master in the first place.

Right-click on a sensor and select "Orientation Calibration...". You then need to follow the instructions in the wizard. When you click through, as with sensor positions, don't type in coordinates directly - use the survey points you created.

If you followed the instructions all the way through, the selected sensor will now be correctly orientated on the map. If it looks wrong, try again, reading the instructions both here and in the wizard dialog carefully. If it looks correct, repeat the orientation calibration for every sensor.





16) Monitor the cell AoAs

Right-click on the cell and click "Monitor" so your cell appears in the "Monitored sensor cells" in LEC. You should see the angles of arrival from the tag to sensors as green lines on the map. Carry a tag around the cell. If your orientation calibrations were good, you will see the angles following the tag around and crossing approximately at the tag location. At this point, you may or may not get a red sphere indicating valid tag locations.

The last essential data we haven't got are the "cable offsets": the length of the timing cables. Therefore, our TDOA data is not calibrated yet. To observe this, check the "TDOA" box in LEC to show the blue curves along which where the system is trying (and probably failing) to put the tag. Timing cables distribute a timing signal around the cell that is used to compute time differences at the sensors. Therefore, without knowing cable lengths, the system produces incorrect TDOA curves.



17) Calibrate cable offsets

This part is similar to when you calibrated the orientations, except that a cable offset is between 2 sensors. Therefore, the calibration uses 2 sensors: the sensor getting its cable offset plus the reference sensor, which is ideally the master. Cable offsets are just some arbitrary number indicating the offset from the master, so the master has a value of zero.

Right-click on a slave sensor and select "Cable Calibration...". You then need to follow the instructions in the wizard.

If you followed the instructions all the way through, the selected sensor should have at least one blue curve going through the tag. As you calibrate each sensor, more curves will intersect since each one corresponds to a combination of 2 sensors. Repeat the cable calibration for every slave sensor.





18) Monitor the fully calibrated cell

Carry the tag around the cell. As mentioned above, you can make some very big mistakes and end up with perfect locations at the calibration point. You need to check the cell operation all around the cell to confirm it is working.

A working cell will have AoA and TDOA data from different sensors that places the tag at a single point. In the LEC map, green lines are AoAs and depend on the orientation calibration of the sensor to be correct. Blue curves are TDOAs and depend on the cable calibration of the 2 sensors that produced the curve to be correct.



19) Calibrations explained...

This how-to guide takes you through calibrating the sensors in 2 stages: orientation then cable offset. This is simply to illustrate what is happening. You should normally use the "Dual calibration" wizard, which performs both in one step. This produces exactly the same results (apart from random fluctuations which you need not worry about) as we got from doing the orientation and cable calibrations separately:

  1. Choose an uncalibrated slave sensor and select "Dual Calibration..."
  2. Follow the instructions in the wizard carefully
  3. Repeat for each slave sensor
  4. By default, the saved results are the target sensor's orientation and cable offset. For the first slave sensor only, you need to check (tick) the boxes to save the reference (master) sensor's orientation in addition.
If you don't understand either what is happening in any of these steps, or why you need to do them, go back and think about what you did in the previous sections with the orientation and cable calibrations.

The cell's context (right-click) menu has another way to completely calibrate the cell in one attempt: "Full Calibration...". It involves carrying the tag to fixed height positions around the cell. This is obviously unlikely to give as good results as surveying an exact point and placing the tag there, as you did using the other calibration wizards, but it is quick and easy.

Finally, "Equidistant Cable Calibration..." is the same as the normal cable calibration except that you don't need a surveyed point at which to place the tag. Instead, you place the tag at any point that is an equal distance from the sensor being calibrated and the reference sensor. If you don't understand why it is possible to do this, it is worth looking back over what is happening when you calibrate a cell.

You can edit values of orientation and cable offset directly in the sensor properties dialog in LEC, but don't!



20) Next steps

You should now have a working location engine cell, also known as a sensor cell.
To continue your Ubisense system setup, go to How to set up a Ubisense system (2).
This will introduce things you haven't seen in this guide, including the following:



Back to top