|
26 | 26 |
|
27 | 27 | <br /> |
28 | 28 | <div align="center"> |
29 | | - <a href="https://iqtlabs.org/"> |
30 | | - <img src="images/logo.png" alt="Logo" width="331" height="153"> |
| 29 | + <a href="https://iqt.org"> |
| 30 | + <img src="images/logo.png" alt="Logo" width="358" height="132"> |
31 | 31 | </a> |
32 | | - |
33 | | -<h1 align="center">EdgeTech-Object-Ledger</h1> |
34 | | - |
35 | | - <p align="center"> |
36 | | - This project manages a ledger of moving objects, such as aircraft or |
37 | | - ships, that can be used for pointing a camera at the object. |
38 | | - <br/> |
39 | | - <br/> |
40 | | - In more detail, the object ledger subscribes to MQTT message topics |
41 | | - for ADS-B messages, which provide aircraft position and velocity, |
42 | | - and AIS messages, which provide ship position and velocity. Each |
43 | | - messages corresponds to a uniquely identifiable object which is used |
44 | | - to update a ledger by unique identifier. A figure of merit is |
45 | | - computed for each object, and one object selected for tracking. The |
46 | | - ledger is maintained in a Pandas DataFrame, which is serialized to |
47 | | - local storage so that the history of objects selected for tracking |
48 | | - can be used by the figure of merit calculation. All object ledger |
49 | | - parameters can be customized through environment variables, or using |
50 | | - an MQTT message published to a configuration topic. Units of measure |
51 | | - are meters, seconds, and degrees, and operation of the object ledger |
52 | | - is extensively logged. |
53 | | - <br/> |
54 | | - <br/> |
55 | | - <a href="https://github.com/IQTLabs/edgetech-template/pulls">Make Contribution</a> |
56 | | - · |
57 | | - <a href="https://github.com/IQTLabs/edgetech-template/issues">Report Bug</a> |
58 | | - · |
59 | | - <a href="https://github.com/IQTLabs/edgetech-template/issues">Request Feature</a> |
60 | | - </p> |
61 | 32 | </div> |
| 33 | +<h1 align="center">EdgeTech Object Ledger</h1> |
| 34 | + |
| 35 | + |
| 36 | +This project manages a ledger of moving objects, such as aircraft or |
| 37 | +ships, that can be used for pointing a camera at the object. |
| 38 | + |
| 39 | +In more detail, the object ledger subscribes to MQTT message topics |
| 40 | +for ADS-B messages, which provide aircraft position and velocity, |
| 41 | +and AIS messages, which provide ship position and velocity. Each |
| 42 | +messages corresponds to a uniquely identifiable object which is used |
| 43 | +to update a ledger by unique identifier. A figure of merit is |
| 44 | +computed for each object, and one object selected for tracking. The |
| 45 | +ledger is maintained in a Pandas DataFrame, which is serialized to |
| 46 | +local storage so that the history of objects selected for tracking |
| 47 | +can be used by the figure of merit calculation. All object ledger |
| 48 | +parameters can be customized through environment variables, or using |
| 49 | +an MQTT message published to a configuration topic. Units of measure |
| 50 | +are meters, seconds, and degrees, and operation of the object ledger |
| 51 | +is extensively logged. |
| 52 | + |
| 53 | +## Usage |
| 54 | + |
| 55 | +This module is designed to be used in concert with other modules to |
| 56 | +build a complete tracking system. [SkyScan](https://github.com/IQTLabs/SkyScan), |
| 57 | +which tracks aircraft using ADS-B transmissions, is an example of the type of |
| 58 | +system that can be built. |
| 59 | + |
| 60 | + Checkout the `docker-compose.yml` in that repo to see how these modules |
| 61 | + can be connected together. The configuration for the system is stored in `.env` environment files. Examples of the different environment files |
| 62 | + are included in the **SkyScan** repo and can be configured them to match your setup. |
62 | 63 |
|
63 | 64 | ### Built With |
64 | 65 |
|
65 | 66 | [![Python][python]][python-url] |
66 | 67 | [![Poetry][poetry]][poetry-url] |
67 | 68 | [![Docker][docker]][docker-url] |
68 | 69 |
|
69 | | -## Getting Started |
70 | | - |
71 | | -To run this repo, simply run: |
72 | | - |
73 | | -``` |
74 | | -docker-compose up |
75 | | -``` |
76 | | - |
77 | | -### Prerequisites |
78 | | - |
79 | | -Running this repo requires that you have |
80 | | -[Docker](https://www.docker.com) for containerization, |
81 | | -[Poetry][poetry-url] for dependency management, and [Python |
82 | | -3.11.1][python-url] is the version we've been building with. |
83 | | - |
84 | | -## Usage |
85 | | - |
86 | | -Spinning up this system requires an MQTT server and this container to |
87 | | -be included in your `docker-compose.yml`. You can find an example of |
88 | | -this workflow in this repository's `docker-compose.yml`. Additionally, |
89 | | -some editing of relevant environment variables will be required based |
90 | | -upon your system's configuration of topics to subscribe to and MQTT |
91 | | -configuration. Examples of these environment variables can be found in |
92 | | -this repository's `axis-ptz-controller.env` file. |
93 | | - |
94 | | -Copying the project `docker-compose` statements into a master |
95 | | -`docker-compose.yml` and `.env` files with your entire system of |
96 | | -containers is the preferred workflow. Find an application architecture |
97 | | -diagram example of how the usage of this module was envisioned below. |
98 | | - |
99 | | -```mermaid |
100 | | -
|
101 | | -flowchart TD |
102 | | - configdata(Config Data) -- Config Topic --> mqtt{MQTT} |
103 | | - orientationdata(Orientation Data) -- Orientation Topic --> mqtt{MQTT} |
104 | | - flightdata(Flight Data) -- Flight Topic --> mqtt{MQTT} |
105 | | - mqtt{MQTT} -- Config, Orientation, and Flight Topics --> controller(Controller) |
106 | | - controller(Controller) --> capturedata(Capture Data) |
107 | | - capturedata(Capture Data) -- Capture Topic --> mqtt{MQTT} |
108 | | -
|
109 | | -style mqtt fill:#0072bc,color:#ffffff |
110 | | -style configdata fill:#80c342,color:#ffffff |
111 | | -style orientationdata fill:#80c342,color:#ffffff |
112 | | -style flightdata fill:#80c342,color:#ffffff |
113 | | -style controller fill:#F9D308,color:#ffffff |
114 | | -style capturedata fill:#80c342,color:#ffffff |
115 | | -
|
116 | | -``` |
117 | | - |
118 | 70 | ## Roadmap |
119 | 71 |
|
120 | 72 | - TBA |
@@ -149,7 +101,7 @@ See `CONTRIBUTING.md` for more information. |
149 | 101 | ## License |
150 | 102 |
|
151 | 103 | Distributed under the [Apache |
152 | | -2.0](https://github.com/IQTLabs/edgetech-template/blob/main/LICENSE). See |
| 104 | +2.0](https://github.com/IQTLabs/edgetech-object-ledger/blob/main/LICENSE). See |
153 | 105 | `LICENSE.txt` for more information. |
154 | 106 |
|
155 | 107 | ## Contact IQTLabs |
|
0 commit comments