Precision agriculture uses technologies such as global navigation satellite systems (GNSS), inertial measurement sensors, and computers to guide a tractor through a field following carefully defined paths to improve crop yield, reduce operator fatigue, comply to environmental regulations, and reduce cost. The cost of these systems limits their application to only the largest farms with the economies of large scale required to purchase them.
Reducing the cost of precision agriculture technologies can be accomplished by leveraging common smart devices such as smart-phones and tablet computers. The primary barrier to using these devices is their inherent non-determinism where disruptions to wireless communications, application processor time allocation, and multitasking can block the steering and guidance software. Disruptions to timely operation complicate smart device integration into larger systems.
The disclosure that follows solves this and other problems.
In one example, a precision steering computer installed on a tractor uses waypoints generated by the operators hand-held smart-device to navigate around a field. The smart-device may be used as the primary interface for the operator and is one component of an entire precision agriculture guidance system. Batched, time ordered waypoints generated by the smart-device represent a list of coordinates for steering the tractor.
The explanation below uses the example of a tractor plowing a field. However, it should be understood that the precision agricultural guidance system may be used with any vehicle to perform any type of agricultural or non-agricultural operation. For example, the precision agricultural guidance system may be used on a combine to harvest a crop in a field or may be used with construction machinery on construction sites, such as when building a road.
As the vehicle moves over the field, the waypoints are consumed and discarded by the real-time steering computer in the order received from the non-real-time smart device. The path planned by the operator is generated by the smart device and the progress and status of the tractor are displayed on the same smart-device.
Waypoints, consisting of time ordered geo-location coordinates along the operator defined path, are generated on the smart-device in advance of a tractor arriving at those locations. These waypoints are created in large batches a minute or more before the precision steering computer on the tractor needs them to stay on the commanded path. Batch waypoint generation conform well with the computing architecture of non-real-time devices such as smart-devices, laptops, and desktop computers and can be sent to the real-time computer within the precision steering system using a wired connection or a wireless technology such as Bluetooth or WiFi.
Batched waypoints are stored in the precision steering computer in the order they are used for steering the vehicle along a predetermined path. In the event of a service interruption with the users smart-device or a communication failure between the smart-device and the steering computer, the steering computer can continue to pull future waypoints from the queued waypoint list ensuring the next waypoint is available. If the waypoint queue is depleted prior to the users smart-device providing the next batch of waypoints, the steering computer can notify the user to stop the tractor.
The division of computing between the real time domain of the steering computer and the non-real-time domain of the smart device is facilitated by way of the queue of waypoints are stored and transmitted as batches representing many minutes of future tractor travel.
While this summary describes a specific instance with a smart device generates an entire planned path of waypoints, it should be apparent that any source of waypoints could be used either onboard the tractor or remotely. Removing the non-real-time planning activities from the real-time steering system enables the use of internet-based control including remote operation as well as fully autonomous control from internet software-as-a-service or cloud computing sources.
Additional aspects and advantages will be apparent from the following detailed description of preferred embodiments, which proceeds with reference to the accompanying drawings.
A tractor operator 109 uses a smart device 106 to plan a route for tractor 101 through a field. Smart device 106 may be a smart phone, tablet computer, laptop computer, or any other portable or handheld device. The tractor operator 109 uses path planner software 108 operating in smart device 106 when prepare the path for automatically steering tractor 101. Path planning software, such as chart plotters, are known to those skilled in the art and are therefore not described in further detail.
The output of path planner 108 is a time ordered series of waypoints 114 stored in an output waypoint queue 107 of smart device 106. Smart device 106 transmits waypoints 114 in output waypoint queue 107 via wireless or wired communication channel to a receiving input waypoint queue 105 in steering computer 105. For example, waypoints 114 may be transmitted via a WiFi or Bluetooth wireless connection or via a universal serial bus (USB) wired connection.
To facilitate efficient data transfers, smart device 106 may send waypoints 114 in batches to steering computer 103. Steering controller 104 consumes received waypoints 114 from local input waypoint queue 105 as tractor 101 travels over the commanded location within each waypoint 114. For example, steering controller 104 steers from a current location to a next waypoint 114 in waypoint queue 105. After reaching the next waypoint 114, steering controller 104 steers to a next subsequently stored waypoint 114 in waypoint queue 105.
In operation 202, path planner 108 in smart device 106 uses a previously defined path through a field defined by tractor operator 109 to generate a time series of waypoints 114. For example, smart device 106 may include a user interface 112 with a display and keyboard or touch screen input. Path planner 108 may display an electronic map of a field on user interface 112. Operator 109 then may select points on the electronic map to create a field path for tractor 101. Path planner 108 may generate a set of waypoints 114 that each include a latitude, longitude, and a time identifier indicating the order waypoints 114 were selected by operator 109.
In operation 203, smart device 106 pushes waypoints 114 into waypoint queue 107 prior to transmission. Smart device 106 then transmits a group or batch of the waypoints 114 for the field path to waypoint queue 105 in steering computer 103.
In operation 204, smart device 106 enters a loop waiting for waypoint queue 107 in smart device 106 to be empty 204 which indicates the last waypoints 114 of the path have been transmitted by smart device 106 to steering computer 103.
Prior to transmitting waypoints 114 to steering computer 103, smart device 106 in operation 205 queries steering computer 103 for the status of waypoint queue 105. If input queue 105 in steering computer 103 is full, or steering computer 103 is busy, smart device 106 will hold-off transmitting additional waypoints 114 and wait before querying steering computer 103 again. This buffering protocol allows use of a low-cost shallow buffer depth for waypoint queue 105 in steering computer 103.
In operation 205, smart device 106 may receive a message back from steering computer 103 indicating steering computer 103 is ready to receive more waypoints. Smart device 106 in operation 206 then bundles a next number of waypoints from output queue 107 into a batch appropriate to the size of memory used as waypoint input queue 105. Smart device 106 in operation 207 then transmits the batch of waypoints 114 to queue 105 in steering computer 103 prior to returning to operation 204.
Smart device 208 starts operation 208 after the last waypoint 114 is transmitted from waypoint queue 107 to waypoint input queue 105 in the steering computer 103. Smart device 106 then continuously queries steering computer 103 in operation 208 waiting for tractor 101 to reach the last waypoint. When smart device 208 receives a message back from steering computer 103 indicating the last waypoint has been reached, smart device 106 in operation 209 may display a message on user interface display 112 indicating tractor 101 has reached the end of the selected path.
As mentioned above, precision steering system 100 includes a first navigation computing device 106 configured to generate a time series of geo-location waypoints 114 for a path. Second steering computing device 103 includes input buffer 105 configured to receive the geo-location waypoints from first navigation computing device 106. Second computing device 103 is configured to generate steering commands for steering vehicle 101 based on waypoints 114 received by input buffer 105.
First navigation computing device 106 may be a non-real-time computer configured to run path planning software on a best-effort schedule and second computer 103 may be a real-time computer running steering control software at a periodic rate. In one example, first navigation computing device 106 may operate on a handheld smart device and the second steering computing device 103 may operate on a dedicated vehicle steering control system coupled to steering actuator 102 that steers vehicle 101 based on the steering commands.
First navigation computing device 106 may transmit geo-location waypoints 114 to input buffer 105 on second computer 103 over a wireless network. In another example, first navigation computing device 106 may transmit geo-location waypoints 114 in batches to input buffer 105 in second computer 103.
In one example, second steering computing device 106 uses input buffer 105 as a First-In-First-Out (FIFO) queue for processing geo-location waypoints 114. In another example, second steering computing device 103 is configured to send status messages to first navigation computing device 106 indicating when the First-In-First-Out queue is ready to accept additional geo-location waypoints 114.
In one example, first navigation computing device 106 includes output buffer 107 for storing the geo-location waypoints 114. First navigation computing device 106 also may operate output buffer 107 as a First-In-First-Out (FIFO) queue first buffering geo-location waypoints 114 and then transmitting the buffered geo-location waypoints 114 to second steering computing device 103.
In one example, path planner 108 repeatedly sends queries to steering controller 104 to check for available space in queue 105. Additional batches of waypoints 114 are sent to queue 105 based on the available space. For example, second steering computing device 103 may send a first message to first navigation computing device 106 indicating input buffer 105 is approaching capacity for storing the geo-location waypoints 114. The message may cause first navigation computing device 106 to stop sending additional geo-location waypoints 114 until receiving a second continue transmitting message from second steering computing device 103.
In another example, second steering computing device 103 is configured to send a message to first navigation computing device 106 indicating a current capacity of input buffer 105. First navigation computing device 106 may decide to send additional geo-location waypoints 114 to second steering computing device 103 based on the current capacity of input buffer 105. In one example, first navigation computing device 106 is configured to encode geo-location waypoints 114 transmitted to second steering computing device 103 to reduce transmission errors. For example, first navigation computing device 106 may use orthogonal frequency-division multiplexing (OFDM) to overcome errors in mobile communication channels.
As also explained above, a first program, such as path planner 108, generates a time series of future geo-location waypoints 114 for a selected vehicle path and transmits waypoints 114 over a communication channel to an asynchronous buffer 105. A second program, such as steering controller 104, generates steering commands for steering vehicle 101 based on the geo-location waypoints 114 in buffer 105.
In another embodiment, a same computing device 106 or 103 runs first program 108 and second program 104. In another example, first computing device 106 runs first program 108 and second computing device 103 operating asynchronously from first computing device 106 runs second program 104. In one example, first program 108 and second program 104 run on separate processor cores in a same physical central processing unit.
In another example, first program 108 and second program 104 run on a same processing device 106 or 103 controlled by a time partitioned operating system. In yet another example, first program 108 and second program 104 may run on a same processing device 106 or 103. An operating system running on the processing device 106 or 103 may asynchronously generate target waypoints 114 with first program 108 and the steering commands with second program 104.
Utilizing smart device 208 in conjunction with steering computer 103 provides many technical computing advantages. For example, a large amount of memory storage can be offloaded onto start device 106. Further, the computational and memory requirements for operating electronic maps, chart plotters/path planners, and display and user input interfaces can all be offloaded to smart device 106 or to cloud based services accessed by smart device 106. In addition, any wireless communication hardware or software needed to communicate with a central server or cloud based services that may provide electronic maps and path planning software can also be offloaded to smart device 106 and/or the cloud based service.
Precision agriculture guidance system 100 lowers the cost of precision agriculture to improve yield, reduce fatigue, and lower ecological impact of farming. It enables a commodity processing platform such as a smart-phone or tablet to act as the user interface and path planning element of an agricultural guidance system. It maintains the safety capabilities of existing systems while adding flexibility to use lower cost, non-proprietary hardware for the user interface, path planning, logging, diagnostics, and connectivity functions. These advantages also include the ability to scale a single guidance system into a larger coordinated fleet without requiring expensive on-premises computing or communications hardware.
While only a single computing device 1000 is shown, the computing device 1000 may include any collection of devices or circuitry that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the operations discussed above. Computing device 1000 may be part of an integrated control system or system manager, or may be provided as a portable electronic device configured to interface with a networked system either locally or remotely via wireless transmission.
Processors 1004 may comprise a central processing unit (CPU), a graphics processing unit (GPU), programmable logic devices, dedicated processor systems, micro controllers, or microprocessors that may perform some or all of the operations described above. Processors 1004 may also include, but may not be limited to, an analog processor, a digital processor, a microprocessor, multi-core processor, processor array, network processor, etc.
Some of the operations described above may be implemented in software and other operations may be implemented in hardware. One or more of the operations, processes, or methods described herein may be performed by an apparatus, device, or system similar to those as described herein and with reference to the illustrated figures.
Processors 1004 may execute instructions or “code” 1006 stored in any one of memories 1008, 1010, or 1020. The memories may store data as well. Instructions 1006 and data can also be transmitted or received over a network 1014 via a network interface device 1012 utilizing any one of a number of well-known transfer protocols.
Memories 1008, 1010, and 1020 may be integrated together with processing device 1000, for example RAM or FLASH memory disposed within an integrated circuit microprocessor or the like. In other examples, the memory may comprise an independent device, such as an external disk drive, storage array, or any other storage devices used in database systems. The memory and processing devices may be operatively coupled together, or in communication with each other, for example by an I/O port, network connection, etc. such that the processing device may read a file stored on the memory.
Some memory may be “read only” by design (ROM) by virtue of permission settings, or not. Other examples of memory may include, but may be not limited to, WORM, EPROM, EEPROM, FLASH, etc. which may be implemented in solid state semiconductor devices. Other memories may comprise moving parts, such a conventional rotating disk drive. All such memories may be “machine-readable” in that they may be readable by a processing device.
“Computer-readable storage medium” (or alternatively, “machine-readable storage medium”) may include all of the foregoing types of memory, as well as new technologies that may arise in the future, as long as they may be capable of storing digital information in the nature of a computer program or other data, at least temporarily, in such a manner that the stored information may be “read” by an appropriate processing device. The term “computer-readable” may not be limited to the historical usage of “computer” to imply a complete mainframe, mini-computer, desktop, wireless device, or even a laptop computer. Rather, “computer-readable” may comprise storage medium that may be readable by a processor, processing device, or any computing system. Such media may be any available media that may be locally and/or remotely accessible by a computer or processor, and may include volatile and non-volatile media, and removable and non-removable media.
Computing device 1000 can further include a video display 1016, such as a liquid crystal display (LCD) or a cathode ray tube (CRT) and a user interface 1018, such as a keyboard, mouse, touch screen, etc. All of the components of computing device 1000 may be connected together via a bus 1002 and/or network.
Computing device 1000 may include any combination of sensors 1022 including, but not limited to, GSP, IMU, video camera, LIDAR, and radar. Computing device 100 also may include a wireless transceiver 1024 for wirelessly transmitting and receiving commands to and from other computing devices.
For the sake of convenience, operations may be described as various interconnected or coupled functional blocks or diagrams. However, there may be cases where these functional blocks or diagrams may be equivalently aggregated into a single logic device, program or operation with unclear boundaries. Having described and illustrated the principles of a preferred embodiment, it should be apparent that the embodiments may be modified in arrangement and detail without departing from such principles.
Having described and illustrated the principles of a preferred embodiment, it should be apparent that the embodiments may be modified in arrangement and detail without departing from such principles. Claim is made to all modifications and variation coming within the spirit and scope of the following claims.
The present application claims priority to U.S. Provisional Patent Application Ser. No. 62/731,698, filed on Sep. 14, 2018, which is incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5194851 | Kraning et al. | Mar 1993 | A |
5390125 | Sennott et al. | Feb 1995 | A |
5663879 | Trovato et al. | Sep 1997 | A |
5923270 | Sampo et al. | Jul 1999 | A |
6052647 | Parkinson et al. | Apr 2000 | A |
6070673 | Wendte | Jun 2000 | A |
6212453 | Kawagoe et al. | Apr 2001 | B1 |
6373432 | Rabinowitz et al. | Apr 2002 | B1 |
6377889 | Soest | Apr 2002 | B1 |
6445983 | Dickson et al. | Sep 2002 | B1 |
6539303 | McClure et al. | Mar 2003 | B2 |
6611738 | Ruffner | Aug 2003 | B2 |
6711501 | McClure et al. | Mar 2004 | B2 |
6789014 | Rekow et al. | Sep 2004 | B1 |
6819780 | Benson et al. | Nov 2004 | B2 |
6865465 | McClure | Mar 2005 | B2 |
6876920 | Mailer | Apr 2005 | B1 |
7142956 | Heiniger et al. | Nov 2006 | B2 |
7162348 | McClure et al. | Jan 2007 | B2 |
7277792 | Overschie | Oct 2007 | B2 |
7373231 | McClure et al. | May 2008 | B2 |
7400956 | Feller et al. | Jul 2008 | B1 |
7437230 | McClure | Oct 2008 | B2 |
7460942 | Mailer | Dec 2008 | B2 |
7689354 | Heiniger et al. | Mar 2010 | B2 |
RE41358 | Heiniger et al. | May 2010 | E |
7835832 | Macdonald et al. | Nov 2010 | B2 |
7885745 | McClure et al. | Feb 2011 | B2 |
8018376 | McClure et al. | Sep 2011 | B2 |
8190337 | McClure | May 2012 | B2 |
8214111 | Heiniger et al. | Jul 2012 | B2 |
8311696 | Reeve | Nov 2012 | B2 |
8386129 | Collins et al. | Feb 2013 | B2 |
8401704 | Pollock et al. | Mar 2013 | B2 |
8489291 | Dearborn et al. | Jul 2013 | B2 |
8521372 | Hunt et al. | Aug 2013 | B2 |
8548649 | Guyette et al. | Oct 2013 | B2 |
8583315 | Whitehead et al. | Nov 2013 | B2 |
8583326 | Collins et al. | Nov 2013 | B2 |
8589013 | Pieper et al. | Nov 2013 | B2 |
8594879 | Roberge et al. | Nov 2013 | B2 |
8634993 | McClure et al. | Jan 2014 | B2 |
8639416 | Jones et al. | Jan 2014 | B2 |
8649930 | Reeve et al. | Feb 2014 | B2 |
8676620 | Hunt et al. | Mar 2014 | B2 |
8718874 | McClure et al. | May 2014 | B2 |
8768558 | Reeve et al. | Jul 2014 | B2 |
8781685 | McClure | Jul 2014 | B2 |
8803735 | McClure | Aug 2014 | B2 |
8897973 | Hunt et al. | Nov 2014 | B2 |
8924152 | Hunt et al. | Dec 2014 | B2 |
9002565 | Jones et al. | Apr 2015 | B2 |
9002566 | McClure et al. | Apr 2015 | B2 |
9141111 | Webber et al. | Sep 2015 | B2 |
9162703 | Miller et al. | Oct 2015 | B2 |
9173337 | Guyette et al. | Nov 2015 | B2 |
9223314 | McClure et al. | Dec 2015 | B2 |
9255992 | McClure | Feb 2016 | B2 |
9389615 | Webber et al. | Jul 2016 | B2 |
10832347 | Westhues | Nov 2020 | B1 |
20020072850 | McClure et al. | Jun 2002 | A1 |
20040186644 | McClure et al. | Sep 2004 | A1 |
20060167600 | Nelson, Jr. et al. | Jul 2006 | A1 |
20070156286 | Yamauchi | Jul 2007 | A1 |
20070242684 | Hayakawa | Oct 2007 | A1 |
20080170553 | Montemurro | Jul 2008 | A1 |
20090251366 | McClure | Oct 2009 | A1 |
20100067598 | Sampath | Mar 2010 | A1 |
20100268449 | Feng | Oct 2010 | A1 |
20100274452 | Ringwald et al. | Oct 2010 | A1 |
20120253744 | Schmidt | Oct 2012 | A1 |
20140266877 | McClure | Sep 2014 | A1 |
20140277676 | Gattis | Sep 2014 | A1 |
20150175194 | Gattis | Jun 2015 | A1 |
20160039454 | Mortimer | Feb 2016 | A1 |
20160073573 | Ethington | Mar 2016 | A1 |
20160091898 | Booher | Mar 2016 | A1 |
20160154108 | McClure et al. | Jun 2016 | A1 |
20160205864 | Gattis et al. | Jul 2016 | A1 |
20160214643 | Joughin et al. | Jul 2016 | A1 |
20160252909 | Webber et al. | Sep 2016 | A1 |
20160334804 | Webber et al. | Nov 2016 | A1 |
20160380914 | Tuukkanen | Dec 2016 | A1 |
20170248946 | Ogura et al. | Aug 2017 | A1 |
20180146612 | Sauder | May 2018 | A1 |
20180237039 | Mong | Aug 2018 | A1 |
20180321682 | Matsumoto et al. | Nov 2018 | A1 |
20190071093 | Ma et al. | Mar 2019 | A1 |
20190258251 | Ditty | Aug 2019 | A1 |
20190332105 | Sant | Oct 2019 | A1 |
20190385057 | Litichever | Dec 2019 | A1 |
20200051035 | Rossetti | Feb 2020 | A1 |
20200062365 | Anderson | Feb 2020 | A1 |
20200084955 | Kreider | Mar 2020 | A1 |
20200110403 | Antich | Apr 2020 | A1 |
20200294401 | Kerecsen | Sep 2020 | A1 |
20200326711 | Rimmer | Oct 2020 | A1 |
20200352083 | Ramachandran | Nov 2020 | A1 |
20200363796 | Muro | Nov 2020 | A1 |
20210003416 | Wilson | Jan 2021 | A1 |
20210026362 | Wilson | Jan 2021 | A1 |
20210029877 | Vandike | Feb 2021 | A1 |
20210029878 | Vandike | Feb 2021 | A1 |
20210034057 | Flajolet | Feb 2021 | A1 |
20210136515 | Zhang | May 2021 | A1 |
20210278834 | Kendoul | Sep 2021 | A1 |
Number | Date | Country |
---|---|---|
2006 177792 | Jul 2006 | JP |
2011032205 | Mar 2011 | WO |
2012112205 | Aug 2012 | WO |
2015073844 | May 2015 | WO |
Entry |
---|
Noh, Kwang-Mo, Self-tuning controller for farm tractor guidance, Iowa State University Retrospective Theses and Dissertations, Paper 9874, (1990). |
Van Zuydam,. R.P., Centimeter-Precision Guidance of Agricultural Implements in the Open Field by Means of Real Tim Kinematic DGPS, ASA-CSSA-SSSA, pp. 1023-1034 (1999). |
USPTO, International Search Report and Written Opinion of the International Searching Authority for International Application No. PCT/US2020/043605, dated Nov. 23, 2020, pp. 1-14. |
Van Dyke et al., GNSS Real Time Performance Monitoring and CNS/ATM Implementation, IEEE, p. 1137-1144 (2006). |
Wahlstrom et al., Smartphone-Based Vehicle Telematics: A Ten-Year Anniversary, IEEE, p. 2802-2825 (2017). |
Murakami et al., iFarm: Development of Cloud-based System of Cultivation Management for Precision Agriculture, IEEE, p. 233-234 (2013). |
Fahmi et al, A Prototype of Monitoring Precision Agriculture System Based on WSN, IEEE, p. 323-328 (2017). |
International Search Report and Written Opinion; PCT/US2019/051044; dated Jan. 8, 2020; pp. 1-10. |
Number | Date | Country | |
---|---|---|---|
20200084955 A1 | Mar 2020 | US |
Number | Date | Country | |
---|---|---|---|
62731698 | Sep 2018 | US |