Autonomously guiding vehicles through orifices

Information

  • Patent Grant
  • 10569876
  • Patent Number
    10,569,876
  • Date Filed
    Monday, March 19, 2018
    6 years ago
  • Date Issued
    Tuesday, February 25, 2020
    4 years ago
  • Inventors
    • Chakravarthy; Animesh (Wichita, KS, US)
    • Ghose; Debasish
  • Original Assignees
  • Examiners
    • Troost; Aaron L
    Agents
    • Stinson LLP
Abstract
This document generally describes a safe-passage guidance strategy developed in a relative velocity framework to enable a generic aerial robot execute a precision three-dimensional maneuver through a narrow orifice in a wall. The relative sizes of the robot and the orifice can be such that the orifice is only slightly larger than the robot. The orifice can be approximated as an elliptical shape, and analytical nonlinear guidance laws incorporating state-based switching can be derived. Guidance laws can be used to maneuver the robot through both fixed and moving orifices as well as in scenarios when the orifice is closing with time.
Description
TECHNICAL FIELD

This specification generally describes techniques for controlling a robotic vehicle to execute a precise three-dimensional (3-D) maneuver through an opening.


BACKGROUND

A flying robot often encounters scenarios requiring it to fly through a window on a wall or a narrow orifice, while ensuring that it does not collide with the surrounding edges. This is particularly difficult when the relative sizes of the robot and the window/orifice are such that the window/orifice is just barely large enough for the robot to fly through. In such scenarios, the maneuver through the orifice needs to be one of high precision, and the shapes of the robot and the orifice play an important role.


The problem of an autonomous robot going through an orifice, although of great practical importance, has received somewhat limited attention in the literature. In one approach, the authors address the problem of flying a quadrotor through a window by defining a goal point in the window, treating that goal point as a terminal condition to be achieved by the quadrotor and then numerically integrating the dynamic equations of the quadrotor backward in time to determine a reference trajectory for the quadrotor in a high dimensional space. A controller that ensures that the quadrotor tracks this reference trajectory is then designed. With this approach, every time the goal point/window moves or is subjected to a disturbance, the differential equations governing the quadrotor dynamics have to be numerically integrated afresh to compute an updated reference trajectory. Another approach involves the formulation of an optimization problem that incorporates the physical dimensions of the opening as constraints and then determines optimal trajectories for the quadrotor through this opening. Experimental results of the quadrotor flying through a hoop are presented. As the window moves, the constraints change, and the optimization problem needs to be solved afresh. Researchers have also developed a Linear Quadratic Gaussian (LQG)-obstacle technique and used this technique to demonstrate simulations of a quadrotor flying through a window. A related problem is that of a snake robot going through an elevated passage in a wall. However, all these documents rely on numerically generating the robot trajectory through the passage. This is where the current document differs from the existing literature.


SUMMARY

This specification describes techniques for controlling a robotic vehicle to execute a precise three-dimensional (3-D) maneuver through an opening. This specification explains that the robotic vehicle can be controlled through an opening by applying a control feedback loop consisting of identifying the vehicle's velocity vector and orientation relative to the opening; determining, through the application of analytical guidance laws described herein, an acceleration vector that will direct the vehicle through the opening based on the relative velocity vector of the vehicle and the orientation of the vehicle; and controlling the vehicle through the opening according to the calculated acceleration vector.


In some implementations, a method of autonomously controlling a vehicle through an opening includes identifying, by a local controller onboard the vehicle, the opening and its position relative to the vehicle and repeatedly applying, by the local controller onboard the vehicle, a control feedback loop defining a guidance law to guide the vehicle through the opening, the control feedback loop iteratively evaluating and adjusting movement of the vehicle relative to the opening until the vehicle has passed through the opening. Each iteration of the control feedback loop can include identifying, using one or more local sensors onboard the vehicle, (i) a relative velocity vector of the vehicle with regard to the opening and (ii) an orientation for the vehicle; determining, by the local controller, an acceleration vector that will direct the vehicle through the opening based on the relative velocity vector of the vehicle and the orientation of the vehicle, and controlling, by the local controller, one or more kinematic devices that are part of the vehicle according to the determined acceleration for the vehicle.


Such implementations can optionally include one or more of the following features. The local controller can be programmed to guide the vehicle along a predetermined path so that the vehicle passes through the opening. The acceleration vector can be determined so that the magnitude of the velocity vector of the vehicle is kept constant while the vehicle travels along the predetermined path. At least a portion of the predetermined path can have a curvature. The acceleration vector can be determined using one or more of the following equations: aAB=−KŷA/gA; {circumflex over (V)}AB=cos α cos βî+cos α sin βĵ+sin α{circumflex over (k)}; and {circumflex over (α)}AB=cos γ cos δî+cos γ sin δĵ+sin γ{circumflex over (k)}, where aAB defines the acceleration vector, and {circumflex over (V)}AB and {circumflex over (α)}AB define unit vectors of the acceleration vector. The vehicle can be an autonomous aerial vehicle. The autonomous aerial vehicle can be controlled in three-dimensional space through the opening. The one or more kinematic devices can include one or more of the following: elevator control device, aileron control device, rudder control device, and rotor thrust control device. The opening can change position during application of the control feedback loop. Each iteration of the control feedback loop can further include identifying, by the controller, the current position of the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current position of the opening. The opening can change size during application of the control feedback loop. Each iteration of the control feedback loop can further include identifying, by the controller, the current size of the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current size of the opening.


In some implementations, a vehicle that is capable of autonomously moving through an opening includes one or more onboard environment sensors that provide environmental information related to the current environment of the vehicle, an onboard vehicle state sensor that provides information indicating a velocity vector of the vehicle and an orientation for the vehicle, one or more onboard kinematic devices that control the movement of the vehicle, and an onboard controller that is programmed to repeatedly apply a control feedback loop to guide the vehicle through an opening having a relative position provided by the one or more onboard environment sensors. The control feedback loop can iteratively evaluate and adjust movement of the vehicle relative to the opening until the vehicle has passed through the opening. Each iteration of the control feedback loop can include identifying, using the one or more state sensors onboard the vehicle, (i) a relative velocity vector of the vehicle with regard to the opening and (ii) an orientation for the vehicle; determining, by the local controller, an acceleration vector that will direct the vehicle through the opening based on the relative velocity vector of the vehicle and the orientation of the vehicle, and controlling, by the local controller, the one or more kinematic devices that are part of the vehicle according to the determined acceleration for the vehicle.


Such implementations can optionally include one or more of the following features. The local controller can be programmed to guide the vehicle along a predetermined path so that the vehicle passes through the opening. The acceleration vector can be determined so that the magnitude of the velocity vector of the vehicle is kept constant while the vehicle travels along the predetermined path. At least a portion of the predetermined path can have a curvature. The controller can be programmed to determine the acceleration vector using one or more of the following equations: aAB=−KŷA/gA; {circumflex over (V)}AB=cos α cos βî+cos α sin βĵ+sin α{circumflex over (k)}; and {circumflex over (α)}AB=cos γ cos δî+cos γ sin δĵ+sin γ{circumflex over (k)}, where aAB defines the acceleration vector, and {circumflex over (V)}AB and {circumflex over (α)}AB define unit vectors of the acceleration vector. The vehicle can be an autonomous aerial vehicle. The controller can be programmed to control the vehicle in three-dimensional space through the opening. The one or more kinematic devices can include one or more of the following: elevator control device, aileron control device, rudder control device, and rotor thrust control device. The controller can be programmed to guide the vehicle through an opening that changes position during application of the control feedback loop. Tach iteration of the control feedback loop can further include identifying, by the controller, the current position of the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current position of the opening. The controller can be programmed to guide the vehicle through an opening that changes size during application of the control feedback loop. Each iteration of the control feedback loop can further include identifying, by the controller, the current position of the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current size of the opening.


In some implementations, a system for directing a vehicle through an opening includes one or more environment sensors that provide environmental information related to the current environment of the vehicle, a vehicle state sensor that provides information indicating a velocity vector of the vehicle and an orientation for the vehicle, one or more onboard kinematic devices that control the movement of the vehicle, and a controller that is programmed to repeatedly apply a control feedback loop to guide the vehicle through an opening having a relative position provided by the one or more environment sensors. The control feedback loop can iteratively evaluate and adjust movement of the vehicle relative to the opening until the vehicle has passed through the opening. Each iteration of the control feedback loop can include identifying, using the one or more state sensors, (i) a relative velocity vector of the vehicle with regard to the opening and (ii) an orientation for the vehicle; determining, by the controller, an acceleration vector that will direct the vehicle through the opening based on the relative velocity vector of the vehicle and the orientation of the vehicle, and controlling, by the controller, the one or more kinematic devices that are part of the vehicle according to the determined acceleration for the vehicle.


Such implementations can optionally include one or more of the following features. One of the one or more environment sensors can be remote from the vehicle. The controller can be remote from the vehicle. The controller can be local to the vehicle, and can be programmed to receive signals from a controller that is remote from the vehicle. The local controller can be programmed to switch between: controlling the one or more kinematic devices that are part of the vehicle according to the local controller's determined acceleration for the vehicle based on the application of the control feedback loop, and controlling the one or more kinematic devices that are part of the vehicle according to the signals received from the controller that is remote from the vehicle. The controller can be programmed to guide the vehicle along a predetermined path so that the vehicle passes through the opening. The acceleration vector can be determined so that the magnitude of the velocity vector of the vehicle is kept constant while the vehicle travels along the predetermined path. At least a portion of the predetermined path can have a curvature. The controller can be programmed to determine the acceleration vector using the following equations: aAB=−KŷA/gA; {circumflex over (V)}AB=cos α cos βî+cos α sin βĵ+sin α{circumflex over (k)}; and {circumflex over (α)}AB=cos γ cos δî+cos γ sin δĵ+sin γ{circumflex over (k)}, where aAB defines the acceleration vector, and {circumflex over (V)}AB and {circumflex over (α)}AB define unit vectors of the acceleration vector. The controller can be programmed to guide the vehicle through an opening that changes position during application of the control feedback loop. Each iteration of the control feedback loop can further include identifying, by the controller, the current position of the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current position of the opening. The controller can be programmed to guide the vehicle through an opening that changes size during application of the control feedback loop. Each iteration of the control feedback loop can further include identifying, by the controller, the current position of the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current size of the opening.


Certain implementations can provide one or more of the following advantages. First, the techniques described in this specification can be employed to enable a robot with ideal (double-integrator) dynamics to execute a precise three-dimensional (3-D) maneuver through an elliptical orifice in a wall. The guidance law incorporates continuous feedback from the window opening by use of appropriately defined relative velocity components, and because of this, even when the window moves and/or changes in size, no numerical integration is required. Numerical integration of differential equations can be time-consuming on aerial and underwater platforms that have limited computational resources. The fact that the designed guidance law is analytical in nature makes it easier to implement within the limited computational resources available onboard a robotic vehicle. The guidance law can be used to guide the robot through elliptical orifices that may be fixed, moving, and/or closing. Because the guidance law is developed using a general kinematics framework, it is applicable for use in a broad class of vehicles, which include quadrotors, fixed-wing micro air vehicles, and underwater robotic vehicles. A further advantage is that the guidance law does not require the vehicle to be brought to rest (or even have its speed changed) at any stage during the maneuver. This is a particularly important trait for fixed-wing micro air vehicles, which cannot hover and, in fact, always need to operate above a minimum speed. It is also an important trait for quadrotors because the lack of any requirement to bring the vehicle to rest enables shorter maneuver times through the orifice.


Additional and/or alternative advantages are also possible, as described below.





BRIEF DESCRIPTION OF THE ATTACHMENTS


FIG. 1 depicts an example vehicle being autonomously guided through an example opening.



FIG. 2 depicts example representations of the opening and the vehicle as ellipses that can be used to determine a trajectory to guide the vehicle through the opening.



FIGS. 3A-C depict example systems for guiding example vehicles through the opening.



FIG. 4 is a flowchart of an example technique for autonomously guiding a vehicle through an opening.



FIGS. 5A-B depict example representations of fitting ellipses to a variety of differently shaped openings.



FIGS. 6A-D depict examples of a vehicle represented by an ellipse being guided through an elliptical orifice.



FIG. 7 depicts the geometry of two point objects moving in 3D space.



FIG. 8 shows an example of a safe-passage geometry between a point and a spheroid.



FIG. 9 shows a partitioning of the 3-D physical space into several regions based on the signs of yA and VrA.



FIG. 10 includes graphs showing representations of a typical plot of yA as a function of αp and of typical plot of VrA as a function of αp.



FIGS. 11A-D, 12A-D, 13A-D, and 14A-D show geometries illustrating different scenarios of the relative velocity vector V being located on a planar section of the safe-passage cone XAX′.



FIGS. 15A-H show example appropriate qualitative trajectories of yA(t) to guide a vehicle through an opening.



FIG. 16 shows an example engagement geometry between a rod AB representing an imaginary line drawn on the front of the vehicle.



FIG. 17 depicts constant values of c that correspond to ellipses E′ (spheroids S′) confocal with original ellipse E (spheroid S).



FIG. 18 is an illustration of a guidance plane determination.



FIGS. 19A-C depict representation of ellipse with differing eccentricity and their corresponding spheroids.



FIGS. 20A-D depict state responses associated with point B on AB.



FIG. 21 depicts the difference of distances of point B to the two foci.



FIG. 22 shows the values of the output quantity ŷ=yB, along with yA.



FIGS. 23A-D depicts representations of example acceleration magnitude aAB of AB, speed of AB, azimuth angle β of velocity vector of AB, and elevation angle α of velocity vector AB.



