Tracking the 6-DOF Flight Trajectory of Windborne Debris Using Stereophotogrammetry

Numerous post-windstorm investigations have reported that windborne debris can cause costly damage to the envelope of buildings in urban areas under strong winds (e.g., during hurricanes or tornados). Thus, understanding the physics of debris flight is of critical importance. Previously developed numerical models describing debris flight physics have not been validated for the complex urban flow environment; such a validation requires experimentally measuring the debris flight trajectory in wind tunnel tests. In this context, this paper proposes a debris measurement algorithm using stereophotogrammetry. This algorithm aims to determine the six-degree-of-freedom (6-DOF) trajectory and velocity of flying debris, addressing the research gap, i.e., the lack of an algorithm/software for measuring three-rotational-DOF using stereophotogrammetry. This is a civil engineering problem, but computer graphics is the foundation to solve it. This paper focuses on the theoretical development of the algorithm. The developed algorithm can be readily implemented in modern wind tunnel experiments.


Introduction
Windborne debris damage to the cladding and façades of buildings has been identified as a major contributor to damage in urban areas after windstorms (e.g., hurricanes, tornados, thunderstorms) in numerous studies [1][2][3][4][5][6][7][8][9][10][11]. To physically model debris-induced damage, one needs to understand debris flight behavior. In recent years, there have been a number of experimental and numerical studies investigating the mechanics of debris flight. Tachikawa [12] pioneered fundamental research on the two-dimensional (2D) trajectory of a flying plate in a uniform flow through both wind tunnel experiments and numerical simulation. Following Tachikawa's work, Lin et al. [13,14] conducted wind tunnel studies to investigate the trajectories of compact-, rod-, and plate-type debris in a uniform wind field and provided experimental support for the validation of numerical simulations using Tachikawa's equations. However, the numerical models developed in the literature have not been validated for the complex 3D urban wind field. Researchers have found that a complex turbulent flow structure in an urban environment can dramatically alter the typical flight distance/speed and lead to unusual debris trajectory, through both experimental and full-scale investigations [15][16][17][18]. Thus, experimental validation of the numerical debris flight model for an urban built environment is critical for understanding complex debris flight behavior and predicting the debris impact location, energy/momentum, and ultimately the damage state of the building envelope components. Such a validation first requires the measurement of the debris flight trajectory in a 3D field in wind tunnel tests. In the hardware aspect, the high-speed cameras that have become more accessible in modern wind tunnels can be used for the measurement; however, to the authors' knowledge, there is no off-the-shelf algorithm/software for extracting the entire six-degree-of-freedom (6-DOF) trajectory of flying debris from the images. The existing literature on trajectory measuring of windborne debris using high-speed cameras either only measures the three-translational-DOF (without the three-rotational-DOF) [19] or qualitatively analyzes the different flight modes of the debris instead of resolving the coordinates of the full trajectory [17]. In this context, this paper proposes a debris trajectory measuring algorithm that can reconstruct all 6-DOF displacements and the velocity of debris in a 3D field from pairs of stereoscopic 2D images captured by two high-speed, high-resolution cameras. The concept of using pairs of stereoscopic 2D images to track debris is similar to stereoscopic particle image velocimetry (PIV), which is a non-intrusive laser optical technique for measurement of flow velocity. However, it is distinct from stereoscopic PIV in the following three aspects: (i) the proposed method tracks a single piece of debris, while PIV tracks the patterns of a group of flow particles; (ii) the proposed method does not rely on a laser sheet to illuminate the debris, and thus can track the debris flight with larger lateral motion, while PIV can only track particle motions within the thickness of a laser sheet; and (iii) the proposed method is developed to track the 6-DOF trajectory of debris, while PIV can only measure the 3-DOF motions of flow particles. In wind engineering, three types of debris are typically concerned, i.e., compact, rod, and thin plate. In this paper, we focus on the thin plate. The theoretical development of the three-translational-DOF of compact debris has been included in this discussion as the foundation for the algorithm for thin plates. Furthermore, this algorithm can be extended to consider rod-like debris in the future.
The paper is organized as follows. Section 2 includes the problem formulation and notation. Section 3 focuses on the reconstruction of the 6-DOF coordinates of debris from stereopairs of camera images. Section 4 derives the differential operator for velocity reconstruction. Section 5 introduces procedures for the reconstruction of time histories of debris motion trajectory, including both displacements and velocity. Section 6 includes concluding remarks and a discussion of future directions.

