Send Location Information via UDP - TPC_IPS/QuickIPS Extension

Information

Our indoor positioning system TPC_IPS Ver1.0 was released on April 1, 2022.

We also plan to release IPS application templates "QuickIPS" and "TPC_IPS Web API" which allow interactions with external IPSs/RTLSs in the future.

Our indoor positioning system, TPC_IPS, analyzes beacon signals using a positioning engine (TCOT) on the application server and stores the calculated location information of each beacon in a database. Users access the database from client machines in a timely manner to retrieve location information, which is then used in front-end applications such as floormaps. This is a Pull method in which the client requests information from the server.

The drawback of the Pull method is that it generates extra queries and increases the server load as the number of clients increases.

On the other hand, there are systems which uses the Push method that send data from the server side to the client. This time, we implemented a process to automatically update the client's floormap by broadcasting the location information calculated by TPC_IPS's location positioning engine (TCOT) to the network via UDP.

The module configuration between server and client is illustrated below.

A program called tcot_sender.py resides on the server, which calls TCOT to obtain location information, which is then broadcast via UDP using python sockets.

On the client, tcot_receiver.py listens for the above UDP and performs necessary tasks such as data processing when it receives UDP data.

QuickIPS is a front-end application and it displays the latest locations of beacons on the floormap. QuickIPS is developed in FileMaker, however, FileMaker itself unfortunately does not have socket communication capabilities, it cannot directly retrieve data from tcot_receiver.py.

Therefore, to enable socket communication between tcot_receiver.py and QuickIPS, we prepared a file called tcot_listener.html and embedded this html file in a Web viewer * on the floormap layout. tcot_listener.html creates a WebSocket and uses addEventLisner to wait for incoming data from tcot_receiver.py. Upon detecting incoming data, it calls up PerformScript() to run a FileMaker script to update the QuickIPS floormap.

*Web viewer is a feature that displays web pages directly in the FileMaker Pro layout.

This mechanism is not only available in FileMaker, but also in common web applications.

Below is a summary of the pros and cons of the UDP Push method we have implemented.

Pros

  • Faster data transfer than TCP communication
  • Reduced server load, especially when there are many users
  • System configuration flexibility
  • Real-time performance (less overhead, faster execution of client apps)

Cons

  • Compared to TCP communication, data loss (packet loss) may occur because transmitted data is not guaranteed
  • Processing of connection confirmation and data reception confirmation for UDP communication can be troublesome

注:
TPC_IPS ver1.0 does not support UDP Push. We plan to address this issue in future releases, but specifications are subject to change without notice.

 

Sachiko Kamezawa

IPS Related Blog Posts

  1. IPS Application Templates for FileMaker ― QuickIPS ―*
  2. Indoor Mobile Position Monitoring Model with iBeacon/Raspberry Pi 1  ―  Overview*
  3. Indoor Mobile Position Monitoring Model with iBeacon/Raspberry Pi 2   ―  RSSI/Distance Calibration and Trilateration*
  4. Indoor Mobile Position Monitoring Model with iBeacon/Raspberry Pi 3 ― Enhancement of Two-Circles-Oriented Trilateration (TCOT) and Measurement Results*
  5. Estimate the approximate position of the beacon with a small number of receivers in a large area such as Tokyo Dome(Google translate)
  6. Improving IPS Positioning Accuracy with Machine Learning*
  7. TIPS for making IPS testbeds(Google translate)
  8. Object Tracking for Visualizing The Movements of People and Objects on a Map*
  9. Send Location Information via UDP - TPC_IPS/QuickIPS Extension*
  • * indicates that original article translation into English has been completed by TPC.
  • "Google translate" indicates that clicking it will Google translate the original article, and may be translated into English in the near future by TPC.

TPC's IPS Products

Object Tracking for Visualizing The Movements of People and Objects on a Map

Information

Our indoor positioning system TPC_IPS Ver1.0 was released on April 1, 2022.

We also plan to release IPS application templates "QuickIPS" and "TPC_IPS Web API" which allow interactions with external IPSs/RTLSs in the future.

An IPS commonly includes a function called "object tracking," which is the ability to track and visualize the movement of people and objects (hereinafter this feature is called "object tracking"). The following figure is a sample of our object tracking using our products TPC_IPS and QuickIPS, and shows a two-dimensional map on the X and Y axes and time on the Z axis. The blue and orange lines indicate the positions of objects at different timestamps. For example, we can see that orange line (bcn0-5) was at the coordinates (0, 6) at 13:37:58.
This 3D graph can be rotated on the PC screen, so it is also possible to visually determine if the red and the blue are in contact or close proximity.

