Patent Description:
<CIT>) provides a control system and method to control the trajectory of a transport vehicle to follow the trajectory of a harvester.

<CIT>) discloses an apparatus and method for monitoring and coordinating the harvesting and transporting operations of an agricultural crop by multiple agricultural machines on a field.

<CIT>) provides for a method and apparatus for providing navigation and positioning for at least one or more slave vehicles, wherein the slave vehicles provide their own navigation based on a location of a master vehicle.

<CIT> discloses a system for creating a route plan for a group of agricultural machines for working a territory.

According to a first aspect of the invention, there is provided a system comprising: a controller associated with an agricultural vehicle, the controller configured to: receive other-vehicle-data that is representative of another vehicle that is in an agricultural field; and determine route-plan-data that is representative of a route to be taken by the agricultural vehicle in the agricultural field, based on the other-vehicle-data.

The controller may be configured to determine the route-plan-data such that the agricultural vehicle will avoid the other vehicle.

The other-vehicle-data may comprise other-vehicle-route-data that is representative of a route to be taken by the other vehicle.

The other-vehicle-data may comprise other-vehicle-dimension-data that is representative of the size and / or shape of the other vehicle.

The other-vehicle-data may comprise other-vehicle-location-data that is representative of a location of the other vehicle.

The other-vehicle-location-data may comprise one or more of: past-other-vehicle-location-data, which is representative of a previous location of the other vehicle; current-other-vehicle-location-data, which is representative of a current location of the other vehicle; and future-other-vehicle-location-data, which is representative of a future location of the other vehicle.

The other-vehicle-data may comprise other-vehicle-speed-data that is representative of the speed of the other vehicle.

The other-vehicle-data may comprise other-vehicle-direction-data that is representative of a direction of travel of the other vehicle.

The controller may be further configured to: receive field-data that is representative of crop material that is to be picked up from the agricultural field by the agricultural vehicle; and determine the route-plan-data also based on the field-data.

The controller may be configured to receive updated field-data as the agricultural machine picks up the crop material from the agricultural field.

The controller may be configured to determine the route-plan-data by modifying an earlier route plan whilst the agricultural vehicle is in use in the agricultural field.

The baler has a baler-priority-value associated with it. The other vehicle has an other-vehicle-priority-value associated with it. The controller is configured to:
compare the baler-priority-value with the other-vehicle-priority-value, and only modify the earlier route plan if the baler-priority-value represents a lower priority than the other-vehicle-priority-value.

The controller may be configured to determine vehicle-control-instructions for the agricultural vehicle, based on the route-plan-data.

The vehicle-control-instructions may comprise vehicle-steering-instructions for automatically controlling the direction of travel of the agricultural vehicle.

The vehicle-control-instructions may further comprise route-speed-instructions for automatically controlling the speed of the agricultural vehicle at locations along the route.

The system may further comprise: an unmanned vehicle configured to acquire: field-data, representative of an agricultural field that has the other vehicle in it; and field-location-data associated with the field-data. The controller may be configured to determine the other-vehicle-data based on the field-data and the field-location-data.

The controller may be further configured to: determine other-vehicle-dimension-data that is representative of the size of the other vehicle, based on the field-data; and determine the route-plan-data also based on the other-vehicle-dimension-data.

The route-plan-data is representative of a route to be taken by the agricultural vehicle for an entire unprocessed portion of the agricultural field.

The system may further comprise an agricultural vehicle that is configured to be operated in accordance with the vehicle-control-instructions. The agricultural vehicle is a baler.

There may be provided a computer program, which when run on a computer, causes the computer to configure any apparatus, including a controller, processor, machine, vehicle or device disclosed herein or perform any method disclosed herein. The computer program may be a software implementation, and the computer may be considered as any appropriate hardware, including a digital signal processor, a microcontroller, and an implementation in read only memory (ROM), erasable programmable read only memory (EPROM) or electronically erasable programmable read only memory (EEPROM), as non-limiting examples.

The computer program may be provided on a computer readable medium, which may be a physical computer readable medium such as a disc or a memory device, or may be embodied as a transient signal. Such a transient signal may be a network download, including an internet download.

Embodiments of the present invention will now be described by way of example and with reference to the accompanying drawings in which:.

<FIG> shows schematically a system that is associated with determining a route for an agricultural vehicle to follow in an agricultural field <NUM>, as shown in <FIG>. In this example, the agricultural vehicle is a baler <NUM>. The system includes a controller <NUM> that is associated with the baler <NUM>. It will be appreciated that the controller <NUM> can be located on the baler <NUM>, or remotely from the baler <NUM>. For example, the functionality of the controller <NUM> can be performed on a remote server, such as one "in the cloud".