FIG. 24 shows the trajectory of AB in (x, y, z) space as AB passes through elliptical orifice E.



FIGS. 25A-C show the time histories of the trajectory along the x, y, and z axes.



FIGS. 26A-B shows the time histories of the elevation and azimuth angles γ and δ, respectively, which define the direction of the acceleration vector aAB.



FIG. 27 shows example trajectories of AB and E in (x, y, z) space.



FIG. 28 shows the values of the output quantity ŷB, along with yA.



FIGS. 29A-D show the acceleration magnitude, the speed, the time history of β, and the time history of α.



FIGS. 30A-B shows the time histories of γ and δ, respectively.



FIG. 31 depicts miss time of point B to the ellipse E.



FIGS. 32A-B show representations of time history of the semimajor axis of an ellipse and the distance of B to the two foci.



FIG. 33 depicts an example 3D trajectory of AB as it passes through an example moving and closing ellipse E.



FIGS. 34A-C depict example representations of output responses, azimuth angle, and elevation angle.



FIGS. 35A-B are illustrations of singular cases.





Like reference numbers and designations in the various drawings indicate like elements.


DETAILED DESCRIPTION

This specification describes techniques, systems, devices, and apparatus for autonomously controlling a robotic vehicle to execute a precise three-dimensional (3-D) maneuver through an opening. Specifically, the robotic vehicle can be controlled through an opening by applying a control feedback loop consisting of identifying the vehicle's velocity vector and orientation relative to the opening; determining, through the application of analytical guidance laws described herein, an acceleration vector that will direct the vehicle through the opening based on the relative velocity vector of the vehicle and the orientation of the vehicle; and controlling the vehicle through the opening according to the calculated acceleration vector.



FIG. 1 depicts an example vehicle 100 being autonomously guided through an example opening 108. The example vehicle 100 that is depicted is a fixed-wing aircraft, such as an unmanned fixed-wing aircraft that can operate autonomously (without substantial human operator direct) and/or semi-autonomously (capable of operating with human operator control during some periods of time and under autonomous control during other periods of time). The fixed-wing aircraft is one example type of the vehicle 100, which can be other types of autonomous and/or semi-autonomous vehicles as well, such as quadrotors, other air-based vehicles, land-based vehicles (e.g., cars, bipedal robots), water-based vehicles (e.g., submersible robots, boats), and/or vehicles operating in a vacuum (e.g., spacecraft, satellites). The opening 108 can be any type of void, whether partially or fully defined by a contiguous border, through which the vehicle 100 is able to physically pass through, given the appropriate guidance, as this document describes. For example, the opening 108 can be a window or door in a building, a space between two buildings (e.g., slit bounded on two sides), a hole in a wall, and/or other types of openings. The opening can have arbitrary shapes, such as those formed by a shattered glass pane, or a ragged hole punched in a wall or a ship's hull by some explosive device. The opening 108 can be, for example, sufficiently small in relation to the size of the vehicle 100 that a human operator would have difficult guiding the vehicle 100 through the opening 108 while maintaining at least a minimum speed (e.g., minimum speed to maintain flight) without colliding with one or more sides of the opening. The techniques described throughout this document provide a guidance law (e.g., Eqs. 30 and 44-45, as described below) for autonomously guiding the vehicle 100 through the opening while avoiding collisions with the perimeter of the opening 108.


The example vehicle 100 includes a controller 102 that can use information from sensors 104 to control the kinematic devices 106 on the vehicle 100 according to the guidance law to successfully guide the vehicle 100 through the opening 108. The controller 102 can be any of a variety of appropriate controller device, such as a combination of one or more processors, microcontrollers, application specific integrated circuits (ASICs), and/or other controller device that is programmed to implement the guidance law. The sensors 106 can provide information about the surrounding environment and the vehicle's state within the surrounding environment, such as orientation, azimuth, velocity, acceleration, relative positioning and orientation with regard to the opening 108, and/or other information. The kinematic devices 106 are devices that control the movement of the vehicle 100 through a medium, which for the example fixed-wing aircraft is air (other examples are land, water, and a vacuum (outer space)). For example, the kinematic devices 106 can include propellers, flaps, ailerons, spoilers, slats, rudders, elevators, and/or other kinematic devices.


The controller 102 can guide the vehicle 100 through the opening 108 by identifying the opening 108 (step A, 110). For example, the sensors 104 can automatically identify the opening 108 and/or the opening can be identified/tagged by a human operator or other device in communication with the vehicle 100. The controller 102 can iteratively perform an autonomous control feedback loop to continually determine an instantaneous acceleration that should be achieved by the vehicle 100 to maintain a trajectory through the opening 108, given the current velocity and orientation relative to the opening 108 (step B, 112). The controller 102 can control operation of the kinematic devices 106 to achieve the determined acceleration (step C, 114), so that the iterative performance of steps B and C successfully guides the vehicle 100 through the opening 108.


Although the controller 102 and the steps A-C are depicted as being local with the vehicle 100, some or all of these features can be shifted to a remote device or system that has a communication connection (e.g., wireless channel) with sufficiently low latency so that control signals can be determined by the remote device/system and conveyed to control the vehicle 100 in real time. In such instances, the vehicle 100 and its controller 102 can be programmed to control the kinematic devices 106 according to control signals from a remote device/system that is implementing the guidance law based, at least in part, on information conveyed from the sensors 104 and/or other sensors providing information regarding the vehicle 100.


Although the vehicle 100 is described as possibly being an unmanned vehicle, it can also be a manned vehicle. For example, the vehicle 100 can be an aircraft manned by an onboard pilot who can toggle operation of the vehicle 100 into an autonomous mode of control in which the controller 102 guides the vehicle through an opening 108.



FIG. 2 depicts example representations of the opening 108 and the vehicle 100 as ellipses that can be used to determine a trajectory 200 to guide the vehicle 100 through the opening 108. For example, the opening 108 is represented by an ellipse 202, that is the largest ellipse that will fit the opening 108. Similarly, the vehicle 100 is represented by an ellipse 204 that is the smallest ellipse that bounds the entire perimeter of the vehicle 100. Identifying the ellipses 202 and 204, identifying position and orientation of the ellipse 204 so that it will fit within the ellipse 202, and determining a trajectory for the vehicle to achieve the positioning of the ellipse 204 within the ellipse 202 are described below in greater detail.



FIGS. 3A-C depict example systems 300, 330, and 360 for guiding example vehicles 301, 331, and 361 through the opening 302. The vehicles 310, 331, and 361 can be similar to the vehicle 100 described above with regard to FIGS. 1-2.



FIG. 3A depicts example system 300 that includes a vehicle 301 (e.g., fixed-wing vehicle, quadrotor, multi-rotor vehicle such as a hexacopter, land-based vehicle, water-based vehicle, space-based vehicle) that includes a local controller 310 onboard the vehicle 301 to guide the vehicle 301 through the opening 302. The system 300 can also include a remote system 304 and/or a remote controller 306 operated by a user 308. One or both of the remote system 304 and the remote controller 306 can control, at least in part, operation of the vehicle 301 via wireless (or in some instances, wired) communication with the vehicle 301. The remote system 304 and/or the remote controller 306 can activate an autonomous mode of operation on the vehicle 301, effectively handing off guidance of the vehicle 301 to the controller 310 to autonomously control the vehicle 301 through the opening 302.


The controller 310 includes a guidance law 312 that is integrated with the controller 310 to determine an acceleration (magnitude and direction) for the vehicle based, at least in part, on the dynamics of the vehicle 301 (e.g., fixed-wing micro air vehicles, quadrotors, underwater robotic fish, and others). For example, the guidance law 312 can be applied to generate acceleration aAB (acceleration for a rod AB corresponding to the end points of the ellipse representing the vehicle 301) along with the angles γ and δ. Depending on the specific type of vehicle, the acceleration generated by the guidance law can be converted into equivalent control commands for controlling the vehicle 301 within the medium it is travelling through/on (e.g., air, water, land, vacuum). For example, the commanded acceleration aAB can be resolved into its three mutually perpendicular components ax, ay, and az.


A command logic 314 can be implemented as part of the controller 310 to convert the acceleration aAB and its component parts along with the angles γ and δ into vehicle-specific commands for controlling the vehicle 301, such as force and orientation requirements to achieve the desired acceleration. These requirements are then converted into control requirement commands by vehicle-specific dynamics 316 for the kinematic features that are part of the vehicle 301. For example, the vehicle-specific dynamics 316 can be used to generate force and torque commands for each rotor on a quadrotor, and/or other multi-rotor vehicle such as a hexacopter, and can be used to generate elevator, aileron, and rudder control surface deflection commands for a fixed-wing micro air vehicle. Other vehicle-specific dynamics 316 and control requirement commands are also possible, depending on the type of the vehicle 301. These control requirement commands can be used by the controller 310 to control the kinematic devices on the vehicle 301 in order to achieve the determined acceleration in order to autonomously guide the vehicle 301 through the opening.


The control requirement commands can be combined with orifice (opening) information, including position and/or velocity information for the orifice, using relative velocity kinematics 318 to determine the orientation, velocity, and position of the vehicle 301 relative to the opening. These orientation, velocity, and position information can then be used to update the safe passage cone computations 320 given the current control commands and relative positioning, orientation, and velocity between the vehicle 301 and the orifice. As depicted in FIG. 3A, the controller 310 uses a closed-feedback loop to repeatedly and iteratively determine control commands for the kinematic devices on the vehicle 301 until the vehicle passes through the opening 301. In some instances, after passing through the opening 302, the vehicle 301 can handoff control back to the remote controller 306 and/or the remote system 304. In other instances, the maneuver through the opening 302 may be one of multiple autonomous control sequences performed by the vehicle 301, so control of the vehicle 301 can remain with the controller 310 after passing through the opening 302.


The controller 310 can take into account kinematic constraints, such as vehicle and acceleration limits. For example, the acceleration generated by the guidance law 314 can be applied normal to the velocity vector of the vehicle 301. This means that the guidance law 314 does not require the vehicle 301 to increase or decrease its current speed, and therefore the guidance law 314 will not make the vehicle 301 hit its (translational) speed limits. If the magnitude of the commanded acceleration becomes higher than the vehicle 301 can handle, then the magnitude of the gain K in the guidance law 314 can be appropriately lowered. If the acceleration limit is ever reached, then this simply has the effect of reducing the rate of rotation of the velocity vector and would potentially play a role only when the initial condition is such that the vehicle 301 is too close to the ellipse. In such a case, the developed guidance law 314 can still be used to take the vehicle 301 a short distance away from the ellipse and then turn its velocity vector around toward the ellipse.


Referring to FIG. 3B, the example system 330 includes the same components as the system 300, but in this example the controller 340 (similar to the controller 310) is remote from the vehicle 331, such as being located on the remote system 334 and/or on the remote controller 336. The controller 340 includes the guidance laws 342, control logic 344, vehicle-specific dynamics 346, relative velocity kinematics 348, and safe-passage cone computations 350 similar to the guidance law 312, control logic 314, vehicle-specific dynamics 316, relative velocity kinematics 318, and safe-passage cone computations 320 described for the local controller 310. In such an implementation, to effectively guide the vehicle 331 through the opening 302, the remote controller 336 and/or the remote system 334 may need a communication connection (e.g., wireless communication channel) with the vehicle 331 that has sufficiently low latency so that control commands provided to the vehicle 331 are able to be executed in real time and with minimal delay. For example, the remote controller 336 and/or the remote system 334 may need to be located in or around the vicinity of the vehicle 331. In such an implementation, the remote controller 336 and/or the remote system 334 may toggle between manual and autonomous control of the vehicle 331, for example, using the controller 340.


Referring to FIG. 3C, the example system 360 depicts an example of the system 300 for a specific type of vehicle, which in this example is a quadrotor vehicle 361 to be guided through the opening 302. Other vehicle-specific implementations of the system 300 can also be provided for other types of vehicles, such as fixed-wing micro air vehicles, quadrotors, underwater robotic fish, and others.


Like the system 300, the system 360 includes a remote controller 366 and a remote system 364 that can, in some instances, remotely control operation of the quadrotor 361 and can handoff control to the local controller 370 (similar to the controller 310) to autonomously guide the quadrotor 361 through the opening 302. The controller 370 includes a guidance law 372 (similar to the guidance law 312) to generate acceleration (magnitude and direction) for the quadrotor 361 that can be converted into equivalent control surface commands. For example, in the case of the quadrotor 361, the commanded acceleration aAB, in conjunction with the angles γ and δ, can be resolved into its three mutually perpendicular components ax, ay, and az. The command logic 374 (similar to the command logic 314) can transform the normal component of the commanded acceleration az into a normal force requirement F on the quadrotor 361, using the following relation:






F
=

max
(



m


(

g
-

a
z


)



cos






ϕ
q


cos






θ
q



·
0

)






where φq and θq represent the bank and pitch angles, respectively, of the quadrotor 361. The forward and lateral components of the commanded acceleration ax and ay can additionally be transformed into commanded values of bank angle φc and pitch angle θc, using the following relations:







ϕ
c

=


tan

-
1


(



a
y


cos






θ
q



g
-

a
z



)








θ
c

=


tan

-
1


(


a
x



a
z

-
g


)