Problem Formulation and Notation
In this problem (depicted in Figure 1), first, a background grid is utilized to calibrate the corresponding pixel locations for two high-speed cameras; it can be removed once the calibration is completed. Then the two cameras are used to measure the 2D coordinates of the projection of flying debris on the grid wall by lights emanating from the camera locations. Using the stereopair of 2D coordinates (i.e., d 1 , h 1 , d 2 , h 2 measured by the two cameras) of the debris, we try to determine both the position (three-translational-DOF, x, y, z) and orientation (three-rotational-DOF) of the debris, given the relative locations of the two cameras to the grid wall (i.e., d and l).
Infrastructures 2019, 4, x FOR PEER REVIEW 2 of 14 freedom (6-DOF) trajectory of flying debris from the images. The existing literature on trajectory measuring of windborne debris using high-speed cameras either only measures the threetranslational-DOF (without the three-rotational-DOF) [19] or qualitatively analyzes the different flight modes of the debris instead of resolving the coordinates of the full trajectory [17]. In this context, this paper proposes a debris trajectory measuring algorithm that can reconstruct all 6-DOF displacements and the velocity of debris in a 3D field from pairs of stereoscopic 2D images captured by two high-speed, high-resolution cameras. The concept of using pairs of stereoscopic 2D images to track debris is similar to stereoscopic particle image velocimetry (PIV), which is a non-intrusive laser optical technique for measurement of flow velocity. However, it is distinct from stereoscopic PIV in the following three aspects: i) the proposed method tracks a single piece of debris, while PIV tracks the patterns of a group of flow particles; ii) the proposed method does not rely on a laser sheet to illuminate the debris, and thus can track the debris flight with larger lateral motion, while PIV can only track particle motions within the thickness of a laser sheet; and iii) the proposed method is developed to track the 6-DOF trajectory of debris, while PIV can only measure the 3-DOF motions of flow particles. In wind engineering, three types of debris are typically concerned, i.e., compact, rod, and thin plate. In this paper, we focus on the thin plate. The theoretical development of the threetranslational-DOF of compact debris has been included in this discussion as the foundation for the algorithm for thin plates. Furthermore, this algorithm can be extended to consider rod-like debris in the future. The paper is organized as follows. Section 2 includes the problem formulation and notation. Section 3 focuses on the reconstruction of the 6-DOF coordinates of debris from stereopairs of camera images. Section 4 derives the differential operator for velocity reconstruction. Section 5 introduces procedures for the reconstruction of time histories of debris motion trajectory, including both displacements and velocity. Section 6 includes concluding remarks and a discussion of future directions.

Problem Formulation and Notation
In this problem (depicted in Figure 1), first, a background grid is utilized to calibrate the corresponding pixel locations for two high-speed cameras; it can be removed once the calibration is completed. Then the two cameras are used to measure the 2D coordinates of the projection of flying debris on the F) of the debris, given the relative locations of the two cameras to the grid wall (i.e., d and l ).   [19]). This problem will be solved in two steps: First, for a single compact piece of debris, considered as a point object (only three-translation-DOF is considered), then for rigid body thin plate debris. The former lays the theoretical foundation for the latter.
The notation used in the problem is defined as follows. The notation of points and matrices are in upper case letters, the position vectors are in bold lowercase letters, and vectors are column vectors by default. For example, z j is the position vector of point Z j , while p j is the position vector of point P j . The list of variables used in Figure 1 is given below.
-points at the lens positions of two cameras P -position of a point debris P 1 , P 2 -projected locations of the debris on the grid wall seen from two cameras (i.e., a stereopair), respectively d -distance between cameras l -distance between camera lens and the wall along the y-direction; the wall is parallel to the z-x plane d 1 , d 2 -distances of points on the wall along the x-axis from the y-axis h 1 , h 2 -heights of points on the wall along the z-axis from the x-y plane β 1 , β 2 -angles that Z 1 P 1 , Z 2 P 2 rays make with the x-y plane θ 1 , θ 2 -angles between the x-axis and the projections of Z 1 P 1 , Z 2 P 2 rays on the x-y plane We need to determine the 3D position of the debris, i.e., x, y, and z, in terms of these parameters.

