Abstract:
A computer-implemented method is provided for automatically guiding a first vehicle to maintain a position relative to a second vehicle traveling in a given area. The method includes the steps of: (a) receiving location data on the first and second vehicles; (b) determining a legal travel path in the given area from the first vehicle toward an expected position of the second vehicle; (c) automatically controlling the first vehicle to travel along the legal travel path; and (d) repeating steps (a) through (c) to automatically move the first vehicle to a relative position from the second vehicle and then to automatically maintain the relative position as the first and second vehicles travel through the given area.

Description:
BACKGROUND 
       [0001]    The present application relates generally to automatically driven vehicles and, more particularly, to a method and system for automatically driving and dynamically positioning a vehicle relative to another in motion. 
       BRIEF SUMMARY OF THE DISCLOSURE 
       [0002]    In accordance with one or more embodiments, a computer-implemented method is provided for automatically guiding a first vehicle to maintain a position relative to a second vehicle traveling in a given area. The method includes the steps of: (a) receiving location data on the first and second vehicles; (b) determining a legal travel path in the given area from the first vehicle toward an expected position of the second vehicle; (c) automatically controlling the first vehicle to travel along the legal travel path; and (d) repeating steps (a) through (c) to automatically move the first vehicle to a relative position from the second vehicle and then to automatically maintain the relative position as the first and second vehicles travel through the given area. 
         [0003]    In accordance with one or more further embodiments, a first vehicle is provided that is configured to automatically maintain a position relative to a second vehicle traveling in a given area. The first vehicle includes a vehicle drive system, an obstacle detection system for detecting obstacles in a vehicle travel path, a vehicle state property estimation system for estimating state properties of the vehicle, and a microprocessor-based vehicle controller receiving data from the obstacle detection system and the vehicle state property estimation system. The vehicle controller is configured to: (i) receive location data on the first vehicle from the vehicle state property estimation system, and to receive location data on the second vehicle; (ii) determine a legal travel path in the given area from the first vehicle toward an expected position of the second vehicle; (iii) automatically control the vehicle drive system to drive the first vehicle along the legal travel path; and (iv) repeat (i) through (iii) to automatically move the first vehicle to a relative position from the second vehicle and then to automatically maintain the relative position as the first and second vehicles travel through the given area. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0004]      FIG. 1  is an illustration showing an exemplary tractor maintaining a relative position from a harvester in accordance with one or more embodiments. 
           [0005]      FIG. 2  is a simplified block diagram illustrating components of a first vehicle in accordance with one or more embodiments. 
           [0006]      FIG. 3  is a simplified illustration showing the trailer angle between the tractor and a conveyance. 
           [0007]      FIG. 4  is a simplified diagram illustrating an exemplary field in which an automated tractor can operate. 
           [0008]      FIG. 5  is a simplified state diagram illustrating various states of the automated vehicle in accordance with one or more embodiments. 
           [0009]      FIG. 6  is a simplified diagram illustrating a harvester. 
           [0010]      FIG. 7  is a simplified diagram illustrating varying load positions in a conveyance. 
           [0011]      FIG. 8  is a simplified diagram illustrating calculation of the tractor path in accordance with one or more embodiments. 
       
    
    
       [0012]    Like or identical reference numbers are used to identify common or similar elements. 
       DETAILED DESCRIPTION 
       [0013]    Various embodiments disclosed herein are directed to methods and systems for automatically driving and dynamically positioning a vehicle (referred to herein as a “first” vehicle) relative to another vehicle (referred to herein as a “second” vehicle). In some embodiments, the first vehicle is towing a conveyance, and it is controlled such that the conveyance is positioned accurately relative to the second vehicle, while the second vehicle is in motion. In some embodiments, the first vehicle is controlled to move between a designated parking area and a position relative to the second vehicle. 
         [0014]    Such methods and systems can have a variety of applications including, e.g., agricultural applications. By way of example, as shown in  FIG. 1 , the first vehicle is an automatically driven tractor  10 , the towed conveyance is a grain cart  12 , and the second vehicle is a harvester  14 . The parking area contains a semi truck into which the grain cart  12  is offloaded after having been filled. In this example, the harvester  14  offloads harvested corn, soy, or other product into the grain cart  12  as the grain cart  12  is towed alongside the harvester  14  by the tractor  10 . When the grain cart  12  is filled, the tractor  10  tows it to the parking area to be offloaded into the semi truck. When the grain cart  12  is empty, the tractor  10  tows it back out to the harvester  14 , which has remained in motion, to begin taking offloaded product again. 
         [0015]    For simplicity, various exemplary embodiments disclosed herein refer to the grain cart example. However, it should be understood that there are many other possible applications for the methods and systems described herein, including agricultural and non-agricultural applications. Other possible applications can include, but are not limited to, mining, oil and gas exploration, defense, first response, and materials handling. 
         [0016]    The second vehicle  14 , which the first vehicle  10  is controlled to be positioned relative thereto, can be operated in various ways, including by a human driver inside the vehicle. Alternately, the second vehicle  14  can be tele-operated (i.e., remotely operated) by a human outside the vehicle or it can be driven entirely automatically. 
         [0017]    Various embodiments disclosed herein discuss the positioning of the towed conveyance  12  relative to the second vehicle  14 . However, techniques disclosed herein are also applicable to the case where the second vehicle  14  is also towing a conveyance, and the dynamic positioning of the first conveyance is relative to the second conveyance. In some embodiments, the second vehicle  14  can tow a conveyance, and the dynamic positioning of the first vehicle  10  is relative to the conveyance of the second. In further embodiments, neither vehicle tows a conveyance, and the first vehicle  10  is controlled such that it is dynamically positioned relative to the second vehicle  14 . 
         [0018]      FIG. 2  is a simplified block diagram illustrating components of the automated first vehicle  10  in accordance with one or more embodiments. The first vehicle  10  includes a vehicle drive system  16  or chassis for moving the vehicle. The first vehicle  10  also includes an obstacle detection system  18  including one or more range sensors for detecting obstacles  36  (shown in  FIG. 4 ) in the vehicle travel path. The first vehicle  10  also includes a vehicle state property estimation system  20  comprising one or more sensors for estimating state properties of the vehicle. It further includes a microprocessor-based vehicle controller  22 , which receives inputs from the obstacle detection system  18  and the vehicle state property estimation system. The vehicle controller  22  also receives data on estimated state properties from the second vehicle  14 . The vehicle controller  22  controls operation of the drive system  16  and is programmed to maneuver the vehicle in a desired manner, including dynamically positioning the first vehicle  10  relative to the second vehicle  14 . 
         [0019]    In various exemplary embodiments described herein, the vehicle controller  22  is physically located within the body of the first vehicle  10 . It should be understood, however, that in other embodiments, the vehicle controller  22 , or portions of the controller, could be located outside of the first vehicle  10 . Such separation of physical location of the electronics and software for controlling the first vehicle  10  is contemplated herein. Moreover, while in the exemplary embodiments discussed herein indicate information is sent to or from the first vehicle  10 , that is intended to mean information sent to or from the vehicle controller  22 , wherever it may be physically located. 
       Determining Vehicle Positions 
       [0020]    The vehicle state property estimation system  20  in the first vehicle  10  estimates several state properties of the vehicle from one or more sensors. Similarly, the second vehicle  14  includes a vehicle state property estimation system to estimate several state properties of that vehicle. State variables estimated for both vehicles include absolute position in some Earth-relative navigation system (e.g., latitude and longitude), speed, heading, and yaw rate (i.e., rate of change of heading). For the first vehicle  10 , the angle between the vehicle  10  and any towed conveyance  12  (e.g., between the tractor  10  and the grain cart  12  as illustrated in  FIG. 3 ) is also estimated. 
         [0021]    By way of example, a set of sensors for forward motion comprise a Global Positioning System (GPS) device with Real Time Kinematic (RTK) correction, which provide position and, when a vehicle is in motion, heading. The set of sensors can further include an inertial measurement unit (IMU), which provides measurements of linear acceleration and rotational velocity. The set of sensors can also include sensors for odometry measurements of the tractor&#39;s wheels and steering angle. Other combinations of sensors are also possible for forward motion. 
         [0022]    To enable reverse motion of a vehicle  10  with a towed conveyance  12  on a hinged hitch, an additional sensor is used, which directly or indirectly measures the angle between the vehicle  10  and the conveyance  12 . This additional sensor is used because reverse motion is generally unstable, and dynamic control techniques are performed using the sensor input. 
         [0023]    By way of example, the desired state values can be estimated from the sensor data using an Unscented Kalman Filter (UKF), whose inputs are the sensor measurements and whose outputs are the state variables. Other state estimation methods could also be employed. 
         [0024]    Both vehicles need not use the same set of sensors. For instance, the harvester  14  could use the global, earth-relative sensors described above, while the tractor  10  could use sensors that directly ascertain its position relative to the harvester  14  in some local reference frame. 
         [0025]    Relative positioning is the responsibility of the automatic tractor  10 . Thus, the state estimates of the harvester  14  are continuously sent electronically to the tractor  10  to facilitate positioning. 
       Legal Travel Areas 
       [0026]      FIG. 4  is a simplified illustration of an exemplary field  24  on which the tractor  10  and harvester  14  can operate. The field  24  is defined by a field boundary  26 . The field  24  includes legal travel areas within the field boundary  26 . The tractor  10  is allowed to travel only in the legal travel areas. 
         [0027]    Legal travel areas can include a designated parking area  28 . The system operator may designate zero or more geographic regions of arbitrary shape to be parking areas. 
         [0028]    Legal travel areas can also include designated travel corridors  30 . The system operator can designate zero or more geographic regions of arbitrary shape to be travel corridors. 
         [0029]    Legal travel areas can also include previously traveled areas. If the second vehicle  14  travels over an area, that area is by default deemed to be a legal travel area. For instance, a harvester  14  harvests the crop and leaves a cleared area behind it. The harvester  14  regularly transmits newly-cleared path information to the tractor controller  22  so that the tractor  10  has an accurate representation of the harvested areas. 
         [0030]    The field boundary  26  can be designated by the system operator as an arbitrary boundary around the operating area. No area outside of that boundary can be a legal travel area. 
         [0031]    The system operator can also designate an arbitrary boundary  32  around zero or more obstacles. No area inside any obstacle boundary  32  can be a legal travel area. 
         [0032]    The obstacle detection system  18  in the first vehicle allows it to detect unanticipated obstacles  36  in the field  24 . While an obstacle  36  is detected, it designates an obstacle boundary  32  around the obstacle. This area within the obstacle boundary  32  is not a legal travel area. 
         [0000]    Long-distance path finding 
         [0033]    When the second vehicle  14  is a sufficiently long distance away from the first vehicle (e.g., the tractor  10  is in a parking area  28  and the harvester  14  is operating in the field  24 ), a long-distance path finding procedure is used to determine a legal path for the first vehicle  10  to follow to be at a desired position relative to the second vehicle  14 . A variety of algorithms and processes can be used for such long-distance path finding, including a standard A* or hybrid A* algorithm. The A* algorithms work from a discrete set of moves—that is, a discrete set of vehicle headings is considered at each step in the process. 
         [0034]    The area available for the path planning algorithms to use is determined from both the pre-surveyed paths in the field  24  (e.g., designated parking areas  28 , travel corridors  30 , field boundaries  26 , and obstacle boundaries  32 ) and area  34  that has been previously travelled by the harvester  14 . 
         [0035]    The algorithm for checking whether a path lies entirely inside legal travel areas can use a simplified polygon representation of the vehicle and the legal travel areas, and performs intersection-checking of the vehicle polygon with the various areas. 
         [0036]    In accordance with one or more embodiments, to reduce the frequency with which the tractor  10  has to “stop to think,” it runs a path planning algorithm tuned to run to conclusion quickly, but to give up relatively easily on any path. In order to find a path even in complex terrain, the tractor  10  simultaneously runs a copy of the path planning algorithm tuned to be very aggressive in trying to find a path. This ensures that if the quick path finder above fails, the tractor  10  can eventually think its way out of any solvable situation. 
       Operator Commands 
       [0037]    The system operator can issue various high-level commands (shown in  FIG. 5 ) to the automatic tractor  10 , including STOP  50 , EMERGENCY STOP  52 , PARK  54 , FOLLOW  56 , and OFFLOAD  58 A,  58 B. As shown in  FIG. 5 , any state can transition to STOP  50  or EMERGENCY STOP  52 . 
         [0038]    Upon receiving a STOP command  50 , the tractor  10  will slow to a halt along its currently planned path. The manner of stopping is intended to be as quick as possible while remaining subjectively comfortable for any human occupant of the tractor  10 . 
         [0039]    When executing an EMERGENCY STOP operation  52 , the tractor  10  will attempt to halt as quickly as possible, e.g., by fully engaging the brakes and fully disengaging the clutch. The manner of stopping is intended to be immediate, without regard to the subjective comfort of any human occupant of the tractor  10 . 
         [0040]    When executing a PARK operation  54 , the tractor  10  will perform long-distance path finding to find a legal path to the designated parking area  28 . If a path is found, the tractor  10  will travel using the long-distance path following process. If no path is found, the tractor  10  will perform a STOP operation  50 , returning to active motion when a legal PARK path is discovered. 
         [0041]    Upon receiving FOLLOW command  56 , the tractor  10  will perform a FOLLOW operation to begin following the harvester  14  at a standoff distance. If the harvester  14  is not nearby when the operation starts, the tractor  10  will first transit from its current location to the harvester  14  via legal long-distance travel paths, using the long-distance path following process. If no legal path can be determined, the tractor  10  will begin a STOP operation  50 , returning to active motion when a legal FOLLOW path is discovered. 
         [0042]    As the harvester  14  moves, the tractor  10  creates new plans to the current harvester position. The plan is made from a point in the tractor&#39;s future path. If an updated plan is found successfully, the remainder of the current plan is replaced with the new plan. This update and re-plan procedure continues indefinitely while the tractor  10  is in FOLLOW mode  56 . 
         [0043]    Upon receiving an OFFLOAD command, the tractor  10  will perform an OFFLOAD operation  58 A,  58 B to take up a precisely-maintained position relative to the harvester  14  to support offload. 
         [0044]    The harvester  14  can include a lever arm  70  (shown in  FIG. 6 ) for offloading material to the grain cart  12 . The system operator identifies a position relative to the harvester  14 , called the “lever arm position” or “spout position”  72  (shown in  FIG. 6 ), and a position relative to the grain cart  12 , called the “load position”  74  (shown in  FIG. 7 ). During the OFFLOAD operation, the system endeavors to keep the two positions co-located. 
         [0045]    The OFFLOAD process is comprised of two major steps. In the first step, ROUGH POSITIONING  58 A, the automatic tractor  10  tows the trailer  12  into a “roughly correct” position using the long-distance path finding and long-distance path following processes to get near the harvester  14 . If the tractor  10  cannot determine a legal path to an offload position, or if the tractor  10  is already in offload position, but the current legal path “dead ends,” it will perform a FOLLOW operation  56  until such time as a legal offload path can be found. 
         [0046]    The second step, FINE POSITIONING  58 B, begins once the trailer  12  is in approximately the correct position, to bring it to the desired position, and to maintain that position, with the required accuracy. In this mode, the tractor  10  uses the state information received from the harvester  14  to estimate the arc that the lever arm position will trace out, assuming that the current harvester yaw rate remains constant. A standard control algorithm known as “pure pursuit” can be used to determine the path that the grain cart should traverse in order to keep the load position  74  co-located with the spout position  72 . 
         [0047]    Given the grain cart&#39;s required path and current position, the angle alpha between the automatic tractor  10  and the grain cart  12  can be determined given simple models of each element. The automatic vehicle  10  is then steered to create the desired “alpha”  76  as shown in  FIG. 8  using a standard PID controller integrated into the vehicle controller  22 . 
       Offload Position Targeting 
       [0048]    The harvester vehicle  14  may support more than one lever arm position. For example, a harvester  14  may support offloading to the right or to the left sides. 
         [0049]    In some embodiments, the load position  74  can be deliberately varied (as shown in  FIG. 7 ) during operation, e.g., in order to maintain even fill of a grain cart  12 . The system operator may manually adjust the load position  74  during operations. The load position  74  may also optionally be set to automatically cycle from the front of the grain cart to the back. Furthermore, the use of sensors such as load sensors or content-height sensors affixed to the grain cart at various points can be used to automatically guide the loading position  74  along the axis of the grain cart  12  to provide more even loading. 
         [0050]    The processes of the vehicle controller  22  described above may be implemented in software, hardware, firmware, or any combination thereof. The processes are preferably implemented in one or more computer programs executing on the vehicle controller  22 . Each computer program can be a set of instructions (program code) in a code module resident in the random access memory of the controller  22 . Until required by the controller  22 , the set of instructions may be stored in another computer memory (e.g., in a hard disk drive, or in a removable memory such as an optical disk, external hard drive, memory card, or flash drive) or stored on another computer system and downloaded via the Internet or other network. 
         [0051]    Having thus described several illustrative embodiments, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to form a part of this disclosure, and are intended to be within the spirit and scope of this disclosure. While some examples presented herein involve specific combinations of functions or structural elements, it should be understood that those functions and elements may be combined in other ways according to the present disclosure to accomplish the same or different objectives. In particular, acts, elements, and features discussed in connection with one embodiment are not intended to be excluded from similar or other roles in other embodiments. Additionally, elements and components described herein may be further divided into additional components or joined together to form fewer components for performing the same functions. 
         [0052]    Accordingly, the foregoing description and attached drawings are by way of example only, and are not intended to be limiting.