The field <NUM> includes rows of crop material, which may be hay, straw or similar products that have been left in the field <NUM> in the form of swaths <NUM>. The swaths <NUM> are elongate rows of the products in question that are heaped in the transverse centre and tend to flatten at the respective transverse edges. Typically a field <NUM> that has undergone harvesting contains many, essentially mutually parallel, swaths <NUM>, as shown in <FIG>. The swaths are spaced from one another by largely consistent gaps. The crop material in the swaths <NUM> can be picked up by the baler <NUM>, and then deposited in the field <NUM> as bales <NUM>. The field <NUM> that is shown in <FIG> has been partly processed, in that it includes both rows of swath <NUM> for baling, and also completed bales <NUM>.

It will be appreciated that more than one agricultural machine may be working in the field <NUM> simultaneously. For example: a plurality of balers may be operational in the field <NUM> at the same time; or a tractor with a trailer for collecting the bales <NUM> may be in the field <NUM> at the same time as the baler <NUM>. One or more of the controllers <NUM> disclosed herein can determine a route for an agricultural machine (such as the baler <NUM> of <FIG>) that takes into account information about another vehicle <NUM> that is in the field <NUM>. This can reduce the likelihood of the agricultural machine colliding with the other vehicle <NUM>.

In examples that do not form part of the claimed invention, controllers can also be used with agricultural machines that are not balers. For example, the agricultural machine may be a tractor, a forage harvester a combine harvester or a telehandler for gathering bales, and the controller <NUM> can plan a route for the agricultural machine such that it takes into account information about any other vehicle <NUM> that is in the field <NUM>, or will be in the field <NUM>, at the same time as the agricultural machine.

In some embodiments, a controller can be used to determine initial route-plan-data <NUM> based on other-vehicle-data <NUM> that is representative of another vehicle <NUM> that will be in the agricultural field <NUM> at the same time as the baler <NUM>. In this way, the route-plan-data <NUM> can be determined before the baler <NUM> and / or the other vehicle <NUM> enters the field <NUM>.

At least the baler <NUM> and the other vehicle <NUM> have priority-values associated with them so that a hierarchy can be used when determining route-plans for the vehicles. In one example, swath-data is available for the field <NUM> in advance of the baling operation (for example as acquired by a drone, as will be discussed below). Then, a controller <NUM> associated with the 'master' machine (the vehicle that has the highest priority) can determine route-plan-data for all machines / vehicles in advance of them beginning operation in the field <NUM>. If complete swath-data is not available, then in some examples the controller can use information representative of the locations of the ends of the swath <NUM>, and then predict swath-location-data representative of the locations of the swath. In some examples, the locations of the swath ends can be detected during baling of the headland. It will be appreciated that any field-data, which is representative of an agricultural field that is to be processed by the baler <NUM> (or any other agricultural vehicle), can be used by the controller <NUM> to determine route-plan-data for a plurality of agricultural vehicles, optionally also using priority-values associated with each of the agricultural vehicles.

Such initial planning can be performed by a controller associated with a 'master' machine, or a supervising controller that can be located in the cloud or can be associated with a drone, as non-limiting examples.

The controller <NUM> can optionally, when performing such an initial planning phase, use user-preference-data for determining the route-plan-data. In some examples, the controller <NUM> can use user-preference-data that are associated with the 'master' machine / vehicle.

In some embodiments, the controller <NUM> associated with the baler <NUM> receives other-vehicle-data <NUM> that is representative of another vehicle <NUM> that is in the agricultural field <NUM>, and determines route-plan-data <NUM>.

As will be discussed in more detail below, the other-vehicle-data <NUM> can include one or more of: other-vehicle-route-data, other-vehicle-dimension-data, other-vehicle-location-data, other-vehicle-speed-data, and other-vehicle-direction-data. The route-plan-data <NUM> is representative of a route to be taken by the baler <NUM> in the agricultural field, based on the other-vehicle-data <NUM>. As will be discussed in detail below, such processing can enable a route plan for the baler <NUM> to be adapted in real-time, whilst the baler <NUM> is in the field <NUM>, to avoid the other vehicle <NUM>.

In some examples the controller <NUM> can determine the route-plan-data <NUM> by modifying an earlier route plan whilst the baler <NUM> is in use in the field <NUM>. For instance, an initial route plan can be generated for the baler <NUM> to pick up the swaths <NUM> of crop material. However, when that initial route plan is generated, it may not be possible to accurately determine where other vehicles <NUM> are going to be whilst the baler <NUM> follows the initial route.

The route-plan-data <NUM> can comprise a sequence of locations for the baler <NUM> to pass when picking up the crop material in the swaths <NUM>. For example, the controller <NUM> can determine a shortest possible route for picking up all of the crop material, whilst avoiding the other vehicle <NUM> in the field <NUM>.

