Giter Site home page Giter Site logo

swkrueger / thrifty Goto Github PK

View Code? Open in Web Editor NEW
62.0 10.0 14.0 494 KB

Thrifty is proof-of-concept SDR software for TDOA positioning using inexpensive SDR hardware such as the RTL-SDR.

License: GNU General Public License v3.0

Makefile 0.58% Python 57.14% CMake 2.76% C 33.57% C++ 5.51% Shell 0.44%
rtl-sdr raspberry-pi sdr

thrifty's Introduction

Thrifty

Thrifty is proof-of-concept SDR software for TDOA positioning using inexpensive SDR hardware such as the RTL-SDR.

Requirements

Installation

To install thrifty:

$ sudo apt-get install python-pip
$ sudo pip install .

or:

$ sudo python setup.py install

In addition to installing thrifty into the system's Python environment, this will also download and install the Python module requirements from PyPI.

To install thrifty in developer mode, which creates a symbolic link from the source location to the user's install location:

$ make dev

Thrifty requires fastcard to capture data. Refer to fastcard/README.md for installation instructions. Furthermore, refer to fastdet/README.md for more information regarding fastdet, a fast replacement for thrifty detect.

Refer to rpi/installation.md for instructions on configuring an Raspberry Pi 3 for use as an inexpensive TDOA receiver.

Usage

A command-line interface (CLI) is available through the thrifty command. Run thrifty help for a summary of the modules that are available through the CLI.

Typical CLI workflow:

$ cd example/
$ vim detector.cfg   # edit config

$ # On RX0:
$ thrifty capture rx0.card
$ thrifty detect rx0.card -o rx0.toad

$ # On RX1:
$ thrifty capture rx1.card
$ thrifty detect rx0.card -o rx1.toad

$ # On server:
$ thrifty identify rx0.toad rx1.toad
$ thrifty match
$ thrifty tdoa
$ thrifty pos

Alternatively, use the Makefile:

cd example/
vim detector.cfg   # edit config
thrifty capture cards/rxX.card
make

Detection on slow hardware: see fastcard and fastdet.

Cookbook:

  • Live detection without capturing (for monitoring):

    thrifty capture - 2>/dev/null | thrifty detect - -o /dev/null
    
  • Parallel capture-and-detection:

    thrifty capture rx.card
    tail -f rx.card | thrifty detect -
    

For advanced use cases, use the thrifty API from Python or IPython, e.g.:

"""Plot histogram of SoA offsets for all detections from TX #0."""

import matplotlib.pyplot as plt

from thrifty import toads_data

toads = toads_data.load_toads(open('rx.toads', 'r'))
data = toads_data.toads_array(toads, with_ids=True)
tx0_data = data[data['txid'] == 0]
plt.hist(tx0_data['offset'], bins=20)
plt.show()

Publications

Thrifty forms part of the dissertation at https://hdl.handle.net/10394/25449. Please cite this dissertation when using Thrifty in your work:

@mastersthesis{kruger2016inexpensive,
  title={An inexpensive hyperbolic positioning system for tracking wildlife using off-the-shelf hardware},
  author={Kr{\"u}ger, Schalk Willem},
  year={2016},
  school={North-West University (South Africa), Potchefstroom Campus}
}

Refer to https://swk.za.net/publications for contact information.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.