# US 11,029,709 B1 · Adaptive wind estimation, trajectory generation, and flight control for aerial systems using motion data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,029,709 B1
- Document ID: US11029709B1
- Status: Granted
- Kind: B1
- Application number: 16/227,387
- Filed: 2018-12-20
- Granted: 2021-06-08
- Earliest claimed: 2017-12-28
- Assignees: United States of America as represented by the Administrator of NASA
- Applicants: United States of America as Represented by the Administrator of the NASA
- Inventors: Vahram Stepanyan; Kalmanje Srinivas Krishnakumar
- Web page: https://patentgrep.com/patent/US11029709B1

## CPC

- G05D 1/0816: {to ensure stability}
- G05D 1/1062: {specially adapted for avoiding bad weather conditions}
- B64U 10/14: with four distinct rotor axes, e.g. quadcopters
- B64U 50/23: with each propulsion means having an individual motor
- G01W 1/02: Instruments for indicating weather conditions by measuring two or more variables, e.g. humidity, pressure, temperature, cloud cover or wind speed (G01W1/10 takes precedence)
- B64U 2201/10: autonomous, i.e. by navigating independently from ground or air stations, e.g. by using inertial navigation systems [INS]
- G01W 2001/003: {Clear air turbulence detection or forecasting, e.g. for aircrafts}
- G05D: SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- B64U: UNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
- G01W: METEOROLOGY (radar, sonar, lidar or analogous systems, designed for meteorological use G01S13/95, G01S15/88, G01S17/95)

## Abstract

Adaptive wind estimation, trajectory generation, and flight control for aerial systems using motion data is provided. The adaptive wind estimation approach may be implemented using onboard computing power, may rapidly converge to true values, may be computationally inexpensive, and may not require any specific hardware or specific vehicle maneuvers for the convergence. There may be no prior knowledge of the wind field, using the motion of the aircraft itself rather than wind sensors. The algorithm may include three blocks. An identification/estimation block may identify aerodynamic drag coefficients in still-air flight and estimate the wind components in moving and variable air flight. A navigation block may generate feasible trajectories, taking into account the estimated wind field. A control block may generate motor/engine thrust commands necessary to track the generated trajectories while compensating for the wind disturbance.

## Claims

### Claim 1

A computer program embodied on a non-transitory computer-readable medium, the program configured to cause at least one processor to:
perform adaptive wind estimation by identifying aerodynamic drag coefficients in still-air flight of an aircraft and estimating wind components in moving and variable air based on the identified aerodynamic drag coefficients;
generate a feasible trajectory based on the estimated wind components;
generate motor and thrust commands based on said feasible trajectory, wherein said motor and thrust commands compensate for wind disturbances; and
control the aircraft based on the generated motor and thrust commands.

### Claim 2 (depends on 1)

The computer program of claim 1, wherein no information from one or more wind sensors is used.

### Claim 3 (depends on 1)

The computer program of claim 1, wherein the adaptive wind estimation comprises:
estimating a translational drag coefficient using an inertial velocity and orientation angle measurements of the aircraft; and
estimating a rotational drag coefficient using a prediction of angular rate measurements.

### Claim 4 (depends on 1)

The computer program of claim 1, wherein the wind components comprise wind velocities and accelerations.

### Claim 5 (depends on 1)

The computer program of claim 1, wherein the feasible trajectory generation comprises a jerk minimization approach that is modified to directly take an estimate of aerodynamic drag into account.

### Claim 6 (depends on 1)

The computer program of claim 1, wherein the feasible trajectory generation comprises:
computing a minimum possible time-to-go for all segments of the trajectory, the trajectory comprising a plurality of waypoints and the segments defined as lines between each pair of waypoints.

### Claim 7 (depends on 6)

The computer program of claim 6, wherein the feasible trajectory generation further comprises:
generating a segment trajectory on an interval between two adjacent waypoints according to an optimal control problem; and
computing a mass-normalized thrust vector required to traverse the segment trajectory component-wise.

### Claim 8 (depends on 7)

