Skip to content
/ tagbeat Public

Tagbeat - Sensing Vibration through Backscatter Signals!

License

Notifications You must be signed in to change notification settings

tagsys/tagbeat

Repository files navigation

Tagbeat - Sensing Vibration through Backscatter Signals!

Youtube

Version

Version Description Time Download
0.2     Update the user interface. 2017/5/27  tagbeat-v0.2
0.1     Initial version 2016/6/1  tagbeat-v0.1

Features

Traditional vibration inspection systems, equipped with separated sensing and communication modules, are either very expensive (e.g., hundreds of dollars) and/or suffer from occlusion and narrow field of view (e.g., laser). This paper brings forward a concept of ‘communication is sensing’, which is to make sense of the world purely based on communication carrier rather than specialized sensors. This project presents an RFID-based solution, Tagbeat, to inspect mechanical vibration using COTS RFID tags and readers. Basic and useful feature list:

  • Over COTS RFID reader and tags.
  • Compressive reading.
  • Industrial measurement accuracy.
  • A large number of benchmark samples.

Supported Platforms

  • Windows/Mac/Linux + Java 8
  • ImpinJ R420 Reader + LTK SDK + TagSee

Snapshot

image

Usage

Please follow three simple steps:

(1) Download tagbeat-xxx.zip and extract it to local disk.

(2) Generate Fourier basis via the following matlab code.

% Generate 500x500, 1000x1000, .... , 8000x8000 Fourier basis.
for N=[500, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000]
    phi = fft(eye(N,N))/sqrt(N);

    file = fopen(strcat(num2str(N),'.txt'),'w');

    [M,N] = size(phi);
    for i=1:M
        for j=1:N
            fprintf(file,'%d %d %d %d\n',i,j,real(phi(i,j)),imag(phi(i,j)));
        end
    end
end

Note: Please grab a coffee to kill time. It will take a very very long time to generate these basis. When finished, please copy "500.txt, 1000.txt, ..., 8000.txt" to PROJECT_ROOT_DIRECTORY/basis/. Or, you can directly download these basis here and then extract them to the PROJECT_ROOT_DIRECTORY/basis.

(3) If you want to perform the sensing in real-time, please start up TagSee and create a reader agent corresponding to your physical ImpinJ reader. Otherwise, skip this step and test the benchmark samples offline.

(4) Run the following command in terminal (Mac) or command (Windows) under the extracted directory.

java -jar tagbeat-xxx.jar

The tagbeat will try to connect tagsee. If you don't start tagsee, please just wait for the request timeout.

(5) Access the following page: http://localhost:9001.

Compiling

If you would like to compile the source code, then you could do it as follows:

Prerequisite

(1) Install Apache Maven. (refer to Maven client)

(2) Install Bower. (refer to Twitter Bower client).

(3) Install Git. (refer to Git client.)

Steps

(1) Checkout the source code.

git clone https://github.com/tagsys/tagbeat.git

(2) Generate Fourier basis (Please refer to Usage#Step 2).

(3) Run the complie.sh, which will download the necessary Javascript dependencies.

bash comiple.sh

(4) Install the project with Maven.

mvn install

(5) Run the project with Maven.

mvn exec:java

Notice

You can view the recovered vibration signals by either of the two methods:

(1) [Offline] Use TagSee to collect the readings. Download the reading results to benchmark directory (PROJECT_ROOT_DIRECTORY/history/). Finally, replay the readings offline through the Tagbeat dashboard.

(2) [Online] Tagbeat is built over TagSee. Please start TagSee and create a reader agent. Input the TagSee and agent IP in the Tagbeat dashboard. Finally, start reading.

Reference

If this project helps you, please help cite the following paper. Thanks very much.

@inproceedings{yang2016tagbeat,
  title={Making Sense of Mechanical Vibration Period with Sub-millisecond Accuracy Using Backscatter Signals},
  author={Yang, Lei and Yao, Li and Lin, Qiongzheng and Li, Xiang-Yang and Liu, Yunhao},
  booktitle={Proceedings of ACM MobiCom},
  year={2016}
}

Changelog

  • 2016/6/27 - release the Tagbeat v0.2
  • 2017/5/27 - release the Tagbeat v0.1