The CUWB Manager is a web-based single-page application for configuring and controlling execution of CUWB Networks through any modern Web browser. All functionality is implemented through, and could be recreated by, usage of the exposed CUWB Manager API.
Follow the instructions below for CUWB Manager installation. When prompted in ‘CUWB Applications Selection,’ ensure that CUWB Network is selected for installation. Following successful installation, the CUWB Manager will be available on all of the host machine’s network interfaces on port 5000.
bash <(wget -qO- https://cuwb.io/install.sh)
If you have previously installed version 3.0, using the install script above is not required. In your Ubuntu Terminal, input the following commands:
sudo apt update
sudo apt --with-new-pkgs upgrade
Setting up a basic CUWB Network is easy with the CUWB Manager. On the PC where the CUWB Manager was installed, open a web browser and browse to the following location:
http://localhost:5000
Note: If installing on a computer without a desktop environment, you can open a browser on another computer and use the IP address of the computer you installed on instead of localhost.
This will present the user with the main configuration page for CUWB Networks.
When run on a freshly installed Ubuntu 16.04 (Xenial) or Ubuntu 18.04 (Bionic) system, this configuration page will also be available on port 5000 of each network interface. To obtain a list of all network interfaces, type ifconfig
into a terminal. In addition to the lo
(or Local Loopback) interface, other interfaces should be available beginning with enp
or wlp
denoting a wired Ethernet or WiFi interface (respectively). On the second line of the interface’s output, the IP address will be denoted by inet
.
Example:
enp3s0 Link encap:Ethernet HWaddr b8:60:01:c3:9e:20
inet addr:192.168.100.2 Bcast:192.168.100.255 Mask:255.255.255.0
This output would indicate any device on the same network segment could access the CUWB Manager by browsing to http://192.168.100.2:5000
Note: These interfaces and ports differ from those used for the transmission and reception of CDP traffic. Those settings can be adjusted within the CUWB Manager under the General section of any CUWBNet Configuration. However, this is typically not required to get started.
To prevent unwanted external connections and only allow access via localhost, the following example ufw
commands can be used:
sudo ufw allow from 127.0.0.1 to 127.0.0.1 port 5000 proto tcp
sudo ufw enable
Upon your first visit to the CUWB Manager, you will be asked if you want to take the tutorial walk-through. The walk-through will provide you with the basic steps needed to configure your devices and startup your CUWB Network. You can give the walk-through a try here.
Users unfamiliar with the CUWB system should consider setting up a small manageable network in order to familiarize with tools and setup. The Quick Start Guide provides instructions on how to setup and run a small network.
To achieve the best performance, care should be taken when selecting locations for Anchors. It is important that Anchors have good visibility to one another as well as visibility between the Anchors and the field of interest for tracking. Check out the Anchor Positioning and Survey application note for best practices regarding network setup.
Anchors serve as static reference points used by the location algorithm to determine the location of a Tag. Anchors listen to Tag beacons collecting transmit time and sensor data. The data collected is sent back to the CUWB Manager for use in the location algorithm and for display.
In addition to serving as reference points, Anchors also participate in Global Network Time (GNT) calculations. All devices on the CUWB Network must understand GNT in order to send and receive transmissions during their scheduled time. Multiple Anchors participating in GNT allow the time to be distributed throughout large networks.
Anchors can be configured for three different roles defined in the table below:
Role | Description |
---|---|
Seeder | Anchor will send UWB transmissions allowing it to participate in Global Time Synchronization. |
Initial Seeder | Same as Seeder above, but also configures Anchor to ‘start’ the network. |
Quiet Anchor | Anchor does not transmit. Global time for this Anchor is modeled off UWB beacons from other Anchors. |
Each CUWB Network must have at least one Anchor configured as an Initial Seeder. This device initiates transmissions within the network and provides the initial time model used by the system. Ideally the initial seeder is selected to be a device in the middle of the network that has good RF connectivity to a large number of neighboring Anchors. Initial Seeder selection can impact the time it takes for the network to fully seed all devices with GNT.
If multiple devices are configured as Initial Seeder, the system will select one of the set at random to initialize the network. If the selected device is not present (ie., bad network connection, or lost power), the system will select another device and use it for GNT initialization.
Once the CUWB Network has started Anchors nearby, the Initial Seeder will begin start to hear UWB packets and attempt to ‘lock’ on to GNT. When a device configured as a Seeder has fully locked on to GNT, it will begin to contribute to the GNT model, allowing the network to expand beyond the Initial Seeder.
Quiet Anchors will listen for transmissions from Initial Seeders or Seeders and attempt to ‘lock’ onto GNT. Once a Quiet Anchor has locked onto GNT, the UWB transmissions it receives may be used for position calculation. Quiet Anchors do not participate in modeling of GNT, and thus can not be used to build larger networks.
Tags are mobile devices that are tracked by the CUWB Network. The UWB transmissions, or beacons, sent by Tags are received by Anchors. The reception time at the Anchors is forwarded to the CUWB Manager for use in the location algorithm, which uses the time to determine the location of the Tag.
Tags can be configured to beacon at slow rates, saving battery, or they can be configured to beacon at fast rates for low-latency tracking.
When configuring a tag, the only pieces of information that are required are the serial number, role, and peripheral configuration. By default, a tag uses a role which beacons at 10Hz and a peripheral config that has no sensors enabled.
When configuring an anchor, the following pieces of information are required: serial number, role, peripheral configuration, and survey location. By default, anchors use a peripheral config that has no sensors enabled. All of the other fields must be provided by the user before the anchor can be added to the CUWB Network.
Smoothing can be applied to the output data from the CUWB Manager to limit jitter and improve precision of the location. The smoothing value can be found in the web interface under Configuration->General. Smoothing is done by averaging of output data from tag beacons. The value entered in this field represents the total number of Tag beacons to average.
The bounding box values limit the area the location algorithm uses for calculating the position of Tag beacons. The algorithm will not allow Tags to travel beyond the configured values. These values should be configured to reasonably cover the area of interest for the Tags.
In a system where anchors are in installed at the same height, on the ceiling for example, the bounding box should be configured not to include the Anchors. This prevents the location algorithm from sticking Tags on the plane of the Anchors.
When more than one Anchor is configured with X, Y, and Z survey postion, you can use the “Use Anchor Bounds” to set the bounding box to just beyond the X, Y, and Z limits of your Anchor positions.
Automatic firmware updates can be enabled or disabled. When enabled, wired devices configured as Tags or Anchors will get updated over the Ethernet and wireless devices configured as Tags will be updated over the air when within range of the “Wireless Updating Anchor”.
The Ethernet settings allow the user to configure the internal and external data on the system to their desired ports and IP addresses. Internal data is data used by the CUWB Manager to generate locations. External data is the output stream that locations are published to for user consumption. By default the external data is configured for multicast making it accessible to other devices on the network. The config channel is used for device and system configuration and discovery and cannot be changed.
In the Schedules tab on the web interface, users are encouraged to create Tag roles. Roles are beacon rate definitions that can be assigned to Tags. A user might, for example, desire to have a slow beacon rate role for a Tag that is used to track objects that rarely move in addition to a fast rate for objects that are moving quickly through the environment.
Additionally, in this section you will find the “Max Tag Rate” selection. It is advised that the user intentionally set this to the maximum rate they expect to give a tag role. This setting will artificially provide a ceiling to all roles, such that if a role has a higher rate, the max tag rate will be used instead of the configured rate for the role. This setting allows the CUWB Network to intelligently schedule all the devices to maximize the number of locations per second.
Anchors are all scheduled to transmit at the same rate. Selecting a rate faster than 10Hz will help the network’s anchors synchronize time more quickly, but it will do so at the cost of locations per second. In nearly all situations, 10Hz is adequate.
LEDs can be configured for Device mode or Role mode. When configured in Device mode the LEDs are controlled by the device firmware. LED state definitions can be found in the Product Datasheet.
Setting the CUWB Manager LED mode to Role mode will enable the devices to flash their individual ‘roles’ within the network. The table below shows the colors used in this mode.
Color | ON Time | OFF Time | Role |
---|---|---|---|
Blue | 500mS | 500mS | TAG |
Green | 500mS | 500mS | ANCHOR |
Magenta | 500mS | 500mS | SEEDING ANCHOR |
White | 500mS | 500mS | UNCONFIGURED |
In the CUWB Manager under Configuration->Periphals, users can setup configurations for a variety of peripheral sensors. Each sensor has a drop down box associated with it that contains the available settings for that device. The names assigned by the user to the peripheral configuration, once saved, will be available on the Tag and Anchor setup page.
In the Status tab, users can view various information regarding the currently running network. There’s a display for each device’s current connectivity status, synchronization status, and firmware version information. The connectivity status indicates whether each device has an active wired Ethernet connection, wireless UWB connection, or both. The synchronization status shows whether a particular anchor is Transmit (Tx) Synchronized or Receive (Rx) Synchronized. Transmit Synchronization is required to spread synchronization to other devices, and Receive Synchronization is required to contribute to calculating tag positions. The firmware version will simply display the firmware version number of each device on the network.
In the Log tab, users can view useful network activity information. Whenever any significant change occurs in network state, such as a new device joining the network or timing out, a message will be printed to this log. This information can be invaluable when debugging setup issues.
NOTE: The Log tab only logs messages that the CUWB Network sends while the tab is open. If the user switches to a different tab, all currently recorded log messages will be cleared out of the Log tab, and if the tab isn’t opened until after a particular event is occurred, the Log tab won’t capture that log message. Thus, when attempting to view the log data, it’s best to leave the Log tab open in the browser.