c4dynamics 2.0.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- c4dynamics/__init__.py +240 -0
- c4dynamics/datasets/__init__.py +95 -0
- c4dynamics/datasets/_manager.py +596 -0
- c4dynamics/datasets/_registry.py +80 -0
- c4dynamics/detectors/__init__.py +37 -0
- c4dynamics/detectors/yolo3_opencv.py +686 -0
- c4dynamics/detectors/yolo3_tf.py +124 -0
- c4dynamics/eqm/__init__.py +324 -0
- c4dynamics/eqm/derivs.py +212 -0
- c4dynamics/eqm/integrate.py +359 -0
- c4dynamics/filters/__init__.py +1373 -0
- c4dynamics/filters/a.py +48 -0
- c4dynamics/filters/ekf.py +320 -0
- c4dynamics/filters/kalman.py +725 -0
- c4dynamics/filters/kalman_v0.py +1071 -0
- c4dynamics/filters/kalman_v1.py +821 -0
- c4dynamics/filters/lowpass.py +123 -0
- c4dynamics/filters/luenberger.py +97 -0
- c4dynamics/rotmat/__init__.py +141 -0
- c4dynamics/rotmat/animate.py +465 -0
- c4dynamics/rotmat/rotmat.py +351 -0
- c4dynamics/sensors/__init__.py +72 -0
- c4dynamics/sensors/lineofsight.py +78 -0
- c4dynamics/sensors/radar.py +740 -0
- c4dynamics/sensors/seeker.py +1030 -0
- c4dynamics/states/__init__.py +327 -0
- c4dynamics/states/lib/__init__.py +320 -0
- c4dynamics/states/lib/datapoint.py +660 -0
- c4dynamics/states/lib/pixelpoint.py +776 -0
- c4dynamics/states/lib/rigidbody.py +677 -0
- c4dynamics/states/state.py +1486 -0
- c4dynamics/utils/__init__.py +44 -0
- c4dynamics/utils/_struct.py +6 -0
- c4dynamics/utils/const.py +130 -0
- c4dynamics/utils/cprint.py +80 -0
- c4dynamics/utils/gen_gif.py +142 -0
- c4dynamics/utils/idx2keys.py +4 -0
- c4dynamics/utils/images_loader.py +63 -0
- c4dynamics/utils/math.py +136 -0
- c4dynamics/utils/plottools.py +140 -0
- c4dynamics/utils/plottracks.py +304 -0
- c4dynamics/utils/printpts.py +36 -0
- c4dynamics/utils/slides_gen.py +64 -0
- c4dynamics/utils/tictoc.py +167 -0
- c4dynamics/utils/video_gen.py +300 -0
- c4dynamics/utils/vidgen.py +182 -0
- c4dynamics-2.0.3.dist-info/METADATA +242 -0
- c4dynamics-2.0.3.dist-info/RECORD +50 -0
- c4dynamics-2.0.3.dist-info/WHEEL +5 -0
- c4dynamics-2.0.3.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: c4dynamics
|
|
3
|
+
Version: 2.0.3
|
|
4
|
+
Summary: The framework for algorithms engineering with Python.
|
|
5
|
+
Home-page: UNKNOWN
|
|
6
|
+
Author: C4dynamics
|
|
7
|
+
Author-email: zivmeri@gmail.com
|
|
8
|
+
License: UNKNOWN
|
|
9
|
+
Keywords: python,dynamics,physics,algorithms,computer vision,navigation,guidance,slam,vsalm,image processing,singal processing,control
|
|
10
|
+
Platform: UNKNOWN
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Operating System :: Unix
|
|
15
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
16
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
Requires-Dist: scipy
|
|
19
|
+
Requires-Dist: numpy
|
|
20
|
+
Requires-Dist: matplotlib
|
|
21
|
+
Requires-Dist: opencv-python
|
|
22
|
+
Requires-Dist: imageio
|
|
23
|
+
Requires-Dist: natsort
|
|
24
|
+
Requires-Dist: pooch
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
<div align="center">
|
|
28
|
+
|
|
29
|
+
<img src="https://github.com/C4dynamics/C4dynamics/blob/main/docs/source/_icon/c4dlogotext.svg">
|
|
30
|
+
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
# Tsipor Dynamics
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## Algorithms Engineering and Development
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
Tsipor (bird) Dynamics (c4dynamics) is the open-source framework of algorithms development for objects in space and time.
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
[](https://skillicons.dev)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
[Documentation](https://c4dynamics.github.io/C4dynamics/)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## Motivation
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
**c4dynamics** is designed to
|
|
72
|
+
|
|
73
|
+
simplify the development of algorithms for dynamic systems,
|
|
74
|
+
|
|
75
|
+
using state space representations.
|
|
76
|
+
|
|
77
|
+
It offers engineers and researchers a systematic approach to model,
|
|
78
|
+
|
|
79
|
+
simulate, and control systems in fields like
|
|
80
|
+
|
|
81
|
+
``robotics, aerospace,`` and ``navigation``.
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
The framework introduces ``state objects,`` which are foundational
|
|
86
|
+
|
|
87
|
+
data structures that encapsulate state vectors and provide
|
|
88
|
+
|
|
89
|
+
the tools for managing data, simulating system behavior,
|
|
90
|
+
|
|
91
|
+
and analyzing results.
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
With integrated modules for sensors,
|
|
96
|
+
|
|
97
|
+
detectors, and filters,
|
|
98
|
+
|
|
99
|
+
c4dynamics accelerates algorithm development
|
|
100
|
+
|
|
101
|
+
while maintaining flexibility and scalability.
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
## Installation
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
* PIP
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
>>> pip install c4dynamics
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
[PyPi](https://pypi.org/project/c4dynamics/)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
* GitHub
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
To run the latest GitHub version, download [c4dynamics](https://github.com/C4dynamics/C4dynamics)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
Install required packages:
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
>>> pip install -r requirements.txt
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
## Quickstart
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
Import c4dynamics:
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
>>> import c4dynamics as c4d
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
Define state space object of two variables in the state space (y, vy) with initial conditions (change the state with your variables):
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
>>> s = c4d.state(y = 1, vy = 0.5)
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
Multiply the state vector by a matrix and store:
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
>>> F = [[1, 1],
|
|
190
|
+
|
|
191
|
+
[0, 1]]
|
|
192
|
+
|
|
193
|
+
>>> s.X += F @ s.X
|
|
194
|
+
|
|
195
|
+
>>> s.store(t = 1)
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
Print the state variables, the state vector, and the stored data:
|
|
202
|
+
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
>>> print(s)
|
|
206
|
+
|
|
207
|
+
[ y vy ]
|
|
208
|
+
|
|
209
|
+
>>> s.X
|
|
210
|
+
|
|
211
|
+
[2.5 1]
|
|
212
|
+
|
|
213
|
+
>>> s.data('y')
|
|
214
|
+
|
|
215
|
+
([0, 1], [1, 2.5])
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
## Block 2
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
- Complete state space objects mechanism
|
|
228
|
+
|
|
229
|
+
- Seeker and radar measurements
|
|
230
|
+
|
|
231
|
+
- Kalman filter and Extended Kalman filter
|
|
232
|
+
|
|
233
|
+
- YOLOv3 object detection API
|
|
234
|
+
|
|
235
|
+
- Datasets fetching to run examples
|
|
236
|
+
|
|
237
|
+
- Documentation
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
c4dynamics/__init__.py,sha256=0OlrMFdpDyHpRhbmAIML2zPadFedAvMiE_peoUKNsmg,6659
|
|
2
|
+
c4dynamics/datasets/__init__.py,sha256=lOLPKBwZ8-6bqGVIXTRc4Ks4Lr4NjmqkPwMj7Ujjm50,2825
|
|
3
|
+
c4dynamics/datasets/_manager.py,sha256=6R8hcqmLdxuG91Px2sR7R5E2JdsIPzJV26l0i60m1QI,15018
|
|
4
|
+
c4dynamics/datasets/_registry.py,sha256=bkMMxiZAy42rVgJ3lP9yc7dj94IwZ8ZBWM6-BWbRypk,4517
|
|
5
|
+
c4dynamics/detectors/__init__.py,sha256=jdSxQP0_9lgUPzdlvjs6LiYzsJ6rc2WgUgMC-GLTDeE,880
|
|
6
|
+
c4dynamics/detectors/yolo3_opencv.py,sha256=B6MTJ-WxPtXnYekKjFwLQDskCLSSm3QUm6kSeQ7T-zE,25060
|
|
7
|
+
c4dynamics/detectors/yolo3_tf.py,sha256=sSm0yBsL7qrodlnK0N6mL1EuyMgiPJt1kaDsrxXvTSk,5040
|
|
8
|
+
c4dynamics/eqm/__init__.py,sha256=Tlr5oGpgin3rl90x6qd5FwKynwaOYsSvymSqoPDJ6XQ,9697
|
|
9
|
+
c4dynamics/eqm/derivs.py,sha256=djW9jA1Qc_sO_9FzyHnYjJYhWxSApqjkvPh2sy7t-ts,5859
|
|
10
|
+
c4dynamics/eqm/integrate.py,sha256=79f-qKVyO3oOhBh8q3onJ0yt6BZaY-XHvXeBzJjF-tY,9935
|
|
11
|
+
c4dynamics/filters/__init__.py,sha256=3n39FMOK4tXFYQ04uHK7va_lwMSd03X1wc0kvsUp0iM,48127
|
|
12
|
+
c4dynamics/filters/a.py,sha256=Zzm1WRUTyvxLki4OwrLvto4ugBkQNGHWlhvutrn8074,660
|
|
13
|
+
c4dynamics/filters/ekf.py,sha256=zQeQW7c3ld7ZrhJZxkNHlop5Jh3400pT1XNThh3eIs4,9934
|
|
14
|
+
c4dynamics/filters/kalman.py,sha256=zgGOL4G4Imkcl7uh-XXKjIx83Qcxbwd6N5RfD6de1EA,21757
|
|
15
|
+
c4dynamics/filters/kalman_v0.py,sha256=oNxZipKer1OPMX3hxAUpuZEGGYs2_RDnJwaCQFeeDus,32993
|
|
16
|
+
c4dynamics/filters/kalman_v1.py,sha256=0_NPNrZkBPZmQJu4nZqMBouP8Ivj3vH4guh7bxPEh6Y,25110
|
|
17
|
+
c4dynamics/filters/lowpass.py,sha256=DHtU35NaMrDeKy7-K2qFDk9hXJf9RZZBfchB2Xa0rT8,3879
|
|
18
|
+
c4dynamics/filters/luenberger.py,sha256=FMvIp3uTDZOF-RfxN86Hd3aWFsKNCrn0D9KqIwFTgtM,2585
|
|
19
|
+
c4dynamics/rotmat/__init__.py,sha256=bJ_A3xO0rc3hjYh5it2x8jg8FgJYyce54qs9QD6g_x0,3847
|
|
20
|
+
c4dynamics/rotmat/animate.py,sha256=FeONX-7jwLB0lvNTXCPIs-YAhQXkAzjgMqezFbQ5-tI,14829
|
|
21
|
+
c4dynamics/rotmat/rotmat.py,sha256=3T9b6VflkCp7MxzSfpXJariICfGzTWP0IpSPHA90CCA,9434
|
|
22
|
+
c4dynamics/sensors/__init__.py,sha256=qj9TjVhvVr-9qloqgE4HPq-cMnELDej_rWfxDgKZSLA,1569
|
|
23
|
+
c4dynamics/sensors/lineofsight.py,sha256=1R5dGrmFT0_OFI3wyB3_bs2J0MQXmXO2OBGG9uE5YSA,2192
|
|
24
|
+
c4dynamics/sensors/radar.py,sha256=dEmneiOS67aEZZJPNkC3n5rQ3hHNqB7Qs6u3GrvLBng,23689
|
|
25
|
+
c4dynamics/sensors/seeker.py,sha256=5qfhjRbO_pXWcL4dn7dlIS2fsn2FO-M69j5u3cnnMYk,31903
|
|
26
|
+
c4dynamics/states/__init__.py,sha256=FlHjnYwRctiZBevK5xsdT0qJvBAhqGsriv9ellav3AI,8216
|
|
27
|
+
c4dynamics/states/state.py,sha256=g6Xt6uifS7tdWiHZyhxou8ED5-gREsE4lRHiX4CYgCc,41242
|
|
28
|
+
c4dynamics/states/lib/__init__.py,sha256=YiR84BdRtl9MQdf9IV_nmaKJv91HDRiv2tF4fH3RpNQ,7510
|
|
29
|
+
c4dynamics/states/lib/datapoint.py,sha256=DBClsSGRZUqxPGyePUZCiobTrM_yb7Qds3xeIjJGtyU,17992
|
|
30
|
+
c4dynamics/states/lib/pixelpoint.py,sha256=MTWNRoLcclEGfPe31FQR31RWlB55JwOZ7U7jnV6RVv4,22941
|
|
31
|
+
c4dynamics/states/lib/rigidbody.py,sha256=VlW6Emnty64aGsammne_UJ40a8RFIr4GNrWjbUIlrEQ,18450
|
|
32
|
+
c4dynamics/utils/__init__.py,sha256=4o4llXVMu57GKygQb-VSbm0EPAHK_qbLdElo4r9dO1Q,963
|
|
33
|
+
c4dynamics/utils/_struct.py,sha256=w6K-lTekXf90m1-zqocbQcF2sowKGLT_s0pYycKJaeA,149
|
|
34
|
+
c4dynamics/utils/const.py,sha256=VXOlxUFakfTN3IltR4mt7-TcCpycDIlg4MxlQq4dw1I,2361
|
|
35
|
+
c4dynamics/utils/cprint.py,sha256=Q0OubN9UbFo412YwYDSiFqAv8SsDm6VspMPk-Ls0f2I,2154
|
|
36
|
+
c4dynamics/utils/gen_gif.py,sha256=LcP5kNHVU98SrOZotUOdk-JSLDuDYPnwRk42s324Fzc,3778
|
|
37
|
+
c4dynamics/utils/idx2keys.py,sha256=3iQNKb_ft2vtj2-nOPtY_zgjzidOK84uzK59TAHu73E,93
|
|
38
|
+
c4dynamics/utils/images_loader.py,sha256=ihMtzy1__BV1gvH1Tz6EDJfahpgGV8hn-61Lhx1x0ws,1568
|
|
39
|
+
c4dynamics/utils/math.py,sha256=cmLmYlWD3FoCmmh_nL078DVOMqdTSAzhIx52AWsl_2o,2841
|
|
40
|
+
c4dynamics/utils/plottools.py,sha256=ZSeQY-9RyaYVU-aaO_4RLTKMP7mHp-64s7DBz3-vTRw,4251
|
|
41
|
+
c4dynamics/utils/plottracks.py,sha256=y3uoPIqN840Yiu62mOxaCOb0SJ1hH4Rhd2FBfJwRsS8,10992
|
|
42
|
+
c4dynamics/utils/printpts.py,sha256=tJKm_Y87JeuPhd_bZkz7_s8K2pdy-jEBl3WHa2W6a5k,722
|
|
43
|
+
c4dynamics/utils/slides_gen.py,sha256=b6Vts2vHPb1Fugkul9yB6ES697AOCvmWPpU1s1jY7Eo,1888
|
|
44
|
+
c4dynamics/utils/tictoc.py,sha256=_OW-3PtYV2n8a-kiMqaIgGu5gXM4cJVsEPxOv7DcRAE,4212
|
|
45
|
+
c4dynamics/utils/video_gen.py,sha256=6E4iCw8dwE_gVj0wL-_gFT0dmiqiLcaTvpgzd6W4j6U,10591
|
|
46
|
+
c4dynamics/utils/vidgen.py,sha256=K4k-fUttOdiTDQO01XfP40nrlLamH1cwJ4iaxesXMGM,5679
|
|
47
|
+
c4dynamics-2.0.3.dist-info/METADATA,sha256=yDbhnmFqEU0dgX6DxWqKJ_9NwUs5j_mirKRhS0Xmdmk,3468
|
|
48
|
+
c4dynamics-2.0.3.dist-info/WHEEL,sha256=bFJAMchF8aTQGUgMZzHJyDDMPTO3ToJ7x23SLJa1SVo,92
|
|
49
|
+
c4dynamics-2.0.3.dist-info/top_level.txt,sha256=Pp3jXXljS2HbUDGItCnMueDc-7dI8pYDObXNtBhZVG0,11
|
|
50
|
+
c4dynamics-2.0.3.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c4dynamics
|