The computer program of claim 7, wherein the feasible trajectory generation further comprises:
checking thrust feasibility conditions;
when the thrust feasibility conditions are satisfied:
computing and checking rate feasibility, and when the rate is feasible:
marking the segment trajectory as a feasible trajectory between the waypoints, and
advancing to the next segment of the trajectory, and taking a final state of the current segment trajectory as an initial state for a next segment.

### Claim 9 (depends on 8)

The computer program of claim 8, wherein the process of checking thrust feasibility and rate feasibility conditions is repeated until all segments of the trajectory are checked.

### Claim 10 (depends on 8)

The computer program of claim 8, wherein when the thrust feasibility conditions are not satisfied or the rate is not feasible, time is advanced and the segment trajectory generation, thrust vector computation, and feasibility checks are repeated.

### Claim 11 (depends on 1)

The computer program of claim 1, wherein the generating of the motor and thrust commands comprises:
determining center of gravity (CG) control of the aircraft; and
determining attitude control of the aircraft.

### Claim 12

A computer-implemented method, comprising:
performing adaptive wind estimation, by a computing system, by identifying aerodynamic drag coefficients in still-air flight of an aircraft and estimating wind components in moving and variable air based on the identified aerodynamic drag coefficients, the estimated wind components comprising wind velocities and accelerations;
generating a feasible trajectory, by the computing system, based on the estimated wind components;
generating motor and thrust commands, by the computing system, based on the generated feasible trajectory by determining center of gravity (CG) control of the aircraft and determining attitude control of the aircraft, wherein the motor and thrust commands compensate for wind disturbances; and
controlling the aircraft based on the generated motor and thrust commands, by the computing system, wherein
no information from one or more wind sensors is available to the computing system.

### Claim 13 (depends on 12)

The computer-implemented method of claim 12, wherein the adaptive wind estimation comprises:
estimating a translational drag coefficient, by the computing system, using an inertial velocity and orientation angle measurements of the aircraft; and
estimating a rotational drag coefficient, by the computing system, using a prediction of angular rate measurements.

### Claim 14 (depends on 12)

The computer-implemented method of claim 12, wherein the feasible trajectory generation comprises:
computing, by the computing system, a minimum possible time-to-go for all segments of the trajectory, the trajectory comprising a plurality of waypoints and the segments defined as lines between each pair of waypoints.

### Claim 15 (depends on 12)

The computer-implemented method of claim 12, wherein the feasible trajectory generation further comprises:
generating, by the computing system, a segment trajectory on an interval between two adjacent waypoints according to an optimal control problem; and
computing, by the computing system, a mass-normalized thrust vector required to traverse the segment trajectory component-wise.

### Claim 16 (depends on 15)

The computer-implemented method of claim 15, wherein the feasible trajectory generation further comprises:
checking thrust feasibility conditions, by the computing system;
when the thrust feasibility conditions are satisfied:
computing and checking rate feasibility, by the computing system, and when the rate is feasible:
marking the segment trajectory as a feasible trajectory between the waypoints, by the computing system, and
advancing to the next segment of the trajectory, by the computing system, and taking a final state of the current segment trajectory as an initial state for a next segment.

### Claim 17 (depends on 16)

The computer-implemented method of claim 16, wherein the process of checking thrust feasibility and rate feasibility conditions is repeated until all segments of the trajectory are checked.

### Claim 18

A computer-implemented method, comprising:
performing adaptive wind estimation for an aircraft, by a computing system;
generating a feasible trajectory, by the computing system, that takes the estimated wind components into account;
generating motor and thrust commands, by the computing system, based on the generated feasible trajectory; and
controlling the aircraft based on the generated motor and thrust commands, by the computing system,
wherein the performing of the adaptive wind estimation comprises identifying aerodynamic drag coefficients in still-air flight of the aircraft and estimating wind components in moving and variable air based on the identified aerodynamic drag coefficients, the estimated wind components comprising wind velocities and accelerations.

### Claim 19 (depends on 18)

The computer-implemented method of claim 18, wherein no information from one or more wind sensors is available to the computing system.