In examples where the baler <NUM> is pulled by a tractor, the route-plan-data <NUM> can include baler-route-plan-data and tractor-route-plan-data. In this way, the controller <NUM> can ensure that both the baler <NUM> and the tractor avoid the other vehicle <NUM>. It may only be necessary to provide the tractor-route-plan-data as an output because it is this data that can be used by an operator to drive the tractor such that the baler <NUM> follows the desired route. Alternatively, the tractor can be controlled autonomously using the tractor-route-plan-data, such that the baler <NUM> follows the desired route. It will be appreciated that any description in this document of controlling the baler <NUM>, can equally apply to controlling a tractor that is pulling the baler <NUM> This is because any such control of the tractor can be considered as indirectly controlling the baler <NUM>.

The route-plan-data <NUM> can be representative of a route to be taken by the baler <NUM> / tractor for an entire unprocessed / un-baled portion of the field <NUM>. That is, the route-plan-data <NUM> can be determined such that it takes into account the portions of the field <NUM> that have already been baled, whilst ensuring that a route is planned for baling the crop material in each of the remaining swaths <NUM>.

In some examples, the controller <NUM> can determine the route-plan-data such that the baler <NUM> will avoid the other vehicle <NUM>.

The other-vehicle-data <NUM> can be received from the other vehicle <NUM> in the agricultural field, or from any processor associated with the other vehicle <NUM>. For example, a remote processor that autonomously controls the other vehicle <NUM>. In some examples, inter-vehicle communication can be used to transfer data between the baler <NUM> and the other vehicle <NUM>. This communication can be direct or through "the cloud".

The other-vehicle-data can include other-vehicle-route-data that is representative of a route to be taken by the other vehicle <NUM>. This may be an initial route that was planned for the other vehicle <NUM>, or may be a dynamically modified route for the other vehicle <NUM>. In this way, relatively long term predictions and planning can be performed, for example to cover the duration of the baling. This can result in improved / optimal routes for one or both of the baler <NUM> and the other vehicle <NUM>.

At east the baler <NUM> and the other vehicle <NUM> have priority-values associated with them so that a hierarchy can be used when determining / modifying route-plans for the vehicles. For example, the controller <NUM> can compare a baler-priority-value with an other-vehicle-priority-value, and only modify an earlier route plan for the baler <NUM> if the baler-priority-value represents a lower priority than the other-vehicle-priority-value. If the baler-priority-value represents a higher priority than the other-vehicle-priority-value, then the controller <NUM> may not modify an existing route plan for the baler <NUM>, on the basis that the route plan for the other vehicle <NUM> is expected to be changed instead. In examples where the other vehicle <NUM> is also a baler, functionality described herein can enable efficient routes to be generated such that multiple balers can operate simultaneously in the field <NUM>.

In some examples, the other-vehicle-data <NUM> includes other-vehicle-location-data that is representative of a location of the other vehicle <NUM>. The other-vehicle-location-data can include one or more of: (i) past-other-vehicle-location-data, which is representative of a previous location of the other vehicle <NUM>; (ii) current-other-vehicle-location-data, which is representative of a current location of the other vehicle <NUM>; and (iii) future-other-vehicle-location-data, which is representative of an expected future location of the other vehicle <NUM>. The controller <NUM> can optionally determine such other-vehicle-location-data by processing other-vehicle-route-plan-data that is representative of a route that is to be taken, or is being taken, by the other vehicle <NUM> in the field <NUM>. In some examples, the other-vehicle-location-data, especially the past-other-vehicle-location-data and / or the current-other-vehicle-location-data, may be provided by a location-determining-system (such as a GPS receiver) associated with the other vehicle <NUM>.

The controller <NUM> may process other-vehicle-route-start-time data, which is representative of the start time of the other vehicle <NUM> following its current route, in order to determine the current-other-vehicle-location-data and / or the future-other-vehicle-location-data. In this way, other-vehicle-time-stamps can be associated with the current-other-vehicle-location-data, and / or with specific locations that are represented by the future-other-vehicle-location-data.

The controller <NUM> can then determine the route-plan-data <NUM> based on the other-vehicle-location-data. For example, the controller <NUM> can determine a sequence of locations that the baler <NUM> will occupy in the future, and associated agricultural-vehicle-time-stamp values, as it follows a current route-plan. The controller <NUM> can then compare this information with the other-vehicle-time-stamps that are associated with the future-other-vehicle-location-data. If the controller <NUM> determines that the difference between the locations of the baler <NUM> and the other vehicle <NUM> is less than a threshold-difference at any future instant in time, then the controller <NUM> may determine new route-plan-data by modifying the current / earlier route plan, such that when the baler <NUM> follows the new route-plan, the difference between the locations of the baler <NUM> and the other vehicle <NUM> will not be less than a threshold-difference at any future instant in time. For instance, the controller <NUM> may determine new route-plan-data by modifying the earlier route-plan such that baler <NUM> slows down whilst following the same trajectory as that of the earlier route-plan.