These are then converted by quadrotor-specific dynamics 372 into torque requirements about the roll and pitch axes, denoted by τφ and τθ, respectively, using the relations τφ=Kqc−φq)−KqdP, τθ=Kqc−θq)−KqdQ, where P and Q represent the roll and pitch rates of the quadrotor 361, and K, Kqd represent gains. The quadrotor-specific dynamics 372 takes these quantities together with F, τφ, τθ and converts them into individual force and torque requirements on each of the four rotors, which are used to control operation of the rotors on the quadrotor 361 to guide it through the opening 302. The controller 370 additionally includes relative velocity kinematics 378 (similar to relative velocity kinematics 318) and safe-passage cone computations 380 (similar to safe-passage cone computations 320).



FIG. 4 is a flowchart of an example technique 400 for autonomously guiding a vehicle through an opening. The example technique 400 can be performed by any of a variety of vehicles, such as the vehicle 100, the vehicle 301, the vehicle 331, the vehicle 361, and/or other types of vehicles capable of autonomous and/or semi-autonomous control.


In some instances, autonomous control of a vehicle can be initiated (402). For example, the remote controller 306 and/or the remote system 304 can initiate local autonomous control by the vehicle 301 through the opening 302. The opening can be identified (404) and an iterative control feedback loop (406) can be performed to guide the vehicle through the opening. In some instances, the current size and position of a changing opening (408) can be determined as part of each iteration. Each iteration can additionally include identifying a relative velocity and orientation of the vehicle relative to the opening (410), determining a target acceleration to guide the vehicle along a trajectory through the opening (412), and to control the vehicle to achieve the determined acceleration (414). For example, the controller 310, 330, and 370 can each repeatedly perform the iterative steps 408-414 to guide the vehicles 301, 331, and 361, respectively, through the opening 302. If the vehicle is not yet through the opening (416), then the steps 408-414 can be repeated until the vehicle passes through the opening, after which, in some instances, control of the vehicle can be handed off to another device, controller, and/or system (418).



FIGS. 5A-B depict example representations of fitting ellipses to a variety of differently shaped openings. Ellipses can be used to represent orifices through which a vehicle will pass because ellipses can be fitted to a variety of differently shaped orifices. For example, FIG. 5A depicts an ellipse being fitted to a rectangular window and FIG. 5B depicts an ellipse being fitted to an arbitrarily shaped window. Referring to FIG. 5A, a rectangular window can be well approximated by an ellipse and the eccentricity of the ellipse can be appropriately adjusted to fit a wide range of rectangular window sizes. A circle can be considered as a special case of an ellipse having zero eccentricity, and it can be used to fit into a square window. For arbitrarily shaped orifices, largest ellipse that fits within the confines of the window can be constructed and then model the problem as one of guiding the robot through this ellipse.


Shapes of aerial robots (e.g., a quadrotor, a fixed-wing vehicle) used for path planning and obstacle avoidance have been approximated by circles/spheres. However, a fixed-wing aircraft, when viewed from the front, is better approximated by an ellipse. A quadrotor viewed from the front has one of its sides longer than the other and, therefore, is also better approximated as an ellipse. Therefore, in the techniques described in this specification, the shape of the front of the vehicle is modeled by an ellipse. FIGS. 6A-D depict examples of a vehicle represented by an ellipse being guided through an elliptical orifice. In each of these examples, the vehicle is represented by an ellipse with an imaginary line AB defining the outer bounds of the ellipse (e.g., line AB representing the widest/longest part of the ellipse) that can be used to guide the ellipse through the orifice. For instance, guidance laws can be applied to an ellipse with its line AB such that the passage of the rod AB through the orifice is equivalent to passage of the vehicle through the orifice. The rod is not guided head-first through the orifice (like a javelin) because that would not be equivalent to guiding the vehicle through the orifice. Instead, as depicted in FIGS. 6A-D, the rod AB is passed through perpendicular to the movement of the vehicle (substantially parallel to the plane of the orifice). However, the absolute and relative orientations of the elliptical orifice and the elliptical vehicle model may be arbitrary so long as the rod AB is able to fit through the orifice, as depicted across the examples in FIGS. 6A-D.


Toward the development of this guidance law, a relative velocity framework is used to define a safe-passage cone through a window or passage. The safe-passage cone is defined as the instantaneous cone of velocities of an object to pass through an orifice. A similar relative velocity framework was used to define collision cones and has been found to be very useful in the collision avoidance literature. However, in these documents, collision avoidance essentially meant trying to avoid having the velocity vector inside the collision cone. The concept in the safe passage cone is quite different in that the velocity vector is driven into the safe-passage cone. For instance, consider a scenario wherein the initial velocity vector of the robot is pointing in a direction opposite to the window that it needs to pass through. Such a scenario is irrelevant in the collision-avoidance problem because the velocity vector lies well outside the collision cone to the window but is relevant in the safe-passage problem because the guidance law will be used to turn the velocity vector around and drive it into the safe-passage cone to the window. This can be achieved through guidance laws that have a state-dependent switching nature, which is absent in the collision-avoidance problem and is an idea that has not been exploited or used in any of the collision-avoidance literature, irrespective of whether they use collision cones or velocity obstacles. The safe-passage cone shares several properties with the collision cone, including that closed-form expressions can be computed even for passages that are not necessarily circular.


The rest of this specification is organized as follows. Section II gives a few preliminary results about moving point-mass objects and basic geometric definitions that are used in this document. Section III discusses the determination of the safe-passage cone between a point and an elliptical orifice as well as several considerations to be taken into account for safe passage using this cone. Section IV describes a guidance law for a rod-shaped object through a stationary elliptical orifice. Section V discusses how the guidance law can be modified when the orifice is moving, whereas Sec. VI discusses how the guidance law is modified to take into account scenarios wherein the elliptical orifice changes in size with time. Section VII discusses several guidance-law considerations. Finally, Sec. VIII presents the conclusions.


II. Preliminary Results
A. Basic Results for Point Objects

This section outlines a few preliminary results governing moving point-mass objects. Referring to FIG. 7, which depicts the geometry of two point objects moving in 3D space, consider two point objects A and C moving with constant velocities VA and VC. The coordinate axes (i, j, k) represent a nonrotating frame fixed at point A. The relative velocity components of the line of sight (LOS) AC are represented by Vθ, Vφ, Vr, where Vr is the relative velocity component along the LOS, and Vθ and Vφ are the relative velocity components orthogonal to the LOS, with Vθ being the component parallel to the (i, j) plane. Let θ and φ represent the azimuth and elevation angles of the LOS. Let (β, α) and (μ, η) represent the azimuth and elevation angle pairs associated with the velocity vectors VA and VC, respectively. This leads to the following equations:

Vθ=r{dot over (θ)} cos ϕ=VC cos η sin(μ−θ)−VA cos α sin(β−θ)  (1)
Vϕ=r{dot over (ϕ)}=VC{−cos η sin ϕ cos(μ−θ)+sin η cos ϕ}−VA{−cos α sin ϕ cos(β−θ)+sin α cos ϕ}  (2)
Vr={dot over (r)}=VC{cos η cos ϕ cos(μ−θ)+sin η sin ϕ}−VA{cos α cos ϕ cos(β−θ)+sin α sin ϕ}  (3)


Differentiating the equations on the extreme right of each of Eqs. (1-3), while retaining the constant velocity assumption and then rearranging them, results in the following equation:

{dot over (V)}θ=−{dot over (θ)}(Vr cos ϕ−Vϕ sin ϕ);{dot over (V)}ϕ=−{dot over (ϕ)}Vr−{dot over (θ)}Vθ sin ϕ;{dot over (V)}r={dot over (ϕ)}Vϕ+{dot over (θ)}Vθ cos ϕ  (4)


Since the velocities VA and VC are constants, the relative velocity is also constant, that is:

Vθ2+Vϕ2+Vr2=c2  (5)

where c2=V2θ0+V2φ0+V2r0 is a constant. Multiplying r on both sides of each of the equations in Eq. (4) and using Eqs. (1-3), results in the following equation:

r{dot over (V)}θ=−VθVr+VϕVθ tan ϕ;r{dot over (V)}ϕ=−VϕVr−Vθ2 tan ϕ;r{dot over (V)}r=Vθ2+Vϕ2  (6)


Using the third equation of Eq. (6), Eq. (5) can be written as the following:

r{dot over (V)}r+Vr2=c2⇒r{umlaut over (r)}+{dot over (r)}2=c2  (7)


Since d/dt(r{dot over (r)})=r{umlaut over (r)}+{dot over (r)}2, {dot over (r)} the preceding equation can be integrated to obtain:

r{dot over (r)}=c2t+b  (8)

where b=r0Vr0 is a constant. Since the right-hand side of the last equation in Eq. (6) is positive, and r>0, it can be inferred that {dot over (V)}r>0, that is, the (Vθ, Vφ, Vr) trajectory moves along the direction of increasing Vr. Thus, when visualized in the (Vθ, Vφ, Vr) space, a trajectory originating from the Vr<0 region moves into the Vr>0 region because {dot over (V)}r>0 always. At the time instant (say, t=tm) when the trajectory penetrates the Vr=0 plane, r is a minimum. Let r(tm)=rm. Substituting this in Eq. (8), results in the following equation:









0
=





c
2



t
m


+
b



t
m


=



-

b

c
2





t
m


=

-



r
0



V

r





0





V

θ





0

2

+

V

ϕ





0

2

+

V

r





0

2










(
9
)







Then, from Eq. (5), it can be inferred that, at t=tm:

Vθm2+Vϕm2=Vr02+Vθ02+Vϕ02  (10)

where Vθm and Vφm represent Vθtm and Vφtm, respectively. Multiplying Vθ and Vφ on both sides of the first two equations of Eq. (4), respectively, and adding, results in the following:













V
θ




V
.

θ


+


V
ϕ




V
.

ϕ





V
θ
2

+

V
ϕ
2



=



-


r
.

r






V
θ
2

+

V
ϕ
2




V
θ0
2

+

V
ϕ0
2




=


(


r
0

r

)

2






(
11
)







Putting r=rm at t=tm and substituting from Eq. (10), leads to the following:










r
m
2

=


r
θ
2



(



V
θ0
2

+

V
ϕ0
2




V
θ0
2

+

V
ϕ0
2

+

V

r





0

2



)






(
12
)







Finally, from Eqs. (9) and (12), it is possible to obtain r(t) in terms of rm and tm as follows:

r2(t)=rm2+(Vθ2+Vϕ2+Vr2)(t−tm)2  (13)


B. Basic Geometric Definitions

In this subsection, some basic geometric definitions and properties are outlined that will be used in the specification. An ellipse E is described by the locus of points such that the sum of their distances to the two foci is constant. Thus, for any point P on the ellipse, if r1 and r2 represent the distances of P to the two foci, then r1+r2=2a, where a is the semi-major axis of E. A spheroid S is defined as the surface of revolution formed by rotating E about its major or minor axis. Points on the surface of S also satisfy the condition r1+r2=2a, where a is the length of the semi-major axis of S. If E is represented by the equation (x/a)2+(y/b)2=1, then the spheroid S obtained by rotating E about its major axis would be represented by the equation (x/a)2+(y/b)2(z/b)2=1.


The distance between the two foci of S is equal to 2ae, where e=√{square root over (t−(b/a)2)} is the eccentricity, and b is the length of the semi-minor axis of S (and of E). Further, e∈[0;1). In the limiting case when e=0, S becomes a sphere. With increasing values of e, S becomes progressively more elongated along one dimension compared to the other.


III. Safe-Passage Cone

The preceding basic results are now used to determine the safe passage cone. Consider the ellipse in FIG. 5. An imaginary spheroid S is constructed by rotating E about its major axis. The reason for its construction is that its three-dimensional nature enables the determination of guidance laws for three-dimensional maneuvers, using the notion of miss distance. The fact that miss distance is inherently a radial quantity makes the use of a spheroid more convenient, and this convenience is not readily available if the two dimensional ellipse is embedded in 3-D physical space. Note that the construction of the spheroid is solely for analysis purposes and is not required or used for the actual implementation of the guidance laws outlined in this specification. Now, consider a moving object A. The safe passage cone is defined as the instantaneous cone of velocities of A that will cause A to pass through S (which may also be moving). In this section, first, the safe-passage cone is determined, and then several considerations are discussed that may to be taken into account for ensuring safe passage.


A. Safe-Passage Cone Between a Point Object and a Spheroid



FIG. 8 shows an example of a safe-passage geometry between a point and a spheroid. For example, FIG. 8 shows the engagement geometry between a point object A and a spheroid S moving with constant velocities VA and VS, respectively. Since the spheroid S is an orifice, engagement between the object A and a spheroid S will be passage of the object A through the spheroid S. Here, C1 and C2 are the two foci of the spheroid, and a is its semi-major axis. The distances AC1 and AC2 are denoted by r1 and r2. Further, Vθ1, Vφ1, Vr1 are the relative velocity components of C1 with respect to A. Here, Vr1 is the relative velocity component along the LOS AC1, whereas Vθ1 and Vφ1 are the relative velocity components orthogonal to AC1. Referring still to FIG. 8, (i, j, k) represents the same nonrotating frame, fixed at point A, as shown in FIG. 7. The vectors Vr1 and Vr2 lie along AC1 and AC2, respectively. The Vθ1 and Vθ2 vectors are both parallel to the (i, j) plane and represent, respectively, the components of the relative velocities of AC1 and AC2 parallel to the (i, j) plane. Further, θ1 and φ1 are the azimuth and elevation angles of AC1. The quantities Vθ2, Vφ2, Vr2, θ2, and φ2 are correspondingly defined for AC2. Then, the expressions for the relative velocity components of ACi, i=1, 2, are as follows:

Vθi=ri{dot over (θ)}i cos ϕi=VS cos η sin(μ−θi)−VA cos α sin(β−θi)  (14)
Vϕi=ri{dot over (ϕ)}i=VS{−cos η sin ϕi cos(μ−θi)+sin η cos ϕi}−VA{−cos α sin ϕi cos(β−θi)+sin α cos ϕi}  (15)
Vri={dot over (r)}i=VS{cos η sin ϕi cos(μ−θi)+sin η sin ϕi}−VA{cos α cos ϕi cos(β−θi)+sin α sin ϕi}  (16)

where the velocity vectors for VA and VS are defined by the angle pairs (β, α) and (μ, η), respectively, which are the azimuth and elevation angle pairs for these vectors. The miss distance rmi between A and Ci is obtained from Eq. (12) as the following:












r
mi
2

=


r
i
2



(



V

θ





i

2

+

V

ϕ





i

2




V

θ





i

2

+

V

ϕ





i

2

+

V
ri
2



)



;





i
=
1


,
2




(
17
)







Note that rmi represents, at time t, a prediction of what the miss distance would be if the points A and Ci move with constant velocities for all future time. When A and Ci move with constant velocities, then rmi remains a constant, whereas if A and/or Ci move with varying velocities, then rmi varies with time. In general, therefore, rmi represents a predicted miss distance. Associated with this miss-distance prediction is a predicted miss time tmi, which is the predicted time at which miss distance rmi would occur, and using Eq. (9), this is given by the following:












t
mi

=

-



r
i



V
ri




V

θ





i

2

+

V

ϕ





i

2

+

V
ri
2





;





i
=
1


,
2




(
18
)







Note that both Eqs. (17) and (18) assume that the initial engagement between A and Ci commences with Vri<0. If the initial engagement commences with Vri>0, then tmi computed from Eq. (18) is negative and represents the time at which closest approach would occur if the trajectories of both A and Ci are projected backward in time. Using Eq. (13), the distance ri(t) can be written in terms of rmi and tmi as follows:

ri2(t)=rmi2+(Vθi2+Vϕi2+Vri2)(t−tmi)2;i=1,2  (19)


While rm1 and rm2 represent the predicted miss distances of A to C1 and C2, respectively, the predicted miss distance of A to the spheroid S is given by rmcustom charactermint(r1+r2). This quantity is determined by setting d(r1+r2)/dt=0 and solving for the predicted miss time tm, which is found to be the following:










t
m

=




-

r
1




r
2






V
θ1
2

+

V
ϕ1
2

+

V

r





1

2







V
θ2
2

+

V
ϕ2
2

+

V

r





2

2





×





[



V

r





2






V
θ1
2

+

V
ϕ1
2







V
θ1
2

+

V
ϕ1
2

+

V

r





1

2




+









V

r





1






V
θ2
2

+

V
ϕ2
2







V
θ2
2

+

V
ϕ2
2

+

V

r





2

2




]








[



r
1





V
θ1
2

+

V
ϕ1
2







V
θ2
2

+

V
ϕ2
2

+

V

r





2

2




+









r
2





V
θ2
2

+

V
ϕ2
2







V
θ1
2

+

V
ϕ1
2

+

V

r





1

2




]










(
20
)







Substituting t=tm in the expression for r1(t)+r2(t), leads to the predicted miss distance rm. If this predicted miss distance is less than 2a, then A will pass through S. Quantity yA(t), which is essentially a function of the predicted miss distance, is then defined as follows:














y
A



(
t
)




=
Δ







min
i




(


r
1

+

r
2


)

2


-

4






a
2









=





A
1
2



(

1
+

τ






V
1
2



)


+


A
2
2



(

1
+

τ






V
2
2



)


+











2






A
1



A
2




1
+

τ


(


V
1
2

+

V
2
2


)


+


τ
2



V
1
2



V
2
2





-

4






a
2










(
21
)








where
Ui=√{square root over (Vθi2+Vϕi2)};Vi=√{square root over (Vθi2+Vϕi2+Vri2)};Ai=riUi/Vi;i=1,2τ=((r1Vr1/V12−r2Vr2/V22)/(r1U1/V1+r2U2/V2))2  (22)


If A and S move with constant velocities for all future time, then yA remains a constant, where as if A and/or S move with varying velocities, then yA varies with time and represents, at time t, a prediction of the miss-distance function. Vi represents the relative velocity of the LOS ACi. Similarly, Ui represents the relative velocity component orthogonal to the LOS ACi. As a footnote, in the limiting case when the two foci of the spheroid S coincide, that is, S is a sphere of radius a, and U1=U2, V1=V2, A1=A2, r1=r2=r, τ=0, Vr1=Vr2=Vr, Vθ1=Vθ2=Vθ, Vφ1=Vφ2=Vφ, and Eq. (22) reduces to the following:











y
A



(
t
)


=



4







r
2



(


V
θ
2

+

V
ϕ
2


)





V
r
2

+

V
θ
2

+

V
ϕ
2



-

4






a
2







(
23
)







Note that the expression appearing outside the square brackets in Eq. (20) is always negative. Therefore, tm>0 can occur only when the expression appearing within the square brackets in the numerator of Eq. (20) is negative, that is, VrA<0, where:

VrA=Vr2√{square root over (Vθ12+Vφ12)}√{square root over (Vθ12+Vφ12+Vr12)}+Vr1√{square root over (Vθ22+Vφ22)}√{square root over (Vθ22+Vφ22+Vr22)}  (24)


The safe-passage cone of A to S can be defined as the set of (Vθ1, Vφ1, Vr1, Vθ2, Vφ2, Vr2) that satisfy yA(t)<0 and VrA(t)<0. It can also be viewed in physical space as the set of headings of A that will cause it to pass through S (this is schematically represented by X in FIG. 8). FIG. 9 shows a partitioning of the 3-D physical space into several regions based on the signs of yA and VrA. In this figure, the surface defined by yA=0 has been extended into the region where VrA>0. The plane VrA=0 thus partitions the cone yA<0 as shown. If the relative velocity is such that it lies in the VrA(t)>0 region, then at time t, A is moving away from S, whereas if it lies in the VrA(t)>0, yA(t)<0 region, then A is moving in the opposite direction of S. If it lies in the VrA(t)<0 region, then A is moving toward (but not necessarily through) S, whereas if it lies in the VrA(t)<0, yA(t)<0 region, then at time t, A is on a path that will take it through S.


B. Considerations for Safe Passage


This section discusses issues associated with getting a rod AB to pass through the elliptical orifice. To do so, an acceleration may be applied so as to drive the relative velocity vector into the safe-passage cone. This subsection considers the case when the ellipse is stationary. Similar results hold for the moving ellipse as well, with some modifications that will be discussed in Sec. V. Consider first the scenario when AB passes through the orifice in such a manner that point A grazes the top of the safe-passage cone. Referring to FIG. 9, wherein the safe-passage cone for point A is defined as the region yA<0, VrA<0. Now, consider any planar section of the safe-passage cone that contains the current relative velocity vector placed at A. Let αp denote the angle of the relative velocity vector on this planar section. The angle αp is computed from the dot product of the relative velocity vector and a reference line L, where L is the intersection of the planar section and the (i, j) plane. In the special case when the relative velocity vector and the planar section both lie on the (i, j) plane, then L is the i axis. FIG. 10 includes graphs showing representations of a typical plot of yA as a function of αp and of typical plot of VrA as a function of αp. The top graph in FIG. 10 show a typical plot of yA versus αp. The bottom graph in FIG. 10 a typical plot of VrA vs αp. As seen in these graphs, yA attains two local minima: one in the VrA<0 region, and the other in the VrA>0 region, and two local maxima occurring at VrA=0. The local minima physically correspond to the scenario when the relative velocity vector is aligned with the angular bisector of this planar conical section, while the local maxima correspond to the scenario when the relative velocity vector lies on the VrA=0 plane.



FIGS. 11A-D, 12A-D, 13A-D, and 14A-D show geometries illustrating different scenarios of the relative velocity vector V being located on a planar section of the safe-passage cone XAX′. In FIG. 11A, for example, XAX′ represents this planar section of the safe-passage cone, and V represents the relative velocity vector. Because the relative velocity vector lies inside XAX′, the following results: yA<0 and VrA<0. Note that XAX′ comprises two halves: one wherein ∂yA/∂αp<0 (that is, an increase in αp causes a decrease in yA) and another half where ∂yA/∂αp>0 (that is, an increase in αp causes an increase in yA). The dashed line represents the angular bisector that separates these two half-cones, and yA attains its minimum when V aligns with this dashed line. Defining the “aiming point” as the point through which it is desired that the relative velocity vector passes, the following cases (depicted in FIGS. 11-14), then arise.


Case A: yA0<0, VrA0<0.


Case A1 (depicted in FIG. 11A): Here, ∂yA/∂αpt<0. Assume that the aiming point lies on AX′, that is, it is desired to align V with AX, which lies in the same half-cone as V(0). Then, the guidance law needs to be such that it drives yA(t) to zero monotonically in time, as illustrated in FIG. 15a.


Case A2 (depicted in FIG. 11B): Here, ∂yA/∂αpjt0<0. Assume that the aiming point lies on AX, that is, it is desired to align V with AX, which lies in the opposite half-cone. Then, the guidance law needs to be such that it first drives V deeper inside and toward the center of, the safe passage cone, (that is, it decreases yA(t) until it attains its minimum negative value), and then it subsequently drives yA(t) to zero. In other words, yA(t) goes to zero nonmonotonically in time, as illustrated in FIG. 15b.


Cases A3 and A4 (depicted in FIGS. 11C and 11D, respectively): These are counterparts of cases A2 and A1, with aiming points on AX′ and AX, respectively, and with the following equation:










y
A





α
p





|

t
=
0




>
0





The guidance law has a similar effect.


Case B: yA0>0, VrA0<0. This corresponds to the situation where V(0) lies outside the safe-passage cone but is otherwise directed toward the wall on which the elliptical window lies.


Case B1 (depicted in FIG. 12A): The aiming point lies on AX′. Then, the guidance law needs to be such that it drives yA(t) to zero monotonically in time, as illustrated in FIG. 15C.


Case B2 (depicted in FIG. 12B): The aiming point lies on AX. The guidance law needs to first drive yA(t) to zero monotonically so as to align V with AX′, after which it needs to drive V deeper into the safe-passage cone, (that is, make yA(t) more negative), followed by aligning V with AX′, (that is, drive yA(t) to zero). The overall qualitative trajectory of yA(t) is as illustrated in FIG. 15D.


Cases B3 and B4 (depicted in FIGS. 12C and 12D, respectively): These cases are counterparts of B2 and B1, with aiming points at AX′ and AX, respectively.


Case C: yA0>0, VrA0>0. This corresponds to the situation wherein V(0) lies outside the safe-passage cone and is directed away from the wall on which the elliptical window lies.


Case C1 (depicted in FIG. 13A): The aiming point lies on AX′. The guidance law needs to be such that it first drives V to the VrA=0 plane, (that is, increase yA(t) to its maximum positive value), and then toward AX and finally to AX′, (that is, decrease yA(t) to its minimum value and eventually to zero), as illustrated in FIG. 15F.


Case C2 (depicted in FIG. 13B): The aiming point lies on AX. The guidance law needs to be such that it first drives yA toward the VrA=0 plane, (that is, increase yA(t) to its maximum positive value), and then decrease yA(t) to zero, as illustrated in FIG. 15E.


Cases C3 and C4 (depicted in FIGS. 13D and 13D, respectively): These are counterparts of cases C2 and C1 with aiming points at AX′ and AX, respectively.


Case D: yA0<0, VrA0>0. This corresponds to the situation wherein V(0) lies outside the safe-passage cone and is directed away from the wall on which the elliptical window lies.


Case D1 (depicted in FIG. 14A): The aiming point lies on AX′. Then, the qualitative nature of yA(t) is as illustrated in FIG. 15H.


Case D2 (depicted in FIG. 14B): The aiming point lies on AX. Then, the guidance law may be such that it drives yA(t) to zero, as qualitatively illustrated in FIG. 15G.


Cases D3 and D4 (depicted in FIGS. 10C and 10D, respectively): These are counterparts of cases D2 and D1 with aiming points at AX′ and AX, respectively.


Cases D3 and D4 (depicted in FIGS. 14C and 14D, respectively): These are counterparts of cases D2 and D1 with aiming points at AX′ and AX, respectively.


IV. Guidance Laws

In this section, guidance laws are discussed that achieve the appropriate qualitative yA trajectory to pass through an opening depending on the locations of the current relative velocity vector and the aiming point. FIGS. 15A-H show example appropriate qualitative trajectories of yA(t) to guide a vehicle through an opening. As described above, FIGS. 11-14 show examples of locations of the current relative velocity vector and the aiming point, which can be used to determine the appropriate qualitative trajectories. FIG. 16 shows an example engagement geometry between a rod AB representing an imaginary line drawn on the front of the vehicle, such as quadrotor or fixed-wing vehicle, and an opening. E represents the largest ellipse that can be fit inside the opening, and E′ represents any another ellipse corresponding to the rod AB (representing the vehicle) lying inside, and confocal with, E. Also, C1 and C2 represent the foci of E.


Consider the engagement between point A and the ellipse E. Let r1t and r2t represent the distance of A to the two foci C1 and C2, respectively. If an imaginary spheroid S is constructed that is obtained by rotating E about its major axis, then yA, computed from Eq. (21), represents the miss-distance function of A to S. Note that yA is, by construction, defined in terms of the distances of A to the foci of S, and because S and E both share the same foci, yA can also be used as an indicator of the miss-distance function of A to E. When the conditions yA<0, VrA<0 are satisfied, then A will pass through S, and when the conditions yA≤c<0, VrA<0 are satisfied, then A will pass through E. Here, c is a constant quantity used to take care of the fact that E is a subset of S, and details on suitable choice of c that enable AB to pass through E are discussed in Sec. IV.C.


