Skip to content

Commit b5495a6

Browse files
authored
Merge pull request #82 from C4dynamics/dev
revisit doc as issued by crhea93 reviewer from pyopensci
2 parents e316d3c + 38ea510 commit b5495a6

File tree

211 files changed

+13509
-15362
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

211 files changed

+13509
-15362
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010

1111

1212

13-
Tsipor (bird) Dynamics (c4dynamics) is the open-source framework of algorithms development for objects in space and time.
13+
Tsipor (bird) Dynamics (c4dynamics) is the Python framework for state-space modeling and algorithm development.
14+
1415

1516

1617

c4dynamics/detectors/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@
33
`c4dynamics` provides an API to third party object detection models.
44
55
6+
.. list-table::
7+
:header-rows: 0
8+
9+
* - :class:`YOLOv3 <c4dynamics.detectors.yolo3_opencv.yolov3>`
10+
- Realtime object detection model based on YOLO (You Only Look Once) approach with 80 pre-trained COCO classes
11+
12+
613
'''
714

815
import os, sys

c4dynamics/eqm/__init__.py

Lines changed: 0 additions & 288 deletions
Original file line numberDiff line numberDiff line change
@@ -1,291 +1,3 @@
1-
'''
2-
3-
Background Material [MI]_
4-
-------------------------
5-
6-
Introduction
7-
^^^^^^^^^^^^
8-
9-
Motion models for points (particles) and rigid bodies in space and time are based on mathematical
10-
equations.
11-
12-
Three degrees of freedom models employ translational
13-
equations of motion.
14-
Six degrees of freedom models
15-
incorporate both translational
16-
and rotational equations of motion.
17-
18-
The inputs to the equations of motion are the
19-
forces and moments acting on the body;
20-
yielding body accelerations as outputs.
21-
22-
23-
Nomenclature and Convention
24-
^^^^^^^^^^^^^^^^^^^^^^^^^^^
25-
26-
Typically, the forces and moments on a body are
27-
resolved into components in the body coordinate system.
28-
Fig-1 shows the components of
29-
force, moment velocity, and angular rate of a body
30-
resolved in the body coordinate system.
31-
The six projections
32-
of the linear and angular velocity vectors on the moving
33-
body frame axes are the six degrees of freedom.
34-
The nomenclature and conventions for positive directions
35-
are as shown in Fig-1 and in the following Table:
36-
37-
38-
.. figure:: /_architecture/rigidbody.svg
39-
40-
Fig-1: Forces, velocities, moments, and angular rates in body reference frame
41-
42-
43-
44-
.. list-table::
45-
:widths: 10 20 20 20 20 20 20
46-
:header-rows: 1
47-
48-
* - Axis
49-
- Force along axis
50-
- Moment about axis
51-
- Linear velocity
52-
- Angular displacement
53-
- Angular velocity
54-
- Moment of Inertia
55-
* - :math:`x_b`
56-
- :math:`{F_x}_b`
57-
- :math:`L`
58-
- :math:`u`
59-
- :math:`\\varphi`
60-
- :math:`p`
61-
- :math:`I_{xx}`
62-
* - :math:`y_b`
63-
- :math:`{F_y}_b`
64-
- :math:`M`
65-
- :math:`v`
66-
- :math:`\\theta`
67-
- :math:`q`
68-
- :math:`I_{yy}`
69-
* - :math:`z_b`
70-
- :math:`{F_z}_b`
71-
- :math:`N`
72-
- :math:`w`
73-
- :math:`\\psi`
74-
- :math:`r`
75-
- :math:`I_{zz}`
76-
77-
78-
The position of the mass center of the body is given by
79-
its Cartesian coordinates expressed in an inertial frame of
80-
reference, such as the fixed-earth frame :math:`(x, y, z)`.
81-
82-
The body's angular orientation is defined by three rotations :math:`(\\psi, \\theta, \\varphi)`
83-
relative to the inertial frame of reference.
84-
These are
85-
called Euler rotations, and the order of the successive rotations
86-
is important.
87-
Starting with the body coordinate frame
88-
aligned with the earth coordinate frame, the adopted order here is 3-2-1, i.e.:
89-
90-
(1) Rotate the body frame about the :math:`z_b` axis through the heading angle :math:`\\psi`,
91-
(2) Rotate about the :math:`y_b` axis through the pitch angle :math:`\\theta`, and
92-
(3) Rotate about the :math:`x_b` axis through the roll angle :math:`\\varphi`
93-
94-
The total inertial velocity :math:`V` has components :math:`u, v`, and :math:`w` on the body frame axes,
95-
and :math:`(v_x, v_y, v_z)` on the earth-frame axes.
96-
97-
98-
Newton's Second Law
99-
^^^^^^^^^^^^^^^^^^^
100-
101-
Newton's second law of motion establishes the foundational
102-
equation governing the relationship among
103-
force, mass, and acceleration.
104-
105-
106-
in the context of Newton's second law, the force :math:`(F)`
107-
acting on an object is the derivative of its momentum :math:`(m \\cdot v)`
108-
with respect to time :math:`(t)`:
109-
110-
.. math::
111-
F = {d(m \\cdot v) \\over dt}
112-
113-
Where:
114-
115-
- :math:`F` is the total force acting on the object
116-
- :math:`m` is the mass of the object
117-
- :math:`v` is the velocity
118-
- :math:`t` is time
119-
120-
This equation yields the final form of the equations of linear motion.
121-
In the final form, acceleration is represented by the rate of change of the velocity:
122-
123-
.. math::
124-
F = m \\cdot \\dot{v}
125-
126-
Where:
127-
128-
- :math:`F` is the total force acting on the object
129-
- :math:`m` is the mass of the object
130-
- :math:`\\dot{v}` is the acceleration of the object
131-
132-
133-
A direct extension of Newton's second law to rotational motion
134-
reveals that the moment of force (torque) on a body
135-
about a given axis equals the time rate of change of the
136-
angular momentum of the paricle about that axis.
137-
138-
139-
.. math::
140-
M = {dh \\over dt}
141-
142-
Where:
143-
144-
- :math:`M` is the total moment (torque) acting on the object
145-
- :math:`h` is the angular momentum vector of the object
146-
147-
148-
149-
Hence, the final form of the equations of angular motion is given by:
150-
151-
.. math::
152-
M = [I] \\cdot \\dot{\\omega}
153-
154-
Where:
155-
156-
- :math:`M` is the total moment (torque) acting on the object
157-
158-
- :math:`[I]` is the inertia matrix of the body relative to the axis of rotation
159-
160-
- :math:`\\dot{\\omega}` is the absolute angular acceleration vector of the body
161-
162-
163-
164-
165-
Translational Equations of Motion
166-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
167-
168-
The basis of the translational equation of motion was introduced
169-
above.
170-
The usual procedure used to solve this
171-
equation is to sum the external forces
172-
:math:`F` acting on the body, express them in an
173-
inertial frame, and substitute :math:`F` into
174-
the equation.
175-
Once the acceleration, namely the forces
176-
divided by the mass, is expressed in inertial coordinates,
177-
it is integrated twice to yield the
178-
translational displacement.
179-
180-
181-
.. math::
182-
dx = v_x
183-
184-
dy = v_y
185-
186-
dz = v_z
187-
188-
dv_x = {F[0] \\over m}
189-
190-
dv_y = {F[1] \\over m}
191-
192-
dv_z = {F[2] \\over m}
193-
194-
Where:
195-
196-
- :math:`dx, dy, dz` are the changes in position in the :math:`x, y, z` inertial directions, respectively
197-
- :math:`dv_x, dv_y, dv_z` are the changes in velocity in the :math:`x, y, z` inertial directions, respectively
198-
- :math:`v_x, v_y, v_z` are the velocities in the :math:`x, y, z` inertial directions, respectively
199-
- :math:`f[0], f[1], f[2]` are the input force components in the :math:`x, y, z` inertial directions, respectively
200-
- :math:`m` is the mass of the body.
201-
202-
203-
These equations describe the dynamics of a datapoint in three-dimensional space (**3DOF**).
204-
Which is
205-
the rate of change of position
206-
:math:`(x, y, z)` with respect to time equals to the velocity,
207-
and the rate of change of velocity
208-
:math:`(v_x, v_y, v_z)` with respect to time
209-
equals to the force divided by the mass :math:`(m)`.
210-
211-
212-
213-
214-
Rotational Equations of Motion
215-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
216-
217-
As mentioned earlier, the rotational analog
218-
of Newton's law describes the relationship between torque,
219-
moment of inertia, and angular acceleration.
220-
We also saw that a double integration on the translational
221-
acceleration produces the change of the body in position.
222-
223-
However, the angular accelerations
224-
are typically expressed with respect to a body frame and
225-
must be adjusted in order to produce the attitude of the
226-
body.
227-
For that purpose we introduced the euler angles (see Nomenclature and Conventions)
228-
which describe the
229-
body attitude with respect to an inertial frame of reference.
230-
231-
The orientation of the body reference frame is specified by the three
232-
Euler angles, :math:`\\psi, \\theta, \\varphi`.
233-
234-
As a rigid body changes its orientation
235-
in space, the Euler angles change.
236-
The rates of change
237-
of the Euler angles are related to the angular rates :math:`(p, q, r)` of the
238-
body frame.
239-
240-
The rate of change of the Euler angles together with the rotational analog
241-
of Newton's law provide the set of differential equations
242-
that
243-
describe the equations governing the motion of a rigid body:
244-
245-
246-
.. math::
247-
248-
d\\varphi = p + (q \\cdot sin(\\varphi) + r \\cdot cos(\\varphi)) \\cdot tan(\\theta)
249-
250-
d\\theta = q \\cdot cos(\\varphi) - r \\cdot sin(\\varphi)
251-
252-
d\\psi = {q \\cdot sin(\\varphi) + r \\cdot cos(\\phi) \\over cos(\\theta)}
253-
254-
dp = {M[0] - q \\cdot r \\cdot (I_{zz} - I_{yy}) \\over I_{xx}}
255-
256-
dq = {M[1] - p \\cdot r \\cdot (I_{xx} - I_{zz}) \\over I_{yy}}
257-
258-
dr = {M[2] - p \\cdot q \\cdot (I_{yy} - I_{xx}) \\over I_{zz}}
259-
260-
Where:
261-
262-
- :math:`d\\varphi, d\\theta, d\\psi` are the changes in Euler roll, Euler pitch, and Euler yaw angles, respectively
263-
- :math:`dp, dq, dr` are the changes in body roll rate, pitch rate, and yaw rate, respectively
264-
- :math:`\\varphi, \\theta, \\psi` are the Euler roll, Euler pitch, and uler yaw angles, respectively
265-
- :math:`p, q, r` are the body roll rate, pitch rate, and yaw rate, respcetively
266-
- :math:`M[0], M[1], M[2]` are the input moment of force components about the :math:`x, y, z` in the body direction, respectively
267-
- :math:`I_{xx}, I_{yy}, I_{zz}` are the moments of inertia about the :math:`x, y,` and :math:`z` in body direction, respectively
268-
269-
270-
These equations describe the angular dynamics of a rigid body.
271-
Together with the equations that describe the translational
272-
motion of the body they form the six-dimensional motion in space (**6DOF**).
273-
274-
275-
References
276-
----------
277-
278-
.. [MI] 17 July 1995, "Missile Flight Simulation, Part One, Surface-to-Air Missiles",
279-
Ch 4 In: Military Handbook. 1995, MIL-HDBK-1211(MI)
280-
281-
282-
283-
Examples
284-
--------
285-
286-
For examples, see the various functions.
287-
288-
'''
2891
import sys, os
2902
sys.path.append('.')
2913

0 commit comments

Comments
 (0)