In some examples, the other-vehicle-data comprises other-vehicle-speed-data that is representative of the speed of the other vehicle <NUM>. The other-vehicle-speed-data can include one or more of: (i) past-other-vehicle-speed-data, which is representative of a previous speed of the other vehicle <NUM>; (ii) current-other-vehicle-speed-data, which is representative of a current speed of the other vehicle <NUM>; and (iii) future-other-vehicle-speed-data, which is representative of an expected future speed of the other vehicle <NUM>. The controller <NUM> can optionally determine such other-vehicle-speed-data by processing other-vehicle-route-plan-data that is representative of a route that is to be taken, or is being taken, by the other vehicle <NUM> in the field <NUM>, and the speed that the other vehicle <NUM> is intended to have at various points along the route. The controller <NUM> may also process other-vehicle-route-start-time data in order to determine the current-other-vehicle-speed-data and / or the future-other-vehicle-speed-data at various points in time in the future. In some examples, the other-vehicle-speed-data, especially the past-other-vehicle-speed-data and / or the current-other-vehicle-speed-data, may be provided by a speedometer or a location-determining-system associated with the other vehicle <NUM>.

Optionally, the controller <NUM> may process the past-other-vehicle-speed-data and the current-other-vehicle-speed-data in order to make a statistical prediction of the future-other-vehicle-speed-data. For instance, if the other vehicle <NUM> has been travelling at the same speed for a threshold-period of time, then the controller <NUM> may predict that the other vehicle <NUM> will continue to travel at that speed, and therefore attribute a historical speed value for the future-other-vehicle-speed-data.

The controller <NUM> can process the other-vehicle-speed-data in order to determine the future-other-vehicle-location-data. Therefore, the controller <NUM> can determine the route-plan-data <NUM> based on, directly or indirectly, the other-vehicle-speed-data.

In some examples, the other-vehicle-data comprises other-vehicle-direction-data that is representative of the direction of travel of the other vehicle <NUM>. The other-vehicle-direction-data can include one or more of: (i) past-other-vehicle-direction-data, which is representative of a previous direction of the other vehicle <NUM>; (ii) current-other-vehicle-direction-data, which is representative of a current direction of the other vehicle <NUM>; and (iii) future-other-vehicle-direction-data, which is representative of an expected future direction of the other vehicle <NUM>. The controller <NUM> can optionally determine such other-vehicle-direction-data by processing other-vehicle-route-plan-data that is representative of a route that is to be taken, or is being taken, by the other vehicle <NUM> in the field <NUM>, and the direction that the other vehicle <NUM> is intended to have at various points along the route. The controller <NUM> may also process other-vehicle-route-start-time data in order to determine the current-other-vehicle-direction-data and / or the future-other-vehicle-direction-data at various points in time in the future. In some examples, the other-vehicle-direction-data, especially the past-other-vehicle-direction-data and / or the current-other-vehicle-direction-data may be provided by a gyroscope or a location-determining-system associated with the other vehicle <NUM>.

Optionally, the controller <NUM> may process the past-other-vehicle-direction-data and the current-other-vehicle-direction-data in order to make a statistical prediction of the future-other-vehicle-direction-data. For instance, if the other vehicle <NUM> has been travelling in the same direction for a threshold-period of time, then the controller <NUM> may predict that the other vehicle <NUM> will continue to travel in that direction, and therefore attribute a historical direction value for the future-other-vehicle-direction-data.

The controller <NUM> can process the other-vehicle-direction-data in order to determine the future-other-vehicle-location-data. Therefore, the controller <NUM> can determine the route-plan-data <NUM> based on, directly or indirectly, the other-vehicle-direction-data.

In some examples, the other-vehicle-data comprises other-vehicle-dimension-data that is representative of the size and / or shape of the other vehicle. The other-vehicle-dimension-data may be fixed / hard-coded for a specific type of other vehicle <NUM>, or it may be determined using one or more sensors. In such examples, the controller <NUM> can determine the other-vehicle-location-data as a multiple set of coordinates for the other vehicle <NUM>. The multiple set of coordinates may be representative of the locations of one or more corners of the other vehicle <NUM>, for example, and may be sufficient such that, together, they can be used to determine the perimeter of a two-dimensional footprint of the other vehicle <NUM> (when viewed from above), or to determine the perimeter of the three-dimensional volume of the other vehicle <NUM>.

The controller <NUM> can determine the multiple sets of coordinates by applying offsets to the location of the other vehicle <NUM> (other-vehicle-location-data) at any point along a route that is to be followed by the other vehicle <NUM>. The controller <NUM> can determine the offsets based on the other-vehicle-dimension-data.

The controller <NUM> can then determine the route-plan-data <NUM> based on the other-vehicle-dimension-data, optionally in combination with the other-vehicle-location-data.

