Runway perimeter terrain database sculpting
By defining the final approach ramp area of the runway and adjusting the terrain database using real-time runway data, the problem of insufficient resolution and accuracy of the terrain database was solved, enabling effective terrain avoidance during aircraft approach and landing.
Patent Information
- Application Number
- CN202411332312.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-01-13
- Filing Date
- 2021-01-06
- Publication Date
- 2025-12-09
- Estimated Expiration
- 2041-01-06
AI Technical Summary
The existing terrain database has insufficient resolution and accuracy near the runway, causing the terrain collision avoidance system to be unable to work effectively during aircraft approach and landing, and the database size exceeds the memory limit.
The algorithm combines real-time runway positioning and aircraft elevation sensing accuracy to define the final approach ramp area of the runway. The elevation data of this area is used to replace or adjust the terrain database to improve resolution and accuracy. The engraving algorithm is implemented through a programmable processor or FPGA circuit.
Without increasing storage requirements, the resolution and accuracy of the terrain collision avoidance system have been improved, ensuring that the system works effectively during aircraft approach and landing.
Smart Images

Figure CN119190381B_ABST
Abstract
Description
[0001] This application is a divisional application of application number 202180007871.4, filed on January 6, 2021, having the title “Terrain Database Carving Around Runways”. TECHNICAL FIELD
[0002] The present disclosure relates generally to terrain avoidance and warning systems for aircraft. More specifically, the present disclosure relates to techniques to adjust the resolution and / or accuracy of terrain elevation to be used when an aircraft is in the vicinity of an airport runway. BACKGROUND
[0003] This section provides background information which is not necessarily prior art.
[0004] Terrain databases for terrain collision avoidance need to have very good resolution and accuracy in the vicinity of runways to allow terrain collision avoidance systems to remain functional until the aircraft is on the ground during the approach and landing.
[0005] However, the size of such databases can be larger than the memory available to terrain collision avoidance systems. Moreover, even if the database provides sufficient resolution, the database accuracy and the aircraft system accuracy can not allow such systems to remain functional until the ground.
[0006] Runway databases provide additional geographical position information, usually collected via a component independent of the terrain database. SUMMARY
[0007] The disclosed systems and methods employ an algorithm that uses the real-time acquired runway positioning (latitude, longitude and elevation), approach glide slope, and combines it with a predefined system accuracy (aircraft elevation sensing accuracy) to define an area in the vicinity of the runway, named “Runway Final Approach Slope”, which will be used as an additional source of terrain elevation data.
[0008] Several options are disclosed. Option 1: use the elevation calculated using the Runway Final Approach Slope as the true elevation source, instead of or in combination with the terrain database, for terrain queries located within a predefined area. Option 2: adjust (“carve out”) the corresponding area in the terrain database information in the system memory to remove the false terrain that can occur in the vicinity of the runway due to low terrain database resolution. Define the Runway Approach Slope area taking into account current international airport design and operation standards, refer to ICAO Annex 14 Volume I.
[0009] According to one aspect, the disclosed method adjusts at least one of the vertical resolution and vertical accuracy of terrain elevation data in the vicinity of an aircraft runway by obtaining local terrain data that yields a first elevation value for a query location stored in memory. A processor receiving the first elevation value calculates a plane equation based on a predetermined standard model that is adapted to geometrically conform to the aircraft runway, thereby yielding a second elevation value for the query location. The processor selectively uses the first and second elevation values to generate an adjusted elevation value provided to a terrain avoidance and warning system. BRIEF DESCRIPTION OF DRAWINGS
[0010] The drawings described herein are for illustrative purposes only of selected embodiments and are not all the possible implementations. Thus, the particular selection of drawings is not intended to limit the scope of the present disclosure.
[0011] Figure 1 is a terrain profile of an aircraft on approach to landing, showing the area in which the disclosed system operates;
[0012] Figure 1 a is an exemplary terrain profile labeled to explain the concepts of accuracy and resolution;
[0013] Figure 2 is a flowchart of a first portion of an algorithm for providing elevation data within a predefined terrain sculpting or terrain modification area in the vicinity of a runway, the remainder of the algorithm being provided in Figure 3 Figure 4 and Figure 5
[0014] Figure 3 is a continuation of the flowchart of the first portion of Figure 2 showing a first option for determining elevation data;
[0015] Figure 4 is a continuation of the flowchart of the first portion of Figure 2 showing a different first option for determining elevation data;
[0016] Figure 5 is a continuation of the flowchart of the first portion of Figure 2 showing a second option for determining elevation data;
[0017] Figure 6 is a runway approach slope area diagram used to understand the definitions of the terms used in the algorithm;
[0018] Figure 7 is a pair of runway approach slope diagrams showing a standard runway being rotated and translated into an actual runway;
[0019] Figure 8 is a runway approach slope chart used to identify five regions that are applicable to the carving algorithm;
[0020] Figure 9 is a vector diagram used to understand the process for defining whether a query location is within a runway approach slope region; and
[0021] Figure 10 is a hardware block diagram of an exemplary embodiment of the disclosed system. DETAILED DESCRIPTION
[0022] The following detailed description is merely exemplary in nature and is not intended to limit the application or the application and uses of the application. Furthermore, there is no intention to be bound by any theory of operation described in the preceding background or the following detailed description.
[0023] While at least one exemplary embodiment has been presented in the foregoing detailed description, it should be appreciated that a variety of modifications can be made without departing from the scope or spirit of the application. Additionally, it should be understood that the exemplary embodiment or embodiments are only examples and are not intended to limit the scope, applicability, or configuration of the application in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing an exemplary embodiment as contemplated herein. It should be understood that various changes can be made in the function and arrangement of elements described in the exemplary embodiment without departing from the scope of the application as set forth in the appended claims.
[0024] Figure 1 An aircraft 10 is shown beginning to land along an approach slope 12 toward a runway 14. The actual terrain is represented by the profile line 16. As will be explained in greater detail below, a terrain collision avoidance system on the aircraft 10 uses a terrain database that subdivides the earth's surface into grids or tiles, each identified by a specific latitude and longitude associated with a predefined point on the grid (e.g., the southwest corner of the grid), and each having representative elevation data corresponding to the highest point on the earth's surface within that grid. When projected upward (in the z-direction), these grids define rectangular boxes of different heights (depending on exactly what the highest point of the terrain is). In Figure 1 In the middle, these rectangular boxes are shown in profile, with the upper bound representing elevation at 18; these elevations are stored in the terrain database. Figure 1 An exemplary approach slope 26 for an aircraft approaching the runway from the opposite direction is also shown. In some applications, the slope 26 can also be used when the aircraft begins a go-around maneuver.
[0025] As shown, associated with the runway 14 are the latitude, longitude and elevation of the base end 20, and the latitude, longitude and elevation of the reciprocal end 22. The area between the base end 20 and the reciprocal end 22 is the area 24 to which the terrain sculpting or terrain modification algorithm is applied. The terrain sculpting or terrain modification algorithm is also applied to eliminate the area where the terrain database elevation at 18 is above the approach slope 12. These areas are shown in Figure 1 shaded in
[0026] Resolution, precision, and storage size considerations
[0027] In this description, the terms resolution and accuracy are used. These two terms have different meanings. Resolution refers to the smallest change that can be measured by a system. Accuracy refers to how closely the reported measurement matches the true value of what was measured.
[0028] For illustration, a system can have a resolution of 1 meter - thus, for example, the system is able to resolve the difference between 1 meter and 2 meters; but is not able to resolve the difference between 1.1 meters and 0.95 meters. The same system can be configured to store elevation values with an accuracy of 100 meters - thus, for example, given a stored elevation of 234 meters, it can represent any actual elevation from 134 meters to 234 meters. Thus, in this illustration, the system will have a resolution of 1 meter and an accuracy of 100 meters.
[0029] Figure 1 a How these concepts of resolution and accuracy apply in an example terrain collision avoidance system is shown. The actual terrain profile is shown at 16, and example elevation values 18 are provided in meters: 1250, 1765, 1680, 1675, 1840 and 1425. These example values are based on the highest elevation point of the actual terrain for each grid or tile stored in the database. Note that these example values have a vertical resolution of 5. This is understandable because the least significant bit of each stored value is either 0 or 5. Figure 1 a The value of the vertical resolution being used by the system shown is depicted conceptually at 30. Just as the vertical resolution 30 is specified by the system, so can the horizontal resolution 32 be specified. The horizontal resolution specifies how finely horizontal distances can be resolved.
[0030] As noted above, accuracy is different from resolution. Thus, in Figure 1 a the vertical accuracy 34 is a measure of how closely the height recorded in the database matches the "correct" degree of the real world. As Figure 1 aAs illustrated by the vertical arrows, the elevation values stored in the database (e.g., 1250, 1765, 1680...) will differ from the actual terrain height, except for the highest points. This is because the database stores the highest point elevation to represent the vertical dimension of the entire grid or tile.
[0031] In designing a system according to the disclosed concepts, attention is given to selecting a resolution and accuracy that provides good terrain collision avoidance results while keeping data storage requirements reasonable. To illustrate, consider the case where one meter vertical resolution is implemented. At this resolution, a 31.3 meter high hill would be represented as 31 meters high, while a slightly taller 31.8 meter hill would be represented as 32 meters high. While the vertical resolution determines how the height of each individual terrain feature is captured, the horizontal resolution determines what height is stored for each grid or tile. This is because the horizontal resolution determines the area of terrain that will be represented by a single height point. For example, if the terrain is divided into 100 x 100 meter grids or tiles, the highest point within that 100 square meters would be stored in the database.
[0032] A database representing the surface of the earth using 100 x 100 meter tiles requires several terabytes of processor storage. If the area of interest is limited to the area surrounding an airport, the storage size can be significantly reduced. If finer resolution is needed globally, the storage size expands to several petabytes - which is currently infeasible for on-board aircraft applications.
[0033] While resolution and accuracy are distinct attributes, there is a mutual dependency. Notably, larger horizontal resolution can have the effect of reducing vertical accuracy; conversely, smaller horizontal resolution can have the effect of increasing vertical accuracy. This can occur because for a given grid or tile, only one elevation is assigned based on the highest feature in that grid or tile; features within the grid of smaller height are effectively ignored. Thus, vertical accuracy can be increased by reducing the size of the grid, i.e., reducing the horizontal resolution.
[0034] Vertical and horizontal accuracy can also be affected by the accuracy of the technology used to measure the elevation of a feature. When vertical measurement accuracy is reduced, there is a higher degree of error in the elevation values of the highest features stored in the database. When horizontal measurement accuracy is reduced, there is a higher degree of error in the placement of the latitude and longitude of the measured features. Vertical accuracy error and horizontal accuracy error do not necessarily go hand in hand. For example, it is possible to measure and correctly represent the elevation features of an entire island with good vertical accuracy, but these features appear to be shifted eastward by hundreds of meters, for example, due to inaccuracy of the horizontal measurement technology.
[0035] To meet the competing goals of good terrain collision avoidance performance and reduced data storage requirements, embodiments can be designed to have different vertical and horizontal resolutions depending on proximity to relevant airports. For example, in one embodiment, the following resolutions can be used:
[0036] Resolution:
[0037] • Vertical resolution: 1 meter
[0038] • Horizontal resolution: 100 meters (near airports) and 1000 meters (far from airports)
[0039] Accuracy:
[0040] • Vertical accuracy: about 45 meters (near airports) and about 150 meters (far from airports)
[0041] • Horizontal accuracy: based on terrain conditions
[0042] Carving algorithm
[0043] The sculpting algorithm is designed to adjust the resolution and / or accuracy of the terrain database when the vehicle is near an airport. Several techniques can be used, as shown in Figures 2 to 5 , discussed below. These techniques calculate elevations with better accuracy than the elevations stored in the terrain database, and select to use these elevations instead of the initially stored terrain data when the vehicle is near an airport runway. When very near the runway, this will correspond to very small vertical and horizontal resolutions (in one embodiment, the calculations can use 32-bit floating point numbers, which correspond to about 8 significant decimal digits, resulting in very good resolution). In many cases, the accuracy will also be improved, as the calculations will be based on runway database elevation values rather than terrain database elevation values. Runway database elevation values tend to have better information, as they are easier to find sources for.
[0044] The disclosed terrain sculpting techniques can be implemented using programmed processors or using other suitable electronic circuitry including gate array circuits (e.g., field programmable gate array (FPGA) circuits) or other application specific integrated circuits (ASICs). The programmed processor implementations are shown in Figure 10 and described in more detail below. Each of these processor or gate array circuit implementations is programmed and configured according to steps shown in Figure 2 in combination with at least one of the steps of Figure 3 , Figure 4 and Figure 5 . Unless otherwise specified, the term processor refers to a processor such as shown in Figure 10 or equivalent electronic circuitry such as a gate array circuit.
[0045] Reference Figure 2 The engraving algorithm begins at 50, where the processor acquires the landing runway data by querying a local source, typically using an ARINC 429 interface 52. ARINC 429 is a data transfer standard for aircraft avionics. In this case, using this data transfer standard, the local runway data is provided to the aircraft.
[0046] A terrain collision avoidance system that predicts future aircraft trajectories will have to check whether these trajectories will intersect terrain in the future. The "query position" refers to the aircraft position at a future time where the terrain elevation is relevant. To predict future aircraft trajectories, the system implements a fast update rate function, which is executed several times per second, to predict future aircraft positions. The "query time" refers to the time within the fast update rate function when the terrain elevation needs to be computed to check that the future aircraft trajectory will not interfere with terrain.
[0047] The processor then computes the approach slope region vertex and elevation at 56, and then computes the plane coefficients for the approach slope at 58, both of which steps use a set of calculations referred to herein as a slow update rate function 60, which is discussed more fully below. The name slow update rate function is chosen because this function can be run appropriately at a slow update rate (e.g., on the order of once per second). The processor also implements a fast update rate function that runs at terrain query times. The fast update function handles time critical decisions.
[0048] After the slow update rate function has been executed to implement steps 56 and 58( Figure 2 ), several different alternative embodiments are possible to obtain the elevation data that will be used for terrain collision avoidance when close to the runway, as shown at step 62. Figure 3 and Figure 4 Two embodiment options are shown that query the slope to obtain the elevation data, while Figure 5 An embodiment option is shown that obtains the elevation data by engraving a local terrain map. Here, the local terrain map refers to the portion of the terrain database that is near the aircraft that is currently loaded in volatile computer memory for processing purposes.
[0049] Reference Figure 3 (Option la is shown), at the query time 54, the processor tests at step 64 whether the query position is within the approach region. If the query position is within the approach region, then the processor uses the plane equation computed in steps 56 and 58( Figure 2 ) to compute and store the elevation data at 66. In addition, the processor also obtains the elevation data from the local terrain map at 68. Then at step 70, the processor selects the minimum of the local terrain map elevation and the stored approach region elevation computed at 66.
[0050] A variation of the query ramp embodiment (Option Ib) is shown in Figure 4 At query time 54, the processor tests at step 72 whether the query position is within the approach region. If the aircraft is not within the approach region, then the processor simply obtains the elevation data from the local terrain map at step 74. On the other hand, if the aircraft is within the approach region, then the processor uses the plane equation computed in steps 56 and 58 Figure 2 ) to compute the approach region elevation. In contrast, Option la differs from Option Ib in that, when within the approach region, Option la selects the minimum of the computed elevation and the local terrain map elevation, whereas Option Ib prefers the computed elevation. Option Ib requires less computation, but can come at the expense of some accuracy.
[0051] Figure 5 A slightly different technique (Option 2) is shown that adjusts the local terrain map using a slow update rate function. Thus, the processor computes and stores the elevation data at 80 using the plane equation computed in steps 56 and 58 Figure 2 ). In addition, the processor also obtains the elevation data from the local terrain map at 82. The processor then selects the minimum of the local terrain map elevation and the approach region elevation (computed using the plane equation) at 84. This selected minimum elevation is then used to adjust the local terrain map at 86. At query time 54, the processor can then simply obtain the elevation by querying the local terrain map (which has been adjusted by the Option 2 algorithm).
[0052] Options la and lb differ from Option 2 in that, at query time 54, which data is queried when the aircraft is within the approach region. Options la and lb query the approach region elevation data computed by the slow update rate function. Option 2 queries the local terrain map data, which can have been adjusted by the slow update rate function.
[0053] Implementing slow and fast update rate functions
[0054] The details of implementing the slow update rate function and the fast update rate function will now be described in terms of the following steps:
[0055] Step 1 : Obtain the runway data
[0056] Step 2a. : Compute the position of the approach ramp point corresponding to the standard runway threshold at the equator Step 2b. : Rotate and translate the standard point to the actual runway location using an equirectangular approximation
[0057] Step 2b(0). : Compute the runway length and bearing in degrees at the equator
[0058] Step 2b(1): Rotate the standard coordinate system to orient it to the actual runway base.
[0059] Step 2b(2): Rotate 180 degrees and translate to orient to the actual runway end.
[0060] Step 2b(3): Translate the rotated point to the actual runway base position.
[0061] Step 2b(4): Translate the rotated point to the actual opposite end of the runway.
[0062] Step 2c: Calculate the elevation of each ramp apex.
[0063] Step 3: Calculate the plane coefficient for each of the five regions.
[0064] Step 4: If the queried area is within the runway approach ramp area – return elevation.
[0065] The steps for executing options 1a and 1b are largely the same. The difference between executing option 2 and options 1a and 1b lies in the location and manner in which the plane equations are applied. Specifically, regarding option 2:
[0066] The algorithm uses a slow update rate function to update or sculpt the local map, rather than using plane equations at query time.
[0067] Steps 1 through 3 are the same until the plane coefficients are calculated.
[0068] Step 4 occurs at a slow update rate function. The elevation of each terrain unit near the runway and within each predefined area will be adjusted using the area-specific plane equations.
[0069] Step 1. Get the runway data
[0070] When executing the slow update function, the processor uses the acquired landing runway data to perform calculations. Figure 6 The various numerical components shown include:
[0071] • Baseline longitude, latitude, and elevation (see Figure 6 (20 locations).
[0072] • Minimum ingress slope at the base (see Figure 6 (90 locations)
[0073] • Longitude, latitude and elevation of the opposite end (see Figure 6 (22 locations)
[0074] • Minimum approach slope at the opposite end (see Figure 6 (92 locations)
[0075] • Runway width (seeFigure 6 , 94
[0076] Referring Figure 6 , the processor calculates the positions of points A B , B B , C B , and D B near the base end 20 and points A R , B R , C R , and D R near the opposite end 22 based on predetermined values (exemplary values given below):
[0077] • Distance from the threshold, d = 60 meters (see Figure 6 , d
[0078] • Ramp length, rampLength = 1 nautical mile (see Figure 6 , 98
[0079] • Divergence = 15% (see Figure 6 , 96
[0080] • Width = Runway Width (exemplary value 150 feet) times a predetermined factor (exemplary value 3) (see Figure 6 , 94
[0081] • Slope = Approach Glideslope (if not available, assume 3 degrees) minus a predetermined factor (exemplary value 1.5 degrees). (See Base End Slope at 90 in Figure 6 ; see Opposite End Slope at 92 in Figure 6 ).
[0082] 2a. Calculate the position of the standard base end point
[0083] Once the new runway definition information is available, the processor invokes the slow update rate function 60. For a standard base end located at 0° longitude and 0° latitude, the processor calculates the positions of points A, B, C, D (in degrees) as follows:
[0084] A = [-d_meters / 1852, +1.5*runwayWidth_ft / 6076] / 60;
[0085] B = [A(1), -A(2)];
[0086] C = [- (rampLength_nm + d_meters / 1852), …
[0087] = [ - (1.5 * runwayWidth / 6076 + rampLength_nm * divergence_pct) ] / 60;
[0088] D = [-C(1), +C(2)].
[0089] For example, for a 200 foot runway width, a 1 nautical mile ramp, and a 15% divergence, points A, B, C, D would be calculated as follows (expressed as floating point numbers in latitude and longitude at the equator):
[0090] A = [-5.399567e-4, +8.228934e-4]
[0091] B = [-5.399567e-4, -8.228934e-4]
[0092] C = [-1.720663e-2, -3.322893e-3]
[0093] D = [-1.720663e-2, +3.322893e-3]
[0094] 2b. Rotate and translate the standard point to the actual runway location
[0095] Next, the processor uses the isometric approximation algorithm to rotate and translate the standard A, B, C, D points to the actual runway location. If increased precision is desired, other rotation and translation algorithms can be used (e.g., the half- angle formula, the cosine law, etc.). However, the isometric approximation algorithm is chosen here because it is computationally efficient - requiring only one trigonometric calculation, one square root calculation, and a few multiplications and additions.
[0096] Figure 7 The rotation and translation process is illustrated, whereby the standard runway 100 is transformed into the actual runway 102 through a series of rotations and translations shown at (1)-(4). The base end 20 and the opposite end 22 are handled separately. Thus at Figure 7In detail, operation (1) rotates the base end 20 of the standard runway 100; operation (2) rotates another 180 degrees to orient the ramp for the opposite end 22. Operation (3) translates the point from operation (1) to place the ramp in the same location as the base end of the actual runway 102; operation (4) translates the point from operation (2) to place the ramp in the same location as the opposite end of the actual runway 102. This algorithm is based on the assumption that all runways are straight, which simplifies the calculations by defining the ramp for only the base end of the "standard runway." This allows the opposite end of the standard runway to be calculated by a simple 180 degree rotation (which does not require any trigonometry). To maximize the efficiency of the calculations, some basic data that is reused in later steps is pre-computed and stored. This allows the entire operation to be performed in a single sine and a single cosine (CPU throughput intensive trigonometric functions).
[0097] The order of operations within the slow update rate function is theoretically irrelevant, but is important to keep the algorithm simple and computationally efficient. Rotating a point at the equator (where 1 degree of longitude covers essentially the same distance as 1 degree of latitude) is simpler (only a single sine and a single cosine of the rotation angle, plus a few multiplications and additions / subtractions). Rotating a point away from the equator (where 1 degree of longitude decreases in size as the latitude increases) is more complex. Therefore, in the disclosed algorithm, the rotation is performed first, and then the translation.
[0098] In detail, the equi-rectangular approximation calculates the azimuth and length in degrees of latitude at the equator. For clarity, step 2b has been subdivided into sub-steps below:
[0099] Step 2b(0). Calculate the runway length and orientation using an isometric approximation, in degrees at the equator
[0100] cosLat = cos((bLat + rLat) / 2);
[0101] deltaLon = (rLon - bLon) * abs(cosLat);
[0102] deltaLat = (rLat - bLat);
[0103] length_deg = sqrt(deltaLon^2 + deltaLat^2);
[0104] sinTheta = deltaLat / length_deg;
[0105] cosTheta = deltaLon / length_deg;
[0106] where:
[0107] bLat = base end latitude of the runway
[0108] bLon = Base End of Runway Longitude
[0109] rLat = Opposite End of Runway Latitude
[0110] rLon = Opposite End of Runway Longitude
[0111] Theta = Runway "Azimuth"
[0112] Step 2b(1). Rotate the standard coordinates to orient to the actual runway base end
[0113]
[0114] A ROT = R * A
[0115] B ROT = R * B
[0116] C ROT = R * C
[0117] D ROT = R * D
[0118] Step 2b (2) Rotate 180 degrees and translate to orient to actual opposite end of runway
[0119]
[0120] A ROT180 = R 180 * A ROT + T R
[0121] B ROT180 = R 180 * B ROT + T R
[0122] C ROT180 = R 180 * C ROT + T R
[0123] D ROT180 = R 180 * D ROT + T R
[0124] Step 2b (3) Translate rotated points to actual base end of runway location using equi-rectangular approximation:
[0125]
[0126] A B = M * A ROT + T
[0127] B B = M * B ROT + T
[0128] C B = M * C ROT + T
[0129] D B = M * D ROT + T
[0130] Step 2b(4) Translate the rotated point to the actual runway opposite end location using an isometric approximation:
[0131] A R = M * A ROT180 + T
[0132] B R = M * B ROT180 + T
[0133] C R = M * C ROT180 + T
[0134] D R = M * D ROT180 + T
[0135] Step 2c. Calculate the elevation of each of the threshold points
[0136] • Points A and B are computed with the same elevation as the runway threshold
[0137] • Points A and B are computed with the same elevation as the runway threshold
[0138] • Points CB and DB are computed using the small angle approximation as equal to: runway threshold elevation + rampLength x (rampSlope) x pi / 180°
[0139] • Points CR and DR are computed using the small angle approximation as equal to: runway threshold elevation + rampLength x (rampSlope) x pi / 180°
[0140] Step 3. Calculate the plane coefficients for each of the five regions
[0141] Next, the processor computes the plane coefficients for each of the five regions (ramps R1-R4 and runway) shown in FIG. 5. The points to use are: Figure 8
[0142] Runway: A B , B B , (A R +B R ) / 2
[0143] R1: (A B B B ) / 2, C B , D B
[0144] R2: A B , B R , D B
[0145] R3: (A R +B R ) / 2, C R , D R
[0146] R4: A R , B B , C B
[0147] Given three points A, B, C, the plane coefficients a, b, c, d are defined as:
[0148] function [a, b, c, d] = planeCoefficients(A, B, C)
[0149] a = (B Y -A Y )*(C Z -A Z )-(B Z -A Z )*(C Y -A Y )
[0150] b = -((B X -A X )*(C Z -A Z )-(B Z -A Z )*(C X -A X ))
[0151] c = (B X -A X )*(C Y -A Y )-(B Y -A Y )*(C X -A X )
[0152] d = a*A X +b*A Y +c*A Z
[0153] end.
[0154] Where X = longitude, Y = latitude, and Z = elevation.
[0155] Fast update rate function - executed at terrain query time
[0156] Get query input:
[0157] Query longitude
[0158] Query latitude
[0159] Query uncertainty
[0160] The query range is defined by the four points defined using the query input above:
[0161] [Longitude + uncertainty, Latitude + uncertainty]
[0162] [Longitude – uncertainty, Latitude + uncertainty]
[0163] [Longitude – Uncertainty, Latitude – Uncertainty]
[0164] [Longitude + uncertainty, Latitude – uncertainty]
[0165] refer to Figure 8 The processor checks whether each query region point is within the range of point C. B D B C R D R The defined runway approach ramp area. Instead of checking all four corners of the query area within the runway ramp area, an alternative is to check a single point (the query point) and then check if the uncertainty is less than the width of the approach ramp area.
[0166] A point can be checked to be inside a convex polygon by calculating the cross product of the following four points:
[0167] The vector from that point to one of the vertices
[0168] The vector from the vertex and the next vertex
[0169] Repeat on all polygon edges
[0170] If all four cross products have the same sign, then the point lies inside the polygon. Figure 9 In the example shown, P1D B and D B C R The cross product between them is positive, while P2D B and D B C R The cross product between them is negative.
[0171] Algorithm for checking if a is inside a convex polygon
[0172] Define a vector as the subtraction between two points:
[0173] v_sub(A,B) = [A X -B X ,A Y -B Y ];
[0174] Define a cross product as:
[0175] x_product(A,B) = A X *B Y –A Y *B X
[0176] For each line segment in the polygon:
[0177] Define a vector between the point and the line segment origin, for example:
[0178] a = v_sub(A,P1)
[0179] Define a line segment as the vector between the two vertices of the line segment, for example:
[0180] b = v_sub(B,A)
[0181] Calculate the cross product (x-product) between the two vectors:
[0182] prod = x_product(a,b)
[0183] Repeat for all four segments.
[0184] If all cross products have the same sign and are not zero, the point is inside the polygon.
[0185] Step 4. If the query region point is inside the runway threshold region:
[0186] The approach area elevation returned is the maximum elevation calculated using the plane equation of the 5 zones:
[0187] elev = (d-a*x-b*y) / c
[0188] Where: a, b, c, d = plane coefficients calculated in step 3; x = longitude; y = latitude
[0189] As mentioned above, in option 2, the algorithm uses a slow update rate function to update or carve the local map instead of using the plane equation at query time. Steps 1 to 3 are the same until the plane coefficients calculation. Step 4 occurs with the slow update rate function. Each terrain cell near the runway and inside each predefined zone will have its elevation adjusted using the plane equation of the specific zone.
[0190] Exemplary hardware embodiment
[0191] Figure 10 An exemplary hardware embodiment of a processor-based system for implementing the terrain sculpting operations discussed above is shown. A terrain sculpting system, shown generally at 124, is designed to provide elevation data to a terrain collision avoidance system 120 on an aircraft. In this regard, the terrain collision avoidance system 120 can be a terrain awareness system (TAWS), a ground proximity warning system (GPWS), or other type of collision avoidance system that requires an elevation signal to generate a warning or command an automatic avoidance maneuver. As shown, the terrain collision avoidance system can include a map data store 122, such as a computer-readable database of map terrain data stored in memory. As noted above, such map terrain data is typically stored as a grid or tiles, each grid or tile representing a unique terrain area associated with latitude and longitude coordinates and an elevation, typically representing the highest point in that grid or tile.
[0192] The terrain sculpting system 124 includes a processor 126 that is programmed to implement the sculpting algorithm 128 in accordance with the explanations above. The program code for performing the sculpting algorithm is stored in suitable memory accessible to the processor 126. In addition, the system 124 will also include sufficient system memory 130 in which to store intermediate calculations performed by the slow and fast update rate functions, and, if the Option 2 algorithm is being implemented, also a working copy of the map data to support the local terrain map adjustment step 86( Figure 5 ) of the Option 2 algorithm.
[0193] To enable the processor 126 to capture the query location 54( Figure 2 ), the processor is coupled to a suitable position sensor 132, such as a GPS receiver. Other navigation systems and altimeter sensors can also be used. Approach heading data and approach glide slope data from the aircraft's existing avionics system 134 can also be provided to the processor.
Claims
1. A method of adjusting terrain elevation data for a terrain avoidance and warning system on an aircraft, the method comprising: obtaining landing strip data for an aircraft runway, the landing strip data including a longitude, latitude, and elevation value for a base end of the aircraft runway and a longitude, latitude, and elevation value for an opposite end of the aircraft runway; calculating longitude, latitude, and elevation values for approach slope vertices corresponding to a base end slope plane, an opposite end slope plane, and a runway plane based on the obtained landing strip data; calculating plane equations based on the calculated approach slope vertices, wherein the calculated plane equations define elevations of points on the base end slope plane, the opposite end slope plane, and the runway plane; processing a query location for the aircraft, the query location associated with a predicted future trajectory of the aircraft; calculating terrain elevation values for the query location using at least one of the calculated plane equations; providing the calculated terrain elevation values to the terrain avoidance and warning system; and operating the terrain avoidance and warning system with the calculated terrain elevation values to check whether the predicted future trajectory will intersect terrain.
2. The method of claim 1, further comprising: defining an area around the aircraft runway using the approach slope vertices; and comparing a location of the aircraft to the defined area to determine when to provide the calculated terrain elevation values to the terrain avoidance and warning system.
3. The method of claim 1, wherein calculating the longitude, latitude, and elevation values for the approach slope vertices is based on a predetermined distance from an end of the aircraft runway, the end of the aircraft runway defined by the landing strip data.
4. The method of claim 1, wherein calculating the longitude, latitude, and elevation values for the approach slope vertices is based on a predetermined slope length of at least one of the base end slope plane and the opposite end slope plane.
5. The method of claim 1, wherein calculating the longitude, latitude, and elevation values for the approach slope vertices is based on a predetermined divergence angle associated with at least one of the base end slope plane and the opposite end slope plane.
6. The method of claim 1, wherein calculating the longitude, latitude, and elevation values for the approach slope vertices is based on a runway width associated with the aircraft runway.
7. The method of claim 1, wherein calculating the longitude, latitude, and elevation values for the approach slope vertices is based on a predetermined approach glide slope angle associated with at least one of the base end slope plane and the opposite end slope plane.
8. A system for adjusting terrain elevation data for an aircraft, the system comprising: a terrain avoidance and warning system on the aircraft; a data source including stored terrain data, the stored terrain data including stored terrain elevation values, wherein the stored terrain elevation values are loadable into computer memory on the aircraft to form a local terrain map including local terrain elevation values; and at least one processor programmed to: obtain landing strip data for an aircraft runway, the landing strip data including a longitude, latitude, and elevation value for a base end of the aircraft runway and a longitude, latitude, and elevation value for an opposite end of the aircraft runway; calculate longitude, latitude, and elevation values for approach slope vertices corresponding to a base end slope plane, an opposite end slope plane, and a runway plane based on the obtained landing strip data; calculate plane equations based on the calculated approach slope vertices, wherein the calculated plane equations define elevations of points on the base end slope plane, the opposite end slope plane, and the runway plane; process a query location for the aircraft, the query location associated with a predicted future trajectory of the aircraft; calculate terrain elevation values for the query location using at least one of the calculated plane equations; provide the calculated terrain elevation values to the terrain avoidance and warning system; and operate the terrain avoidance and warning system with the calculated terrain elevation values to check whether the predicted future trajectory will intersect terrain. acquiring landing runway data for an aircraft runway, the landing runway data including a longitude, latitude, and elevation value for a base end of the aircraft runway and a longitude, latitude, and elevation value for an opposite end of the aircraft runway; calculating longitude, latitude, and elevation values for an approach slope vertex corresponding to a base end slope plane, an opposite end slope plane, and a runway plane based on the acquired landing runway data; calculating a plane equation based on the calculated approach slope vertex, wherein the calculated plane equation defines an elevation of points on the base end slope plane, the opposite end slope plane, and the runway plane; processing a query position for the aircraft, the query position associated with a predicted future trajectory of the aircraft; calculating a terrain elevation value for the query position using at least one of the calculated plane equations; providing the calculated terrain elevation value to the terrain avoidance and warning system; and operating the terrain avoidance and warning system with the calculated terrain elevation value instead of the local terrain elevation value to check whether the predicted future trajectory will intersect terrain.
9. The system of claim 8, wherein calculating the longitude, latitude, and elevation values for the approach slope vertex is based on a predetermined distance from an end of the aircraft runway, the end of the runway defined by the landing runway data.
10. The system of claim 8, wherein calculating the longitude, latitude, and elevation values for the approach slope vertex is based on a predetermined slope length of at least one of the base end slope plane and the opposite end slope plane.
11. The system of claim 8, wherein calculating the longitude, latitude, and elevation values for the approach slope vertex is based on a predetermined divergence angle associated with at least one of the base end slope plane and the opposite end slope plane.
12. The system of claim 8, wherein calculating the longitude, latitude, and elevation values for the approach slope vertex is based on a runway width associated with the aircraft runway.
13. The system of claim 8, wherein calculating the longitude, latitude, and elevation values for the approach slope vertex is based on a predetermined approach glide slope angle associated with at least one of the base end slope plane and the opposite end slope plane.
14. The system of claim 8, wherein the landing runway data includes runway dimensions for the aircraft runway.
15. The system of claim 8, wherein the landing runway data includes approach dimensions for the aircraft runway.
16. A method of adjusting terrain elevation data for a terrain avoidance and warning system on an aircraft, the method comprising: acquiring landing runway data for an aircraft runway, the landing runway data including a longitude, latitude, and elevation value for a base end of the aircraft runway and a longitude, latitude, and elevation value for an opposite end of the aircraft runway; calculating longitude, latitude, and elevation values for an approach slope vertex corresponding to a base end slope plane, an opposite end slope plane, and a runway plane based on the acquired landing runway data; calculating a plane equation based on the calculated approach slope vertex, wherein the calculated plane equation defines an elevation of points on the base end slope plane, the opposite end slope plane, and the runway plane; processing a query position for the aircraft, the query position associated with a predicted future trajectory of the aircraft; calculating a terrain elevation value for the query position using at least one of the calculated plane equations; providing the calculated terrain elevation value to the terrain avoidance and warning system; and operating the terrain avoidance and warning system with the calculated terrain elevation value instead of the local terrain elevation value to check whether the predicted future trajectory will intersect terrain. calculating a plane equation based on the computed approach slope vertex, wherein the calculated plane equation defines elevations of points on the base slope plane, the opposite slope plane, and the runway plane; processing a query position of the aircraft, the query position being associated with a predicted future trajectory of the aircraft; obtaining a local terrain elevation value for the query position from a local terrain map loaded in computer memory on the aircraft; calculating a terrain elevation value for the query position using at least one of the calculated plane equations; providing the minimum of the local terrain elevation value and the calculated terrain elevation value to the terrain avoidance and warning system; and operating the terrain avoidance and warning system with the provided minimum to check whether the predicted future trajectory will intersect terrain.
17. The method of claim 16, wherein: the runway approach slope region of the aircraft runway includes the base slope plane, the opposite slope plane, and the runway plane; the method further includes the step of determining whether the query position is within the runway approach slope region; and the calculating the terrain elevation value is performed when the query position is determined to be within the runway approach slope region.
Citation Information
Patent Citations
Method of navigating an aircraft to land on a runway
KR100886404B1
Aircraft terrain information system
US20010056316A1
Precision navigation for landing
US8788128B1