SYSTEM AND METHOD FOR AUTONOMOUS FIELD NAVIGATION - Patent application
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- MAKA AUTONOMOUS ROBOTIC SYST INC
- Filing Date
- 2023-04-21
- Publication Date
- 2026-04-28
AI Technical Summary
The prior art is difficult to provide efficient and automated farmland navigation systems, resulting in inefficient agricultural production and food shortages.
Using a system including a steering controller and a processor, the system is able to determine and navigate through specific field paths, including field exits and re-entering paths, and autonomous driving is performed through areas that define inner and outer boundaries.
It has achieved the efficiency and accuracy of field autonomous driving, improved agricultural production efficiency, reduced labor demand, and enhanced global food safety.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] cross reference This application claims the benefit of U.S. Provisional Application No. 63 / 336,782, entitled "SYSTEMS AND METHODS FOR AUTONOMOUS FIELD NAVIGATION," filed April 29, 2022, the entirety of which is hereby incorporated by reference for all purposes. [Background technology]
[0002] Agricultural production is worth trillions of dollars annually worldwide. Agriculture is an essential component of food production and involves the raising of both livestock and plants. Decreasing crop yields due to population growth and climate change threaten global food security. Methods to increase agricultural production by improving crop yields and increasing labor efficiency could help alleviate food shortages. Navigation systems with increased autonomy and precision are needed to improve agricultural efficiency. Summary of the Invention [Means for solving the problem]
[0003] In various aspects, the disclosure provides a system for autonomous driving of a vehicle, the system comprising: a steering controller for driving the vehicle; a processor coupled to the steering controller, the processor configured to determine a first turning area corresponding to a first field exit path having a first field exit location and a first field re-entry path having a first field re-entry location, the first turning area being bounded by an outer boundary and an inner boundary, the outer boundary surrounding the inner boundary, the inner boundary extending through the first field exit location and the first field re-entry location, the inner boundary surrounding a growing area of the field; and a location sensor coupled to the processor for determining a location of the vehicle. and a memory coupled to the processor and storing instructions that, when executed by the processor, cause the steering controller to: drive the vehicle along a first field exit path toward a first field exit location on the inside boundary line to make a first turn; when the inside boundary line is contacted at the first field exit location, drive the vehicle toward a first forward position; when the outer boundary line is contacted, reverse the vehicle toward a first corrected position; when the first corrected position is reached, drive the vehicle toward the first forward position; when the first forward position is reached, reverse the vehicle toward the first reverse position; and when the first reverse position is reached or the outer boundary line, drive the vehicle forward toward a first field re-entry position on the inside boundary line.
[0004] In some aspects, the first forward position is located relative to the first field re-entry position based on a vehicle turning radius and a vehicle width. In some aspects, the first forward position is located at least a vehicle width from the first field re-entry position in a direction opposite the first field re-entry path and at least a vehicle turning radius from the first field re-entry position in a direction opposite the first field exit position. In some aspects, the first forward direction is parallel to a connecting line between the first field exit position and the first field re-entry position. In some aspects, the first corrective position is located relative to the first field exit position based on a vehicle length. In some aspects, the first corrective position is located at least a vehicle length from the first field exit position in a direction opposite the first field re-entry position. In some aspects, the first reverse position is located relative to the first field re-entry position based on a vehicle length. In some aspects, the first reverse location is located at least a vehicle length from the first field re-entry location, in a direction opposite the first field re-entry path. In some aspects, the first field re-entry location is located along the inner perimeter. In some aspects, the first field exit path, the first field re-entry path, or both are straight. In some aspects, the first field exit path is parallel to the first field re-entry path.
[0005] In some aspects, the inner boundary is a curve. In some aspects, the outer boundary is a curve. In some aspects, a region of the inner boundary between the first field exit location and the first field re-entry location is not perpendicular to the first field exit path, the first field re-entry path, or both. In some aspects, the inner boundary surrounds the field. In some aspects, the outer boundary is surrounded by an outer geofence. In some aspects, the outer boundary is spaced from the outer geofence by a distance of at least a vehicle length. In some aspects, the first field exit path is spaced from the first field re-entry path by a furrow spacing distance. In some aspects, the first field exit path, the first field re-entry path, or both are parallel to the furrows of the field.
[0006] In some aspects, the first turn is further performed by reversing the vehicle toward the first field re-entry position upon contacting the outer boundary prior to reaching the first reverse position, and reversing the vehicle toward the first reverse position upon reaching the first field re-entry position at an orientation that is not along the first field re-entry path. In some aspects, the first turn is determined in real time, adaptively, or both. In some aspects, the first turn is updated as the first turn is performed.
[0007] In some aspects, the processor is further configured to determine a second turning area corresponding to a second field exit path having a second field exit location and a second field re-entry path having a second field re-entry location, the second turning area being bounded by an outer boundary and an inner boundary, the inner boundary extending through the second field exit location and the second field re-entry location, and the instructions further cause the steering controller to: steer the vehicle along the second field exit path toward the second field exit location, upon contacting the inner boundary at the second field exit location, steer the vehicle toward a second forward position, upon reaching the second forward position, reverse the vehicle toward a second reverse position, and upon reaching the second reverse position or contacting the outer boundary, reverse the vehicle toward a second field re-entry location on the inner boundary to make a second turn. In some aspects, the first turn and the second turn are different. In some aspects, the second turn is determined in real time, adaptively, or both, hi some aspects, the second turn is updated as the first turn is performed.
[0008] In some aspects, the processor is further configured to detect a furrow between the first field re-entry location and the second field exit location. In some aspects, the processor is configured to identify a furrow in a depth image of the field and a visual image of the field, determine a location of the furrow, and determine a direction of the furrow. In some aspects, identifying the furrow further includes generating a segmentation map from the visual image. In some aspects, determining the direction of the furrow further includes determining a center of the furrow from the depth image. In some aspects, determining the location of the furrow and determining the direction of the furrow further include determining a location value and a direction value of a pixel of the visual image corresponding to the furrow. In some aspects, the processor is further configured to determine a representative location and a representative direction based on the location value and the direction value, the representative location corresponding to the location of the furrow and the representative direction corresponding to the direction of the furrow.
[0009] In some aspects, the instructions when executed by the processor further cause the steering controller to follow the furrow to a second field exit location. In some aspects, the first field exit location, the first field exit path, the first field re-entry location, the first field re-entry path, the first forward position, the first corrective position, the first reverse position, the second field exit location, the second field exit path, the second field re-entry location, the second field re-entry path, the second forward position, the second reverse position, or combinations thereof are determined based on sensor input. In some aspects, the first field exit position, the first field exit path, the first field re-entry position, the first field re-entry path, the first forward position, the first corrective position, the first reverse position, the second field exit position, the second field exit path, the second field re-entry position, the second field re-entry path, the second forward position, the second reverse position, or combinations thereof are determined in real time. In some aspects, the first field exit position, the first field exit path, the first field re-entry position, the first field re-entry path, the first forward position, the first corrective position, the first reverse position, the second field exit position, the second field exit path, the second field re-entry position, the second field re-entry path, the second forward position, the second reverse position, or combinations thereof are determined adaptively. In some aspects, the first field exit location, the first field exit path, the first field re-entry location, the first field re-entry path, the first forward position, the first compensation position, the first reverse position, the second field exit location, the second field exit path, the second field re-entry location, the second field re-entry path, the second forward position, the second reverse position, or combinations thereof are independent of the speed of the vehicle.In some aspects, the first field exit location, the first field exit path, the first field re-entry position, the first field re-entry path, the first forward position, the first compensation position, the first reverse position, the second field exit position, the second field exit path, the second field re-entry position, the second field re-entry path, the second forward position, the second reverse position, or combinations thereof, are independent of a turn rate of the vehicle.
[0010] In some embodiments, the processor is further configured to generate an alert requesting human intervention. In some embodiments, the alert is generated when the vehicle fails to reach the first field exit position, the first corrected position, the first forward position, the first reverse position, the first field re-enter position, the second field exit position, the second corrected position, the second forward position, the second reverse position, or the second field re-enter position after a predetermined number of attempts. In some embodiments, the predetermined number of attempts is 2-10 attempts, 3-8 attempts, or 4-6 attempts. In some embodiments, the predetermined number of attempts is about 5 attempts. In some embodiments, the alert is generated when the vehicle crosses the outer perimeter or exceeds a predetermined distance from the outer perimeter. In some embodiments, the predetermined distance is 0.5-1.5 times the vehicle length. In some embodiments, the predetermined distance is approximately equal to the vehicle length. In some aspects, an alert is generated when the system fails to detect a furrow at the first field re-entry location or between the first field re-entry location and the second field exit location. In some aspects, an alert is generated when the system detects an obstacle. In some aspects, the alert is configured to be transmitted over a network. In some aspects, the alert includes images collected from the vehicle, a location of the vehicle, a position of a steering controller, a satellite image of the vehicle, or a combination thereof.
[0011] In some aspects, the processor is further configured to receive instructions from the person after the alert is generated. In some aspects, the instructions are provided remotely. In some aspects, the processor is further configured to continue executing the first turn, executing the second turn, or proceeding along the furrow after the instructions are provided. In some aspects, the system further comprises an obstacle detection sensor configured to detect an obstacle. In some aspects, the obstacle detection sensor includes a LIDAR sensor. In some aspects, the location sensor includes a global positioning system sensor. In some aspects, the location sensor includes a camera.
[0012] In some embodiments, the vehicle is an agricultural vehicle, hi some embodiments, the vehicle is a tractor, a weeder, a sprayer, or a planter.
[0013] In various aspects, the present disclosure provides a method for autonomous driving of a vehicle in a field, the method including determining a first turning area corresponding to a first field exit path having a first field exit location and a first field re-entry path having a first field re-entry location, the first turning area being bounded by an outer boundary and an inner boundary, the outer boundary surrounding the inner boundary, the inner boundary extending through the first field exit location and the first field re-entry location, the inner boundary surrounding a growing area of the field, and guiding the vehicle along the inner boundary. The method includes driving along a first field exit path toward a first field exit location, driving the vehicle toward a first forward position upon contacting the inside boundary line at the first field exit location, reversing the vehicle toward a first corrective position upon contacting the outside boundary line, driving the vehicle toward the first forward position upon reaching the first corrective position, reversing the vehicle toward a first reverse position upon reaching the first forward position, and driving the vehicle forward toward a first field re-entry position on the inside boundary line or upon contacting the outside boundary line.
[0014] In some aspects, the method further includes operating the vehicle at a variable speed. In some aspects, the method further includes reversing the vehicle toward a first field re-entry position upon contacting the outer boundary prior to reaching the first reverse position, and reversing the vehicle toward the first reverse position upon reaching the first field re-entry position at an orientation other than along the first field re-entry path.
[0015] In some aspects, the method further includes determining a second turning area corresponding to a second field exit path having a second field exit location and a second field re-entry path having a second field re-entry location, the second turning area being bounded by an outer boundary and an inner boundary, the inner boundary extending through the second field exit location and the second field re-entry location; driving the vehicle along the second field exit path toward the second field exit location; upon contacting the inner boundary at the second field exit location, driving the vehicle toward a second forward position; upon reaching the second forward position, reversing the vehicle toward a second reverse position; and upon reaching the second reverse position or contacting the outer boundary, reversing the vehicle toward a second field re-entry location on the inner boundary.
[0016] In some aspects, the method further includes following a furrow between the first field re-entry location and the second field exit location. In some aspects, following the furrow includes identifying the furrow in a depth image of the field, a visual image of the field, or both, and determining a location of the furrow, a direction of the furrow, or both. In some aspects, identifying the furrow further includes generating a segmentation map from the visual image. In some aspects, determining the direction of the furrow further includes determining a center of the furrow from the depth image. In some aspects, determining the location of the furrow and determining the direction of the furrow further include determining a location value and a direction value of a pixel of the visual image corresponding to the furrow.
[0017] In some aspects, the method further includes identifying a representative location and a representative direction based on the location value and the direction value, the representative location corresponding to a furrow location and the representative direction corresponding to a furrow direction. In some aspects, the method is determined in real time, adaptively, or both. In some aspects, the method is updated as the method is performed.
[0018] In some aspects, the method further includes determining the first field exit position, the first field exit path, the first field re-entry position, the first field re-entry path, the first forward position, the first corrected position, the first reverse position, the second field exit position, the second field exit path, the second field re-entry position, the second field re-entry path, the second forward position, the second reverse position, or a combination thereof based on the sensor input. In some aspects, the method further includes determining the first field exit position, the first field exit path, the first field re-entry position, the first field re-entry path, the first forward position, the first corrected position, the first reverse position, the second field exit position, the second field exit path, the second field re-entry position, the second field re-entry path, the second forward position, the second reverse position, or a combination thereof in real time. In some aspects, the method further includes adaptively determining a first field exit position, a first field exit path, a first field re-entry position, a first field re-entry path, a first forward position, a first correction position, a first reverse position, a second field exit position, a second field exit path, a second field re-entry position, a second field re-entry path, a second forward position, a second reverse position, or a combination thereof.
[0019] In some embodiments, the method further includes generating an alert requesting human intervention. In some embodiments, the method includes generating an alert when the vehicle fails to reach the first field exit position, the first corrected position, the first forward position, the first reverse position, the first field re-enter position, the second field exit position, the second corrected position, the second forward position, the second reverse position, or the second field re-enter position after a predetermined number of attempts. In some embodiments, the method includes attempting 2-10, 3-8, or 4-6 times to reach the first field exit position, the first corrected position, the first forward position, the first reverse position, the first field re-enter position, the second field exit position, the second corrected position, the second forward position, the second reverse position, or the second field re-enter position before generating the alert. In some embodiments, the method includes attempting about five times to reach the first field exit position, the first corrective position, the first forward position, the first reverse position, the first field re-enter position, the second field exit position, the second corrective position, the second forward position, the second reverse position, or the second field re-enter position before generating the alert.
[0020] In some aspects, the method includes generating an alert when the vehicle crosses an outer boundary line or travels beyond a predetermined distance from the outer boundary line. In some aspects, the method includes generating an alert when the vehicle travels beyond a distance of 0.5 to 1.5 vehicle lengths from the outer boundary line. In some aspects, the method includes generating an alert when the vehicle travels beyond a distance of approximately one vehicle length from the outer boundary line. In some aspects, the method includes generating an alert when the system fails to detect a furrow at the first field re-entry location or between the first field re-entry location and the second field exit location. In some aspects, the method includes generating an alert when the system detects an obstacle. In some aspects, the method includes transmitting the alert over a network.
[0021] In some aspects, the method further includes transmitting an image collected from the vehicle, a location of the vehicle, a position of a steering controller, a satellite image of the vehicle, or a combination thereof with the alert. In some aspects, the method further includes receiving an instruction from a person after the alert is generated. In some aspects, the instruction is received over a network. In some aspects, the method includes continuing to perform the first turn, perform the second turn, or follow the furrow after the instruction is received.
[0022] In some aspects, the method further includes detecting an obstacle with an obstacle detection sensor. hi some aspects, the obstacle detection sensor includes a LIDAR sensor.
[0023] In some aspects, the method is performed by a system as described herein.
[0024] In various aspects, the disclosure provides a computer-implemented method for detecting furrows in a field, the computer-implemented method including receiving a depth image of the field and a visual image of the field, obtaining labeled image data including furrows, furrow locations, and furrow orientations in the images of the furrows, training a machine learning model to identify the furrows, locate the furrows, and locate the furrow orientations using the labeled image data, identifying the furrows by using the depth image and the visual image as inputs to the machine learning model, and identifying the furrows by using the depth image and the visual image as inputs to the machine learning model.
[0025] In some aspects, identifying the furrows further comprises generating a segmentation map from the visual image. In some aspects, determining the furrow orientation further comprises determining a furrow center from the depth image. In some aspects, determining the furrow location and furrow orientation further comprises determining location and orientation values of pixels of the visual image corresponding to the furrow.
[0026] In some aspects, the method further includes identifying a representative location and a representative direction based on the location value and the direction value, the representative location corresponding to a furrow location and the representative direction corresponding to a furrow direction.
[0027] In various aspects, the present disclosure provides a method of navigating a field, the method including detecting a first furrow using a method described herein, moving a vehicle along the first furrow, exiting the field along a field exit path, steering the vehicle using a system described herein or a method described herein, re-entering the field along a field re-entry path at a second furrow detected using a method described herein, or a combination thereof.
[0028] Incorporation by Reference All publications, patents, and patent applications mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference.
[0029] The novel features of the invention are set forth with particularity in the appended claims. A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the invention are utilized, and the accompanying drawings of which: [Brief description of the drawings]
[0030] [Figure 1] 1 illustrates an isometric view of an autonomous laser weeding vehicle in accordance with one or more embodiments of the present disclosure.
[0031] [Diagram 2] 1 illustrates a top view of an autonomous laser weeder navigating a field of crops while performing various techniques described herein.
[0032] [Diagram 3]1 shows an overhead view of a field in which various techniques described herein may be implemented.
[0033] [Figure 4] 1A-1C are schematic diagrams illustrating an exemplary ridge end turn, according to one or more embodiments of the present disclosure;
[0034] [Diagram 5] 1A-1C are schematic diagrams illustrating an exemplary ridge end turn, according to one or more embodiments of the present disclosure;
[0035] [Figure 6] 1A-1C are schematic diagrams illustrating an exemplary ridge end turn, according to one or more embodiments of the present disclosure;
[0036] [Figure 7] 1A-1C are schematic diagrams illustrating an exemplary ridge end turn, according to one or more embodiments of the present disclosure;
[0037] [Figure 8] 1A-1C are schematic diagrams illustrating an exemplary ridge end turn, according to one or more embodiments of the present disclosure;
[0038] [Figure 9] 1 illustrates a schematic of a furrow detection method in accordance with one or more embodiments of the present disclosure.
[0039] [Figure 10] 1 illustrates a Huffmap with detected furrows generated using a furrow detection method in accordance with one or more embodiments of the present disclosure.
[0040] [Figure 11] 1 shows a furrow segmentation mask including gaps and incomplete furrows.
[0041] [Figure 12] 1 illustrates a schematic diagram of a machine learning model architecture for furrow detection, in accordance with one or more embodiments of the present disclosure.
[0042] [Figure 13] FIG. 1 is an example block diagram of a computing device architecture of a computing device capable of implementing various techniques described herein.
[0043] [Figure 14] 1 is a flowchart illustrating a method of navigating a turn in accordance with one or more embodiments of the present disclosure.
[0044] [Figure 15] 1 is a flowchart illustrating a method for requesting human intervention in accordance with one or more embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0045] Various exemplary embodiments of the present disclosure are described in detail below. Although specific implementations are discussed, it should be understood that such descriptions are for illustrative purposes only. Those skilled in the relevant art will recognize that other components and other configurations may be used without departing from the spirit and scope of the present disclosure. Thus, the following description and drawings are illustrative and should not be construed as limiting. Numerous specific details are described to provide a thorough understanding of the present disclosure. However, in certain instances, well-known or conventional details are not described to avoid obscuring the description. References to an embodiment or embodiments in the present disclosure may be references to the same embodiment or any embodiment, and such references refer to at least one of the exemplary embodiments.
[0046] Reference to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment of the present disclosure. The phrase "in one embodiment" appears in various places in this specification not necessarily all referring to the same embodiment, nor to separate or alternative exemplary embodiments that are mutually exclusive with other exemplary embodiments. Furthermore, various features are described that may be shown in some exemplary embodiments but not in other exemplary embodiments. Any feature of one embodiment may be combined with or used in conjunction with any other feature of any other embodiment.
[0047] The terms used herein generally have their ordinary meaning in the art, within the context of this disclosure and in the specific context in which each term is used. Alternative language and synonyms may be used for any one or more of the terms discussed herein, and no special importance should be attached to whether a term is detailed or discussed herein. In some instances, synonyms of a particular term are provided. The listing of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification, including examples of any term discussed herein, is merely illustrative and is not intended to further limit the scope and meaning of the disclosure or the scope and meaning of any exemplary term. Similarly, the disclosure is not limited to the various exemplary embodiments provided herein.
[0048] Examples of means, devices, methods, and their related results according to exemplary embodiments of the present disclosure are shown below, but are not intended to limit the scope of the present disclosure. Please note that titles or subtitles may be used in the examples for the convenience of the reader, but this does not limit the scope of the present disclosure in any way. Unless otherwise defined, technical and scientific terms used herein have the meanings commonly understood by those skilled in the art to which the present disclosure belongs. In case of conflict, the present specification, including definitions, shall prevail.
[0049] Additional features and advantages of the present disclosure will be set forth in the description which follows, and in part will be apparent from the description, or may be learned by the practice of the principles disclosed herein. The features and advantages of the present disclosure may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present disclosure will become more fully apparent from the following description and the appended claims, or may be learned by the practice of the principles described herein.
[0050] For clarity of explanation, in some instances, the technology may be presented including individual functional blocks that represent devices, device components, steps, or routines in a method implemented in software, or a combination of hardware and software.
[0051] In the figures, certain structural or method features may be shown in a particular arrangement and / or order. However, it should be understood that such a particular arrangement and / or order may not be required. Rather, in some embodiments, such features may be arranged in a different manner and / or order than that shown in the exemplary figures. Furthermore, the inclusion of a structural or method feature in a particular figure does not imply that such feature is required in all embodiments, and in some embodiments, such feature may not be included or may be combined with other features.
[0052] While the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail, It is to be understood, however, that there is no intention to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives consistent with the scope of the present disclosure and the appended claims.
[0053] Described herein are systems and methods for detecting furrows and locating furrows in fields, such as agricultural fields. Using the systems and methods of the present disclosure, parameters such as the position and angle of the detected furrows may be determined while autonomously navigating along the furrows. For example, an autonomous agricultural vehicle, such as a tractor, weeder, planter, harvester, or sprayer, may use the systems and methods described herein to navigate along the furrows of a crop. Using the furrow detection methods described herein, furrows may be identified in images collected by sensors on the autonomous vehicle, and the furrows' locations and orientations may be determined, allowing the autonomous vehicle to navigate along the furrows. These furrow detection methods may be performed in real time and used to adjust the autonomous vehicle's heading to continue following the furrows.
[0054] Also described herein are systems and methods for autonomously turning a vehicle at the end of a furrow within a designated turning area to begin navigation along a second furrow. The autonomous turning methods described herein may enable steering of an autonomous vehicle, such as an autonomous agricultural vehicle (e.g., a tractor, weeder, planter, harvester, or sprayer), within a tight turning area. Additionally, the autonomous turning methods may facilitate navigation in non-rectangular or irregularly shaped fields, such as center pivot farms, where furrows cannot be positioned perpendicular to the field boundary or where the relative placement of furrow ends is undefined. A navigation point within the turning area, also referred to herein as a "position," may be determined based on field characteristics, such as an inner boundary (e.g., an inner geofence or a boundary spaced a predetermined distance from the inner geofence), an outer boundary (e.g., an outer geofence or a boundary spaced a predetermined distance from the outer geofence), a location of a first furrow (e.g., a furrow the autonomous vehicle is exiting), a location of a second furrow (e.g., a furrow the autonomous vehicle is entering), a length of the autonomous vehicle, a width of the autonomous vehicle, a turning radius of the autonomous vehicle, or a combination thereof. In some embodiments, the navigation point may be determined in real time, for example, as the vehicle exits or approaches an exit location of the first furrow. The field characteristics may be detected using sensors (e.g., cameras, GPS sensors, rotary encoders, etc.) located on or associated with the vehicle. The navigation point may be adjusted during the turn execution, for example, to account for terrain irregularities or deviations from a planned path or location. In some embodiments, decisions and / or adjustments regarding the route to a navigation point may be made in response to the vehicle's location, speed, heading, or trajectory, deviation from a planned location, deviation from a planned speed, deviation from a planned heading, or deviation from a planned trajectory, or combinations thereof.
[0055] As used herein, an "image" may refer to a representation of an area or object. For example, an image may be a visual representation of an area or object formed of electromagnetic radiation (e.g., light, x-ray, microwave, or radio waves) scattered from the area or object. In another example, an image may be a point cloud model formed by a Light Detection and Ranging (LIDAR) or Radio Detection and Ranging (RADAR) sensor. In another example, an image may be an ultrasound image generated by detecting sound, infrasound, or ultrasound waves reflected from an area or object. As used herein, "imaging" may be used to describe the process of collecting or generating a representation (e.g., an image) of an area or object.
[0056] As used herein, a position, e.g., a position of an object or a position of a sensor, may be expressed relative to a reference frame. Exemplary reference frames include a surface reference frame, a vehicle reference frame, a sensor reference frame, an actuator reference frame, a three-dimensional geographic coordinate reference frame, a two-dimensional surface coordinate reference frame. A position may be easily converted between reference frames, e.g., by using conversion factors or calibration models. It should be understood that although a position, a change in position, or an offset may be expressed in one reference frame, a position, a change in position, or an offset may be expressed in any reference frame or easily converted between reference frames.
[0057] Autonomous weeding system The detection and navigation methods described herein may be implemented by a self-driving vehicle (also referred to herein as an "autonomous vehicle") to navigate a field. For example, the detection and navigation methods may be implemented by an autonomous weeding system to navigate a field of crops while autonomously targeting and removing weeds. Such detection and navigation methods may facilitate steering the vehicle along the furrows to avoid driving over and damaging the crop. For example, an autonomous weeding system may navigate along a furrow in a crop and, upon reaching the end of the furrow, turn around and begin navigating along a second furrow.
[0058] The autonomous weeding system may identify, target, and remove weeds without human input. Optionally, the autonomous weeding system may be located on an autonomous or steered vehicle, or may be towed by a vehicle, such as a tractor. As shown in FIG. 1, the autonomous weeding system may be part of or connected to a vehicle 100, such as a tractor or autonomous vehicle. The vehicle 100 may travel across a field 200 of crops, as shown in FIG. 2. As the vehicle 100 travels across the field 200, it may identify, target, and remove weeds in an unweeded area 210 of the field, leaving a weeded field 220 behind it. In some embodiments, the speed of the vehicle may be adjusted based on one or more characteristics of the field (e.g., weed density, weed size, geology, crop type, furrow placement, etc.). For example, the autonomous vehicle of the autonomous weeding system may travel slower when the density of weeds is high and faster when the density of weeds is low. Alternatively or additionally, the autonomous vehicle of the autonomous weeding system may travel slower when targeting larger weeds and faster when targeting smaller weeds. The detection and navigation methods described herein may be implemented by an autonomous vehicle, such as an autonomous weeding system, or a vehicle connected to an autonomous weeding system, to navigate along the furrows of a crop field. The high accuracy of such detection and navigation methods allows for precise navigation of the field and facilitates precise targeting of weeds, such as with a laser, to remove the weeds in the field without damaging nearby crops.
[0059] Furrow detection Described herein is a method for detecting furrows (e.g., strips in the ground). The furrows may be used to navigate a field, such as a crop field, by positioning the wheels of the vehicle in the furrows to avoid damaging the crops planted in the furrows. The furrow detection method of the present disclosure may be used to detect furrows in real time in images collected by sensors connected to the autonomous vehicle, and navigate the vehicle along the furrows without pre-plotting the location of the crop furrows. The autonomous vehicle may include one or more forward navigation sensors disposed at the front of the vehicle. In some embodiments, the autonomous vehicle may further include one or more rear navigation sensors disposed at the rear of the vehicle. In some embodiments, the forward or rear sensor may include a depth sensor (e.g., a depth camera or a LIDAR sensor) configured to generate a depth image. In some embodiments, the forward or rear sensor may be a two-dimensional sensor (e.g., a two-dimensional camera), and the vehicle may further include one or more depth sensors (e.g., a depth camera or a LIDAR sensor) disposed at the front or rear of the vehicle. The furrow-like features may facilitate detection of furrows in the depth map by using the shape of the furrow to identify the center of the furrow.
[0060] In some embodiments, a combination of machine learning (e.g., deep learning) and post-processing may be used to identify furrows and locate furrows in an image. Machine learning may be performed to generate a segmentation mask and a direction mask. The segmentation mask may include pixel assignment data, where pixels in the segmentation mask are designated as "furrow" or "background". The direction mask may include pixel values corresponding to direction information of the corresponding furrow. For example, pixels in the direction mask may include cos(2θ) and sin(2θ) values, where θ represents the angle of the furrow with respect to a reference coordinate system. In another example, pixels in the direction mask may include cos(θ) and sin(θ) values. In some embodiments, the cos(2θ) and sin(2θ) values may be converted to cos(θ) and sin(θ) values. In some embodiments, the θ values may be constrained to a semicircle. For example, the θ values may be between 0 and π (i.e., between 0° and 180°). In another example, the θ value may be between −π / 2 and π / 2 (ie, between −90° and 90°).
[0061] In some embodiments, the furrow parameters may be expressed in polar coordinates relative to a reference point (e.g., the origin) and a reference coordinate system. As shown in Figure 9, the location and orientation of the furrows may be expressed in terms of p and θ values, respectively. Furrow lines 401, 402, 403, 404, 405, and 406 may be used to represent the first furrow, the second furrow, the third furrow, the fourth furrow, the fifth furrow, and the sixth furrow, respectively. Lines 411, 412, 413, 414, 415, and 416 representing the p-values of the first furrow, second furrow, third furrow, fourth furrow, fifth furrow, and sixth furrow may be drawn from the origin 410 of the coordinate system to intersect at right angles with the furrow lines 401, 402, 403, 404, 405, and 406. The lengths of the lines 411, 412, 413, 414, 415, and 416 represent the p-values of the corresponding furrows. Angles 421, 422, 423, 424, 425, and 426 may be identified relative to the coordinate system, representing θ values for the first furrow, the second furrow, the third furrow, the fourth furrow, the fifth furrow, and the sixth furrow, respectively. In some embodiments, θ may be between 0 and π. In some embodiments, ρ may be positive or negative depending on the location of the furrow relative to the origin. In FIG. 9, the top left corner of the image is used as the origin 410. However, the origin may be any point. For example, the origin 410 may be the top right corner, the bottom right corner, the bottom left corner, the center, or any other point. In some embodiments, the ρ and θ values, the cos(2θ) and sin(2θ) values, or the cos(θ) and sin(θ) values may be identified using machine learning methods.
[0062] A Hough transform may be used to generate a Hough map from the cos(θ) and sin(θ) values and x and y coordinates of the furrows relative to a reference point (e.g., the origin). The cos(θ), sin(θ), x, and y values may be determined from an orientation map, a segmentation map, or a combination thereof. In some embodiments, the Hough transform may include identifying minimum and maximum ρ and minimum and maximum θ values. In some embodiments, the cos(θ) and sin(θ) values for ρ and θ are plotted on the Hough map. An example of a Hough map including data from furrow lines 402, 403, and 404 is shown in FIG. 10. Rho (ρ) values 412, 413, and 414 may be plotted on a first axis, and theta (θ) values 422, 423, and 424 may be plotted on a second axis. Clustering, blurring, or other grouping may be applied to the data from the Huffmap to identify and group components that correspond to the same furrow. For example, Gaussian blurring may be applied, or a clustering technique such as DBSCAN may be used. A representative value of the grouped components may be used to identify the ρ and θ values of the corresponding furrow. For example, the representative value may be a mean, median, centroid, maximum, or other representative value.
[0063] A furrow detection method using only a segmentation mask may result in incomplete furrow detection, such as missing furrows or disconnected furrows. For example, as shown in FIG. 11, the furrow segmentation mask may include gaps 436 or early terminations 433. In some embodiments, the furrow detection method may use furrow line clustering to generate a representative furrow and generate furrow predictions along the length of the furrow. The representative furrow may be generated by predicting furrow orientation values, applying a Hough transform, and identifying representative values (e.g., by applying blurring or clustering to the Hough transform data). In some embodiments, furrow line clustering may be used in combination with a segmentation mask to improve furrow detection. Furrow prediction may be enabled by using the mask in combination with predictions of sin(2θ) and cos(2θ) of individual furrow pixels in the image. 11 shows segmentation masks (shaded regions) of furrow lines 401, 402, 403, 404, 405, and 406 overlaid with example unit vectors (arrows) obtained from individual pixel predictions. The value of each furrow pixel corresponding to the shaded region may be determined. As shown in FIG. 11, the determined values of pixels within the same furrow may not line up.
[0064] Each furrow in an image collected by a sensor or sensor pair (e.g., a front sensor pair or a rear sensor pair) may be assigned parameters such as ρ and θ values. The furrow parameters may be used to navigate the autonomous vehicle along the furrow. For example, the autonomous vehicle may navigate along the center furrow or the furrow located closest to one of the sensors. In some embodiments, images may be collected continuously to detect and navigate the furrow in real time.
[0065] Machine learning model for furrow detection The furrow detection method may be performed by a furrow detection module configured to identify and locate furrows in an image, for example, in an image collected by a sensor connected to an autonomous vehicle. In some embodiments, the furrow detection module may communicate with a vehicle navigation system to navigate the vehicle along the furrows. The furrow detection module may implement one or more machine learning algorithms or networks that are implemented and dynamically trained to identify and locate furrows in one or more images (e.g., a first image, a second image, a depth image, etc.). The one or more machine learning algorithms or networks may include neural networks (e.g., convolutional neural networks (CNNs), deep neural networks (DNNs), etc.), geometric recognition algorithms, photometric recognition algorithms, principal component analysis using eigenvectors, linear discriminant analysis, You Only Look Once (YOLO) algorithm, hidden Markov models, multilinear subspace learning using tensor representations, neuron-motivated dynamic link matching, support vector machines (SVMs), or any other suitable machine learning techniques. If the furrow detection module implements one or more neural networks for furrow detection, the one or more neural networks may include one or more convolutional layers, visual transformation layers, or combinations thereof. The furrow detection module may include a system controller, such as a system computer having storage, random access memory (RAM), a central processing unit (CPU), and a graphics processing unit (GPU). The system computer may include a tensor processing unit (TPU). The system computer must include sufficient RAM, storage space, CPU power, and GPU power to perform the operations of identifying and locating furrows.
[0066] The furrow detection machine learning model may be trained using a sample training dataset of images, e.g., images of a field having one or more furrows. The training images may be labeled with one or more furrow parameters, such as furrow identification (e.g., pixels corresponding to a furrow, pixels corresponding to a background, pixel groups corresponding to the same furrow, etc.), furrow location (e.g., furrow location relative to a reference point), furrow orientation (e.g., furrow angle relative to a reference coordinate system), or combinations thereof. In some embodiments, one or more machine learning algorithms implemented by the furrow detection module may be trained end-to-end (e.g., by training multiple parameters in combination). Alternatively or additionally, sub-networks (e.g., directed networks) may be trained alone. For example, these sub-networks may be trained using supervised, unsupervised, reinforcement, or other such training techniques as described above. An example model architecture of the furrow detection module is provided in FIG. 12. As shown in FIG. 12, furrow detection may include two processes, a first process of generating a segmentation mask and a second process of generating a direction mask.
[0067] In the first process, an image (e.g., an image collected by a sensor connected to an autonomous vehicle) may be received by the backbone network. In some embodiments, the image may be an RGB color image of a surface (e.g., a field). The network may be a CNN including any number of nodes (e.g., neurons) organized in any number of layers, or the network may be constructed using a vision transformer or a visual transformer. In some embodiments, the convolutional neural network may include an input layer configured to receive an image, an identification layer configured to identify furrows in the image, and an output layer configured to output data (e.g., feature maps, segmentation masks, number of furrows, location of furrows, etc.). In some embodiments, the convolutional network may consist of an input layer that receives an image, a series of hidden layers, and one or more output layers. The output layer may output the results of the network, such as the location of the furrows. Each layer of the convolutional neural network may be connected by any number of additional hidden layers. For example, the convolutional network may include an input layer that receives an image, a series of hidden layers, and one or more output layers. Each hidden layer may perform a convolution on the image and output a feature map. The feature map may be passed from the hidden layer to the next convolutional layer. The output layer may output the results of the network, such as the location of the furrows. In some embodiments, the output may be a multi-resolution output.
[0068] The backbone network may receive images through an input layer. In some embodiments, the backbone may include a pre-trained network (e.g., ResNet50, MobileNet, CBNetV2, etc.) or a custom trained network. The backbone may include a series of convolutional layers, dropout, activation functions, pooling, batch normalization, vision transformers, visual transformers, other deep learning mechanisms, or combinations thereof that may be organized into residual blocks. The backbone network may process the input images to generate outputs, which may be fed to the rest of the machine learning network. For example, the outputs may include one or more feature maps that include features of the input image, via an output layer.
[0069] The output of the backbone network (e.g., feature map) may be received by one or more additional networks or layers configured to identify one or more furrow parameters, such as number of furrows, furrow identity, furrow location, or a combination thereof. In some embodiments, a network or layer may be configured to evaluate a single parameter. In some embodiments, a network or layer may be configured to evaluate two or more parameters. In some embodiments, a parameter may be evaluated by a single network or layer. In some examples, the output of the backbone network (e.g., feature map) may be received by an Atrous Spatial Pyramid Pooling (ASPP) layer. The ASPP layer may apply a series of atlas convolutions to the output of the backbone network. In some embodiments, the outputs of the atlas convolutions may be pooled and provided to a subsequent network layer of a point detection model. In some embodiments, the output may be a segmentation mask, an orientation mask, or both.
[0070] Interpolation may be applied to the output of the additional network (e.g., ASPP layer) to upsample the output to match the height and width of the intermediate layer from the second process. In some embodiments, the interpolation may be bilinear or nearest neighbor interpolation. The upsampled output from the first process may be concatenated with the output of the second process in a concatenation layer. The concatenation layer may stack the output tensors of the upsampling layer from both the first and second processes.
[0071] The concatenated output may be received by a convolution and upsample network. The convolution portion of the convolution and upsample network may include a series of one or more convolution neural networks running in parallel. In some embodiments, each convolution neural network may include a series of convolution layers, dropout, activation functions, pooling, batch normalization, vision transformers, visual transformers, other deep learning mechanisms, or combinations thereof that may be organized into residual blocks. The output of the convolution network may include a slice of each discriminant class (furrow, background, etc.) and may be upsampled using interpolation (e.g., bilinear interpolation) to match the height and width of the input image. An activation function (e.g., sigmoid activation function, softmax activation function, step activation function, linear activation function, hyperbolic tangent activation function, rectified linear unit (ReLU) activation function, swish activation function, etc.) may be applied to each pixel of this output upsampled image.
[0072] In the second process, a depth image (e.g., an image containing three-dimensional information) may be received by the convolutional network. In some embodiments, the depth image may be generated from two images of a surface (e.g., a field) collected from different angles. The network may be a backbone network. The network may be a CNN including any number of nodes (e.g., neurons) organized in any number of layers, or the network may be constructed using a vision transformer or a visual transformer. In some embodiments, the convolutional neural network may include an input layer configured to receive an image, an identification layer configured to identify furrows in the image, and an output layer configured to output data (e.g., feature maps, segmentation masks, number of furrows, location of furrows, etc.). Each layer of the convolutional neural network may be connected by any number of additional hidden layers. For example, the convolutional network may consist of an input layer that receives an image, a series of hidden layers, and one or more output layers. Each of the hidden layers may perform convolutions on the image and output a feature map. The feature maps may be passed from the hidden layer to the next convolutional layer. The output layer may output the results of the network, such as a directional mask. In some embodiments, the output may be a multi-resolution output.
[0073] The convolutional network may receive the depth image through an input layer. In some embodiments, the convolutional network may include a pre-trained network (e.g., ResNet50, MobileNet, CBNetV2, etc.) or a custom trained network. The convolutional network may include a series of convolutional layers, dropout, activation functions, pooling, batch normalization, vision transformers, visual transformers, other deep learning mechanisms, or combinations thereof that may be organized into residual blocks. The convolutional network may process the input deep image to generate an output, which may be fed to the rest of the machine learning network. For example, the output may include one or more feature maps that include features of the input image, via an output layer.
[0074] Interpolation may be applied to the output of the backbone network (e.g., feature maps) to upsample the output to match the height and width of the intermediate layer from the first process. In some embodiments, the interpolation may be bilinear interpolation. The upsampled output from the second process may be concatenated with the output of the first process in a concatenation layer. The concatenation layer may stack the output tensors of the upsampling layer from both the first and second processes.
[0075] The concatenated output may be received by a convolution and upsample network. The convolution portion of the convolution and upsample network may include a series of one or more convolution neural networks running in parallel. In some embodiments, each convolution neural network may include a series of convolution layers, dropout, activation functions, pooling, batch normalization, vision transformers, visual transformers, other deep learning mechanisms, or combinations thereof that may be organized into residual blocks. The output of the convolution network may include two slices of each discriminant class (furrow, background, etc.). The first slice of each class may predict a first value corresponding to the location and orientation of the furrow, and the second slice of each class may predict a second value corresponding to the location and orientation of the furrow. In some embodiments, the first and second values may relate to the location and orientation of the furrow in a polar coordinate system. For example, the first value may be a cos(2θ) value and the second value may be a sin(2θ) value, where θ corresponds to the angle of the furrow with respect to the reference coordinate frame. The slice may be upsampled using interpolation (e.g., bilinear interpolation) to match the height and width of the input image. An activation function (e.g., sigmoid activation function, softmax activation function, step activation function, linear activation function, hyperbolic tangent activation function, rectified linear unit (ReLU) activation function, swish activation function, etc.) may be applied to each pixel of this output upsampled image. The output of the function may have a range of -1 to 1, inclusive. In some embodiments, the cos(2θ) of each pixel may be 2and sin(2θ) 2 Pixel values may be normalized across the first and second slices of each class such that the sum of x, y, and z is 1. In some embodiments, the furrow locations and orientations may be expressed as Cartesian coordinates (e.g., x, y, and / or z coordinates) relative to a reference point in the image (e.g., an edge of the image, a center of the image, or a grid line in the image). In some embodiments, point locations may be expressed as polar, spherical, or cylindrical coordinates (e.g., θ, ρ, and / or φ (spherical) or z (cylindrical) coordinates) relative to a reference point in the image (e.g., an edge of the image, a center of the image, or a polar grid line in the image).
[0076] The machine learning processes described herein may be used to detect furrows in images collected by sensors connected to an autonomous vehicle and identify the location and orientation of the furrows relative to the vehicle. The autonomous vehicle may use the output of the machine learning processes to navigate along the furrows.
[0077] Ridge end direction change Described herein are navigation systems and methods for turning a vehicle within a designated turning area. Using the navigation systems and methods of the present disclosure, an end-of-row turn is performed for a vehicle exiting a field along a first path (e.g., a first furrow) and the vehicle is positioned to re-enter the field along a second path (e.g., a second furrow). These navigation systems and methods may facilitate driving an autonomous agricultural vehicle (e.g., a tractor, weeder, sprayer, or planter) to and from a crop furrow and may be used to turn the autonomous vehicle within a confined turning area.
[0078] FIG. 3 illustrates an example of a field 200 in which autonomous vehicle 100 may navigate using the systems and methods of this disclosure. An inner boundary 202 may be specified around a field (e.g., a crop field). In some embodiments, the inner boundary 202 may be specified around an area in the field, such as a planted or to-be-planted area. An outer boundary 201 may represent an available navigation area. The outer boundary may encompass the inner boundary 202 and a turning area 203 that surrounds the inner boundary 202. The outer boundary may be limited by terrain features such as cliffs, trees, hedges, roads, or walls that may cause damage to the vehicle if the vehicle crosses the outer boundary 201. In some embodiments, the inner boundary, the outer boundary, or both may be a geofence that includes GPS coordinates that indicate the boundary. In some embodiments, the inner boundary, the outer boundary, or both may be a boundary that is a predetermined distance from a geofence that includes GPS coordinates. For example, the outer boundary may be spaced about a vehicle length from the outer geofence, or at least a vehicle length from the outer geofence, so as not to cross the outer geofence. Due to irregular field shapes, such as center pivot farms, the inner boundary, the outer boundary, or both, may have curved shapes.
[0079] FIG. 4 illustrates features that may be used to autonomously execute a furrow-edge turn. The vehicle is directed along a field exit path.
number
number
number
number
number
number
number
number
number
number
number
number
number
[0080] Examples of turns are described herein. Although specific examples are provided, numerous variations exist and can be implemented. For example, turns may be made in a left direction or a right direction. Multiple turns may be made in succession to navigate the field. Turns and corresponding reference points may be determined based on the location of the furrow and the location of the boundary line as the vehicle navigates the field. For example, the reference point may be determined as the vehicle exits the furrow. In some embodiments, the reference point may be adjusted as the turn is being performed. In some embodiments, the reference point may be determined using field features detected using sensors (e.g., cameras, GPS sensors, rotary encoders, etc.) located on or associated with the vehicle. The reference point may be determined based on one or more vehicle parameters (e.g., width, length, turning radius, etc.) and may include additional margins to allow for error. For example, the parameters may include additional margins to account for oversteer or understeer.
[0081] The steering path may be determined to reach a target position, a target heading, or both. Determining the steering path may include calculating a path (also referred to as a "trajectory") to the target position or target heading and determining a wheel direction to follow the path. In some embodiments, the steering path may be determined using a Bezier curve or other curve model. In some embodiments, the curve may be determined when a turn is performed. In some embodiments, the curve may be updated and the wheel angle may be adjusted when a turn is performed. In some embodiments, the steering path may be determined to adjust the position of the vehicle if the vehicle deviates from the target position or target heading. The wheel direction may be determined based on an initial position (e.g., the current position of the vehicle), a final position (e.g., the target position), and an angle between the initial heading (e.g., the current heading of the vehicle) and the final heading (e.g., the target heading at the target position). For example, the wheel position may be calculated as follows: P3 = 0.5625(P1)+0.375(P2)+0.0625(P2-(V2·D·0.5·sinθ)) P3 is the point the wheel is pointing to, P1 is the initial position, P2 is the target position, V1 is the initial heading, V2 is the final heading, θ is the angle between the initial and final headings, and D is the distance between the initial and final positions.
[0082] 5 illustrates a turn performed without utilizing the corrective position C. The vehicle travels along or parallel to the first furrow 204 to follow the field exit path.
number
number
number
[0083] 6 shows a turn performed using the corrected position C. The vehicle travels along or parallel to the first furrow 204 to follow the field exit path.
number
number
number
[0084] 7 shows a turn being performed with reverse position R located outside the outer boundary 201. The vehicle travels along or parallel to the first furrow 204 to follow the field exit path.
number
number
number
number
number
[0085] 8 illustrates a turn being performed within a turning area 203 in a region of the inside boundary 202 that is at a shallow angle to the furrows 204 and 205. The vehicle is traveling along or parallel to the first furrow 204 to enter the field exit path.
number
number
number
[0086] In some embodiments, the vehicle may miss or pass the target location, or the vehicle may reach the target location in the wrong direction. In such cases, the vehicle may reverse (e.g., in a straight line or toward a different target location), adjust course, and attempt to reach the target location again. This process may be repeated (e.g., 1, 2, 3, 4, or 5 or more times) until the vehicle reaches the target location.
[0087] In some embodiments, the reference points (e.g., forward position, corrective position, reverse position, etc.), boundary lines (e.g., inner boundary line, outer boundary line, etc.) may be determined based on GPS coordinates. One or more GPS antennas (e.g., two antennas) may be placed on the autonomous vehicle to precisely pinpoint the vehicle's location. In some embodiments, a base station may be placed near the field (e.g., within about 100 miles) to improve GPS accuracy. Location coordinates may be transformed between a geographic coordinate reference frame and a field reference plane. In some embodiments, the field reference plane may be represented in two dimensions.
[0088] An example of a method 1400 for autonomously performing a turn is provided in FIG. 14. The vehicle may exit the field from a field exit position (e.g., position EX shown in FIG. 4) in step 1410 and travel toward a forward position (e.g., position F shown in FIG. 4) in step 1420. If the vehicle is unable to reach the forward position (1423), the vehicle may reverse toward a correction position (e.g., position C shown in FIG. 4) in step 1428. The vehicle may then resume traveling toward the forward position. In step 1430 (e.g., once the vehicle reaches the forward position), the vehicle may reverse (i.e., travel in a reverse direction) toward a reverse position (e.g., position R shown in FIG. 4). If the vehicle is unable to reach the reverse position (1435), the vehicle may travel toward a field re-entry position. In step 1440 (e.g., once the vehicle reaches or fails to reach the reverse position), the vehicle may travel toward a field re-entry position. If the vehicle is unable to reach the field re-entry location 1445, the vehicle may reverse toward a reverse position. At step 1450 (e.g., once the vehicle reaches the field re-entry location), the vehicle may re-enter the field at the field re-entry location. In some embodiments, the vehicle may begin furrow following upon re-entering the field.
[0089] Human Intervention In some embodiments, the autonomous vehicle system may encounter a situation where it cannot continue autonomously. In such a situation where an obstacle condition is met, human support may be requested. A human may intervene to correct the vehicle's path, or a human may determine that no intervention is necessary. In a situation where the vehicle attempts to reach a target location multiple times and fails, human intervention may be requested. In such a situation, a human may evaluate the vehicle or surrounding conditions and provide instructions to reach the target location, or a location where the vehicle can reach the target location autonomously. Alternatively or additionally, human intervention may be requested if the vehicle crosses a pre-set boundary line, or if the vehicle reaches a location a certain distance away from the pre-set boundary line. A human may then evaluate the vehicle or surrounding conditions and provide instructions to re-enter the boundary line or reach the target location. Alternatively or additionally, human intervention may be requested if the vehicle cannot detect a furrow at the field re-entry position, or while following the furrow between the field re-entry position and the field exit position. A human may assess the vehicle or surrounding conditions and manually identify a furrow or provide instructions to reach the furrow. Alternatively or additionally, human intervention may be required if an obstacle is detected near or on the vehicle's path. A human may assess the area around the vehicle and provide instructions to avoid the obstacle, or the human may determine that no obstacle exists.
[0090] In some embodiments, human intervention may be required if the vehicle fails to reach the target position or heading within a predefined number of attempts. An alert requesting human intervention may be generated by the automated vehicle system when the vehicle does not reach the target position (e.g., field exit position, corrected position, forward position, reverse position, or field re-enter position) or target heading (e.g., field exit path, field re-enter path, or forward direction) within a predefined number of attempts. For example, the alert may be generated after 2-10 attempts, 3-8 attempts, 4-6 attempts, or about 5 attempts. When the alert is generated, the system may pause the movement and wait for instructions from the human. The human may receive information about the vehicle from the system, such as the vehicle position (e.g., GPS position), steering position, wheel angle, distance from a boundary (e.g., distance from an outer boundary), or heading before the alert was generated. The information the human receives may include sensor imagery collected by the system, satellite imagery of the vehicle, or proximity sensor data. The human may use the information to determine what to do if manual intervention is required. In some embodiments, a human may determine that no intervention is necessary and may command the system to resume autonomous operation. In some embodiments, a human may intervene by providing instructions to reach a target location or a position from which the vehicle can reach the target location autonomously. For example, a human may provide the system with wheel angles, speed, distance, heading, or a combination thereof. The system may execute the instructions to reach the target location or a position from which the vehicle can reach the target location autonomously. After executing the instructions, the system may resume autonomous operation.
[0091] In some embodiments, if the automated vehicle system is unable to detect a furrow at the field re-entry location or while following the furrow between the field re-entry location and the field exit location, human intervention may be required. When the system is unable to detect a furrow during field re-entry or furrow following, an alert may be generated by the system requesting human intervention. When an alert is generated, the system may pause movement and wait for instructions from the human. The human may receive information about the vehicle from the system, such as the vehicle position (e.g., GPS position), steering position, wheel angle, distance from a boundary (e.g., distance from an outer boundary), or direction of travel before the alert was generated. The information received by the human may include sensor imagery collected by the system, satellite imagery of the vehicle, or proximity sensor data. The human may use the information to determine what to do if manual intervention is required. In some embodiments, the human may determine that no intervention is required and may command the system to resume autonomous operation. In some embodiments, the human may intervene by providing instructions to reach the furrow. For example, a person may provide the system with wheel angle, speed, distance, heading, or a combination thereof. The system may execute the command to reach the furrow. After executing the command, the system may resume autonomous operation.
[0092] In some embodiments, human intervention may be required if the vehicle crosses a boundary line or reaches a specific distance away from the boundary line. The boundary line may be an outer boundary line or an outer geofence surrounding the turn area. An alert requesting human intervention may be generated by the automated vehicle system when the vehicle crosses a boundary line or reaches a specific distance away from the boundary line. For example, an alert may be sent when the vehicle crosses a distance of 0.5 to 1.5 vehicle lengths or approximately equal vehicle lengths from the boundary line. When an alert is generated, the system may pause movement and wait for instructions from the human. The human may receive information about the vehicle from the system, such as the vehicle position (e.g., GPS position), steering position, wheel angle, distance from the boundary line (e.g., distance from the outer boundary line), or direction of travel before the alert was generated. The information received by the human may include sensor imagery collected by the system, satellite imagery of the vehicle, or proximity sensor data. The human may use the information to determine what to do if manual intervention is required. In some embodiments, the human may determine that no intervention is required and may command the system to resume autonomous operation. In some embodiments, a human may intervene by providing instructions to re-enter the turn area. For example, the human may provide the system with wheel angle, speed, distance, heading, or a combination thereof. The system may execute the instructions to re-enter the turn area. After executing the instructions, the system may resume autonomous operation.
[0093] In some embodiments, when an obstacle is detected by the autonomous vehicle system, human intervention may be requested. When an obstacle is detected, an alert may be generated by the system requesting human intervention. In some embodiments, the object may be detected by sensors (e.g., LIDAR sensors, RADAR sensors, or cameras) located on the vehicle. When an alert is generated, the system may pause movement and wait for instructions from the human. The human may receive information about the vehicle from the system, such as the vehicle position (e.g., GPS position), steering position, wheel angle, distance from a boundary (e.g., distance from an outer boundary), or the direction of travel before the alert was generated. The information the human receives may include sensor imagery collected by the system, satellite imagery of the vehicle, or proximity sensor data. The human may use the information to determine what to do if manual intervention is required. In some embodiments, the human may determine that no intervention is required and may command the system to resume autonomous operation. For example, the human may determine that no obstacle is present. In some embodiments, the human may intervene by commanding the vehicle to wait for the obstacle to exit the path. In some embodiments, the human may intervene by providing instructions to avoid the obstacle. For example, a person may provide the system with wheel angle, speed, distance, heading, or a combination of these. The system may execute commands to avoid an obstacle or wait for an obstacle to move. After executing commands, the system may resume autonomous operation.
[0094] In some embodiments, human intervention may be provided remotely. The autonomous vehicle system may send alerts, vehicle information, sensor data, image data, or combinations thereof over a network. In some embodiments, the network may be a wi-fi network, a satellite network, a local area network, or a mobile data network. In some embodiments, the alerts may be sent as texts, email alerts, or cell phone application notifications. A human may review the vehicle information, sensor data, image data, or combinations thereof remotely. A human may send commands to the autonomous vehicle system over the network, and the system may execute the commands. In some embodiments, a human may remotely control the vehicle over the network.
[0095] In some embodiments, human intervention may be provided at the scene (e.g., in the vehicle). For example, the human may be notified by a signal (e.g., sound or light) from the automated vehicle system or a notification sent over a network (e.g., as a text, email alert, or cell phone application). Once the human is alerted, he or she may take control of the vehicle or move the vehicle to correct the situation. For example, the human may manually control the vehicle to reposition the vehicle toward a furrow re-entry position. In another example, the human may manually drive the vehicle along a section of furrow that the vehicle's furrow detection system was unable to detect until the human reaches a section of furrow that the furrow detection system can detect.
[0096] An exemplary method 1500 for requesting human intervention is provided in FIG. 15. At step 1510, an obstacle condition (e.g., obstacle detection, failure to detect furrow, failure to reach target location, or crossing a boundary line) is met. When an obstacle condition is met, an alert is generated at step 1520, and the vehicle suspends operation at step 1530. In some embodiments, the alert may be sent over a network (e.g., as a text, email alert, or mobile phone application notification). In some embodiments, the system may generate an audio or visual alert from the vehicle. For example, the vehicle may be equipped with a light that indicates whether the vehicle is operating in manual mode or autonomous mode. At step 1540, the autonomous vehicle system may transmit information to a human, such as the vehicle position, steering position, wheel angle, distance from a boundary line (e.g., distance from an outer boundary line), heading before suspending movement, sensor images collected by the system, satellite images of the vehicle, or proximity sensor data. The information may be transmitted over a network (e.g., a wi-fi network, a satellite network, a local area network, or a mobile data network). The system may wait for a command from the human. At step 1550, the system may receive a command from the human. In some embodiments, the command may include wheel angle, speed, distance, heading, or a combination thereof. In some embodiments, the command may be a command that no intervention is required. At step 1560, the system may execute the command. For example, the system may steer the vehicle as commanded by the human. Upon executing the command or receiving a command that no intervention is required, at step 1570, the system may resume the autonomous function.
[0097] Computer system and method The detection and navigation methods described herein may be implemented using a computer system. In some embodiments, the detection and navigation systems described herein include a computer system. In some embodiments, the computer system may perform the detection and navigation methods autonomously without human input. In some embodiments, the computer system may perform the detection and navigation methods based on instructions provided by a human user via a detection terminal.
[0098] Actual embodiments of the illustrated devices will include many more components known to those skilled in the art. For example, each of the illustrated devices will have a power source, one or more processors, computer-readable media for storing computer-executable instructions, etc. For clarity, these additional components are not illustrated herein.
[0099] In some examples, the procedures described herein (e.g., the procedures of FIG. 12, or other procedures described herein) may be performed by a computing device or apparatus, such as a computing device having the computing device architecture 1600 shown in FIG. 13. In one example, the procedures described herein may be performed by a computing device having the computing device architecture 1600. The computing device may include any suitable device, such as a mobile device (e.g., a mobile phone), a desktop computing device, a tablet computing device, a wearable device, a server (e.g., in a Software as a Service (SaaS) system or other server-based system), and / or any other computing device having resource capabilities to perform the processes described herein, including the procedures of FIG. 12. In some instances, the computing device or apparatus may include various components, such as one or more input devices, one or more output devices, one or more processors, one or more microprocessors, one or more microcomputers, and / or other components configured to perform steps of the processes described herein. In some examples, a computing device may include a display (as an example of an output device or in addition to an output device), a network interface configured to communicate and / or receive data, any combination thereof, and / or other component(s). The network interface may be configured to communicate and / or receive Internet Protocol (IP)-based data or other types of data.
[0100] The components of a computing device may be implemented in circuitry. For example, the components may include and / or be implemented using electronic circuitry or other electronic hardware, which may include one or more programmable electronic circuits (e.g., a microprocessor, a graphics processing unit (GPU), a digital signal processor (DSP), a central processing unit (CPU), and / or other suitable electronic circuitry), and / or may include and / or be implemented using computer software, firmware, or any combination thereof, to perform various operations described herein.
[0101] A procedure is illustrated in FIG. 12, where the operations of the procedure represent a sequence of operations that may be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, the operations represent computer-executable instructions stored on one or more computer-readable storage media, which, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like, that perform particular functions or implement particular data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations may be combined in any order and / or in parallel to implement a process.
[0102] Additionally, the processes described herein may be executed under the control of one or more computer systems configured with executable instructions, and may be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) collectively executed on one or more processors by hardware or a combination thereof. As noted above, the code may be stored on a computer-readable or machine-readable storage medium, for example, in the form of a computer program including a plurality of instructions executable by one or more processors. The computer-readable or machine-readable storage medium may be non-transitory.
[0103] FIG. 13 illustrates an example computing device architecture 1600 of an example computing device capable of implementing various techniques described herein. For example, the computing device architecture 1600 may implement the procedures illustrated in FIG. 12 or control the vehicle illustrated in FIG. 1 and FIG. 2. The components of the computing device architecture 1600 are shown in electrical communication with each other using a connection 1605, such as a bus. The example computing device architecture 1600 includes a processing unit (which may include a CPU and / or a GPU) 1610 and a computing device connection 1605 that connects various computing device components, including a computing device memory 1615, such as a read only memory (ROM) 1620 and a random access memory (RAM) 1625, to the processor 1610. In some embodiments, the computing device may include a hardware accelerator.
[0104] The computing device architecture 1600 may include a cache of high-speed memory directly connected to the processor 1610, closely connected to the processor 1610, or integrated as part of the processor 1610. The computing device architecture 1600 may copy data from the memory 1615 and / or storage device 1630 to the cache 1612 for quick access by the processor 1610. In this manner, the cache may provide a performance boost that avoids delays to the processor 1610 while waiting for data. These and other modules may control or be configured to control the processor 1610 to perform various actions. Other computing device memories 1615 may be available as well. The memory 1615 may include multiple different types of memory having different performance characteristics. Processor 1610 may include any general purpose processor, hardware or software services configured to control processor 1610, such as service 1 1632, service 2 1634, and service 3 1636 stored on storage device 1630, and also special purpose processors with software instructions built into the processor design. Processor 1610 may be a self-contained system including multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.
[0105] To enable user interaction with the computing device architecture 1610, the input devices 1645 may represent any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, a keyboard, a mouse, motion input, and speech. And the output devices 1635 may be one or more of several output mechanisms known to those skilled in the art, such as a display, a projector, a television, a speaker device, and the like. In some cases, a multimodal computing device may enable a user to provide multiple types of input to communicate with the computing device architecture 1600. The communication interface 1640 may generally control and manage user input and computing device output. Since there are no operational limitations to any particular hardware configuration, the basic features herein may be readily replaced with improved hardware or firmware configurations as they are developed.
[0106] The storage device 1630 may be a hard disk or other type of computer readable medium that is non-volatile memory and can store data accessible by a computer, such as a magnetic cassette, a flash memory card, a solid state memory device, a digital versatile disk, a cartridge, a random access memory (RAM) 1625, a read only memory (ROM) 1620, and hybrids thereof. The storage device 1630 may include services 1632, 1634, 1636 for controlling the processor 1610. Other hardware or software modules are also contemplated. The storage device 1630 may be connected to the computing device connection 1605. In one aspect, a hardware module that performs a particular function may include software components stored on a computer readable medium in association with hardware components such as the processor 1610, the connection 1605, and the output device 1635 necessary to perform the function.
[0107] The term "computer-readable medium" includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or transporting instruction(s) and / or data. Computer-readable media may include non-transitory media capable of storing data, which does not include carrier waves and / or transitory electronic signals propagating wirelessly or via wired connections. Examples of non-transitory media may include, but are not limited to, magnetic disks or tapes, optical storage media such as compact disks (CDs) or digital versatile disks (DVDs), flash memory, memory, or memory devices. A computer-readable medium may store code and / or machine-executable instructions therein, which may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be connected to another code segment or a hardware circuit by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, or network transmission, etc.
[0108] In some embodiments, computer readable storage devices, media, and memories may include wired or wireless signals containing bitstreams, etc. However, non-transitory computer readable storage media, when referred to, explicitly excludes media such as energy, carrier signals, electromagnetic waves, and the signals themselves.
[0109] Specific details have been provided in the above description to provide a thorough understanding of the embodiments and examples provided herein. However, it will be understood by those skilled in the art that the embodiments may be practiced without these specific details. For clarity of explanation, in some cases, the present technology may be presented including individual functional blocks, including functional blocks having devices, device components, steps, or routines, in a method embodied in software, or a combination of hardware and software. Additional components other than those shown in the figures and / or described herein may be used. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form so as not to obscure the embodiments in unnecessary detail. In other cases, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail so as to avoid obscuring the embodiments.
[0110] Individual embodiments may be described above as a process or method that is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. In a flowchart, operations may be described as a sequential process, but many of the operations may be performed in parallel or simultaneously. Moreover, the order of operations may be rearranged. A process terminates when its operations are completed, but may have additional steps not included in the figures. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to returning a return value of the function to a calling function or to a main function.
[0111] The processes and methods according to the foregoing examples may be implemented using computer-executable instructions stored or available from a computer-readable medium. Such instructions may include, for example, instructions and data that cause a general purpose computer, special purpose computer, or processing device to perform a particular function or set of functions, or configure a general purpose computer, special purpose computer, or special purpose processing device to perform a particular function or set of functions. Portions of the computer resources used may be accessible over a network. The computer-executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, source code, etc. Examples of computer-readable media that may be used to store instructions, information used, and / or information created during the implementation of methods according to the described embodiments include magnetic or optical disks, flash memory, USB devices provided with non-volatile memory, and network storage devices.
[0112] Devices implementing the processes and methods according to these disclosures may include hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof, and may adopt any of a variety of form factors. Program code or code segments (e.g., computer program products) for performing the necessary tasks, when implemented in software, firmware, middleware, or microcode, may be stored on a computer-readable or machine-readable medium. A processor(s) may perform the necessary tasks. Typical examples of form factors include laptops, smartphones, mobile phones, tablet devices, or other small form factor personal computers, personal digital assistants, rack-mounted devices, and standalone devices. The functions described herein may also be incorporated into peripheral devices or add-in cards. Such functions may also be implemented on a circuit board common to different chips or different processes running within a single device, as a further example.
[0113] The instructions, media for carrying such instructions, computing resources for executing them, and other structures for supporting such computing resources are exemplary means for providing the functionality described in this disclosure.
[0114] The various exemplary logic blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, firmware, or a combination thereof. To clearly illustrate this interchangeability of hardware and software, the various exemplary components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
[0115] The techniques described herein may also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such techniques may be implemented in any of a variety of devices, such as a general purpose computer, a wireless communication device handset, or an integrated circuit device with multiple uses, including applications in wireless communication device handsets and other devices. Any features described as modules or components may be implemented together in an integrated logic device, or separately as separate but interoperable logic devices. When implemented in software, the techniques may be realized at least in part by a computer-readable data storage medium with program code including instructions, which when executed perform one or more of the methods described above. The computer-readable data storage medium may form part of a computer program product, which may include packaging materials. The computer-readable medium may include a memory or data storage medium, such as a random access memory (RAM), such as a synchronous dynamic random access memory (SDRAM), a read-only memory (ROM), a non-volatile random access memory (NVRAM), an electrically erasable programmable read-only memory (EEPROM), a flash memory, and a magnetic or optical data storage medium. Additionally or alternatively, the techniques may be realized at least in part by a computer-readable communication medium that carries or communicates program code in the form of instructions or data structures that may be accessed, read, and / or executed by a computer, such as a propagated signal or wave.
[0116] The program code may be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Such a processor may be configured to perform any of the techniques described in this disclosure. A general-purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented in a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Thus, the term "processor" as used herein may refer to any of the aforementioned structures, any combination of the aforementioned structures, or any other structure or apparatus suitable for implementing the techniques described herein.
[0117] While illustrative embodiments have been illustrated and described, it will be understood that various changes can be made therein without departing from the spirit and scope of the disclosure.
[0118] In the foregoing description, aspects of the present application are described with reference to specific embodiments of the present application, but those skilled in the art will recognize that the present application is not limited thereto. Thus, while exemplary embodiments of the present application have been described in detail herein, it will be understood that the inventive concepts may be embodied and used in various other ways, and that the appended claims are intended to be construed to include such variations except as limited by the prior art. The various features and aspects of the present application described above may be used individually or together. Moreover, the embodiments may be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of the present specification. Thus, the specification and drawings should be regarded as illustrative and not restrictive. The methods have been described in a particular order for illustrative purposes. It will be understood that in alternative embodiments, the methods may be performed in an order different from that described.
[0119] Those skilled in the art will understand that the less than ("<") and greater than (">") symbols or terms used herein may be replaced with the less than or equal to ("≦") and greater than or equal to ("≧") symbols, respectively, without departing from the scope of this description.
[0120] When a component is described as being "configured to" perform a particular operation, such configuration may be achieved, for example, by designing electronic circuitry or other hardware to perform the operation, by programming a programmable electronic circuit (e.g., a microprocessor or other suitable electronic circuitry) to perform the operation, or by any combination thereof.
[0121] The phrase "connected to" refers to any component that is directly or indirectly physically connected to another component and / or any component that is in direct or indirect communication with another component (e.g., connected to another component via a wired or wireless connection and / or other suitable communication interface).
[0122] Claim language or other language reciting "at least one" of a set and / or "one or more" of a set indicates that one element of the set, or multiple elements of the set (in any combination), satisfies the claim. For example, claim language reciting "at least one of A and B" means A, B, or A and B. In another example, claim language reciting "at least one of A, B, and C" means A, B, C, or A and B, or A and C, or B and C, or A, B and C. The language of "at least one" of a set and / or "one or more" of a set does not limit the set to the listed items in the set. For example, claim language reciting "at least one of A and B" can mean A, B, or A and B, and may include additional items not listed in the set of A and B.
[0123] As used herein, the terms "about" and "approximately" in reference to numerical values are used herein to include numerical values that fall within a range of ±10%, 5%, or 1% (greater or less) of the numerical value, unless otherwise stated or clear from the context (except where the numerical value exceeds 100% possible value).
[0124] While preferred embodiments of the present invention have been shown and described herein, it will be apparent to those skilled in the art that such embodiments are provided by way of example only. Those skilled in the art will envision numerous variations, changes, and substitutions without departing from the present invention. It is understood that various alternatives to the embodiments of the present invention described herein may be employed in the practice of the present invention. The following claims define the scope of the present invention, and it is intended that methods and structures encompassed within the scope of the claims, and their equivalents, be covered thereby.
Claims
1. A system for autonomous driving of a vehicle, wherein the system is A steering controller for driving the aforementioned vehicle, A processor connected to the steering controller, the processor is configured to determine a first turning area corresponding to a first field exit path having a first field exit position and a first field re-entry path having a first field re-entry position, the first turning area being defined by an outer boundary line and an inner boundary line, the outer boundary line surrounding the inner boundary line, the inner boundary line extending through the first field exit position and the first field re-entry position, and the inner boundary line surrounding the cultivation area within the field, the processor and In order to determine the location of the vehicle, a location sensor connected to the processor, A memory connected to the aforementioned processor for storing instructions and Equipped with, When the aforementioned instruction is executed by the processor, The vehicle is driven along the first field exit path toward the first field exit position on the inner boundary line, When the vehicle touches the inner boundary line at the first field exit position, the vehicle is driven toward the first forward position, When the vehicle touches the outer boundary line, it is moved in reverse toward the first correction position. When the vehicle reaches the first correction position, it is driven toward the first forward position. When the vehicle reaches the first forward position, it is moved in reverse toward the first reverse position. When the vehicle reaches the first reverse position or touches the outer boundary line, it is driven forward toward the first field re-entry position on the inner boundary line. A system that causes the steering controller to perform a first turn by doing the following.
2. The system according to claim 1, wherein the first forward position is determined to be located at least by the vehicle width from the first field re-entry position in the direction opposite to the first field re-entry path, and at least by the vehicle turning radius from the first field re-entry position in the direction opposite to the first field exit position.
3. The system according to claim 1 or 2, wherein the first forward direction is parallel to the line connecting the first field exit position and the first field re-entry position.
4. The system according to claim 1 or 2, wherein the first correction position is determined to be located at least the vehicle length from the first field exit position and in the direction opposite to the first field re-entry position.
5. The system according to claim 1 or 2, wherein the first reverse position is determined based on the vehicle length with respect to the first field re-entry position.
6. The system according to claim 1 or 2, wherein the first field re-entry position is determined along the inner boundary line.
7. The system according to claim 1 or 2, wherein the first field exit path is parallel to the first field re-entry path.
8. The system according to claim 1 or 2, wherein the region of the inner boundary line between the first field exit position and the first field re-entry position is not perpendicular to the first field exit path, the first field re-entry path, or both.
9. The system according to claim 1 or 2, wherein the first field exit path, the first field re-entry path, or both are parallel to the furrows within the field.
10. The first turn described above is further, Before reaching the first reverse position, if the vehicle touches the outer boundary line, the vehicle is reversed toward the first field re-entry position. When the vehicle reaches the first field re-entry position in an orientation not along the first field re-entry path, the vehicle is reversed toward the first reverse position. The system according to claim 1 or 2, which is performed by...
11. The system according to claim 1 or 2, wherein the first rotation is determined in real time, adaptively, or both.
12. The processor is further configured to determine a second turning area corresponding to a second field exit path having a second field exit position and a second field re-entry path having a second field re-entry position, wherein the second turning area is defined by the outer boundary line and the inner boundary line, the inner boundary line extending through the second field exit position and the second field re-entry position, and the instruction further, The vehicle is driven toward the second field exit position along the second field exit path, When the vehicle touches the inner boundary line at the second field exit position, the vehicle is driven toward the second forward position, When the vehicle reaches the second forward position, it is moved in reverse toward the second reverse position. When the vehicle reaches the second reverse position or touches the outer boundary line, the vehicle is reversed toward the second field re-entry position on the inner boundary line. The system according to claim 1 or 2, wherein the steering controller is made to perform a second turn by performing the following.
13. The system according to claim 12, wherein the processor is further configured to detect the furrow between the first field re-entry position and the second field exit position.
14. The system according to claim 13, wherein, when the instruction is executed by the processor, it further causes the steering controller to move along the furrows to the second field exit position.
15. The system according to claim 1 or 2, wherein the first field exit position, the first field exit path, the first field re-entry position, the first field re-entry path, the first forward position, the first correction position, the first reverse position, the second field exit position, the second field exit path, the second field re-entry position, or any combination thereof, is determined in real time, adaptively, or both.
16. The system according to claim 1 or 2, wherein the first field exit position, the first field exit path, the first field re-entry position, the first field re-entry path, the first forward position, the first correction position, the first reverse position, or any combination thereof is independent of the vehicle's speed, independent of the vehicle's turning rate, or both.
17. The system according to claim 1 or 2, wherein the processor is further configured to generate alerts requesting human intervention.
18. The system according to claim 17, wherein the alert is generated when the vehicle fails to reach the first field exit position, the first correction position, the first forward position, the first reverse position, or the first field re-entry position after a predetermined number of attempts.
19. The system according to claim 17, wherein the alert is generated when the vehicle crosses the outer boundary line or exceeds a predetermined distance from the outer boundary line.
20. The system according to claim 17, wherein the system generates the alert when it fails to detect a furrow at the first field re-entry position or between the first field re-entry position and the second field exit position.
21. The system according to claim 17, wherein the alert is generated when the system detects an obstacle.
22. The system according to claim 17, wherein the alert includes images collected from the vehicle, the location of the vehicle, the location of the steering controller, satellite images of the vehicle, or a combination thereof.
23. The system according to claim 17, wherein the processor is further configured to receive commands from a person after the alert has been generated.
24. The system according to claim 23, wherein the instructions are provided remotely.
25. The system according to claim 23, wherein the processor is further configured to continue, after the instruction is provided, to perform the first turn, the second turn, or to proceed along the furrows.
26. The system according to claim 1 or 2, further comprising an obstacle detection sensor configured to detect obstacles.
27. The system according to claim 1 or 2, wherein the location sensor includes a global positioning system sensor, a camera, or both.
28. The system according to claim 1 or 2, wherein the vehicle is an agricultural vehicle.
29. The system according to claim 1 or 2, wherein the vehicle is a tractor, a weeder, a sprayer, or a planter.
30. A method for autonomously driving a vehicle in a field, wherein the method is The method involves determining a direction change area corresponding to a field exit path having a first field exit position and a field re-entry path having a first field re-entry position, wherein the first direction change area is defined by an outer boundary line and an inner boundary line, the outer boundary line surrounds the inner boundary line, the inner boundary line extends through the first field exit position and the first field re-entry position, and the inner boundary line surrounds the cultivation area within the field. The vehicle is instructed to drive along the first field exit path toward the first field exit position on the inner boundary line, When the vehicle touches the inner boundary line at the first field exit position, the vehicle is instructed to drive toward the first forward position, When the vehicle touches the outer boundary line, it is instructed to drive toward the first correction position. When the vehicle reaches the first correction position, it is instructed to drive toward the first forward position. When the vehicle reaches the first forward position, it is instructed to drive toward the first reverse position, When the vehicle reaches the first reverse position or touches the outer boundary line, it is instructed to move forward toward the first field re-entry position on the inner boundary line. Methods that include...
31. The method according to claim 30, further comprising instructing the vehicle to operate at a variable speed.
32. Before reaching the first reverse position, if the vehicle touches the outer boundary line, it is instructed to reverse toward the first field re-entry position. When the vehicle reaches the first field re-entry position in an orientation not along the first field re-entry path, it is instructed to reverse toward the first reverse position. The method according to claim 30 or 31, further comprising:
33. Determining a second turning area corresponding to a second field exit path having a second field exit position and a second field re-entry path having a second field re-entry position, wherein the second turning area is defined by the outer boundary line and the inner boundary line, and the inner boundary line extends through the second field exit position and the second field re-entry position, The vehicle is instructed to drive along the second field exit path toward the second field exit position, When the vehicle touches the inner boundary line at the second field exit position, the vehicle is instructed to drive toward the second forward position. When the vehicle reaches the second forward position, it is instructed to drive toward the second reverse position. When the vehicle reaches the second reverse position or touches the outer boundary line, it is instructed to drive toward the second field re-entry position on the inner boundary line. The method according to claim 30 or 31, further comprising:
34. The method according to claim 33, further comprising instructing the vehicle to proceed along the furrow between the first field re-entry position and the second field exit position.
35. The method according to claim 30 or 31, further comprising determining the first field exit position, the first field exit path, the first field re-entry position, the first field re-entry path, the first forward position, the first correction position, the first reverse position, or a combination thereof, based on sensor input.
36. The method according to claim 30 or 31, further comprising generating an alert requesting human intervention.
37. The method according to claim 36, further comprising generating the alert when the vehicle fails to reach the first field exit position, the first correction position, the first forward position, the first reverse position, the first field re-entry position, the second field exit position, the second correction position, the second forward position, the second reverse position, or the second field re-entry position after a predetermined number of attempts.
38. The method according to claim 36, comprising generating the alert when the vehicle crosses the outer boundary line or exceeds a predetermined distance from the outer boundary line.
39. The method according to claim 36, further comprising generating the alert when the system fails to detect a furrow at the first field re-entry position or between the first field re-entry position and the second field exit position.
40. The method according to claim 36, further comprising generating the alert when the system detects an obstacle.
41. The method according to claim 36, further comprising transmitting images collected from the vehicle, the location of the vehicle, the location of the steering controller, satellite images of the vehicle, or a combination thereof, together with the alert.
42. The method according to claim 36, further comprising receiving a command from a person after the alert has been generated.
43. The method according to claim 42, wherein the aforementioned instruction is received via a network.
44. The method according to claim 42, further comprising, after receiving the command, performing the first turn, performing the second turn, or continuing to move along the furrows.
45. A computer-based method for detecting furrows in a field, wherein the computer-based method is: Receiving depth images of the field and visual images of the field, In a similar image of furrows, label image data is obtained that includes the furrows, the location of the furrows, and the direction of the furrows. Using the labeled image data, a machine learning model is trained to identify furrows, determine their location, and determine their direction. By using the aforementioned depth image and the aforementioned visual image as input to the machine learning model, the furrows can be identified. By using the aforementioned depth image and the aforementioned visual image as input to the machine learning model, the location and direction of the furrows between the rows can be identified. A computer implementation method, including
46. The computer implementation method according to claim 45, further comprising identifying the furrows by generating a segmented map from the visual image.
47. The computer implementation method according to claim 45, wherein determining the direction between the ridges further includes determining the center of the ridges from the depth image.
48. The computer implementation method according to claim 45, wherein identifying the location and direction of the furrows further includes identifying the location and direction values of the pixels in the visual image corresponding to the furrows.
49. The computer implementation method according to claim 48, further comprising identifying a representative location and a representative direction based on the location value and the direction value, wherein the representative location corresponds to the location between the rows and the representative direction corresponds to the direction between the rows.
50. A method for navigating a field, the method comprising detecting a first furrow using a computer implementation method according to any one of claims 45 to 49.