Therefore, the other-vehicle-data can include data relating to one or more of the other vehicle's location, dimensions, groundspeed and planned route (desired trajectory) if available. In some examples, the other-vehicle-data <NUM> can be determined from sensor data that is acquired from a sensor that monitors the other vehicle <NUM>. For instance, an unmanned aerial vehicle can acquire image data using a camera in order for the movement of the other vehicle <NUM> to be monitored.

<FIG> shows schematically another system that is associated with determining a route that a baler <NUM> can follow in an agricultural field (as shown in <FIG>). The system includes a controller <NUM> and the baler <NUM>. The controller <NUM> can be used to autonomously control the baler <NUM> (or a tractor that pulls the baler <NUM>). That is, the system can be considered as including the baler <NUM> that is configured to be operated in accordance with vehicle-control-instructions.

In this example the controller <NUM> receives other-vehicle-data <NUM> and field-data <NUM>, and determines the route-plan-data <NUM> based on the other-vehicle-data <NUM> and the field-data <NUM> as will be described below.

The controller <NUM> determines vehicle-control-instructions <NUM> for the baler <NUM>, based on the route-plan-data <NUM>. The vehicle-control-instructions <NUM> can comprise vehicle-steering-instructions for automatically controlling the direction of travel of the baler <NUM>, such that the baler <NUM> follows a specific route through the agricultural field. In this way, the baler <NUM> can be autonomously controlled such that it follows a specific route through the agricultural field in order to pick up crop material from the field. In addition to, or instead of, avoiding an other vehicle that is in the field, as discussed above, the route can be planned such that it provides one or more advantages, for example:.

In some examples, the controller <NUM> can also use baler-location data and / or baler-direction-data, that is representative of a current location and direction of travel of the baler <NUM> for which the route plan is being determined, to determine the route-plan-data <NUM>.

The vehicle-control-instructions can also comprise route-speed-instructions for automatically controlling the speed of the baler <NUM> at locations along the route. For instance, the vehicle-control-instructions can also comprise vehicle-steering-instructions and route-speed-instructions such that the baler <NUM> can make a turn in the field with a desired turning angle, at an appropriate speed for the turn, such that the baler <NUM> avoids another vehicle that is in the field.

As indicated above, in this example, the controller <NUM> also receives field-data <NUM>, which is representative of an agricultural field that is to be processed by the baler <NUM>. For example, the field-data <NUM> is representative of the swaths of crop material that are to be picked up from the field by the baler. In one instance, the field-data <NUM> can be representative of the location of the swaths of crop material that are still to be baled. The field-data <NUM> can also be representative of one or more properties of the swaths of crop material. In some examples, the controller <NUM> receives updated field-data <NUM> as the baler <NUM> picks up the crop material from the field.

The controller <NUM> can determine the route-plan-data <NUM> also based on the field-data <NUM>. In this way, both the locations of one or more other vehicles, and properties of the un-baled swaths (such as the locations of the swaths), can be used to determine the route-plan-data <NUM>. In other examples, the field-data <NUM> can be used to determine the other-vehicle-data <NUM>, as will be discussed detail below with reference to <FIG>.

In some examples, any controller disclosed herein can determine route-plan-data such that an agricultural vehicle takes a path that has a predetermined relationship with a route of the other vehicle. In one example, the controller can determine the route-plan-data such that the agricultural vehicle follows a path (at least for a threshold distance / time) that is parallel with, and spaced apart by a predetermined distance from, a path that is to be followed by the other vehicle. For example, the route can be planned so that material or fuel can be transferred between the agricultural vehicle and the other vehicle. Such examples can be particularly relevant for combine and forage harvesters, or any other agricultural vehicle that transfers crop material between vehicles, including containers that are towed by vehicles. In one specific example, a first combine harvester can unload into a second combine harvester next to it, and the second combine harvester then unloads into a truck. Such examples can benefit from route-plan-data being determined for two or more of the vehicles, such that it that takes into account other-vehicle-data.

A possible control strategy could be to divide the field into zones, then then dedicate different zones to different machines. Another strategy could be to keep the machines close to each other, for example in big fields it may be disadvantageous for a plurality of machines / vehicles to be long distances away from each other. Therefore, route-plan-data can be determined for a plurality of agricultural vehicles such that a distance between their instantaneous locations whilst following the routes is less than a threshold-distance. In this way, a vehicle can be said to take a path that has a predetermined relationship with a route of the other vehicle.

<FIG> shows schematically a further system that is associated with determining a route for a baler <NUM> to follow in an agricultural field <NUM>. Features of <FIG> that are also shown in <FIG> or <FIG> have been given corresponding reference numbers in the <NUM> series, and will not necessarily be described again here.

The system includes a vehicle <NUM>. In this example the vehicle is an unmanned vehicle <NUM>. The unmanned vehicle <NUM> can be an unmanned aerial vehicle (sometimes referred to as a drone). In other examples, the vehicle <NUM> could be a land vehicle, which may or may not be unmanned.