The 2D Stereopairs' Positions
In Figure 1, Z 1 is the origin and Z 2 is the origin offset by d units along the x-axis: The position vector for point P 1 on the wall is with a distance from Z 1 of: Alternatively, Similarly, for point P 2 on the wall: with a distance from Z 2 of: Alternatively, In the simplest terms, the vectors along Z 1 P 1 and Z 2 P 2 are normalized to unit vectors, d 1 and Then the position vectors for the stereo-pair P 1 and P 2 are This is valid even if the cameras are not at the same distance from the wall.

The Relationship between the 3D Spatial Position of Debris and the 2D Stereopairs' Positions
Consider compact debris or a point object. The camera beams intersect at the true location of the debris in 3D space with position vector: z 1 + s 1 d 1 = z 2 + s 2 d 2 . This leads to the following equations: This is an overdetermined system of three equations involving two unknowns, s 1 and s 2 .
, which is a 3 × 2 matrix. Since a 3 × 2 matrix does not have an inverse, we exploit the generalize inverse, denoted by M + , to determine the least squares error solution.
it is a 2 × 3 matrix, so we create a 2× 2 matrix, M T M: Since d 1 and d 2 are unit vectors, let k = d 1 · d 2 = cos(θ), where θ is the angle between d 1 and d 2 . Then, Then, This form is useful when the camera direction changes and the location is fixed; otherwise, it can be further simplified to We computed vector forms z 1 + t 1 d 1 , z 2 + t 2 d 2 for input points on the wall. Now we have computed s 1 s 2 for the corresponding object in 3D space. The actual object is at for these s 1 and s 2 . This suggests that the object size at z 1 + t 1 d 1 can be scaled by s 1

Explicit Expressions of Debris Position in 3D Space
Once s 1 is determined for 3D position, we can compute the desired parameters x, y, and z as in Figure 1. Now s 1 d 1 becomes Since d 1 is a unit vector, this implies that Similarly,

Cartesian Position and Orientation for Thin Plate Debris
Now we derive the position and orientation for rigid body thin plate debris, based on the 3D positions of the point objects constructed from the stereo images in the previous section. In Figure 2, let C be the centroid (also called the pivot) of the rigid body plate with vertices Q 1 , Q 2 , Q 3 , Q 4 , Q 5 , Q 6 , Q 7 , and Q 8 . Assume that the vertices of the debris are identifiable in the stereo images using marker tracking. The 3D positions of the vertices can then be determined using the expressions in the previous section based on the stereo measurements. The problem now becomes using the 3D positions of vertices to determine the orientation (three-rotational-DOF) of the rigid body.  Firstly, a local coordinate system needs to be defined using any three non-collinear points on the debris. Here we use the points C , 1 Q , and 2 Q to create a local coordinate system centered at C and axis directions with unit vectors u , v , and w , where u is along 1 CQ , v is orthogonal to 1 CQ and in the plane of C , 1 Q , and 2 Q , with a projection of 2 CQ on v positive, and w is naturally  u v so that u , v , and w form a right-handed system of orthonormal vectors: The matrix   R  u v w of axis unit vectors is the rotation matrix and is just the 3D local coordinate system at C . For simplicity in the notation for time history of the plate trajectory determined from vertices reconstructed using stereopairs, the 3D plate is represented as a frame ( ) F t at time t that contains both the position and the orientation for the plate. Since at each time point of the trajectory, there is a frame, the frame sequence will later be denoted by k F , . This is similar to frames in a robotic system of N -links. R c Firstly, a local coordinate system needs to be defined using any three non-collinear points on the debris. Here we use the points C, Q 1 , and Q 2 to create a local coordinate system centered at C and axis directions with unit vectors u, v, and w, where u is along CQ 1 , v is orthogonal to CQ 1 and in the plane of C, Q 1 , and Q 2 , with a projection of CQ 2 on v positive, and w is naturally u × v so that u, v, and w form a right-handed system of orthonormal vectors: . The matrix R = u v w of axis unit vectors is the rotation matrix and is just the 3D local coordinate system at C. For simplicity in the notation for time history of the plate trajectory determined from vertices reconstructed using stereopairs, the 3D plate is represented as a frame F(t) at time t that contains both the position and the orientation for the plate. Since at each time point of the trajectory, there is a frame, the frame sequence will later be denoted by F k , k = 1, 2, . . . , N. This is similar to frames in a robotic system of Nlinks.
The matrix F = R c 0 1 represents the local coordinate system centered at C. The frame can be written interchangeably as This matrix F transforms i j k 0 0 0 0 1 to u v w c 0 0 0 1 . The inverse of F transforms the coordinate system u v w c 0 0 0 1 , located at the centroid C of the debris, to the universal coordinate system i j k 0 0 0 0 1 . The inverse of F can be written as follows:

Three-Degree-of-Freedom (3-DOF) Frames in Universal Coordinate System
Here we describe the relationship between the local coordinate system and the axis of rotation and the amount of rotation in a universal coordinate system. The local coordinate system at the centroid of the plate is a frame where R is the rotation matrix about an axis, which is a composite of rotations about the x, y, and z axes. If n is the unit vector and θ is the angle amount of counter clockwise rotation about n, the axis through the origin, then [20] R = nn T + (I − nn T ) cos(θ) + n × I sin(θ).
This is directly related to the matrix representation, R = u v w . The angle θ and vector n are given by The rotation vector and amount of rotation about n is denoted by nθ, giving the 3-DOF Euler angles, components of rotation about the x, y, and z axes in the universal coordinate system.

Differential Operators for 6-DOF Motion
To facilitate the determination of the velocity, differential operators for 6-DOF motion with respect to the universal coordinate system are derived in this section. Let dF = F k+1 − F k or explicitly 3-DOF translational and 3-DOF rotational differentials are where dR and dc are differential changes in rotation (R) and translation (c). The differential dc is a linear differential in the x, y, and z coordinates of c; it is simple and trivial. However, differential change, dR, in the angle of rotation is not straightforward because the differential of the rotation matrix is a matrix operator. Recall that matrix R [21] is Differentiating with respect to θ, we have This derivative of the rotation matrix can be expressed as a matrix multiplication, the differential operator [21]. This is accomplished by cross-multiplying Equation (28) by n as follows: Using vector manipulation identities, this convoluted expression is simplified as follows: which is identical to dR/dθ, as obtained in Equation (29).
Recalling that the amount of rotation in the universal coordinate system is represented by θn, the differential becomes dθn, which yields the rotation about the x, y, and z axes. This is consistent with the differential operator derived from the matrix: where ∆ is the differential operator, defined below. Thus, the differential dR of R is a matrix multiplication of R by a matrix, called the differential operator and denoted by ∆.
Summarizing, if θ is the angle of rotation about n and θn represents the amount of rotation in the universal coordinate system, then the differential becomes dθn, which yields the rotation about the x, y, and z axes; it is consistent with the differential operator derived from the matrix. Here ∆ is the differential operator that represents the differential change from R k to R k+1 with respect to the universal coordinate system, where R k is the rotational submatrix of frame F k . The rotational part is with the angular changes about the x, y, and z axes. In short, the rotational differential is dθ x dθ y dθ z T and the translational differential is dx dy dz T . The composite differential is 6-DOF vector dx dy dz dθ x dθ y dθ z T , representing a composite vector for the translational and rotational velocity about the x, y, and z axes, similar to the notation used in Jacobians for the velocity of robotic link velocity applications.

Motivation
It is not necessary to know the initial velocity in this case; only the differential change matters. At any time t, from the position of the plate, we can get the orientation from the frame F(t). Also, during the motion, some features invisible to the camera may become visible, while some that are visible may become invisible. We need to identify at least three vertices, which will be flagged at all times for the sake of calculating the local coordinate system and the rotational motion, in addition to the translational motion.
As the debris moves, frame F(t) at time t moves to the next frame F(t + h) with time step h; the differential change in the frame, denoted by dF = F(t + h) − F(t), can be used to derive the numerical instantaneous translational and rotational velocities. In this case, the debris is flying behind a building; the average velocity can be derived from visible positions (after the time lag of the hidden period) or continuously from the flags identified earlier. In such cases, we may opt to have one continuous trajectory, or multiple segments of trajectory.

