The described embodiments relate to Unmanned Aerial Vehicles and, in particular, to a system and method for autonomous landing of an Unmanned Aerial Vehicle.
In recent years, the popularity of Unmanned Aerial Vehicles (UAVs) has seen a drastic increase with UAVs becoming a mainstream in public application. The popularity of UAVs has been largely driven by their versatility, low cost, and flexible operation characteristics which have allowed UAVs to be deployed across a wide range of applications, including photography and surveying, payload delivery, and forest fire monitoring.
In general, UAVs may be categorized as one of three types: fixed-wing (e.g. airplanes), rotary-wing (e.g. helicopters), and multi-rotor (e.g. quadcopters). Multi-rotor UAVs, in particular, have received increased attention owing to the simplicity of their mechanical design, as well as their unique flight envelope properties (i.e., hover characteristics, vertical take-off and landing, and multi-directional flight properties).
The following introduction is provided to introduce the reader to the more detailed discussion to follow. The introduction is not intended to limit or define any claimed or as yet unclaimed invention. One or more inventions may reside in any combination or sub-combination of the elements or process steps disclosed in any part of this document including its claims and figures.
In accordance with one aspect of this disclosure, which may be used alone or in combination with any other aspect, a system for landing an unmanned aerial vehicle, the system comprising: at least one memory and at least one processor, wherein the at least one memory is operatively coupled to the at least one processor; the at least one memory storing a modified pure proportional navigation (PPN) guidance law algorithm; the at least one processor being configured to control landing of the unmanned aerial vehicle by executing the modified PPN guidance law algorithm, wherein the modified PPN guidance law algorithm comprises: determining a current position for the unmanned aerial vehicle; determining a distance of the current position from a target position; generating at least one velocity command from the determined distance, the velocity command reducing to zero as the distance reduces to zero; and controlling the unmanned aerial vehicle to maintain the velocity thereof at the velocity command, whereby as the unmanned aerial vehicle approaches the target destination, the velocity of the aerial vehicle reduces to zero.
In some embodiments, the modified PPN guidance law algorithm includes providing at least one position command for the unmanned aerial vehicle.
In some embodiments, the modified PPN guidance law algorithm determines said at least one position command from said at least one velocity command.
In some embodiments, the position and movement of the unmanned aerial vehicle is determined in a three-dimensional coordinate system, and wherein the modified PPN guidance law algorithm determines a velocity command for each dimension of the coordinate system.
In some embodiments, the position and movement of the unmanned aerial vehicle is determined in Cartesian co-ordinates as (x,y,z), and the target position is also expressed in Cartesian co-ordinates as (xt,yt,zt).
In some embodiments, the PPN guidance law algorithm determines velocity commands for each of the Cartesian coordinates.
In some embodiments, the velocity commands are determined as incremental velocity commands in the X-axis, Y-axis and Z-axis in accordance with equations {dot over (x)}cmd=kx(xt−x); {dot over (y)}cmd=ky(yt−y); and żcmd=kz(zt−z), respectively, wherein kx, ky and kz are gain factors in each of the X-axis, Y-axis and Z-axis directions, respectively.
In some embodiments, the modified PPN guidance law algorithm is configured to generate a position command for each of the Cartesian coordinates by determining an integral of the respective velocity command.
In some embodiments, the position commands comprise incremental discrete-time domains position commands in the X-axis, Y-axis and Z-axis directions in accordance with the equations xcmd,t=xcmd,t-1+{dot over (x)}cmdΔt; ycmd,t=ycmd,t-1+{dot over (y)}cmdΔt and zcmd,t=zcmd,t-1+żcmdΔt, respectively, wherein xcmd,t-1, ycmd,t-1, and zcmd,t-1 are the position commands generated in a previous iteration of executing the PPN guidance law, and Δt is a pre-defined time increment value for generating new incremental velocity and position commands.
In some embodiments, the UAV is further equipped with at least one sensor in communication with the at least one processor, and the at least one processor being configured to determine the co-ordinate position (x,y,z) for the autonomous vehicle based on data generated by the at least one sensor.
In some embodiments, the at least one sensor comprises a Global Positioning System (GPS) module which generates GPS co-ordinates.
In some embodiments, the UAV is further equipped with a communication interface in communication with the at least one processor, and the at least one processor is configured to determine a co-ordinate position (xt,yt,zt) for the target position based on target information received, via the communication interface, from a flight management system.
In some embodiments, the unmanned aerial vehicle (UAV) includes a payload tethered to the UAV and the target position corresponds to a target landing destination for the payload, and wherein the modified PPN guidance law algorithm further comprises: determining a virtual target position (xt,yt,zt)′ for the UAV based on the target position; and generating the at least one incremental velocity command based on the current co-ordinate position for the unmanned aerial vehicle and the virtual target position.
In some embodiments, the co-ordinates for the virtual target position are determined by the processor based on the target landing position in accordance with the equations xt′=xt, yt′=yt and zt′=zt+L, wherein L defines the length of the tether, whereby when the unmanned aerial vehicle reaches the virtual target position, the unmanned aerial vehicle will have zero velocity and will be above the target destination.
In some embodiments, the at least one velocity command comprises velocity commands in the X-axis, Y-axis and Z-axis directions in accordance with the equations {dot over (x)}cmd=kx(xt′−x); ycmd=ky(yt′−y); and żcmd=kz(zt′−z).
In some embodiments, the system further includes a position controller and the position controller including an X-Y position controller and an altitude controller, the PPN guidance law algorithm supplying the X-Y position controller with at least one of velocity commands and position commands for the X and Y directions, and supplying the altitude controller with at least one of a velocity command and a position command for the Z direction.
In some embodiments, the system further includes an attitude controller having an input connected to the X-Y position controller, for receiving Euler angles (θd, Ød, Ψd) corresponding to pitch, roll and yaw directions and generating corresponding actuation torques [τφ, τØ, τΨ].
In some embodiments, the unmanned aerial vehicle includes a plurality of propellers, and wherein the system includes a control mixer connected to the attitude controller for receiving a thrust signal, T, and to the altitude controller, for receiving the corresponding actuation torques [τφ, τØ, τΨ], the control mixer generating rotational speed values (σ) for each of the propellers of the unmanned aerial vehicle.
In some embodiments, the unmanned aerial vehicle has four propellers, and the control mixer determines rotational speed values (σ) for each of the four propellers of the quadrotor UAV ([σ1, σ2, σ3, σ4]).
In some embodiments, the modified PPN guidance law algorithm determines position commands for the X, Y and Z directions and supplies these position commands to the X-Y position controller and to the altitude controller.
In accordance with one aspect of this disclosure, which may be used alone or in combination with any other aspect, there is provided a method for landing an unmanned aerial vehicle (UAV) using a modified PPN guidance law algorithm, comprising: determining a current position for the unmanned aerial vehicle; determining a position for a target position; generating at least one velocity command based on a distance between the current co-ordinate position for the unmanned aerial vehicle and the target position; generating at least one velocity command from the determined distance; reducing the velocity command to zero as the distance reduces to zero; and controlling the unmanned aerial vehicle to maintain the velocity thereof at the velocity command, whereby as the unmanned aerial vehicle approaches the target position, the velocity of the aerial vehicle reduces to zero.
It will be appreciated by a person skilled in the art that a system or method disclosed herein may embody any one or more of the features contained herein and that the features may be used in any particular combination or sub-combination.
These and other aspects and features of various embodiments will be described in greater detail below.
A preferred embodiment of the present invention will now be described in detail with reference to the drawings, in which:
FIC. 3C is a simplified block diagram of an example UAV controller;
Various systems, apparatuses or methods will be described below to provide an example of an embodiment of each claimed invention. No embodiment described below limits any claimed invention and any claimed invention may cover apparatuses and methods that differ from those described below. The claimed inventions are not limited to systems, apparatuses and methods having all of the features of any one apparatus or method described below, or to features common to multiple or all of the systems, apparatuses or methods described below. It is possible that a system, apparatus or method described below is not an embodiment of any claimed invention. Any invention disclosed in a system, apparatus or method described below that is not claimed in this document may be the subject matter of another protective instrument, for example, a continuing patent application, and the applicant(s), inventor(s) and/or owner(s) do not intend to abandon, disclaim or dedicate to the public any such invention by its disclosure in this document.
For simplicity and clarity of illustration, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements or steps. In addition, numerous specific details are set forth in order to provide a thorough understanding of the exemplary embodiments described herein. However, it will be understood by those of ordinary skill in the art that the embodiments described herein may be practiced without these specific details. In other instances, well-known methods, procedures and components have not been described in detail so as not to obscure the embodiments generally described herein. Furthermore, this description is not to be considered as limiting the scope of the embodiments described herein in any way, but rather as merely describing the implementation of various embodiments as described.
As explained in the background section, in recent years, UAVs have found increased, wide-spread application across multiple industry sectors. One example application has been for delivery of payloads (e.g., packages) between various locations. The growing use of UAVs for payload delivery has been largely driven by popular consumer demand for deliverable goods, as well as increasing desire by companies to extend the reach of their package delivery services.
Referring now to
The rigid configuration illustrated in
In view of the foregoing, the cable slung payload (
The operational mechanics of a UAV with a cable slung payload is typically examined by segmenting the UAV's payload transport mission into three main segments: 1) takeoff, 2) cruise/trajectory tracking, and 3) landing. Take-off involves take-off from ground, and proceeding to lift the payload smoothly off the ground using a tether. Cruise/trajectory tracking involves the main segment of the transport mission (e.g., flight between points). Landing of the UAV involves lowering the payload to the ground.
In recent years, the majority of research has been directed to enhancing the stability of the takeoff and cruise/trajectory phases of the flight mission. In particular, this research has proposed various autonomous position controllers which can stabilize a UAV having a cable slung payload during take-off and cruising, often to explicitly minimize the swinging motion of the payload. However, to date, the landing phase of UAVs with cable slung payloads has not been well studied. It has been appreciated, however, that the landing phase for UAVs with cable slung payloads is a critical phase to ensure that there are no hard impact landings as the payloads touchdown on ground (i.e., which may otherwise result in damage to sensitive or fragile payloads).
In view of the foregoing, embodiments disclosed herein relate to a method and system for autonomous landing of a UAV having a cable slung payload.
In accordance with various teachings provided herein, the autonomous landing of UAVs with cable slung payloads is performed using a modified Pure Proportional Navigation (PPN) guidance law. The modified PPN guidance law is used to generate landing position commands for a UAV position controller. In particular, the modified PPN guidance law is configured to generate position commands which allow the position controller to control the UAV to implement smooth and stable landing trajectories which are defined by low acceleration and soft touchdown, and without significant compromise to landing time. The proposed PPN guided position controllers may be advantageously implemented using existing UAV position controller hardware without the necessity for additional or upgraded control hardware. The PPN guided position controller may also advantageously be used to guide UAV landing without feedback information in respect of payload state information (e.g., payload position, etc.). Accordingly, this avoids the need to include additional hardware (e.g., sensors) to the UAV to determine payload state information, which may not be always practical or economically feasible.
Referring now to
As shown, the system 200 includes a flight management system 202 in data communication with the UAV 102. In various cases, the UAV 102 may be, for example, a multi-rotor UAV (e.g., quadrotor UAV).
The communication between the flight management system 202 and the UAVs 102a-102c may occur over a communication network 206. Communication network 206 may be, for example, one or more of a wireless personal area network such as a Bluetooth™ network, a wireless local area network such as the IEEE 802.11 family of networks, a mesh network, a cellular communication network, or a satellite communication network.
In various cases, the UAV 102 may be used for delivery of articles, parcels, or packages between various locations, or between various parties. For example, as shown in
In at least some embodiments described herein, the flight management system 202 may be configured to control the operation of one or more of the UAVs 102a-102c. For example, the flight management system 202 may be configured to send commands, via communication network 206, to the UAVs 102a-102c. For example, the flight management system 202 may transmit commands to a UAV to navigate to a location for picking-up or dropping-off a payload 104. In some cases, the navigational command can be expressed as Global Positioning System (GPS) coordinates, or coordinates expressed relative to a known reference frame mutually known to both the flight management system 202 and the UAV 102. In other cases, the flight management system 202 may also transmit flight path trajectory information to the UAV for arriving at a destination location. In other embodiments, the flight management system 202 may also be configured to request and receive information from the UAVs 102a-102c. The information may be in respect of the status and location of each UAV.
The system 200 may also include a computing device 208. The computing device 208 may be operated, for example, by a UAV operator. In examples provided herein, the flight management system 202 may be provided, and otherwise operable, on the computing device 208.
Referring now to
Autopilot system 302 may be a system for controlling the trajectory and motion of the UAV 102. Generally, an autopilot is required to receive a pre-planned route, use sensors 308 to determine position, orientation and velocity parameters of the UAV 102, and to control rotary motors 312 and other control devices on the UAV 102 to control the UAV 102 and cause it to follow the preplanned route. The autopilot 302 is also capable of receiving and acting on changes to the route, and detecting and responding to adverse events, e.g. unexpected weather conditions, that may require changes to the route. In at least some embodiments, the autopilot 302 controls the UAV 102 based on navigation and action commands received from the flight management system 202. In various embodiments provided, as explained herein, the autopilot 302 is also configured to control the UAV to perform a landing maneuver at a destination location. The landing maneuver may allow the UAV to drop a cable-slung payload (e.g., package) at the destination location. In various cases, the autopilot system 302 may execute a position controller algorithm which allows the autopilot to control the UAV to perform the landing maneuver. In at least some embodiments, the autopilot system 302 can also execute mathematical models, which model the quadrotor's unique dynamic and kinematic behavior. In particular, the output of the dynamic and kinematic models can be used to configure the position controller to execute the controlled landing maneuvers.
The autopilot system 302 is also configured to receive commands from the flight management system 202 (operating on the computing device 208) via the network 206, using communications interface 306. In other cases, the autopilot system 302 may be configured to transmit information to the flight management system 202 in respect of the operation of the autopilot 302 and/or the on-board computer 304.
On-board computer 304 is configured to provide a platform for implementing high-level controls and algorithms. In particular, in embodiments provided herein, the on-board computer 304 may be configured to run a Pure Proportion Navigational (PPN) guidance law algorithm which generates position and velocity commands for effecting an autonomous landing maneuver for the UAV. The position and velocity commands generated by the PPN guidance law may be transmitted from the on-board computer 304 to the autopilot system 302. The autopilot system 302 may then execute a position controller algorithm, using the position and velocity commands, to effect the controlled landing maneuver. In at least some embodiments, the UAV 102 may not include an on-board computer 304, and the PPN guidance law algorithm may be directly implemented on the autopilot system 302. In still other embodiments, the on-board computer 304 may execute each of the PPN guidance law, the position controller algorithm and the dynamic and kinematic models for the quadrotor.
Communications interface 306 may be configured to send and receive data. Communications interface 306 may, for example, comprise a wireless transmitter or transceiver and antenna (e.g., Radio Control (R/C) transmitter or transceiver). In some embodiments, the communications interface 306 may receive information and data from flight management system 202. In other cases, the communications interface 306 can transmit instructions and/or data to flight management system 202. Accordingly, communications interface 306 can be configured to provide duplex communication.
Sensors 308 may be on-board sensors which are configured to measure various parameters. By way of non-limiting examples, sensors 308 may include temperature sensors, current sensors, altitude sensors, GPS devices, barometers, and/or Inertial Measurement Units (IMUs). In some cases, data generated by sensors 308 may be transmitted to the telemetry device 310, or otherwise, to the autopilot system 302 or on-board computer 304.
Telemetry device 310 can couple to one or more sensors 308 to collect and monitor various parameter information for the UAV 102. Sensor data collected by telemetry device 310 may be transmitted, via communications interface 306, to the flight management system 202 to allow the flight management system to monitor changes in UAV system parameters (e.g., position and location), and to the autopilot 302.
Rotary servomotors 312 may be one or more motors which are configured to drive rotary blades for driving the UAV to take-off, cruise and land. The UAV 102 may include any number of rotary servomotors 312. For instance, in at least some embodiments, the UAV 102 may be a quadrotor UAV and may include four servomotors 312 for driving four separate rotary blades. In at least some embodiments, each servomotor 312 may be provided with a separate electronic speed controller (EDC) to control the motor speed based on an input signal received from autopilot system 302.
Payload release servomotor 314 may be a servomotor which is configured to actuate (e.g., activate) an attachment release mechanism (e.g., a hook) which releases a tethered load coupled to the UAV 102. The servomotor 314 may be driven by commands received from the autopilot system 302 upon arriving at a drop-off destination. In some cases, the servomotor is actuated by a set of Pulse Width Modulated (PWM) commands generated by autopilot system 302.
Power module 316 is configured to provide power to the various components of the UAV 102. The power module 316 may be, for example, an avionics battery capable of supplying power to the UAV 102 for a determined period of time. In some cases, the power module 316 may include one or more power regulation devices which can regulate the amount of voltage or current delivered from an avionics battery to various components of the UAV 102.
Referring now to
As shown, the autopilot 302 may include a processor 302a in communication with a memory 302b and an input/output module 302c.
Processor 302a may be a computer processor, such as a general purpose microprocessor. In some other cases, processor 302a may be a field programmable gate array, application specific integrated circuit, microcontroller, or other suitable computer processor.
Processor 302a is coupled to memory 302b. Memory 302b may include both volatile and non-volatile memory. Non-volatile memory stores computer programs consisting of computer-executable instructions, which may be loaded into volatile memory for execution by processor 302a as needed. It will be understood by those of skill in the art that references herein to the autopilot 302 as carrying out a function or acting in a particular way imply that processor 302a is executing instructions (e.g., a software program) stored in memory 302b and possibly transmitting or receiving inputs and outputs via one or more interface. Memory 302b may also store data input to, or output from, processor 302a in the course of executing the computer-executable instructions. In various cases, as explained herein, the memory 302b may store a stabilized position controller algorithm (e.g., a Proportional-Integral-Derivative (PID) controller algorithm) which is used by autopilot system 302 to control the position trajectory of the UAV 102. The memory 302b may also store mathematical models for the quadrotor UAV's dynamic and kinematic behavior.
The input/output module 302c may be configured to send and receive data to and from the UAV on-board computer 304, as well as other components of the UAV 102.
Referring now to
Processor 304a may also be in communication with an input/output module 304c and a user interface 304d (e.g., a display or other device for receiving user inputs).
While the autopilot 302 and on-board computer 304 have been exemplified herein as separate hardware components, it will be appreciated that, in other cases, the autopilot 302 and on-board computer 304 may be integrated into a single hardware system. For example, a single processor can be used for performing the combined functions of the autopilot and on-board computer.
Referring now to
As shown, the example quadrotor UAV 102 shown in
The autopilot system 302 is coupled to four different rotary servomotors 312a, which drive rotary blades 318. In at least some example cases, the servomotors 312a can be configured as brushless motors. An electronic speed controller (ESC) 312b is coupled between the autopilot 302 and the brushless motors 312a to control the motors 312a in accordance with digital input signals received from autopilot 302.
The autopilot system 302 may be also connected to the payload release servomotor 314, as well as the communications interface or receiver 306, and the telemetry device 310.
The power module 316 for the UAV 102 includes a lithium polymer (LiPO) battery 316a, a power regulator 316b and battery eliminator circuits (BECs) 316c, 316d. The LiPO battery 316a provides power to various systems of the UAV 102. The current from the battery 316a is divided between the power regulator 316b and the BECs 316c, 316d. The power regulator 316b provides electricity to the ESCs 312b and also regulates voltage power to the autopilot 302. The BEC 316c is used to regulate voltage supply to the on-board computer 304 to avoid shut down during flight, while the BEC 316d is used to provide sufficient power to the servomotor 314 which operates the payload release mechanism.
Referring now to
As shown, at 400a, a modified PPN guidance law algorithm 402 is executed to generate incremental position commands along the X, Y and Z co-ordinate axes (e.g., xcmd, ycmd, zcmd), as well as incremental velocity commands along the three co-ordinate axes (e.g., {dot over (x)}cmd, {dot over (y)}cmd, żcmd). It will be understood that the algorithm 402 may just generate incremental velocity commands along the three co-ordinate axes (e.g., {dot over (x)}cmd, {dot over (y)}cmd, żcmd), and any required position command may be determined as an integral of the velocity command. As detailed below, this can be determined in the discrete time domain.
The incremental velocity commands, generated by the guidance law 402, drive the quadrotor velocity to zero as the quadrotor approaches a landing target. This, in turn, allows the quadrotor to effect a smooth landing. As explained herein, an iterative method is used to incrementally vary the velocity command based on the current position of the UAV (e.g., [x, y, z]T) relative to the landing position. More specifically, at a given instance in time, the PPN law 402 compares the current position of the UAV to the desired landing position. The PPN law 402 then determines the position error between the current and desired landing position. Based on the position error, the PPN law 402 may generate an incremental velocity command, as explained in further detail herein. The velocity command is executed by the UAV for an increment of time (Δt). Once the increment of time (Δt) has lapsed, the PPN law 402 re-evaluates the position of the UAV using an updated UAV co-ordinate position (e.g., [x, y, z]T) received through a feedback loop. In iterative fashion, the PPN law 402 determines an “updated position error” based on the updated UAV co-ordinate position, and determines an updated velocity command based on the updated position. The updated velocity command is again executed for a pre-determined increment of time (Δt). The method is then continuously re-iterated using updated positions for the UAV, which are generated at time increments (Δt). As the UAV approaches the landing target (e.g., the position error decreases), the incremental velocity commands gradually decrease to zero to allow the UAV to effect a smooth landing. The method re-iterates until the position error is zero, and the velocity of the UAV is driven to zero. As explained in further detail herein, the PPN guidance law 402 is also able to generate incremental position commands for the UAV based on the incremental velocity commands. The incremental position commands allow the autopilot 302 to guide the UAV to the landing target.
In various cases, the co-ordinates for the landing target location are received from the flight management system 202, or otherwise, pre-stored in memory 302b of autopilot 302. In general, as used herein, the X, Y and Z co-ordinate axes are defined with respect to a North-East-Down (NED) reference frame (), which is assumed to be an inertial reference frame that is fixed to a flat and non-rotating earth (i.e., a fixed inertial frame), and having an origin located at a desired point on the ground.
At 400b, the position and velocity commands generated by the guidance law at 400a are fed into a stabilized position controller. As used herein, the term “position controller” broadly refers to any closed-loop mechanism employing feedback which is able to stably implement velocity and position commands received from the PPN law 402. As shown, the position controller may include an X-Y position controller 404 and an attitude controller 406, which receive the X and Y position commands (xcmd, ycmd) and velocity commands ({dot over (x)}cmd, {dot over (y)}cmd) and an altitude controller 408, which receives the Z position command (zcmd) and velocity command (żcmd). In at least some embodiments, the position controller 400b may be configured as a Proportional-Integral-Derivative (PID) controller.
As shown at 400b, the X-Y position controller 404 receives the X and Y velocity and position commands ({dot over (x)}cmd, xcmd, {dot over (y)}cmd, ycmd), from the PPN guidance law 402, and generates corresponding desired or commanded Euler angles (θd, Ød, Ψd) corresponding to pitch, roll and yaw directions, which direct orientation of the UAV in accordance with the X and Y position and velocity commands. It will be appreciated that, in the context of a quadrotor UAV, “pitch” refers to tilting the UAV about the Y-axis, “yaw” refers to clock-wise and anti-clockwise rotation about the Z-axis, and “roll” refers to rotation about the X-axis. The Euler angles generated by the controller 404 are fed into the attitude controller 408, which converts the angles into corresponding actuation torques [τφ, τØ, τΨ] (i.e., torques required to rotate the UAV in accordance with the required or commanded pitch, roll and yaw angles). The actuation torques are then fed into a control mixer 410. Similarly, the Z velocity and position commands (żcmd, zcmd) are fed into the altitude controller 408 to generate the thrust (e.g., throttle) parameter [“T”]), which is used to vary the vertical position of the UAV. The thrust parameter is also fed into the control mixer 410. Based on the inputs from the attitude controller 406 and altitude controller 408, the control mixer 410 is configured to generate rotational speed values (σ) for each of the four propellers of the quadrotor UAV (e.g., [σ1, σ2, σ3, σ4]), which can be used to control the UAV rotary servomotors 312. The rotational speed values (σ), generated by the control mixer 410, are transmitted to the autopilot system 302 to control the propeller speeds. It will be appreciated that by varying the speeds of each of the four propellers at different rates—the commanded velocities along the three co-ordinate axes (e.g.,
At 400c, the outputs of the position controller (e.g., the rotational speed values) are also fed into a mathematical model of the quadrotor plant. The quadrotor plant includes a quadrotor dynamics module 412 and a quadrotor kinematic module 414. The quadrotor dynamics module 412 comprises a mathematical modelling of the quadrotor's dynamic behavior. The dynamics module 412 receives the rotational speed values (σ) generated by the control mixer 410, and determines the resulting change in rotational motion of the UAV (e.g., as a result of the rotational speeds). In particular, the dynamic module 412 determines the roll rate (p), pitch rate (q) and yaw rate (r) (i.e., [p, q, r]T) of the UAV body, as a result of the effecting the rotational propeller speeds ([σ1, σ2, σ3, σ4]). The roll rate (p), pitch rate (q) and yaw rate (r) may be defined as the rate of change in the UAV's angular position in the roll, pitch and yaw directions, respectively, with respect to a body-fixed frame (e.g., a frame defined relative to the UAV body). This may be contrasted to [{dot over (Ø)}, {dot over (θ)}, {dot over (Ψ)}]T, which expresses the rate of change in the UAV's angular position in a fixed inertial frame (e.g., a frame defined relative to a desired point on ground). In various cases, [p, q, r]T=Tmatrix*[{dot over (Ø)}, {dot over (θ)}, {dot over (Ψ)}]T, wherein TMatrix is a transform matrix which relates the UAV's rate of change, in angular position, in the fixed inertial frame [{dot over (Ø)}, {dot over (θ)}, {dot over (Ψ)}]T to the body-fixed frame [p, q, r]T. The dynamics module 412 also determines the resulting change in “translation motion” of the UAV, also resulting from the propeller speeds. More specifically, the dynamics module 412 determines the rate of change in the UAV's velocity (e.g., acceleration) in the body-fixed frame along the X-axis ({dot over (u)}), Y-axis ({dot over (v)}) and Z-axis (vii) (i.e., [{dot over (u)}, {dot over (v)}, {dot over (w)}]T)). In particular, the UAV velocity in the X, Y and Z directions ([u, v, w]T) is defined as the rate of change in the UAV's position, in the X, Y and Z directions in the body-fixed frame. This is in contrast to [{dot over (x)}, {dot over (y)}, ż]T, which expresses the UAV's velocity using a fixed inertial frame. In various cases, the UAV's velocity in the fixed inertial frame can be related to the UAV's velocity in the body-fixed frame using a transform matrix. The parameters generated by the dynamic module 412 are then fed into the quadrotor kinematics module 414. The quadrotor kinematics module 414 includes kinematic modelling equations for the quadrotor UAV. The kinematic module 414 receives the rotational motion parameters (i.e., [p, q, r]T) and the translational motion parameters (i.e., [{dot over (u)}, {dot over (v)}, {dot over (w)}]T) and based on these parameters, determines, for the discrete increment of time (Δt) an updated co-ordinate position for the UAV in the fixed inertial frame (i.e., [x, y, z]T) and an updated rotational for the UAV (i.e., [θ, Ø, Ψ]T) (e.g., the co-ordinate and rotational positions which result from the rotational and translational motion parameters). The position co-ordinates are fed back to the modified PPN law 402 to allow the PPN law to re-evaluate the current position of the UAV, and to generate new position and velocity commands. In various cases, the X, Y ([x, y]) position co-ordinates may be also fed back into the X-Y position controller 404, to allow the controller to stabilize and control the position of the UAV in the X and Y directions. The kinematics module 414 can also generate an instantaneous velocity of the UAV in the Z-direction (ż), which can be fed back to the altitude controller 408, along with the Z co-ordinate positon (z), to also allow the altitude controller 408 to stabilize the Z-position of the UAV. In still further cases, the kinematic module 414 can generate rotational velocities in the roll, pitch and yaw directions ([{dot over (θ)}, {dot over (Ø)}, {dot over (Ψ)}]), which are fed back to the altitude controller 408, along with the updated rotational position [θ, Ø, Ψ]T. In particular, these values may allow the altitude controller to stabilize the rotational motion of the UAV. Additionally, the kinematic module 414 may generate and supply velocity values for the ([x, y]) directions.
As explained herein, the use of a modified PPN guidance law algorithm 402 in conjunction with a position controller, as shown in
Referring now to
In particular, the classical 2-D PPN guidance law is used to guide a moving object towards a moving or stationary target. As shown, the classical definition assumes that the velocity of both the UAV 502 (vu) and the landing target 504 (vt) are constant. If the landing location is assumed to be stationary, then the velocity of the landing target is set zero (vt=0). The line of sight angle between the UAV and the target location can be defined as the variable (Θ), while the heading angle of the UAV can be denoted as (ψu) and the heading angle of the target denoted as (ψt). The distance between the UAV 502 and landing target 504 is referred to as the range (R). The acceleration of the UAV (au) and target (at) act perpendicularly to the velocities. Based on this framework, the kinematic motion equations can be expressed in accordance with Equations (1) and (2):
wherein {dot over (R)} is the rate of change of the range (R) as the UAV 502 approaches the landing target 504, and 6 is the rate of change of the line of sight (LOS) angle between the UAV 502 and the target 504. The classical PPN guidance law can then be expressed in accordance with Equations (3) and (4):
wherein au is the command acceleration of the UAV 502 approaching the landing target 504, and N is a proportional constant. The command acceleration then requires a single integration to generate a velocity command for the UAV, and a double integration to generate a position command. The position and velocity commands may then be fed into the position controller 400b in
Although this classic definition has been applied to a variety of applications, it is not ideally suited for autonomous UAV landing missions. The classical PPN law assumes that the UAV is traveling at a constant velocity throughout the mission, including at point of impact. The change of acceleration is generated by changes to the line of sight (LOS) angle between the UAV 502 and the target 504, which allow the UAV 502 to be maneuvered to the target landing position 504. However, to avoid crash landings, the velocity of the UAV should be controlled and reduced as the UAV 502 approaches target 504. Accordingly, an additional guidance law is required to drive the velocity to zero as the UAV approaches target, so as to effect a gentle touchdown.
Referring now to
The modified PPN guidance law definition 500b is based on the classic PPN law 500a of
As shown in
In expresses the UAV “Body-Fixed” reference frame whose origin is located at the center of mass of the quadrotor. In particular, the Body-Fixed reference frame (
) rotates with the quadrotor UAV and is represented by
=(bx, by, bz)T.
expresses the inertial reference frame denoted by
=(ix, iy, iz)T, and
is the quadrotor's position in the inertial frame (
).
As stated previously, the modified PPN guidance law assumes that as the UAV 502 approaches target landing location 504, the incremental command velocity for the UAV approaches zero, as expressed in Equation (5):
(x,y,z)→(xt,yt,zt); Then({dot over (x)},{dot over (y)},ż)cmd→0 (5)
wherein {dot over (x)}, {dot over (y)}, ż define the velocity of the UAV 502 in the x, y and z co-ordinate axes, respectively, and ({dot over (x)}, {dot over (y)}, ż)cmd is the incremental command velocity, generated for a time increment (Δt), for incrementally controlling the UAV velocity in each axes during the landing maneuver. As explained herein, the command velocities can be converted into position commands, which can be fed along with the velocity commands into a position controller implemented on the autopilot system 302 in order to control landing of the UAV (e.g., act 400a in
The incremental command velocities for the UAV along each axis, in a time increment (Δt), can be further expressed in accordance with Equations (6)-(8):
{dot over (x)}
cmd
=k
x(xt−x) (6)
{dot over (y)}
cmd
=k
y(yt−y) (7)
ż
cmd
=k
z(zt−z) (8)
wherein kx, ky, kz are pre-selected gain variables. In some cases, the gain variables in the x and y axis can be the same. If low gain values are selected for kx, ky, kz, the command velocities remain low enough to where the position controller is able to adequately track the desired trajectory smoothly and accurately.
The incremental position commands, along each axis, can be determined using the integral of the incremental velocity commands, as expressed in Equation (9)-(11):
x
cmd
=∫{dot over (x)}
cmd
·dt (9)
z
cmd
=∫{dot over (y)}
cmd
·dt (10)
z
cmd
=∫ż
cmd
·dt (11)
To allow for generic code-based implementation on the autopilot 302, the position command is implemented in a discrete time domain, rather than the continuous time domain. Accordingly, in discrete time using a first-order Euler integration, the position commands in Equations (9)-(11) can be re-expressed according to Equation (12)-(14):
x
cmd,t
=x
cmd,t-1
+{dot over (x)}
cmd
Δt (12)
y
cmd,t
=y
cmd,t-1
+{dot over (y)}
cmd
Δt (13)
z
cmd,t
=z
cmd,t-1
+ż
cmd
Δt (14)
wherein xcmd,t-1, ycmd,t-1 and zcmd,t-1 are position commands generated in a previous time-increment (Δt).
The velocity and position commands generated by the modified PPN guidance law may then be provided to a position controller operating on the autopilot system 302.
Referring now to
In particular, while the modified PPN guidance law in
As shown in
In order for the payload 508 to reach its target landing destination, the UAV 502 should be commanded to reach the virtual target point (xt,yt, zt)′ positioned directly above the payload target location 504 (xt,yt, zt). The virtual target position 506 may be accordingly expressed in accordance with Equations (15)-(17):
x
t
′=x
t (15)
y
t
′=y
t (16)
z
t
′=z
t
+L (17)
The velocity commands in Equations (6)-(8) may be re-expressed in accordance with Equations (20)-(22) to reflect the virtual target destination point (xt, yt, zt)′ for the UAV:
{dot over (x)}
cmd
=k
x(xt′−x) (20)
{dot over (y)}
cmd
=k
y(yt′−y) (21)
ż
cmd
=k
z(zt′−z) (22)
The discrete position commands in Equations (12)-(14) may then be determined by integrating the revised velocity commands in Equations (20)-(22).
Equations (15)-(17), however, assume that the payload 508 has no swinging motion. Although there are two single angles (along the X and Y axes), the variable (9) can be used to represent the magnitude of the swing angle in relation to the “Z”-axis (i.e., with components along the X and Y axes). Using simple trigonometric functions, the relations for the positional offset in the Z and X-Y positions caused by a given swing angle can be obtained in accordance with Equations (23) and (24):
Δz=L−L cos(θ) (23)
Δxy=L sin(θ) (24)
wherein Δz represents the error between the desired and target co-ordinate ‘Z’ position for the payload 508, and Δxy represents the error in the X-Y plane. Table 1, below, demonstrates the effect of swing angle on payload position accuracy, in accordance with Equations (23) and (24):
As shown in Table 1, the X-Y position accuracy is affected most by the swing angle. As well, for small swing angles, the X-Y position accuracy is high. For example, if the tether length is 1 meter, the error in the Z-position is less than 5 cm. Accordingly, it can be determined that for small swing angles, landing of the payload is relatively unaffected with small inaccuracy in the X-Y landing position. Therefore, during the landing phase, it is desirable to maintain a small swing angle to preserve landing accuracy. In various cases, Equations (23)-(24) can be incorporated into a position controller 400b to limit the extent of motion of the UAV which would result in large swing angles in the payload.
While embodiments herein describe the velocity commands as being linear functions of the determined distance between the current position of the UAV and a target landing position (or a virtual landing position), as expressed in Equations (6)-(8) and (20)-(22), it will be appreciated that, in other embodiments, the velocity command may be generated using any appropriate function, insofar as the condition expressed in Equation (5) is met (i.e., Equation (5) expresses the modified PPN guidance law principle). In other words, as the UAV approaches the target landing position (or virtual landing position), the incremental command velocity for the UAV should be made to approach zero, irrespective of how the incremental velocity command is determined.
In
The position response for the quadrotor UAV was approximated to either a first or second order system equation.
As shown in
In each case, the gain block 602 is generally expressed according to the Laplacian transfer function shown in Equation (25):
wherein k represents the gain parameter.
Further, the low-pass filter is generally expressed according to the Laplacian transfer function shown in Equation (26):
wherein τ represents a time-constant.
The combination of Equation (25) and (26), in closed-loop form, result in a second-order transfer function, expressed in Equation (27), which provides the linearized model of the behavior of the PPN guidance law 400a and the position control 400b:
The appropriate gain (k) and time-constant (τ) values, which achieve a stabilized system, in each of the closed-loop systems in
Accordingly, with reference to Equation (27), in this example case, the value of the time constant (τz) in Equation (28) was determined to be 0.65. In order to resolve the gain value (kz), the characteristic equation for the closed-loop system in Equation (28) is re-expressed according to the second-order equation in Equation (29):
0.65s2+s+kz=0 (29)
The stability of the system in Equation (29) is then analyzed using a Routh stability criterion to determine the appropriate gain value (kz). The array of coefficients for the Routh stability criterion is constructed in Table 2:
Accordingly, Table 2 indicates that the margin of stability for the system must be such that kz>0. In other words, any positive gain value may result in a stable system. However, this alone does not provide sufficient indication as to the performance of the system. As the closed loop system is second order, the system is compared against a characteristic, or standardized second order system equation, as expressed in Equation (30):
s
2+2ζωn+ωn2=0 (30)
wherein ζ is the damping ratio and ωn is the system's natural frequency.
In order to minimize overshoot in the Z-axis, which would imply ground contact, it is desirable to have the system be critically damped (e.g., ζ=1). Based on this assumption, a gain value of kz=0.385 is determined. Accordingly, for landing, it is desirable to keep the gain between the bounds of 0.385>kz>0.
Accordingly, the value of the time constant (τx) was determined to be 0.95. The characteristic equation for the closed-loop system in Equation (31) is re-expressed according to the second-order equation in Equation (32):
0.95s2+s+kx=0 (32)
The stability of the system in Equation (32) is analyzed using a Routh stability criterion to determine an appropriate gain value (kx). The array of coefficients for the Routh stability criterion is constructed in Table 3:
Similar to Table 2, Table 3 indicates a stability margin where the gain must be greater than zero (i.e., kx>0). With reference to Equation (30), if no overshoot is desired, a gain can be chosen in a range between 0.263>kx>0. In contrast to the Z axis, where overshoot would result in collision with ground, in the X and Y axis, some overshoot may be acceptable. Accordingly, the gain value may be selected to be slightly larger than kx=0.263.
Referring now to
The simulated landing maneuvers, in
Referring now to
In a vertical landing descent, the UAV is assumed to be hovering initially directly above the desired landing target, prior to touching down. In this example simulation, the hover height is set at 4 meters above target. Plot 700a compares a case where the simulated position controller is not guided by a PPN guidance law, and a case where the position controller (e.g., a PID position controller) is guided by a modified PPN guidance law, as expressed in equations (5)-(14) for three different gain values (e.g., kz=0.1, 0.2 and 0.3). Plot 700a also illustrates the “command step input”, which directs the UAV to vertically land.
As shown, while each simulation drives the UAV quadrotor to land, the step input for the unguided controller results in a profile where the quadrotor drops from the sky and crash-lands. Further, for the unguided controller, the UAV re-curves around the 10 second mark, and shows a small oscillation before eventually completing landing. On the other hand, for the PPN guided controllers, the landing maneuver is more docile and smooth. Accordingly, plot 700a demonstrates the improved performance of the modified PPN guided position controller, at least for a simulated vertical descent landing.
Referring now to
As shown, the step-input for the unguided position controller again results in a sharp velocity profile (e.g., high acceleration), which is not otherwise observed when using the PPN guided position controller. In particular, using the modified PPN laws, the velocity profile is more controlled, and the maximum velocity is maintained at less than one-third of that of the unguided controller. Further, at a gain of kz=0.3, the quadrotor is brought to rest on the ground quicker than the unguided controller, despite the lower acceleration and velocity. Accordingly, choosing a gain between kz=0.2-0.3 provides enhanced results for the landing maneuver.
Referring now to
In contrast to a vertical descent, a translational descent represents a case where the landing maneuver is initiated once the UAV quadrotor is within the vicinity of the landing target, rather than being located directly over the landing target. For example, this may occur where the UAV is not required to descend vertically over the final target location (e.g., landing in an open field). Generally, translational landing maneuvers save time during a transport mission, as the UAV may follow a shorter path to reach the final landing target. In the example simulations plotted in
As shown, the unguided controller demonstrates fast reaction to the step-input command, but introduces some oscillation and overshoot in the “X” and “Y” axes. In each case, there is relatively small error in the “X” and “Y” position of the simulated quadrotor UAV, however, all cases arrive within close proximity to the desired target.
Referring now to
As shown, a large spike may be observed for the unguided controller velocity, which indicates an aggressive landing maneuver with high acceleration. In contrast, the PPN velocities are less than one-third of the unguided controller velocity, and provide a smooth landing trajectory that is ideal for UAVs carrying payloads. In particular, the PPN guided PID controllers provide a smooth landing with a near identical landing time as the PID controller when the PPN law uses a gain of k=0.3. The noisy velocity behavior in each of the PPN guidance cases results from the vehicle contacting ground. In various cases, the noisy velocity behavior can be prevent by immediately disarming the quadrotor at landing (e.g., either manually or automatically through detection of the landing state).
Accordingly, and in view of the simulation results of
Referring now to
Referring first to
As shown, the ground contact for the UAV quadrotor using an un-guided controller results in the same positive velocity with oscillations (e.g., rebounding response) as observed in
In view of the foregoing,
Referring now to
As shown in
As shown in
As shown, in each of plots 1000h and 1000i, there are observable differences between the flight path using the unguided and PPN guided landings. In particular, the PPN guided landing follows a more direct path, near to a straight line between the start and end locations. In contrast, for the unguided case, the UAV “drops” from the air initially, which results in some oscillatory behavior throughout the flight. For the unguided case, there is a hard touchdown and rebound before the unguided controller reaches the target location. Further, there are observable differences with respect to the behavior in the approach angle to the final target. For example, the PPN guided UAV follows a path that is the shortest distance between the goal and the target, which is not observed in the unguided path. Accordingly, the unguided path may present problems in a practical application where there are tall objects on the ground (e.g., trees of building structures). In particular, by allowing the altitude to drop initially in the unguided case, the UAV is completing the rest of its translation maneuver at a lower altitude, where it is more likely to collide with an object.
Referring now to
Referring first to
In particular, plot 1100 compares the “Z” co-ordinate position of the cable-slung payload using an unguided position controller in the quadrotor UAV, and a case where a PPN guided position controller is used having a gain of k=0.3. In this case, the UAV position controller is guided by the modified guidance law developed in Equations (20)-(22). Plot 1100 is generated using a payload having a mass of approximately 500 g and a tether length of approximately 1 meter. The payload mass is approximately half of the mass of the experimental UAV quadrotor, and is considered a heavy payload for the UAV. In particular, a heavy payload is more likely to cause the system to destabilize as any payload swing will have a greater effect the UAV motion due to the larger reaction forces generated through the tether. Plot 1100 also assumes an initial vertical height of the UAV of 2 meters above ground. Due to an offset in the centroids in the UAV and payload, a 1 meter tether length results in an offset between the UAV and the payload of approximately 1.15 meters. Accordingly, when the UAV is at 2 meters, the payload begins at a height of approximately 0.85 meters.
As shown in
Referring now to
Similar to plot 1100 of
As shown, the PPN guided controller achieves equal or better final accuracy in the “X” and “Y” axes as compared to the unguided controller. In addition, the PPN law slows the payload down in the “Z” axis and achieves a soft touchdown. In contrast, the unguided controller drops the payload on the ground and does not achieve a soft touchdown. During the unguided controller test, touchdown occurs before the payload has reached the final goal location.
As shown in each of
As shown in these figures, the unguided landing generates a large swing angle relative to the modified PPN guided landing. In particular, this results from the large initial acceleration of the quadrotor during the unguided landing, which induces the initial swing angle. The swing angle in the unguided case reaches close to 14 degrees, whereas the PPN guided landing maintains the swing angle below 4 degrees. By keeping the swing angle low, the dynamics of the UAV are less disturbed by the payload motion. This, in turn, helps in maintaining an accurate landing. Plots 1200h and 1200i also note the points at which the payload came into contact with the ground, as these are the point where the free-swinging motion of the payload is stopped.
Accordingly, and in view of
The present invention has been described here by way of example only, while numerous specific details are set forth herein in order to provide a thorough understanding of the exemplary embodiments described herein. However, it will be understood by those of ordinary skill in the art these embodiments may, in some cases, be practiced without these specific details. In other instances, well-known methods, procedures and components have not been described in detail so as not to obscure the description of the embodiments. Various modifications and variations may be made to these exemplary embodiments without departing from the spirit and scope of the invention, which is limited only by the appended claims.