The unmanned vehicle <NUM> can include one or more sensors for obtaining field-data <NUM>. A field of view <NUM> of such a sensor is shown schematically in <FIG>.

In this example, the unmanned vehicle <NUM> includes a sensor <NUM> that can acquire field-data <NUM>. In this example the sensor <NUM> is a camera that can acquire field-image-data. The field-image-data can be two-dimensional-image-data or three-dimensional-image-data, and in some examples the camera can be a 3D-scanner or 3D-camera.

Alternatively, or additionally, the field-data <NUM> can include: field-radar-data acquired by a radar, field-LIDAR-data acquired by a LIDAR sensor; field-moisture-data acquired by a moisture-sensor, field-IR-data acquired by an infra-red-sensor, ultrasonic-data acquired by an ultrasonic sensor, or any other type of field-data from any type of sensor that can acquire information about the agricultural field <NUM> or the crop material in the agricultural field <NUM>. The controller <NUM> can process one or more of these different types of field-data <NUM>, either directly or indirectly, in order to determine the route-plan-data <NUM>, and optionally vehicle-control-instructions (not shown).

In some examples, the controller <NUM> can determine crop-property-data that is representative of the crop material in the agricultural field <NUM>, based (directly or indirectly) on the field-data <NUM>. For instance, the controller <NUM> can perform an object recognition algorithm on the field-image-data in order to determine one or more of crop-type; length of stalks in the material, material density, and stub-height-information. The stub height is the height at which the crop is cut off. In some conditions, such as for wheat straw, the swath lays on top of the stubs, which causes the swath to look bigger than it actually is.

In some examples, the controller <NUM> can also, or instead, process different types of field-data to determine the crop-property-data. For instance, the controller <NUM> can process field-IR-data to determine the temperature of crop material, or the controller <NUM> can process field-moisture-data to determine the humidity / wetness of crop material.

In one example, the crop-property-data can include material-size-data that is representative of the size of the crop material in the agricultural field <NUM>. Such material-size-data can include the height, width, cross-sectional area, volume, or shape of the swath <NUM>. The crop-property-data can therefore represent one-dimensional, two-dimensional or three-dimensional physical characteristics of the crop material, and can be determined based on two-dimensional-image-data or three-dimensional-image-data.

The controller <NUM> can then determine the route-plan-data <NUM> for the baler <NUM> based on one or more of the above types of crop-property-data. In some examples, the controller <NUM> determines vehicle-control-instructions for the baler <NUM> based on one or more of the above types of crop-property-data. For example, the controller <NUM> may cause the baler <NUM> to travel: (i) more slowly over large portions of crop material (for instance portions that have a material-size-data (such as cross-sectional area) that is greater than a size-threshold-value); (ii) more quickly over thin portions of crop material (for instance portions that have a density that is less than a density-threshold-value), (iii) in a zig-zag path over very narrow swaths to get a good feeding of a pre-compression chamber of the baler <NUM>; and (iv) not changing the speed too aggressively (for example such that the acceleration / deceleration of the baler <NUM> is not greater than a speed-change-threshold) if there is a small interruption of the swath <NUM> to improve driver comfort (for example, a small interruption can be identified as a height of the swath <NUM> that is less than a swath-height-threshold for a length of the path that is less than a path-length-threshold).

It will be appreciated that the above examples are non-limiting and that the baler can be automatically controlled based on crop-property-data in numerous other ways. In some examples, different options can be selected by the operator of the baler / tractor, such as when starting a baling operation. For instance, when starting a field, the operator may be able to enter a 'setting' such as the following:.

In this way, the controller can determine vehicle-control-instructions for the baler <NUM> based on: (i) one or more of the above types of crop-property-data; and (ii) user input.

Therefore, in a number of ways, the controller <NUM> can determine vehicle-control-instructions and / or route-plan-data <NUM> based on the crop-property-data. For instance, the controller <NUM> may plan the route for the baler <NUM> such that regions of the crop material with a higher density are picked up before regions of the crop material that have a lower density. This may be advantageous so that the most valuable crop material (in terms of volume of crop per distance travelled by the baler <NUM>) is picked up first. In another example, the controller <NUM> may plan the route such that the baler <NUM> picks up regions of the crop material that have a lower humidity before regions of the crop material that have a higher humidity. In this way, the more humid crop material will have longer to dry out. As a further example, the controller <NUM> can determine the route-plan-data <NUM> for the baler <NUM> based on the time of day that the crop material is to be picked up and / or a measured or predicted temperature of the crop material. It can be advantageous for the crop material to be as cool as possible for baling (for better friction properties). Therefore, the route-plan-data <NUM> can be planned such that the crop material that is picked up is likely to be below a crop-temperature-threshold. As yet further example, the controller <NUM> can determine the route-plan-data for the baler <NUM> based on the humidity / wetness of crop material such that wet spots of the crop material can be baled after each other so as not to mix wet and dry crop in the same bales.