General Transformation
As a transformation is accomplished using two coordinate systems, the transformation can be expressed between them in terms of universal and local coordinate systems. In general, if T is the transformation of frame F with respect to the universal coordinate system, this is represented by U, while T is its counterpart in the local coordinate system. They are related by the equation T = FT F −1 . If a point or matrix X has coordinates with respect to frame F, then TF(X) = F(T (X)). Equivalently, if Y has coordinates with respect to the universal frame, then T(Y) = F T F −1 (Y) . Thus, T and T accomplish the same task from different coordinate systems, and are related by the equations T = FT F −1 and T = F −1 TF.

Rotational Differential Transform with Respect to Universal Coordinate System
We have shown that for rotation matrix R, the rotation differential operator with respect to the universal coordinate system is ∆ = ndθ × I. Let ω = ndθ be called the angular differential, then ∆ = ω × I.

Differential Transform in Universal Coordinate System
The translational and rotational velocities are first computed in the universal coordinate system. Definition 1. For F = R c 0 1 and the universal differential transformation matrix T, the differential change in frames is defined as follows: Now we define T as the differential operator with respect to the universal coordinate system.

Differential Transform in Local Coordinate System
For studying the different flight modes of a plate, it is desirable to have the computation of velocities also available in the local coordinate system, and is more conceptually reasonable. Before deriving the differential transformation in the local coordinate system, we will first show a few auxiliary results.

1.
Show that the rotation differential operator ∆ = R T ∆R with respect to the local frame system, such that Proof.

2.
Show that the linear differential dc = R T dc in the local frame simplifies to Proof.
3. Differential operator with respect to local frame coordinate system. Theorem 1. The frame differential transformation matrix T in the local coordinate system is Proof. From T = F −1 TF (Section 4.2.1) and TF = ∆R dc 0 0 (Equation (34)), we get Hence, the theorem is proved.
Finally, the 6-DOF local translational and rotational velocities in the local frame are derived from the differential transformation as follows:

Velocity
We have determined the 6-DOF frame for position and orientation, as well as the differentials for translational and rotational motion of the debris. High-speed, high-resolution cameras are fast enough to provide data on very small intervals of time. Assuming that the time history of 6-DOF frames has been reconstructed according to Section 3, we now determine the numerical derivatives from this sequence of 3D temporal positions and orientations (i.e., displacements) of the debris using the differentials derived in Section 4. This gives the translational and rotational velocities from the numerical time histories of the displacements.

Implementation Procedure for Debris Tracking with Both Displacement and Velocity Time Histories Determined
Conceptual algorithms and implementation go hand in hand. From the stereopairs of images captured by two cameras, we computed the 3D spatial positions of flagged points on the debris. Then, using three non-collinear points (e.g., the centroid and two vertices), we constructed a frame matrix ) and n = . F changes its state over time as the debris moves. The motion trajectory is then captured by successive camera frames F(t) to frame F(t + h), where h is the time step, depending on the camera speed. For translational and rotational velocity, we calculated the differential of frame F as dF = F(t + h) − F(t) = dR dc 0 1 , where dc is the differential of centroids of frame F(t) and subsequent frame F(t + h), and dR is the differential of orientation of frame F(t) and subsequent frame F(t + h). We have seen that dR = ∆R with ∆ = ω × I, ω = ndθ, . Now dF can be written in terms of frame differential operator T such that dF = TF, where T = ∆ dc − ∆c 0 0 . Now for the trajectory of N frames F k , k = 1, 2, . . . , N. Let the kth stereopair debris vertices be denoted by Q k1i = 1 x i , 1 y i , 1 z i , and Q k2i = 2 x i , 2 y i , 2 z i , i = 1, 2, . . . , 8.
The 3D spatial location corresponding to the points Q k1i and Q k2i is denoted by P ki , whose position vector is p ki .
Let p ki be the position vectors of vertices P ki , and c k be the centroid of vertices P ki for i = 1, 2, . . . , 8.
Create frame F k with u k , v k , w k , c k as follows: This creates a sequence of consecutive frames F k , k = 1, 2, . . . , N representing the position and orientation of debris at any point. To derive the translational velocity of frame F k , it is sufficient to know the linear differential change from c k to c k+1 , the centroids of the consecutive coordinate frames. The rotational velocity is more complex, as seen earlier. In the universal coordinate system: The differential translational change is dc k = c k+1 − c k . The differential rotational change is dR k = ∆ k R k , where ∆ k = ω k × I.
The frame differential change is dF k = T k F k = ∆ k R k dc k 0 0 , With respect to the local coordinate system of frame F k , The differential rotational change is dR = ∆ k R, where The differential translational change is dc k , where The frame differential change is dF = T k F k = ∆ k R k dc k + ∆ k c k 0 0 .
With this we complete the derivation of the formulations for determining the 6-DOF position and orientation along with the 6-DOF translation and rotational velocity of the rigid body debris. The full process of the proposed method for measuring the trajectory of plate-type debris is illustrated in Figure 3.