Now, if yA(t) c is achieved at some t, then this means that, at the instant of closest approach, (r1+r2)2min−4a2=c, or equivalently (r1+r2)min=sqrt(c+4a2). If e represents the eccentricity of the ellipse E, then the distance between the two foci C1 and C2 is 2ae. It follows that, for sqrt(c+4a2), that is, for all values of c>4a2(e2−1), the condition (r1+r2)min=sqrt(c+4a2) would be satisfied by all points that lie on another spheroid S′ that is confocal values of c correspond to scenarios wherein S′ is larger than S, and with S and has a major axis equal to sqrt(c+4a2). Furthermore, positive negative values of c correspond to scenarios wherein S′ is smaller than S. FIG. 17 illustrates multiple E′ (each corresponding to a different c), and its purpose is to show that, by defining appropriate negative values of c and then applying an acceleration to AB that causes yA=c to be attained, the point A can be guided through different regions inside the ellipse E, as is demonstrated subsequently. More specifically, FIG. 17 depicts constant values of c that correspond to ellipses E′ (spheroids S′) confocal with original ellipse E (spheroid S).


A. Determination of Guidance Magnitude Law

The state-space equations governing the kinematics of the four LOSs AC1, AC2, BC1, and BC2 are as follows:










[





x
.

A







x
.

B




]

=


[




f


(

x
A

)







f


(

x
B

)





]

+


[




h


(

x
A

)







h


(

x
B

)





]



a
AB







(
25
)