The controller <NUM> can determine field-property-data that is representative of a property of the agricultural field <NUM>, based on the field-data <NUM>. For instance, the controller <NUM> can determine first regions of field-data that correspond to the swaths <NUM> of crop material, and second regions of the field-data that correspond to the agricultural field <NUM> (outside the perimeter of the first regions of field-data). As discussed above, the controller <NUM> can determine crop-property-data based on data that corresponds to the first regions of field-data. The controller <NUM> can also determine field-property-data based on the second regions, and then determine the vehicle-control-instructions and / or route-plan-data <NUM> based on the field-property-data.

The field-property-data can include field-wetness-data that is representative of the wetness of the agricultural field <NUM>. In such an example, the controller <NUM> can process field-data to identify the locations of the second regions of the field-data that correspond to the agricultural field <NUM>, and then determine the field-wetness-data based on field-moisture-data acquired by a moisture-sensor for the identified second regions. The controller <NUM> can then control the speed of the baler <NUM> accordingly, for example to prevent the baler <NUM> from travelling faster than a speed-threshold-value in parts of the field <NUM> that have a field-wetness-data that exceeds a wetness-threshold-value.

The field-property-data can also include field-contour-data that is representative of contours of the agricultural field <NUM>. A user can provide the field-contour-data to the controller <NUM> in some examples because this data acquisition can be considered as a one-time job. In other examples, the controller <NUM> can determine the field-contour-data based on the field-image-data or field-radar-data, for example. The controller <NUM> can then determine the vehicle-control-instructions and / or route-plan-data <NUM> based on the field-contour-data. For instance, for regions of the agricultural field <NUM> that have a steep slope (for example, field-contour-data that is representative of a gradient that is greater than a gradient-threshold-value), the controller <NUM> may determine route-speed-instructions for automatically controlling the speed of the baler <NUM> such that it does not exceed a speed-threshold-value. Also, in such circumstances, the controller <NUM> may determine vehicle-steering-instructions that prevent a steering angle of the baler <NUM> from exceeding a steering-angle-threshold-value. As another example, the controller <NUM> can determine the route-plan-data for the baler <NUM> based on the field-contour-data. For example, the controller <NUM> can calculate a route that, for a big swath on a flank, results in the baler <NUM> picking up the crop material as it is travelling down a slope that has a gradient that is greater than a gradient-threshold-value. This can provide advantages because in some applications, a tractor that is pulling baler <NUM> may not have sufficient power to maintain its optimal speed.

In some examples, the vehicle <NUM> can include a height-measurement-sensor for acquiring material-height-data representative of the height of the crop material. The controller <NUM> can then determine the vehicle-control-instructions and / or route-plan-data <NUM> based on the material-height-data. For instance, the controller <NUM> may set the route-speed-instructions for the baler <NUM> based on the material-height-data, such that the baler <NUM> travels more slowly when the height of the crop material is relatively large. The height measurement can be used as an indicator of the size of the swath <NUM>. If multiple height measurements are taken whilst the vehicle <NUM> is moving, they can be combined in order to provide a 3D-scan. The height-measurement-sensor can also be used to measure stub-height-information, which is representative of stub height, if the stub density is high enough. Irrespective of how the stub height is determined, in some examples the controller <NUM> can subtract the stub height from the measured height of the crop in order to determine swath-height-data. The controller <NUM> can then determine the vehicle-control-instructions and / or route-plan-data <NUM> based on the swath-height-data.

In some examples, the controller <NUM> can determine a bale-count, representative of an estimate of the number of bales that will be attained by picking up all of the crop material, based on the field-data <NUM>. For instance, the controller <NUM> can process material-size-data (representative of the size of the crop material), and calculate total-crop-amount that is representative of the total amount of crop that is to be picked up. The controller <NUM> can then divide the total-crop-amount by the volume of a single bale to determine the bale-count. Providing the bale-count as an output can be useful for planning the operation of picking up the crop material. For instance, the number of trucks that will be needed to collect the bales <NUM>, and how long the job will take, can be estimated in advance. This type of information can be particularly advantageous inputs for work planning. For instance, the controller <NUM> can process the total-crop-volume and / or bale-count in order to determine energy requirements of the baler <NUM>. For example, if the total-crop-volume is very large, then the controller <NUM> can determine that the baler <NUM> will have to return at some point to a location where it can refill with more energy / fuel. Therefore, the controller <NUM> can determine a route that takes this into account, and / or can automatically control the baler <NUM> such that its available energy / fuel is used in an appropriate way for the required future refill of energy / fuel. The controller <NUM> can determine both an initial bale-count and / or energy requirements prior to the operation of picking up the crop material, and an updated bale-count and energy requirements during the operation.