Note:

  • This object tracking feature is under developemnt as of April, 2022. We plan to include object tracking in the future releases of our products TPC_IPS and QuickIPS.
  • Specifications are subject to change without notice.
movements of objects with time sequence in 3D representation

Purposes

Object tracking is a function that displays the movement of people and objects on a map along with a time sequence, and can be displayed in 2D or 3D format. This is useful for accurately identifying the actions and movements of infectious disease carriers, visitors at a store, transport machines, employees, etc.

the movements of people and objects on on 2D map with the time sequence

Tools and Applications Used for Object Tracking

The tools and applications used in QuickIPS are as follows:

Tool/ApplicationPurpose
Python, matpotlib, etc. 2D/3D representation
pyodbc, ODBC, etc. issues sql queries to the database from Python, retrieves the properties such as coordinates, timestamps, and then send them to matplotlib.
FileMaker Pro
Note: mandatory for QuickIPS.
object tracking is available from the command line prompt. QuickIPS has the GUI to issue this Python command.

Specifications

  1. locations of objects with time sequence in 2D and 3D representations
    The Z-axis represents time in 3D.
  2. The following parameters are available on the QuickIPS GUI:
    parameter purpose
    time range specify the period for object tracking in twelve digit codes
    2D/3D select 2D or 3D tracking
    plotting formats select to show the tracking result image either in the QuickIPS Web viewer or in a separate Python-matplotlib window.
    beacons multiple beacons can be selected from the QuickIPS picker interface.

    How to Use
  1. Specify the range of timestamps for object tracking in [time] on the QuickIPS Window in 12-digit codes (YYYYYMMDDHHMMSS, which is the date and time the object coordinates were measured).

  2. Choose where you want to see the object tracking result in [Plot in...]. If you choose [QuickIPS], you will see the tracking result in the QuickIPS Web viewer; if you choose [Separate window], you will see the tracking result in a separate Python-matplotlib window. In the following example, [QuickIPS] is selected.
  3. Use Picker icon to choose beacon(s) to track. The example above shows the two beacons chosen: bcn2-8 and bcn0-5.
  4. If you want to see the 2D tracking result, choose [2D] and click Tracking button . Then, you will see the tracking result of the two beacons specified, along with the routes and timestamps.



    If you chose [Plot in...] in step 2 above, you would see the tracking result in a separate Python-matplotlib window as follows:

    movements of people and objects are shown in 2D map along with timestamps

    In this window, you can zoom in and zoom out the floow map to check out the details.
  5. 3D Object Tracking

    If you want to see the object tracking result in 3D, first choose [3D] in the radio button in step 4 above, and then click Tracking button . If QuickIPS is selected in [Plot in...] at this moment, you will see the tracking result in the Web viewer in the same window.

    mouse operation not allowed for the image in Web viewer

    If "Separate window" was chosen in [Plot in...] at this monent and if you click Tracking button , you will see the 3D tracking result in a separate Python-matplotlib window.

    You can rotate, zoom in, and zoom out this image by using your mouse or operation icons in the window. You can see how it works in the following video clip.

* The specifications of QuickIPS and object tracking are subject to change in the future.

Sachiko Kamezawa

IPS Related Blog Posts

  1. IPS Application Templates for FileMaker ― QuickIPS ―*
  2. Indoor Mobile Position Monitoring Model with iBeacon/Raspberry Pi 1  ―  Overview*
  3. Indoor Mobile Position Monitoring Model with iBeacon/Raspberry Pi 2   ―  RSSI/Distance Calibration and Trilateration*
  4. Indoor Mobile Position Monitoring Model with iBeacon/Raspberry Pi 3 ― Enhancement of Two-Circles-Oriented Trilateration (TCOT) and Measurement Results*
  5. Estimate the approximate position of the beacon with a small number of receivers in a large area such as Tokyo Dome(Google translate)
  6. Improving IPS Positioning Accuracy with Machine Learning *
  7. TIPS for making IPS testbeds(Google translate)
  8. Object Tracking for Visualizing The Movements of People and Objects on a Map*
  9. Send Location Information via UDP - TPC_IPS/QuickIPS Extension*
  • * indicates that original article translation into English has been completed by TPC.
  • "Google translate" indicates that clicking it will Google translate the original article, and may be translated into English in the near future by TPC.

TPC's IPS Products