Conclusions
In this paper, we propose an algorithm to reconstruct the 6-DOF (three translational and three rotational) trajectory of flying debris using stereopairs of images from two high-speed cameras. Both the time histories of displacements and velocities can be determined by this algorithm. Specifically, this algorithm addresses the research gap in terms of a lack of algorithms/software for measuring three-rotational-DOF using stereophotogrammetry in the literature, and thus contributes to the new measurement science enabled by high-speed cameras and computer graphics theory. It is intended to be used for experimentally measuring the debris trajectory in a 3D wind field to support the investigation of the debris flight physics in an urban built environment and ultimately contributes to enhancing the reliability of building envelopes under windborne debris hazards. However, it may also be applied to reconstructing the 3D motion of people using surveillance cameras in buildings (e.g., to see how a robber is approaching a victim) or of vehicles in car accidents using traffic monitoring cameras. In this paper, we focused on the wind engineering application and developed this algorithm for two common types of debris, i.e., compact and thin-plate-like, in particular. For the former, the three-translational-DOF were reconstructed. Then the results were used to derive the three-rotational-DOF of the thin plate. In future studies, the algorithm can also be extended for rodlike debris, another type of debris commonly observed during wind risk. The current paper dealt with the theoretical development of the algorithm, while its implementation in conjunction with image processing techniques in wind tunnel experiments will be explored in our future studies.  Acknowledgments: The help from Mr. Yue Dong (a graduate student at Colorado State University) with preparing the manuscript was greatly appreciated.
Conflicts of Interest: The authors declare no conflict of interest.

Conclusions
In this paper, we propose an algorithm to reconstruct the 6-DOF (three translational and three rotational) trajectory of flying debris using stereopairs of images from two high-speed cameras. Both the time histories of displacements and velocities can be determined by this algorithm. Specifically, this algorithm addresses the research gap in terms of a lack of algorithms/software for measuring three-rotational-DOF using stereophotogrammetry in the literature, and thus contributes to the new measurement science enabled by high-speed cameras and computer graphics theory. It is intended to be used for experimentally measuring the debris trajectory in a 3D wind field to support the investigation of the debris flight physics in an urban built environment and ultimately contributes to enhancing the reliability of building envelopes under windborne debris hazards. However, it may also be applied to reconstructing the 3D motion of people using surveillance cameras in buildings (e.g., to see how a robber is approaching a victim) or of vehicles in car accidents using traffic monitoring cameras. In this paper, we focused on the wind engineering application and developed this algorithm for two common types of debris, i.e., compact and thin-plate-like, in particular. For the former, the three-translational-DOF were reconstructed. Then the results were used to derive the three-rotational-DOF of the thin plate. In future studies, the algorithm can also be extended for rod-like debris, another type of debris commonly observed during wind risk. The current paper dealt with the theoretical development of the algorithm, while its implementation in conjunction with image processing techniques in wind tunnel experiments will be explored in our future studies.