The vehicle <NUM> can acquire: (i) field-data <NUM> that is representative of the agricultural field <NUM> that has the other vehicle <NUM> located in it; and (ii) field-location-data (not shown) associated with the field-data <NUM>. The controller <NUM> can optionally determine the route-plan-data <NUM> based on the field-data <NUM> and the field-location-data.

In this example, the vehicle <NUM> acquires field-location-data associated with field-image-data. For example, the vehicle <NUM> may have a location-determining-system <NUM>, such as GPS, that provides vehicle-location-data that is representative of the location of the vehicle <NUM> when the field-image-data is acquired. The controller <NUM> may also receive camera-direction-data and vehicle-altitude-data. The camera-direction-data may be representative of the direction that the camera is facing relative to the vehicle <NUM>. The camera-direction-data may be hard coded if the camera is non-movably fixed to the vehicle <NUM>. If the camera is movably mounted to the vehicle <NUM>, then the camera-direction-data can take different values, which may be received as an input-signal at the controller <NUM> from the vehicle <NUM>. The controller <NUM> can then use a simple trigonometric algorithm to attribute field-location-data to objects / areas that are represented by the field-image-data based on the vehicle-location-data, the camera-direction-data, a vehicle-altitude-data (if the vehicle <NUM> is an aerial vehicle), and a direction of travel of the vehicle <NUM>, as is known in the art.

In some examples, the controller <NUM> can determine the other-vehicle-data <NUM> based on the field-data <NUM> and the field-location-data. The controller <NUM> can determine one or more of other-vehicle-location-data, other-vehicle-speed-data, other-vehicle-direction-data, and other-vehicle-dimension-data based on the field-data and / or the field-location-data. In which case, the controller <NUM> can determine some, or all, of the other-vehicle-data based on the field-data <NUM> and the field-location-data, and the controller <NUM> may not need to receive the other-vehicle-data <NUM> separately such as directly from the other vehicle <NUM>.

Use of an aerial vehicle <NUM> can enable field-data <NUM> to be acquired from a relatively high altitude to obtain an overview of the field <NUM>, thereby providing a wide field of view. Subsequently or alternatively, the aerial vehicle <NUM> can stay with the baler <NUM> at a lower altitude. The gathered field-data <NUM> can be streamed to the controller <NUM> and / or "the cloud". When the aerial vehicle <NUM> stays with the baler <NUM>, one or more of the following strategies can be deployed. Firstly, the aerial vehicle <NUM> can fly above the baler <NUM> to get information about the surroundings of the baler <NUM>. In this way, it can detect objects ahead of the baler <NUM> and also determine one or more properties of the other vehicle <NUM>. Secondly, the aerial vehicle <NUM> can fly ahead of the baler <NUM> to scan the future trajectory of the baler <NUM> for objects. Thirdly, the aerial vehicle <NUM> can scan the whole field <NUM> to get an overview of any obstacles, including other vehicles <NUM>.

It will be appreciated that one or more of the functions of the vehicle <NUM> that are described with reference to <FIG> could be implemented by the agricultural vehicle / baler <NUM> itself in some examples. For example, field-data and crop-property-data could be determined by processing signals acquired by sensors on the agricultural vehicle / baler <NUM>.

One or more of the examples disclosed herein can improve the safety with which a baler operates because collisions with objects, such as other vehicles <NUM>, are less likely.

Systems described herein can dynamically map and / or predict characteristics of other vehicles in the field during baling, and can utilise technology to gather the data for mapping the other vehicles, and can determine a route for the baler and / or automatically control the baler. In some examples, a drone can be used for mapping the other vehicle. Also, information about the other vehicles that is produced by the other vehicle itself, can be used.

Claim 1:
A system comprising:
a controller (<NUM>, <NUM>, <NUM>) associated with an agricultural vehicle (<NUM>, <NUM>, <NUM>), the controller configured to:
receive other-vehicle-data (<NUM>, <NUM>, <NUM>) that is representative of another vehicle (<NUM>, <NUM>) that is in an agricultural field (<NUM>, <NUM>); and
determine route-plan-data (<NUM>, <NUM>, <NUM>) that is representative of a route to be taken by the agricultural vehicle (<NUM>, <NUM>, <NUM>) in the agricultural field (<NUM>, <NUM>), based on the other-vehicle-data (<NUM>, <NUM>, <NUM>),
wherein the agricultural vehicle (<NUM>, <NUM>, <NUM>) is a baler and wherein
the agricultural vehicle (<NUM>, <NUM>, <NUM>) has a baler-priority-value associated with it;
the other vehicle (<NUM>, <NUM>) has an other-vehicle-priority-value associated with it; and
the controller (<NUM>, <NUM>, <NUM>) is configured to:
compare the baler-priority-value with the other-vehicle-priority-value, and
only modify the earlier route plan if the baler-priority-value represents a lower priority than the other-vehicle-priority-value.