VISION-BASED APPROACH AND LANDING SYSTEM
20240359822 ยท 2024-10-31
Inventors
- Evan Tatsuaki Kawamura (Mililani, HI, US)
- Corey A. Ippolito (San Jose, CA, US)
- Thomas Jan Jozef Lombaerts (Sunnyvale, CA, US)
- Keerthana Kannan (Sunnyvale, CA, US)
Cpc classification
G06T7/277
PHYSICS
International classification
G05D1/246
PHYSICS
G06T7/277
PHYSICS
Abstract
A vision-based navigation method that does not depend on GPS signal for landing AAM aircraft. The Vision-Based Approach and Landing System (VALS) uses images captured from a camera for Advanced Air Mobility (AAM) approach and landing in GPS-denied environments, which offers a potential Alternative Position, Navigation, and Timing (APNT) solution. VALS utilizes a computer vision algorithm called Coplanar Pose from Orthography and Scaling with Iterations (COPOSIT) to estimate the position and orientation of the camera based on coplanar features. VALS also includes an extended Kalman filter that uses IMU measurements in a prediction step and the COPOSIT estimation results in a correction element. Combining IMU with vision creates a sensor fusion navigation solution for GPS-denied environments.
Claims
1. A method of landing an aircraft without usage of a GPS signal, comprising: receiving an image from a camera attached to an aircraft; determining a correspondence between estimated landmark locations based on the image and predicted landmark locations to produce a plurality of world coordinates of best matches for at least four coplanar points in the image; applying a COPOSIT method to the plurality of world coordinates of best matches for the at least four coplanar points to produce an estimated aircraft position and orientation; receiving, by a Kalman filter, the estimated aircraft position and orientation, and further receiving input from an IMU, the IMU input representing acceleration and angular body rates; and generating, by the Kalman filter, a state estimation of the aircraft, the state estimation including a corrected estimated position, a corrected estimated velocity, and a corrected estimated orientation of the aircraft, the Kalman filter operating without using input of the GPS signal, the state estimation configured to be outputted to a flight control system of the aircraft for landing the aircraft without using input of the GPS signal.
2. The method of claim 1, further comprising: detecting features in the image, wherein the features correspond to fiducials; and estimating the landmark locations based on the detected features; and predicting the predicted landmark locations.
3. The method of claim 2, wherein the detecting features is performed by Hough circle detection.
4. The method of claim 2, wherein the detecting features is performed by Harris corner detection.
5. The method of claim 1, wherein method is performed by a simulator to simulate aircraft flight using computer-generated terrain and fiducials.
6. The method of claim 1 wherein the aircraft position and orientation are an output measurement matrix of the COPOSIT module, and wherein the output measurement matrix is set to zero when no COPOSIT data is available and the zeroed output measurement matrix is input to the Kalman filter.
7. The method of claim 1, wherein the corrected estimated position, the corrected estimated velocity, and the corrected estimated orientation are repeatedly determined over time based on new received images from the camera and are repeatedly inputted into a flight control system to facilitate landing the aircraft.
8. The method of claim 1, wherein the method is performed in near real time.
9. The method of claim 1, further comprising: obtaining real world telemetry data and videos from a drone flight test, and simulating the method using the obtained real world telemetry data and videos as input to the simulation.
10. A system for landing an aircraft without usage of a GPS signal, the system comprising: a camera attached to an aircraft; a feature corresponder to determine a correspondence between estimated landmark locations based on the image and predicted landmark locations to produce a plurality of world coordinates of best matches for at least four coplanar points in the image; a COPOSIT module for applying a COPOSIT method to the plurality of world coordinates of best matches for the at least four coplanar points to produce estimated aircraft position and orientation; and a Kalman filter that receives the estimated aircraft position and orientation and further receives input from an IMU, the input representing acceleration and angular body rates, the Kalman filter generating a corrected estimated position, a corrected estimated velocity, and a corrected estimated orientation of the aircraft, the Kalman filter operating without using input of the GPS signal, the state estimation configured to be outputted to a flight control system of the aircraft for landing the aircraft without using input of the GPS signal.
11. The system of claim 10, wherein the determiner further comprises: detecting features in the image, wherein the features correspond to fiducials, and estimating the landmark locations based on the detected features; and a predictor to predict the predicted landmark locations.
12. The system of claim 11, wherein the detecting features is performed by Hough circle detection.
13. The system of claim 12, wherein the detecting features is performed by Harris corner detection.
14. The system of claim 12, wherein method is performed by a simulator to simulate aircraft flight using computer-generated terrain and fiducials.
15. The system of claim 10, wherein the aircraft position and orientation are an output measurement matrix of the COPOSIT module, and wherein the output measurement matrix is set to zero when no COPOSIT data is available and the zeroed output measurement matrix is input to the Kalman filter.
16. The system of claim 10, wherein the corrected estimated position, the corrected estimated velocity, and the corrected estimated orientation are repeatedly determined over time based on new received image from the camera and are repeatedly inputted into a flight control system to facilitate landing the aircraft.
17. The system of claim 10, wherein the system operates in near real time.
18. A computer program product capable for landing an aircraft without usage of a GPS signal, comprising instructions stored in a memory to: receive an image from a camera attached to an aircraft; determine a correspondence between estimated landmark locations based on the image and between predicted landmark locations to produce a plurality of world coordinates of best matches for at least four coplanar points in the image; apply a COPOSIT method to the plurality of world coordinates of best matches for the at least four coplanar points to produce estimated aircraft position and orientation; and receive, by a Kalman filter, the estimated aircraft position and orientation and further receiving input from an IMU representing acceleration and angular body rates, the Kalman filter generating a state estimation of the aircraft, the state estimation including a corrected estimated position, a corrected estimated velocity, and a corrected estimated orientation of the aircraft, the Kalman filter operating without using input of a GPS signal, the state estimation configured to be outputted to a flight control system of the aircraft for landing the aircraft without using input of the GPS signal.
19. The computer program product of claim 18, further comprising instructions to: detect features in the image, wherein the features correspond to fiducials, wherein the detecting features is performed by Hough circle detection.
20. The computer program product of claim 18, further comprising instructions to: detect features in the image, wherein the features correspond to fiducials, wherein the detecting features is performed by Harris corner detection.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
DETAILED DESCRIPTION
[0016] As discussed above, there are certain situations when landing an AAM aircraft is required to be performed without assistance from GPS data. AAM aircraft flying among tall buildings of similar height, narrow canyons, etc., may affect the ability of the AAM aircraft to effectively use GPS to access a landing area. According to some embodiments of the present invention, airport/heliport/vertiport lighting systems, cones, and other markers provide a baseline for visual navigation aids, which will assist AAM aircraft during approach and landing. Incorporating a vision-based navigation method without depending on GPS provides a potential Alternative Position, Navigation, and Timing (APNT) solution for AAM aircraft in environments where GPS is not available. In an embodiment, position, velocity, and orientation of the aircraft is determined without access to GPS. See overview of
[0017] With reference to
[0018] Advanced Air Mobility (AAM) or Urban Air Mobility (UAM) aircraft (e.g., drones and other unmanned aerial vehicles (UAVs), and electric vertical takeoff and landing (VTOL) aircraft) have the potential to benefit from embodiments of the present invention. Commercial aircraft with downward-facing cameras may also apply this approach and incorporate a landing system based on the landing lights or fiducials on the runway. Airports, heliports, and vertiports with landmarks or landing lights or fiducials can directly apply these embodiments to assist incoming aircraft during approach and landing.
[0019]
[0020]
[0021]
[0022] Next, detected landmark locations, as identified by their pixel coordinates, are estimated in an image to produce a set of estimated landmark locations 208 for the image. Predicted landmark locations, which in some embodiments are landmark locations predicted to be in the aircraft's landing area, and which are stored ahead of time on the aircraft's onboard computer, are predicted in terms of pixel coordinates of an image to produce a set of predicted landmark locations 209 for a landing area expected to be captured in images 204. Feature corresponder 210 then compares the estimated landmark locations 208 and predicted landmark locations 209 in pixel coordinates to find the estimated landmark features that closely match the predicted landmark features to determine a correspondence between them. These best matches are matched to the inertial world coordinates of the landmarks, and world coordinates of best matches 212 are outputted. World coordinates of best matches 212 are inserted into the Coplanar Pose from Orthography and Scaling with Iterations (COPOSIT) module 220 that uses the COPOSIT method to estimate the camera position and orientation relative to at least four coplanar points. Aircraft position and orientation are estimated from the estimated camera position and orientation by transformation matrices, which produces a COPOSIT measurement of the aircraft position and orientation 222. As shown in
[0023] In one embodiment, the operations referenced in
[0024] It will be understood that the method of
[0025]
[0026] For identifying circles in an image,
[0027] For identifying corners in an image,
[0028] COPOSIT module 220 determines position and orientation of camera 202 from a single image captured by the camera given at least four coplanar points, thereby also determining the position and orientation of the aircraft onto which camera 202 is mounted. Coplanar points are points that lie within the same plane. The COPOSIT module 220 replaces the function of a GPS in a conventional system. COPOSIT relies on visual data and does not require receiving or sending an electromagnetic signal as a GPS system does. In addition, the COPOSIT module 220 gives an attitude (a/k/a orientation) of the aircraft (for example, rotation and translation). An example of the COPOSIT method executed by the COPOSIT module 220 is discussed in Oberkampf, D., DeMenthon, D. F., and Davis, L. S., Iterative Pose Estimation Using Coplanar Feature Points, Computer Vision and Image Understanding, Vol. 63, No. 3, 1996, pp. 495-511, the entirety of the paper being incorporated herein by reference. See Figure 7 of Oberkampf, The POSIT algorithm for coplanar scene points. The COPOSIT method is open sourced and code implementing the method is available on http://www.daniel.umiacs.io/Site_2/Code.html, which is herein incorporated by reference in its entirety.
[0029]
[0030]
[0031] This section discusses the state vector, coordinate frames, kinematics, and dynamics for, for example, AAM aircraft and the EKF of
A. State Vector
[0032] The state vector 230 of the AAM aircraft is defined as:
[0033] The state vector s decomposes to three vectors:
[0034] where each of them is defined as
[0035] The vector p is in East, North, and Up (ENU) coordinates in the inertial frame, fixed on the ground at the helipad landing site. The translational velocities in are in the inertial frame. The Euler angles are the roll, pitch, and yaw angles (, , ).
B. Coordinate Frames
[0036] The world coordinate system (WCS) is an inertial frame fixed on the ground in which gravity is pointing in the negative U-direction, i.e., down. The vehicle coordinate system (VCS) is on the body frame on the aircraft such that the x-axis points right, the y-axis points forward, and the z-axis points up in the same direction as the motor axes. The camera coordinate system (CCS) has the camera fixed to the aircraft's body, angled down, and pointed in the positive z-axis. Its x-axis points right like in VCS, and the y-axis points down and behind the aircraft.
C. Euler Angles
[0037] Embodiments of this invention utilizes the (3-1-2) sequence of the direction cosine matrix and rotates the inertial frame to the body frame through the Euler angles:
where c and se denote cos and sin respectively. R.sub.z () is the rotation matrix around the z-axis by , R.sub.x() is the rotation matrix around the once rotated x-axis by , and R.sub.y() is the rotation matrix around the twice rotated y-axis by . The relationship between the angular velocity and Euler angular rates for the (3-1-2) direction cosine matrix sequence is:
such that =[r q p].sup.T and =[ ].sub.T.
D. Position and Velocity
[0038] Transposing the direction cosine matrix of the prior subsection relates the time derivative of the inertial position vector and the body frame's velocity vector:
E. Translational Dynamics
[0039] The general aircraft translational dynamic equations are:
[0040] in which m is the mass, g is the acceleration due to gravity, F.sub.x, F.sub.y, F.sub.z are the aerodynamic forces, u, v, w are the velocities in the body frame, p, q, r are the angular velocities in the body frame, and , , are the roll, pitch, and yaw Euler angles. Modeling specific forces as accelerometer measurements at the aircraft's center of gravity measure the specific aerodynamic forces:
[0041] such that A.sub.x, A.sub.y, A.sub.z are the accelerometer measurements at the aircraft's center of gravity. Inserting Eq. (7) into Eq. (8) yields:
[0042] which removes mass and forms a set of kinematic equations for all types of aircraft regardless of mass.
[0043] .sup.6, includes the IMU measurements in the body frame:
The predicted state is defined as:
with () to denote before measurements and k represents the kth iteration. The predicted covariance before measurements is defined as:
such that with (+) denotes after measurements. (k) and (k) are defined as (Equation 1):
The F (k), G (k), and H (k) matrices are defined as:
The Kalman gain matrix is:
The state estimate update equation is:
Using the Joseph stabilized version of the covariance measurement update is a more stable and robust formulation such that it guarantees P.sub.k(+) will be symmetric and positive definite if P.sub.k() is symmetric and positive definite:
The process and measurement noise covariances are assumed to be constant, diagonal, and utilize the Gaussian distribution, i.e., Q, RN[, .sup.2] with u as the mean and as the standard deviation. The EKF uses the IMU as the input vector and coplanar POSIT for pose measurements, so Q, R.sup.66. Thus, the process noise covariance includes uses the IMU measurement variances:
The measurement noise covariance utilizes the variances from the coplanar POSIT algorithm:
[0044]
[0045]
[0046]
[0047] With reference to
[0048]
[0049]
[0050]
[0051] The data processing system illustrated in
[0052] The system further includes, in one embodiment, a random access memory (RAM) or other volatile storage device 820 (referred to as memory), coupled to bus 840 for storing information and instructions to be executed by processor 810. These instructions perform the methods discussed herein for creating and using Bayesian networks to isolate faults. The memory also stores the Bayesian network. The memory also stores instructions to manage sending and receiving data from the system (such as a quadcopter) and for displaying the user interface discussed herein. Main memory 820 may also be used for storing temporary variables or other intermediate information during execution of instructions by processing unit 810.
[0053] The system also comprises in one embodiment non-volatile storage, such as a read only memory (ROM) 850 and/or static storage device coupled to bus 840 for storing static information and instructions for processor 810. In one embodiment, the system also includes a data storage device 830 such as a magnetic disk or optical disk and its corresponding disk drive, or flash memory or other storage which is capable of storing data when no power is supplied to the system. Data storage device 830 in one embodiment is coupled to bus 840 for storing information and instructions.
[0054] The system may further be coupled to an output device 870, such as liquid crystal display (LCD) coupled to bus 840 through bus 860 for outputting information. The output device 870 may be a visual output device, an audio output device, and/or tactile output device (e.g., vibrations, etc.)
[0055] An input device 875 may be coupled to the bus 860. The input device 875 may be an alphanumeric input device, such as a keyboard including alphanumeric and other keys, for enabling a user to communicate information and command selections to the processing unit 810. An additional user input device 880 may further be included. One such user input device 880 is a cursor control device 880, such as a mouse, a trackball, stylus, cursor direction keys, or touch screen, may be coupled to bus 840 through bus 860 for communicating direction information and command selections to processing unit 810, and for controlling movement on display device 870.
[0056] Another device, which may optionally be coupled to computer system 801, is a network device 885 for accessing other nodes of a distributed system via a network. The communication device 885 may include any number of commercially available networking peripheral devices such as those used for coupling to an Ethernet, token ring, Internet, or wide area network, personal area network, wireless network, cellular network, or other method of accessing other devices. The communication device 885 may further be a null-modem connection, or any other mechanism that provides connectivity between the computer system 801 and the outside world.
[0057] Note that any or all of the components of this system illustrated in
[0058] It will be appreciated by those of ordinary skill in the art that the particular machine that embodies the present invention may be configured in various ways according to the particular implementation. The control logic or software modules implementing the present invention can be stored in main memory 820, mass storage device 830, or other storage medium locally or remotely accessible to processor 810.
[0059] It will be apparent to those of ordinary skill in the art that the system, method, and process described herein can be implemented as software stored in main memory 820 or read only memory 850 and executed by processor 810. This control logic or software modules may also be resident on an article of manufacture comprising a computer readable medium having computer readable program code embodied therein and being readable by the mass storage device 830 and for causing the processor 810 to operate in accordance with the methods and teachings herein.
[0060] The present invention may also be embodied in a handheld or portable device containing a subset of the computer hardware components described above. For example, the handheld device may be configured to contain only the bus 840, the processor 810, and memory 850 and/or 820.
[0061] The handheld device may be configured to include a set of buttons or input signaling components with which a user may select from a set of available options. These could be considered input device #1 875 or input device #2 880. The handheld device may also be configured to include an output device 870 such as a liquid crystal display (LCD) or display element matrix for displaying information to a user of the handheld device. Conventional methods may be used to implement such a handheld device. The implementation of the present invention for such a device would be apparent to one of ordinary skill in the art given the disclosure of the present invention as provided herein.
[0062] The present invention may also be embodied in a special purpose appliance including a subset of the computer hardware components described above, such as a mobile phone, tablet, or a vehicle. For example, the appliance may include a processing unit 810, a data storage device 830, a bus 840, and memory 820, and no input/output mechanisms, or only rudimentary communications mechanisms, such as a small touchscreen that permits the user to communicate in a basic manner with the device. In general, the more special-purpose the device is, the fewer of the elements need be present for the device to function. In some devices, communications with the user may be through a touch-based screen, or similar mechanism. In one embodiment, the device may not provide any direct input/output signals but may be configured and accessed through a website or other network-based connection through network device 885.
[0063] It will be appreciated by those of ordinary skill in the art that any configuration of the particular machine implemented as the computer system may be used according to the particular implementation. The control logic or software modules implementing the present invention can be stored on any machine-readable medium locally or remotely accessible to processor 810. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read-only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, or other storage media, which may be used for temporary or permanent data storage. In one embodiment, the control logic may be implemented as transmittable data, such as electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.).
[0064] In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.