where {dot over (x)}A=f(xA)+h(xAAB represents the nonlinear kinematic equations of AC1 and AC2, given by the following:










[





r
.

1







θ
.

1







ϕ
.

1







V
.

θ1







V
.

ϕ1







V
.


r





1








r
.

2







θ
.

2







ϕ
.

2







V
.

θ2







V
.

ϕ2







V
.


r





2





]

=


[




V

r





1








V
θ1

/

(


r
1


cos






ϕ
1


)








V
ϕ1

/

r
1








(



-

V
θ1




V

r





1



+


V
θ1



V
ϕ1


tan






ϕ
1



)

/

r
1








(



-

V
ϕ1




V

r





1



-


V
θ1
2


tan






ϕ
1



)

/

r
1








(


V
ϕ1
2

+

V
θ1
2


)

/

r
1







V

r





2








V
θ2

/

(


r
2


cos






ϕ
2


)








V
ϕ2

/

r
2








(



-

V
θ2




V

r





2



+


V
θ2



V
ϕ2


tan






ϕ
2



)

/

r
2







|


(



-

V
ϕ2




V

r





2



-


V
θ2
2


tan






ϕ
2



)

/

r
2









(


V
ϕ2
2

+

V
θ2
2


)

/

r
2





]

+




[



0




0




0






-
cos






γ






sin


(

δ
-

θ
1


)









cos





γ





sin






ϕ
1



cos


(

δ
-

θ
1


)



-

sin





γ





cos






ϕ
1










-
cos






γ





cos






ϕ
1



cos


(

δ
-

θ
1


)



-

sin





γ





sin






ϕ
1







0




0




0






-
cos






γ






sin


(

δ
-

θ
2


)









cos





γ





sin






ϕ
2



cos


(

δ
-

θ
2


)



-

sin





γ





cos






ϕ
2










-
cos






γ





cos






ϕ
2



cos


(

δ
-

θ
2


)



-

sin





γ





sin






ϕ
2






]



a
AB








(
26
)








and {dot over (x)}B=f(xB)+h(xBAB is similarly defined with the following equation:

xB=[r1θ1ϕ1Vθ1Vϕ1Vr1r2θ2ϕ2Vθ2Vϕ2Vϕ2Vr2]T

where the elements of xB represent the states corresponding to BC1 and BC2. In Eq. (26), aAB is a scalar representing the magnitude of the acceleration of AB, and this acceleration is applied at an azimuth angle δ and elevation angle γ. In conjunction with the preceding state equations, an output equation is defined as follows:










[





y
^

A







y
^

B




]

=

[





y
A

-
c







y
B

-
c




]





(
27
)








where yA represents the miss-distance function of point A to the ellipse E, and yB represents the miss-distance function of point B to E. Here, yA is defined in Eq. (21), and yB can be similarly defined by replacing r1, r2, Vθ1, Vθ2, Vφ1, Vφ2, Vr1, Vr2 with r1, r2, Vθ1, Vθ2, Vφ1, Vφ2, Vr1, Vr2, respectively.


The system [Eqs. (26) and (27)] has three inputs aAB, δ, and γ. The objective is to determine a guidance law that can drive an appropriate choice of either ŷA or ŷB to zero, or equivalently, cause yA (respectively, yB) to approach the reference value of c. A suitable negative value is chosen for c, such that AB passes through the ellipse E, and use dynamic inversion to design the acceleration magnitude law aAB to drive ŷA to zero. The design of laws governing the evolution of the angles δ and γ, which govern the plane on which aAB is applied are discussed later: in Sec. IV. B for stationary orifices, and in Sec. V.A for moving and/or closing orifices. For determining aAB, the derivative of ŷA is taken with respect to time, as follows:
















d



y
^

A


dt

=



y
.

A

=






y
A





x
A






x
.

A


=







y
A





x
A





f


(

x
A

)



+





y
A





x
A





h


(

x
A

)




a
AB



=






y
A





x
A





f


(

x
A

)



+


g
A



a
AB











(
28
)








y
.

A

=


[







y
A





r
1









y
A





θ
1









y
A





ϕ
1









y
A





V
θ1









y
A





V
ϕ1









y
A





V

r





1










y
A





r
2









y
A





θ
2









y
A





ϕ
2









y
A





V
θ2









y
A





V
ϕ2









y
A





V

r





2







]

×


[





r
.

1





θ
.

1





ϕ
.

1





V
.

θ1





V
.

ϕ1





V

r





1


.





r
.

2





θ
.

2





ϕ
.

2





V
.

θ2





V
.

ϕ2





V
.


r





2





]

T






(
29
)







Define an error signal eA(t)=w(t)−ŷA(t), where w(t) is a reference input. Thus, custom characterA={dot over (w)}−ėA. Taking w(t)=0 for all t and enforcing the error dynamics to be ėA=KeA, the result is custom characterA=KŷA. Substituting this in Eq. (29), and using Eqs. (25) and (26), results in the following:

αAB=−KŷA/gA  (3)
where










g
A

=






y
A





x
A





h


(

x
A

)



=

[



-
cos







γ


(






y
A





V
θ1





sin


(

δ
-

θ
1


)



+





y
A





V
θ2





sin


(

δ
-

θ
2


)




)



+





y
A





V
ϕ1





(


cos





γ





sin






ϕ
1



cos


(

δ
-

θ
1


)



-

sin





γ





cos






ϕ
1



)


+





y
A





V

ϕ
2






(


cos





γ





sin






ϕ
2



cos


(

δ
-

θ
2


)



-

sin





γ





cos






ϕ
2



)


-





y
A





V

r





1






(


cos





γ





cos






ϕ
1



cos


(

δ
-

θ
1


)



+

sin





γ





sin






ϕ
1



)


-





y
A





V

r





2






(


cos





γ





cos






ϕ
2



cos


(

δ
-

θ
2


)



+

sin





γ





sin






ϕ
2



)



]






(
31
)







Equation (31) contains the partial derivatives of yA, and these can be computed analytically from Eq. (21). Now, if K>0, then the error dynamics eA(t) will monotonically decay to zero, or equivalently ŷA will monotonically go to zero. As can be seen later, choosing the appropriate sign of K and switching between these signs in a state dependent fashion can enable the trajectory of A to enter the safe passage cone from different initial conditions and eventually pass through the ellipse.


Case A: ŷA0<0, VrA0<0.


Cases A1 and A4: Choose K>0. As mentioned previously, this will cause ŷA to monotonically decay to zero, as illustrated in FIG. 15A. The time evolution of ŷA is given by ŷAt ŷA(0)e−Kt. Because the rod will reach the ellipse at time tm, given by Eq. (20), it is preferable that ŷA(t) should decay to a negative number of small magnitude E within the time tm. This can be achieved by choosing K such that:









K
>


1

t
m




t
m








y
^

A



(
0
)


ϵ








(
32
)







With progressively smaller magnitudes of ϵ, progressively higher levels of precision can be achieved in arriving at the desired aiming point.


Cases A2 and A3: Choose K=K0 sgn(∂yA/∂αp), where K0>0.


Consider case A2 for purposes of illustration. The initial location of the relative velocity vector is such that ∂yA/∂αpj0<0, and this leads to an initially negative sign for K, thus causing the error eA(t) to increase or, equivalently, ŷA to become more negative as the relative velocity vector is pulled deeper into the safe-passage cone. When the relative velocity vector crosses into the other half of the safe-passage cone, ∂yA/∂αp>0, and the sign of K switches to positive as well. This positive value of K causes the error eA(t) to decrease or, equivalently, ŷA(t) to go to zero, as shown in FIG. 15B. A corresponding argument holds for case A3. In this case, ŷAt evolves as follows:












y
^

A



(
t
)


=

{








y
^

A



(
0
)




e


K
0


t



,




0

t


t
1










y
^

min



e

-


K
0



(


t
2

-

t
1


)





,





t
1


t


t
2










(
33
)








where ŷmin represents the minimum value of ŷA, and t1 represents the time at which this minimum value is attained. As before, it is preferable that ŷA(t) decay to a small number ϵ within the time tm. This can be ensured if K0 is chosen such that, for a given t1<tm,










K
0

>

max


{



1

t
1









𝓃







y
^

A



(
0
)




y
^

min





,


1


t
m

-

t
1










𝓃






y
^

min

ϵ





}






(
34
)







As a footnote, two different magnitudes of K0 can be chosen, say K=K1 sgn(∂yA/∂αp) for t≤t1 and K=K2 sgn(∂yA/∂αp) for t1≤t≤tm, with K1>0, K2>0, in which case K1 needs to be larger than the first term within the brackets in Eq. (34), whereas K2 needs to be larger than the second term within brackets.


Case B: ŷA0>0, VrA0<0.


Cases B1 and B4: Choose K>0, such that K satisfies Eq. (32). This will cause ŷA to monotonically decay to ϵ within time tm, as illustrated in FIG. 15C.


Cases B2 and B3: Choose K such that:









K
=

{





K
0

,





if








y
^

A



(
t
)



>
0







K
0


sgn






(




y
A





α
p



)






if








y
^

A



(
t
)



<
0









(
35
)








with K0>0. Consider case B2 for the purpose of illustration. The initial positive value of K will drive the error eA(t), and equivalently ŷA, monotonically to zero, driving the velocity vector to align with AX′. When this happens, ŷA becomes zero, and at that instant, the guidance law [Eq. (30)] generates zero acceleration. During that vanishingly small time duration, an acceleration of arbitrarily small magnitude can be applied, but of the correct sign, to drive the velocity vector just slightly across the ŷA=0 border and into the safe-passage cone. This small acceleration can be generated either by momentarily using point B of the rod AB as the reference point to generate the acceleration, that is, replace ŷA and gA in Eq. (30) by ŷB and gB, respectively, or alternatively, apply a small acceleration along the unit vector corresponding to V×AX×V.


Once the velocity vector is just inside the safe-passage cone (i.e., ŷA(t)<0, ∂yA/∂αp<0), K switches to a negative value, causing the error eA(t) to increase and ŷA(t) to become more negative as the velocity vector is driven deeper inside the safe-passage cone. When ∂yA/∂αp switches from negative to positive, K switches to positive, and this causes eA(t) to be driven to zero as also ŷA(t). The overall trajectory of ŷA(t) is then as shown in FIG. 15D. A corresponding argument holds for case B3. In this case, ŷA(t) evolves as












y
^

A



(
t
)


=

{







y
^



(
0
)




e


-

K
0



t



,




0

t


t
1








ɛ
2



e



K
0



(

t
-

t
1


)


,







t
1


t


t
2










y
^

min



e

-


K
0



(

t
-

t
1

-

t
2


)





,





t
2


t


t
3










(
36
)








where t1 is the time at which V has aligned with AX, and t2 is the time at which ŷA=ymin occurs. K0 can be chosen such that, for the chosen values of t1, t2 satisfying t1<t2<tm, the following:










K
0

>

max


{



1

t
1









𝓃







y
^

A



(
0
)


ϵ




,


1


t
2

-


1










𝓃





ϵ
2


y
min





,


1


t
m

-

t
2

-

t
1




ℓ𝓃






y
^

min

ϵ





}






(
37
)







Case C: ŷA(0)>0, Choose VrA(0)K>such that 0.


Cases C2 and C3: Choose K such that









K
=

{





-

K
0


,





if







V
rA



(
t
)



>
0







K
0

,






if







V
rA



(
t
)



<
0

,




y
^

A



(
t
)


>
0










(
38
)








where K0>0. Consider case C2 for the purpose of illustration. The initial negative value of K will increase the error eA(t), and equivalently ŷA, as the velocity vector is driven away from ŷA=0, VrA>0 line and into the VrA<0 region. This causes ŷA(t) to increase to its maximum value. After entering the VrA<0 region, K is made positive, and the velocity vector is driven toward AX, as ŷA(t) decreases to zero. The overall trajectory of ŷA(t) is as shown in FIG. 15E. A corresponding argument holds for case C3. In this case, ŷA(t) evolves according to the following equations:












y
^

A



(
t
)


=

{








y
^

A



(
0
)




e


K
0


t



,




0

t


t
1










y
^

max



e

-


K
0



(


t
2

-

t
1


)





,





t
1


t


t
2










(
39
)








where ŷmax represents the maximum value of ŷA, and t1 represents the time at which this maximum value is attained. K0 can be chosen such that, for a given t1<tm, the following:










K
0

>

max


{



1

t
1



ℓ𝓃







y
^

A



(
0
)



y
max





,


1


t
m

-

t
1










𝓃






y
^

max

ϵ





}






(
40
)







Cases C1 and C4: Choose K such that:









K
=

{





-

K
0


,





if







V
rA



(
t
)



>
0







K
0

,






if







V
rA



(
t
)



<
0

,




y
^

A



(
t
)


>
0









-

K
0



sgn






(




y
A





α
p



)


,





if








y
^

A



(
t
)



<
0









(
41
)








where K0>0. Consider case C1 for the purpose of illustration. The discussion for the initial portion of the ŷA trajectory is identical to that of case C2, until the time when the velocity vector just enters the safe passage cone. Once inside the safe-passage cone, K is negative, causing ŷA(t) to become more negative and the velocity vector to be driven deeper inside the safe-passage cone, after which K becomes positive again, causing ŷA to go to zero. The overall trajectory of ŷA(t) is as shown in FIG. 15F. A corresponding argument holds for case C4. Equations for the time evolution of ŷA and a lower bound on K0 can be determined in a manner similar to the previous cases.


Case D: ŷA0<0, VrA(0)>0.


Cases D1 and D4: Choose K such that:









K
=

{






K
0


sgn






(




y
A





α
p



)


,






if








y
^

A



(
t
)



<
0

,






V
rA



(
t
)


>
0







-

K
0


,






if








y
^

A



(
t
)



>
0

,






V
rA



(
t
)


>
0







K
0

,






if








y
^

A



(
t
)



>
0

,






V
rA



(
t
)


<
0









(
42
)








with K0>0. Consider case D1 for the purpose of illustration. K is initially negative, thus causing ŷA(t) to become more negative as the velocity vector is driven deeper inside the ŷA<0 region. Because of the change in the sign of ∂yA/∂αp, K then becomes positive, causing ŷA(t) to be driven toward zero, and the velocity vector aligns with thE′, VrA>0 line. Then K switches to a negative value, causing ŷAt to become positive, and this continues until the velocity vector VrA<0 region, at which time K is made positive again, thereby driving ŷA(t) to zero and causing the velocity vector to align with the AX′ line. The overall trajectory of ŷA(t) is shown, for example, in FIG. 15H. A corresponding argument holds for case D4.


Cases D2 and D3: Choose K such that:









K
=

{






-

K
0



sgn






(




y
A





α
p



)


,






if








y
^

A



(
t
)



<
0

,






V
rA



(
t
)


>
0







-

K
0


,






if








y
^

A



(
t
)



>
0

,






V
rA



(
t
)


>
0







K
0

,






if








y
^

A



(
t
)



>
0

,






V
rA



(
t
)


<
0









(
43
)








with K0>0. Consider case D2. Here, K is initially positive, thus driving ŷA(t) to zero, and the velocity vector aligns with the ŷA=0, VrA>0 line. The discussion after that is similar to that of case D1, and the overall trajectory of ŷA(t) is as shown, for example, in FIG. 15G. A corresponding argument holds for case D3.


The discussion in Eqs. (30-43) assumes that point A on the rod AB is chosen as the reference point for the guidance-law computations. Note, however, that the output equation given in Eq. (27) considers a second output ŷB. This is to indicate that, in lieu of point A, point B can also be chosen on the rod as the reference point for computations and write a set of equations similar to Eqs. (30-43) after replacing ŷA by ŷB and gA by gB, where gB is defined by replacing yA, r1, r2, Vθ1, Vθ2, Vφ1, Vφ2, Vr1, Vr2 in Eq. (31) with yB, r1, r2, Vθ1, Vθ2, Vφ1, Vφ2, Vr1, Vr2, respectively. Applying the acceleration aAB would then drive B through the designated goal point in the ellipse. Note, however, that regardless of whether point A or point B is chosen as the reference point, the computed acceleration aAB is generally applied to both points A and B (or, in other words, to the entire rod).


B. Determination of Guidance Plane

The discussion thus far has been about the application of the guidance law [Eq. (30)] on a plane chosen in 3-D space. Next, the plane on which this acceleration is applied is determined. Because (β, α) represents the azimuth and elevation angles, respectively, of the velocity vector VAB of the rod and (δ, γ) represent the azimuth and elevation angles, respectively, of its acceleration vector aAB, the unit vectors {circumflex over (V)}AB and {circumflex over (α)}AB can be defined as the following:

{circumflex over (V)}AB=cos α cos βî+cos α sin βĵ+sin α{circumflex over (k)}  (44)
{circumflex over (α)}AB=cos γ cos δî+cos γ sin δĵ+sin γ{circumflex over (k)}  (45)


Additionally, define the goal point g on the window, through which point A needs to pass, as shown schematically in FIG. 18, which is an illustration of a guidance plane determination. Here, g can lie anywhere in E as long its location is such that it allows enough room for AB to pass through E. For instance, if the length of AB is nearly equal to the major axis of E, then it would make sense to choose g close to the major axis of E. There are two conditions: 1) {circumflex over (α)}AB is perpendicular to {circumflex over (V)}AB, and 2) {circumflex over (α)}AB lies on the plane that contains {circumflex over (V)}AB and Ag or Bg, depending on whether point A or B of the rod is used as the reference point for computation of the guidance law.


The objective of these conditions is to define the plane on which the acceleration [Eq. (30)] acts such that, on this plane, the acceleration acts orthogonal to the velocity vector. The result of this is that the effect of the applied acceleration is to purely rotate the velocity vector of the vehicle, without changing the vehicle speed. This implies that the vehicle does not have to be brought to rest (or experience any speed change) while performing the maneuver through the orifice.


To satisfy condition 1, {circumflex over (V)}AB·{circumflex over (α)}AB=0, which simplifies to the following:

cos α cos γ cos(β−δ)+sin α sin γ=0  (46)


When cos α≠0 and cos γ≠0, Eq. (46) can be written as the following:

cos(β−δ)+tan α tan γ=0  (47)


For condition 2, the plane that contains {circumflex over (V)}AB and Ag can be defined. The unit normal of this plane can be computed as the following:







n
^

=




V
^

AB

×
Ag



Ag







To satisfy condition 2, {circumflex over (n)}^·{circumflex over (α)}AB can be set to zero, which, after some algebraic operations, eventually leads to the following equation:

L cos γ cos δ+M cos γ sin δ+N sin γ=0  (48)
where
L=cos α sin β[r1 sin ϕ1−cz+|ae]−sin α[r1 sin θ1 cos ϕ1−cy]
M=sin α[r1 cos θ1 cos ϕ1−cx]−cos α cos β[r1 sin ϕ1−cz+ae]
N=cos α cos β[r1 sin θ1 cos ϕ1−cy]−cos α sin β[r1 cos θ1 cos ϕ1−cx]  (49)


In the preceding equation, (cx, cy, cz) represent the coordinates of the goal point g measured relative to the center of the ellipse; e is the eccentricity of the ellipse, and it is assumed without loss of generality that the ellipse is oriented with its major axis along the {circumflex over (k)} axis. Equation (49) and FIG. 18 assume that A is chosen as the reference point for the guidance-law computations. If B is chosen as the reference point, then L, M, and N can be correspondingly defined by replacing (r1, θ1, φ1) with (r1, θ1, φ1), respectively. When cos γ≠0,


Eq. (48) can be written as the following:

L cos δ+M sin δ+N tan γ=0  (50)


Solving Eqs. (47) and (50) for the two unknowns γ and δ, leads to the following:











tan
2


γ

=

1



tan
2


α

+

D
2







(
51
)






δ
=

β
-
π
+


cos

-
1




[

tan





α





tan





γ

]







(
52
)





where











D
2

=



[


L





cos





β





tan





α

+

M





sin





β





tan





α

-
N

]

2



[


L





sin





β

-

M





cos





β


]

2






(
53
)







In the special case when D=0, Eqs. (51) and (52) reduce to γ=π/2 α, δ=β. To apply the guidance law to pass the rod AB through the ellipse E, γ and δ are computed using Eqs. (51) and (52) and these angles are used in the guidance law [Eq. (30)].


Finally, on the guidance plane defined previously, the angle of the velocity vector αp evolves as {dot over (α)}p=aAB/VAB. Equivalently, the angles α and β associated with the direction of the velocity vector in 3-D space evolve as follows:

{dot over (α)}=−αAB(cos β cos δ cos γ sin α−cos α sin γ+cos γ sin α sin β sin δ)/VAB  (54)
{dot over (β)}=αAB(cos β cos γ sin δ−cos δ cos γ sin β)/(VAB cos|α)  (55)


The fact that the guidance law does not cause/require VAB=0 to occur, along with the presence of a saturation limit on aAB, ensures that {dot over (α)}p (equivalently, {dot over (α)} and {dot over (β)}) never become unbounded. Thus, the guidance law can never command a vehicle to execute a zero-radius turn that lies beyond the capability of nonholonomic flying vehicles.


C. Choice of Reference Value c

Though the orifice itself lies on a plane (and has an elliptical shape), a spheroidal surface of revolution S is applied to this orifice, to determine the guidance laws [Eq. (30)]. Choosing the reference value as c≤0 in Eq. (27) ensures that the velocity vector of the rod passes through the spheroid S. To ensure that the rod also passes through the ellipse E, the value of c to be chosen depends on the eccentricity of the ellipse. For highly eccentric ellipses, a negative c of arbitrarily small magnitude is adequate, whereas for smaller values of eccentricity, c needs to be negative and of larger magnitude. FIGS. 19A-C depict representation of ellipse with differing eccentricity and their corresponding spheroids. Each of these figures shows E and S for different eccentricities e. For example, in FIG. 19A, the ellipse E is of high eccentricity, and it is sufficient to choose c≤ϵ<0 (where ϵ is a small number) in the guidance law, and the rod will pass through the ellipse. However, in FIG. 19B, the ellipse is of low eccentricity, and if a similar value of c is chosen as in FIG. 19A, point A of the rod will graze the spheroid S but not pass through the ellipse E. Next is discussed determining an appropriate choice of the reference value c, when the ellipse is of low eccentricity.


Consider FIG. 19C, which is a profile view of FIG. 19B and shows the section of the spheroid that is normal to the plane of the elliptical window E. If the rod continues moving at the current relative velocity V, achieved with c≤ϵ<0 in Eq. (30), then the point A will just graze the spheroid and strike the wall on which E lies. Let tm represent the miss time to the spheroid and t2 represent the time at which A will touch the wall on which E lies. Then, at time t2, AC1=z−ae and AC2=z+ae. Incorporating these distances into Eq. (19) results in the following:

(z−ae)2=rm12+V2(t2−tm1)2,(z+ae)2=rm22+V2(t2−tm2)2  (56)

where rm1 (rm2) and tm1 (tm2) represent, respectively, the miss distance and miss time of A to C1 (C2), and V is the magnitude of the relative velocity. From Eq. (19), at time tm, the following results:

r12(tm)=rm12+V2(tm−tm1)2,r22(tm)=rm22+V2(tm−tm2)2  (57)


From the relative velocity measurements, rm1, rm2, tm1, tm2, and tm, can be computed using Eqs. (17), (18), and (20). Use these quantities in Eq. (56) to solve for the unknowns t2 and z. If z>a, then this indicates that c needs to be made more negative in order for AB to go through E. Determining c is described next. For A to graze the top of the ellipse at t2, at t2, the desired values of distance of A to the two foci are AC1;d=a−ae and AC2;d=a+ae. Use the t2 computed from Eq. (56) and incorporate it in Eq. (57) to determine the desired values rm1;d and rm2;d as follows:

rm1,d=√{square root over ((a−ae)2−V2(t2−tm1)2)},
rm2,d=√{square root over ((a−ae)2−V2(t2−tm2)2)}  (58)


Then, substitute Eq. (58) into Eq. (57) to find the desired value of rm;d ≙r1;d(tm)+r2;d(tm) as:

rm,d=√{square root over (a2(1−e)2+V2(tm−t2)(tm+t2−2tm1))}+√{square root over (a2(1−e)2+V2(tm−t2)(tm+t2−2tm2))}  (59)


Finally, use Eq. (59) to compute the reference as c=r2m;d−4a2. In the guidance law, choose K large enough so that yA=c is achieved in t≤tm.


In the limiting case of a circular window of radius a, the surface of revolution is a sphere, and substituting e=0 in Eq. (59), along with tm=tm1=tm2, the result is

rm,d=2√{square root over (a2−V2(tm−t2)2)}  (60)

which, when used in c=r2m;d−4a2, represents a lower bound on the reference value, across all possible eccentricities of the ellipse.


Another factor to be taken into consideration is that the rod can approach the orifice over a certain range of approach angles, with this range depending on the relative sizes of the orifice and the vehicle. This is because the rod only serves as a representation for the vehicle (and is not the actual vehicle itself) that needs to pass through the opening. When the vehicle is a fixed-wing MAV, the rod represents the line joining the wing tips, whereas when the vehicle is a quadrotor, the rod represents a line drawn on the face of the quadrotor. Thus, the physical dimensions of the vehicle pose a restriction on the angle of the trajectory of the equivalent rod as it approaches the window. If AB is slanted, then the guidance laws developed can still guide AB through the orifice at a slanted angle.


D. Example

Next is illustrated the application of the designed guidance law by means of an example. Assume that AB is of length 50 cm and has to pass through an ellipse E of major axis 60 cm and minor axis 19.1 cm. Assuming that E is oriented with its major axis vertical (as in FIG. 16), and without loss of generality, the initial orientation of AB is parallel to the major axis of the ellipse (if the initial orientation of AB is different from this, the guidance law would guide AB through the ellipse at a slanted angle). The initial location of AB is 20 m away along the normal to the wall on which E lies and off set to the left of the center of E by 6 m, and the lower end of AB is at the same height as the center of E. For this initial configuration, r1=20.88 m, r2=20.89 m, θ12=163.3°, ϕ1=−0.7°, ϕ2=−2°, r1=r2=20.88 m, θ1=θ2=163.3°, ϕ1=0.63°, and ϕ2=−0.63°. The initial velocity of AB is 5 m/s, acting at azimuth angle β=290° and elevation angle α=−10°. This leads to initial relative velocity components of Vr1=2.93 m/s, Vr2=2.91 m/s, Vθ1=Vθ2=−3.95 m/s, Vϕ1=0.9 m/s, Vϕ2=0.7 m/s, Vr1=2.95 m/s, Vr2=2.93 m/s, Vϕ1=Vϕ2=−3.95 m/s, Vϕ1=0.83 m/s, Vϕ2=0.9 m/s.


As shown in Eq. (21) that yA(0)=1149.3 m2 and yB(0)=1139.8 m2, VrA(0)=118.5 m3/s3, VrB(0)=118.9 m/s. The initial miss times for A and B are determined using Eq. (20) to be tmA−2.44 s and tmB−2.45 s, respectively. The positive initial values of VrA and VrB (equivalently, the negative initial miss times of tmA and tmB) indicate that the initial velocity is taking AB in a direction opposite to E. Assume that B is chosen on the rod as the point about which the guidance law is referenced. The signs of the initial values of yB and VrB indicate that this corresponds to case C, shown in FIG. 13.


The guidance laws [Eq. (30)] are employed, with an initial negative K=−0.5, followed by a positive K=3.5, with the switching occurring when VrB changes sign from positive to negative. Equations (51) and (52) are used to determine the plane on which this guidance law is applied. The state trajectories associated with point B are depicted, for example, in FIGS. 20A-D, which depicts state responses associated with point B on AB. FIG. 20A shows the time history of the distance of B to the two foci, that is, r1t and r2t, from which it is evident that the closest approach of B to E occurs at t 6.55 s. Initially, r1 and r2 are nearly equal, and the difference between them increases as B gets closer to E. FIG. 21 depicts the difference of distances of point B to the two foci, for example, showing the time history of r1t−r2t. At the instant of closest approach, r1−r2 is around 46 cm, which is a significant fraction of the 60 cm major axis of E. FIGS. 20B-D show the time histories of the relative velocity component s associated with the LOSs BC1 and BC2, shown in FIG. 16.



FIG. 22 shows the values of the output quantity ŷ=yB, along with yA. Because of the initial negative value of K, ŷ increases until the time when VrB=0 is attained (around t 1.4 s), at which time K is switched to a positive value, causing ŷB to subsequently decrease to zero. Note that this change in ŷB is physically brought about by the changing direction of the velocity vector of AB (as a consequence of the commanded acceleration generated by the guidance law). With increasing time, ŷB eventually goes to zero, whereas yA attains a constant negative value. This means that the rod AB passes through E in a manner such that B grazes the inner boundary of E, whereas A passes through the interior of E, with the acceleration and velocity profile shown in FIGS. 23A-D, which depicts representations of example acceleration magnitude aAB of AB (FIG. 23A), speed of AB (FIG. 23B), azimuth angle β of velocity vector of AB (FIG. 23C), and elevation angle α of velocity vector AB (FIG. 23D).



FIG. 24 shows the trajectory of AB in (x, y, z) space as AB passes through elliptical orifice E. FIGS. 25A-C show the time histories of the trajectory along the x, y, and z axes. The x-y plane is the horizontal plane, while the z axis is the vertical axis. The rod passes through E at the instant when x=−20, y=6, which corresponds to the location of the center of E relative to the initial position of AB. The initial velocity of AB has an azimuth angle β(0) carrying AB away from E, and this is shown by the positive value of x(t) and the negative value of y(t) (FIGS. 25A and 25B) until t=1.5 s and t=1.8 s, respectively. As a consequence of the acceleration generated by the guidance law, the velocity vector is rotated so that AB turns toward E, and this is shown by the change in signs of x(t) and y(t). Similarly, the initial velocity of AB has an elevation angle α0 carrying AB downward (FIG. 25C), and this continues until about t=2.1 s before it changes direction (as a consequence of the guidance law) and begins to move toward and into E. FIG. 23A shows the acceleration magnitude, where it briefly hits the saturation limit of 10 m/s2 because gB=0 occurs around the t=1.5 s mark. (A discussion of scenarios where this can occur is provided later in Sec. VII. A.) FIGS. 23C-D demonstrate the time histories of the azimuth and elevation angles β and α, respectively. FIG. 23B shows that the speed of the vehicle remains constant throughout, thus demonstrating that the acceleration was applied perpendicular to the velocity vector and used solely to bend the trajectory of the vehicle appropriately to pass it through the elliptical hole. FIGS. 26A-B shows the time histories of the elevation and azimuth angles γ and δ, respectively, which define the direction of the acceleration vector aAB.


V. Guidance Law for Flying Through a Moving Orifice

Because the guidance law [Eq. (30)] has been derived in a relative velocity framework, it can be applied for moving orifices as well. The only change from the stationary orifice case is the way in which the plane on which the acceleration is applied (equivalently, the angles γ and δ) is determined.


A. Determination of the Guidance Plane

The modification required in the moving orifice case is that a computation of the predicted goal point is performed. This is achieved using the predicted miss time tm from Eq. (20) by simply replacing the terms cx, cy, cz in Eq. (49) by cx(t), cy(t), cz(t) as follows:

cx(t)=cx(0)+Vo cos αo cos βo max(tm,0)
cy(t)=cy(0)+Vo cos αo cos βo max(tm,0)
cz(t)=cz(0)+Vo sin αo max(tm,0)  (61)

where Vo is the speed of the orifice, and (βo, αo) are the azimuth and elevation angles of the velocity vector of the orifice. The term max(tm, 0) ensures that negative miss times are not used in the computation of the guidance plane. Note that the predicted location of the goal point is not necessarily accurate for initial times but converges to the true location of the goal point as t approaches tm. Because of this, the plane on which the guidance law is applied can change with time. The discussion in Sec. III.B therefore needs to be modified in the moving orifice case to the extent that, at initial times, the computed plane may not necessarily contain the relative velocity vector but instead contains only the velocity vector {circumflex over (V)}AB of AB. With increasing time, however, and as t approaches tm, the computed plane converges to one that contains the relative velocity vector.


B. Example

Assume the initial location of E to be the same as in the previous example, and E is moving with Vo=1 m/s acting at an azimuth angle βo=90° and an elevation angle αo=20°. The initial location and velocity of AB are the same as in the previous example. Thus, r1(0), r2(0), r1(0), r2(0), θ1(0), θ2(0), θ1(0), θ2(0), ϕ1(0), ϕ2(0), ϕ1(0), and ϕ2(0) are the same as in the previous example. However, because E is moving, the initial relative velocity components are now given as Vr1=3.19 m/s, Vr2=3.16 m/s, Vθ1=Vθ2=−4.85 m/s, Vϕ1=1.25 m/s, Vϕ2=1.32 m/s, Vr1=3.23 m/s, Vr2=3.19 m/s, Vθ1=Vθ2=−4.85 m/s, Vϕ1=1.17 m/s, Vϕ2=1.25 m/s. This results in yA(0)=1243.9 m2, yB(0)=1233.8 m2, VrA(0)=189.67 m3/s3, and VrB(0)=190.72 m/s. The initial miss times for A and B are tmA−1.88 s and tmB−1.9 s, respectively. Assume that point B of the rod is chosen as a reference to our guidance law. The signs of the initial values of yB and VrB indicate that this corresponds to case C shown in FIG. 13. The guidance laws are employed [Eq. (30)], with an initial K=−0.5, followed by K=3.5, with the switching occurring when VrB changes sign from positive to negative.



FIG. 27 shows example trajectories of AB and E in (x, y, z) space, and as is evident, AB passes through E, grazing its lower boundary. FIG. 28 shows the values of the output quantity ŷB, along with yA. As in the previous example, ŷB shows an initial increase until the time when VrB=0 is attained (around t 1.3 s), after which it decreases to zero, whereas yA attains a constant negative value. As before, this means that the rod AB passes through E in a manner such that B grazes the inner boundary of E, whereas A passes through the interior of E. FIGS. 29A-D show the acceleration magnitude (FIG. 29A), the speed (FIG. 29B), the time history of β (FIG. 29C), and the time history of α (FIG. 29D). Finally, FIGS. 30A-B shows the time histories of γ and δ, respectively. Note that, in this example (and unlike the previous example), the plane on which the acceleration is applied changes with time. When tmB is negative, as shown in FIG. 31, which depicts miss time of point B to the ellipse E, the “predicted” location of the goal point on the ellipse is actually the same as the current goal point. After tmB becomes positive (around t=1.3 s), tmB first increases and then decreases, and this causes the predicted location of the goal point to change accordingly, before converging to the true value. This changing location of the predicted goal point causes the plane on which the acceleration is applied to change from one moment to the next, thereby making the acceleration unit vector trace a curve in 3-D space.


VI. Guidance Law for Flying Through a Moving and Closing Orifice

This section develops guidance laws to guide the rod AB through an elliptical orifice that is decreasing in size. It is assumed that the length of the semimajor axis a(t) of the ellipse E is governed by a dynamic equation {dot over (α)}=fa(·), where fa(·) is an arbitrary nonlinear function that is lower-bounded in the sense that, by the time AB reaches E, the major axis of E is still slightly larger than the length of AB.


A. Determination of Guidance Law

The requisite kinematic state equations are obtained by appending the equation {dot over (α)}=fa(·) to those stated in Eq. (25). The output equation remains identical to that given in Eq. (27). In taking the derivative of the output equation, the result is {dot over (y)}A=(∂yA/∂xA){dot over (x)}A, and thus:











y
.

A

=




[





y
A





r
1








y
A





θ
1








y
A





ϕ
1








y
A





V
θ1








y
A





V
ϕ1








y
A





V

r





1









y
A





r
2








y
A





θ
2








y
A





ϕ
2








y
A





V
θ2








y
A





V
ϕ2








y
A





V

r





2









y
A




a



]

×




[



r
.

1








θ
.

1








ϕ
.

1








V
.

θ1








V
.

ϕ1








V
.


r





1









r
.

2








θ
.

2








ϕ
.

2








V
.

θ2








V
.

ϕ2








V
.


r





2








a
.


]

T








(
62
)







It is noted that Eq. (62) is different from Eq. (29) due to the presence of the ∂yA/∂a and {dot over (α)} terms. From Eq. (21), the result is that ∂yA/∂a=∂yB/∂a=−8a. As before, define an error signal eA(t)=w(t)−ŷA(t), where w(t) is a reference input. Thus, {circumflex over ({dot over (y)})}A={dot over (w)}−ėA. Taking w(t=0 for all t and enforcing the error dynamics to be ėA=−KeA, leads {circumflex over ({dot over (y)})}=KeA=−KŷA. Substitute this in Eq. (62) to eventually obtain the following:










a
AB

=




-
K




y
^

A


+

8

a


a
.




g
A






(
63
)







The computation of the plane (that is, the angles γ and δ), on which the acceleration generated by Eq. (63) is applied, as well as the state dependent switching of the sign of K, is identical to the previous cases.


B. Example

The numerical parameters in this example are identical to those of the previous example, except that the size of E is now decreasing. Thus, E is both moving as well as decreasing in size. FIGS. 32A-B show representations of time history of the semimajor axis of an ellipse and the distance of B to the two foci. FIG. 32A shows the time history of the semimajor axis of the ellipse, which is constant at its initial value of a 30 cm from t=0 to t=3 s, after which it decreases to a=26 cm at t=7 s. The equation governing the reduction in major axis is assumed to be the following:












a
.

+

a
30


=
0

,





3

t


7





s






(
64
)







It is assumed that AB is moving with its maximum speed of 5 m/s (same as in the previous examples), so that simply speeding up and attempting to pass through the orifice early while maintaining the exact same trajectory in the (x, y, z) space as in the previous example is not an option. The initial relative location of AB to the ellipse is the same as in the previous example, and AB now employs the guidance law [Eq. (63)] to fly through E. FIG. 32B shows the time history of r1 and r2, which shows that the time of closest approach occurs at around t=7.1 s, at which time a 26 cm. FIG. 33 depicts an example 3D trajectory of AB as it passes through an example moving and closing ellipse E.



FIGS. 34A-C depict example representations of output responses, azimuth angle, and elevation angle. FIG. 34A plots the values of yA(t) and yB(t). It is seen that yB=0 and yA<0 at the instant of closest approach (t=7.1 s), thus indicating that AB passes through E. The corresponding values of yA(t) and yB(t) for the nonclosing case (of the previous example) are also shown alongside in dashed lines, for purposes of comparison (figures in the bottom row are zoomed-inversions of the rectangular regions shown in the top row). It can be seen that the value of yA in the final stages is higher for the closing-ellipse scenario, which makes sense because the miss distance of both A and B to the ellipse is obviously less negative when the ellipse is closing. FIGS. 34B-C demonstrate the time histories β(t) and α(t), with the corresponding curve for the nonclosing case also shown alongside in dashed lines. The final value of α in the closing ellipse case is higher than in the nonclosing scenario, thus demonstrating that the guidance law [Eq. (63)] successfully generates the additional component to f acceleration required to bend the trajectory of AB so that it passes through E while grazing its lower boundary.


VII. Guidance-Law Considerations

A. Singular Cases in Guidance Law


This subsection discusses the scenarios where gA [in Eq. (30)] becomes zero, making the commanded guidance law singular. The objective of Eq. (30) is to achieve yA=c or, equivalently, to rotate {circumflex over (V)}AB so that the aiming point of A lies on the desired c contour. Each c contour corresponds to an ellipse that is confocal with the original ellipse E (see FIG. 14). From Eq. (28), one can infer that when gA=0 at some time t1, it means that, at that instant in time, application of any acceleration aAB (regardless of its magnitude) does not influence {dot over (y)}A and is thus not driving yA toward c. Broadly speaking, this can happen under the following scenarios. Scenario A: At t=t1, {circumflex over (α)}AB becomes parallel to the unit relative velocity vector.


Scenario B: At t=t1, the aiming point of A lies on the line C1C2 joining the two foci of E.


When scenario A occurs, aAB does not have any component normal to the relative velocity vector, and therefore the relative velocity vector does not rotate. γ, δ is chosen in Eqs. (51) and (52) such that {circumflex over (α)}AB is always normal to {circumflex over (V)}AB. Therefore, for stationary orifices, scenario A can never occur. For moving orifices, scenario A can occur in the specific case when the relative velocity vector VR lies perpendicular to {circumflex over (V)}AB. FIGS. 35A-B are illustrations of singular cases, and FIG. 35A is an illustration of this scenario.


Scenario B occurs only if, at any point during the maneuver, the instantaneous aiming point of A is not aiming at a “valid” ellipse. A valid ellipse would be any ellipse that is confocal with E, and one can see that all of the physical space inside and outside E can be thought of as lying on a valid ellipse, except for the line C1C2. Because the foci of an ellipse always need to lie inside the ellipse, there can therefore be no ellipse that is confocal with E and whose major axis is smaller than C1C2. Scenario B can occur in the following two ways: at an isolated instant in time, such as when the aiming point sweeps across C1C2, say from left to right in FIGS. 35A-B (scenario B1), and over a finite time interval, which is when the aiming point sweeps along C1C2, say from top to bottom in FIG. 35B (scenario B2).


In the cases when scenarios A and B1 occur, aAB is allowed to hit its saturation limit at t t1. The velocity vector thus continues to rotate at t=t1; this drives gA away from zero, and Eq. (30) returns to generating a finite acceleration. When scenario B2 occurs, an option is to switch to using point B on the rod as the reference point for guidance-law computation. As long as the projected length of the rod on the line C1C2 is greater than 2ae, at least one of the ends A and B of the rod will have an aiming point that is not on C1C2, and as a consequence, at least one of gA and gB will be nonzero. If the projected length of the rod is smaller than 2ae, then scenario B2 can lead to both gA and gB being zero, and the work around then would be to define a new set of foci on the line C1C2, which are apart by a distance smaller than the length of the rod, and use the same guidance law [Eq. (30)].


VIII. Conclusions

This document uses a safe-passage cone framework to derive analytical nonlinear guidance laws that enable a robot with ideal (double integrator) dynamics to perform a precise maneuver through an orifice in 3-D space. The orifice and the robot are both modeled by elliptical shapes, and their relative sizes are such that the orifice is only slightly larger than the robot. The orifice may be moving, and its size may change with time. The guidance laws are sufficiently general in nature so as to enable their integration with vehicles of different types of dynamics, and the working of the guidance law is illustrated through simulation results.


While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular implementations of particular inventions. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.


Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.


Thus, particular implementations of the subject matter have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.

Claims
  • 1. A method of autonomously controlling a vehicle through an opening, the method comprising: identifying, by a local controller onboard the vehicle, the opening and its position relative to the vehicle;determining, by the local controller onboard the vehicle, a safe passage cone defining a target three-dimensional (3D) space for the vehicle to travel through in order to pass through the opening without colliding with structures defining the opening; andrepeatedly applying, by the local controller onboard the vehicle, a control feedback loop defining a guidance law to guide the vehicle through the safe passage cone and the opening, the control feedback loop iteratively evaluating and adjusting movement of the vehicle relative to the safe passage cone and the opening until the vehicle has passed through the safe passage cone and the opening, wherein each iteration of the control feedback loop comprises:identifying, using one or more local sensors onboard the vehicle, (i) a relative velocity vector of the vehicle with regard to the safe passage cone and the opening and (ii) an orientation for the vehicle;determining, by the local controller, an acceleration vector that will direct the vehicle through the safe passage cone and the opening based on the relative velocity vector of the vehicle and the orientation of the vehicle, andcontrolling, by the local controller, one or more kinematic devices that are part of the vehicle according to the determined acceleration for the vehicle.
  • 2. The method of claim 1, wherein: the local controller is programmed to guide the vehicle along a predetermined path so that the vehicle passes through the safe passage cone and the opening, andthe acceleration vector is determined so that the magnitude of the velocity vector of the vehicle is kept constant while the vehicle travels along the predetermined path.
  • 3. The method of claim 2, wherein: the opening changes position during application of the control feedback loop,each iteration of the control feedback loop further comprises: identifying, by the controller, the current position of the safe passage cone and the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current position of the safe passage cone and the opening.
  • 4. The method of claim 2, wherein: the opening changes size during application of the control feedback loop,each iteration of the control feedback loop further comprises: identifying, by the controller, the current size of the safe passage cone and the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current size of the safe passage cone and the opening.
  • 5. The method of claim 1, wherein at least a portion of the predetermined path has a curvature.
  • 6. The method of claim 1, wherein the acceleration vector is determined using the following equations: aAB=−KŷA/gA;{circumflex over (V)}AB=cos α cos βî+cos α sin βĵ+sin α{circumflex over (k)}; and{circumflex over (α)}AB=cos γ cos δî+cos γ sin δĵ+sin γ{circumflex over (k)},wherein aAB defines the acceleration vector, and {circumflex over (V)}AB and {circumflex over (α)}AB define unit vectors of the acceleration vector.
  • 7. The method of claim 1, wherein: the vehicle comprises an autonomous aerial vehicle, andthe autonomous aerial vehicle is controlled in three-dimensional space through the safe passage cone and the opening.
  • 8. The method of claim 7, wherein the one or more kinematic devices include one or more of the following: elevator control device, aileron control device, rudder control device, and rotor thrust control device.
  • 9. A vehicle that is capable of autonomously moving through an opening, comprising: one or more onboard environment sensors that provide environmental information related to the current environment of the vehicle,an onboard vehicle state sensor that provides information indicating a velocity vector of the vehicle and an orientation for the vehicle,one or more onboard kinematic devices that control the movement of the vehicle,an onboard controller that is programmed to repeatedly apply a control feedback loop to guide the vehicle through (i) an opening having a relative position provided by the one or more onboard environment sensors and (ii) a safe passage cone determined by the onboard controller and defining a 3D space for the vehicle to travel through in order to pass through the opening without colliding with structures defining the opening, the control feedback loop iteratively evaluating and adjusting movement of the vehicle relative to the safe passage cone and the opening until the vehicle has passed through the opening, wherein each iteration of the control feedback loop comprises:identifying, using the one or more state sensors onboard the vehicle, (i) a relative velocity vector of the vehicle with regard to the safe passage cone and the opening and (ii) an orientation for the vehicle;determining, by the local controller, an acceleration vector that will direct the vehicle through the safe passage cone and the opening based on the relative velocity vector of the vehicle and the orientation of the vehicle, andcontrolling, by the local controller, the one or more kinematic devices that are part of the vehicle according to the determined acceleration for the vehicle.
  • 10. The vehicle of claim 9, wherein: the local controller is programmed to guide the vehicle along a predetermined path so that the vehicle passes through the safe passage cone and the opening, andthe acceleration vector is determined so that the magnitude of the velocity vector of the vehicle is kept constant while the vehicle travels along the predetermined path.
  • 11. The vehicle of claim 10, wherein at least a portion of the predetermined path has a curvature.
  • 12. The vehicle of claim 9, wherein the controller is programmed to determine the acceleration vector using the following equations: aAB=−KŷA/gA;{circumflex over (V)}AB=cos α cos βî+cos α sin βĵ+sin α{circumflex over (k)}; and{circumflex over (α)}AB=cos γ cos δî+cos γ sin δĵ+sin γ{circumflex over (k)},wherein aAB defines the acceleration vector, and {circumflex over (V)}AB and {circumflex over (α)}AB define unit vectors of the acceleration vector.
  • 13. The vehicle of claim 9, wherein: the vehicle comprises an autonomous aerial vehicle, andthe controller is programmed to control the vehicle in three-dimensional space through the safe passage cone and the opening.
  • 14. The vehicle of claim 13, wherein the one or more kinematic devices include one or more of the following: elevator control device, aileron control device, rudder control device, and rotor thrust control device.
  • 15. The vehicle of claim 9, wherein: the controller is programmed to guide the vehicle through an opening that changes position during application of the control feedback loop,each iteration of the control feedback loop further comprises: identifying, by the controller, the current position of the safe passage cone and the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current position of the safe passage cone and the opening.
  • 16. The vehicle of claim 9, wherein: the controller is programmed to guide the vehicle through an opening that changes size during application of the control feedback loop,each iteration of the control feedback loop further comprises: identifying, by the controller, the current size of the safe passage cone and the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current size of the safe passage cone and the opening.
  • 17. A system for directing a vehicle through an opening, comprising: one or more environment sensors that provide environmental information related to the current environment of the vehicle,a vehicle state sensor that provides information indicating a velocity vector of the vehicle and an orientation for the vehicle,one or more onboard kinematic devices that control the movement of the vehicle,a controller that is programmed to repeatedly apply a control feedback loop to guide the vehicle through (i) an opening having a relative position provided by the one or more environment sensors and (ii) a safe passage cone determined by the controller and defining a 3D space for the vehicle to travel through in order to pass through the opening without colliding with structures defining the opening, the control feedback loop iteratively evaluating and adjusting movement of the vehicle relative to the safe passage cone and the opening until the vehicle has passed through the opening, wherein each iteration of the control feedback loop comprises:identifying, using the one or more state sensors, (i) a relative velocity vector of the vehicle with regard to the safe passage cone and the opening and (ii) an orientation for the vehicle;determining, by the controller, an acceleration vector that will direct the vehicle through the safe passage cone and the opening based on the relative velocity vector of the vehicle and the orientation of the vehicle, andcontrolling, by the controller, the one or more kinematic devices that are part of the vehicle according to the determined acceleration for the vehicle.
  • 18. The system of claim 17 wherein one of the one or more environment sensors is remote from the vehicle.
  • 19. The system of claim 17 wherein the controller is remote from the vehicle.
  • 20. The system of claim 17 wherein the controller is local to the vehicle, and is programmed to receive signals from a controller that is remote from the vehicle, the local controller being programmed to switch between: controlling the one or more kinematic devices that are part of the vehicle according to the local controller's determined acceleration for the vehicle based on the application of the control feedback loop, andcontrolling the one or more kinematic devices that are part of the vehicle according to the signals received from the controller that is remote from the vehicle.
  • 21. The system of claim 17, wherein: the controller is programmed to guide the vehicle along a predetermined path so that the vehicle passes through the safe passage cone and the opening, andthe acceleration vector is determined so that the magnitude of the velocity vector of the vehicle is kept constant while the vehicle travels along the predetermined path.
  • 22. The system of claim 21, wherein at least a portion of the predetermined path has a curvature.
  • 23. The system of claim 17, wherein the controller is programmed to determine the acceleration vector using the following equations: aAB=−KŷA/gA;{circumflex over (V)}AB=cos α cos βî+cos α sin βĵ+sin α{circumflex over (k)}; and{circumflex over (α)}AB=cos γ cos δî+cos γ sin δĵ+sin γ{circumflex over (k)},wherein aAB defines the acceleration vector, and {circumflex over (V)}AB and {circumflex over (α)}AB define unit vectors of the acceleration vector.
  • 24. The system of claim 17, wherein: the controller is programmed to guide the vehicle through an opening that changes position during application of the control feedback loop,each iteration of the control feedback loop further comprises: identifying, by the controller, the current position of the safe passage cone and the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current position of the safe passage cone and the opening.
  • 25. The system of claim 17, wherein: the controller is programmed to guide the vehicle through an opening that changes size during application of the control feedback loop,each iteration of the control feedback loop further comprises: identifying, by the controller, the current size of the safe passage cone and the opening relative to the vehicle, wherein the relative velocity vector and the acceleration vector are determined based, at least in part, on the current size of the safe passage cone and the opening.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application Ser. No. 62/483,598, filed Apr. 10, 2017. The disclosure of the prior application is considered part of (and is incorporated by reference in) the disclosure of this application.

GOVERNMENT GRANTS

The material described in this application was developed based on Grants IIS-1351677 and CNS-1446557 from the National Science Foundation.

US Referenced Citations (3)
Number Name Date Kind
20160364989 Speasl Dec 2016 A1
20170187993 Martch Jun 2017 A1
20180204470 Rezvani Jul 2018 A1
Related Publications (1)
Number Date Country
20180290747 A1 Oct 2018 US
Provisional Applications (1)
Number Date Country
62483598 Apr 2017 US