Git Product home page Git Product logo

tanktracks's Introduction

TankTracks Overview

Tank tracks is a set of Python programs that enables the tracking of animals in tanks. A wide-view "spotter" camera tracks the bulk movement of the animal and a narrow field-of-view macro lens watches a feature of interest on the animal. For the sake of robustness, extensibility, and easy multiprocessing in light of Python's GIL, there are several separate processes that communicate over ZMQ. The programs can be launched in any order, but certain groups of programs must be running in order to do anything. It is also possible to run the various modules on separate computers, as the processes communicate over TCP (however, note that apparently Windows is smart enough to bypass its actual TCP stack when communicating to the same machine). The correct IP for each module would have to updated in Parameters.py.

Main Program

CameraInterface.py

Module for interfacing with our two cameras (Point Gray and E-con Systems liquid lens camera). This code grabs frames and publishes them. This functionality is broken out by itself so that frames can be grabbed as quickly as possible, decoupling frame grabbing io from future processing. Also the interface for focusing the liquid lens camera.

Publishes

  • CURRENT_FOCUS
  • VIDEO_{ZOOM | SPOTTER}

Subscribes

  • AUTOFOCUS

NOTES

  • should probably implement a zoom interface for the LL camera too

CameraDisplaySpotter.py

Module for displaying the "spotter camera". It also serves as the interface for tracking, as the user must select what to track on the screen.

Publishes

  • TRACK

Subscribes

  • VIDEO_SPOTTER

CameraDisplayZoom.py

NOT YET IMPLEMENTED. But this will be a display of the macro lens camera. Similar to above module, but probably without the same kind of tracking interface.

Publishes

Subscribes

CameraSaver.py

Module for saving video from either camera. This is separated from grabbing the frames so that grabbing and saving can effectively be "pipelined." Also makes it easy to start/stop saving video without disrupting other things that are running.

Publishes

  • nothing

Subscribes

  • VIDEO_{ZOOM | SPOTTER}

StageControllerWin.py

Module for controlling the Thorlabs stages. Note that it would be relatively simple to swap out the Thorlabs stages for other motors, this module would just have to be rewritten.

Publishes

  • CURRENT_POS (NB: Not Yet Implemented)

Subscribes

  • TRACK

Parameters.py

This file stores all of the important parameters for TankTracks, including the IP address and port number for each of the Pub/Sub topics, tracking parameters, video settings, and more.

Utilities

autofocus_sender.py

Publishes

  • AUTOFOCUS

Subscribes

  • CURRENT_FOCUS

tanktracks's People

Contributors

goldenzephyr avatar

Watchers

Aditya Mangalampalli avatar

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.