Patent Description:
Haul-truck cycle time is one indicator of operational efficiency for a paving or other construction project that utilizes materials hauled from a material plant to a machine at a project worksite. Accurately determined haul-truck cycle times can help in estimating haul-truck resource allocation to a given project, as well as improving the ability to coordinate haul truck resources at the project worksite. These are just some of the benefits of being able to accurately determine haul-truck cycle times.

Traditional approaches to determining haul-truck cycle time consider the time it takes a haul-truck to travel between a material plant and a machine at a project site.

Example embodiments of the present disclosure are directed toward overcoming the deficiencies of such systems.

<CIT> discloses a method for automatically controlling the operation of a work vehicle during the performance of a material moving operation may generally include monitoring cycle times for moving the work vehicle between a first location and a second location as the material moving operation is being performed and determining a work cycle time for moving the work vehicle between the first and second locations based on the monitored cycle times. In addition, the method may include automatically controlling the operation of a lift assembly of the work vehicle based on the work cycle time such that loader arms and an implement of the lift assembly are moved to a pre-defined loading position as the work vehicle is moved from the first location to the second location and to a pre-defined unloading position as the work vehicle is moved from the second location to the first location.

<CIT> discloses an apparatus, method and system for contextually aware monitoring of a supply chain are disclosed. In some implementations, contextually aware monitoring can include monitoring of the supply chain tradelane with tracking devices including sensors for determining location, velocity, heading, vibration, acceleration (e.g., 3D acceleration), or any other sensor that can monitor the environment of the shipping container to provide contextual awareness. The contextual awareness can be enabled by geofencing and recursive algorithms, which allow dynamic modification of the tracking device behavior. Dynamic modification can reduce performance to save power (e.g., save battery usage) and lower costs. Dynamic modification can increase performance where it matters in the supply chain for improved reporting accuracy or frequency or recognition of supply chain events. Dynamic modification can adapt performance such as wireless communications to the region or location of the tracking device.

In an aspect of the present disclosure, a method according to claim <NUM> includes an operation of receiving first position information, indicative of a first material plant checkpoint in which a haul-truck enters a geofence surrounding a first material plant (first material plant geofence) a first time. The method also includes receiving second position information, indicative of a first machine checkpoint in which the haul-truck enters and/or exits a geofence surrounding a machine, such as a paving machine (machine geofence). The method also includes receiving third position information, indicative of a second material plant checkpoint in which the haul-truck enters the first material plant geofence a second time. The method also includes creating an association between the first material plant checkpoint and the second material plant checkpoint. The method also includes determining the haul-truck cycle time based at least partly on a time associated with the first material plant checkpoint and a time associated with the second material plant checkpoint.

In another aspect of the present disclosure, a device according to claim <NUM> comprises one or more processors and memory coupled to the one or more processors. The memory stores instructions executable by the one or more processors to perform operations including receiving first position information, indicative of a first material plant checkpoint in which a haul-truck enters a first material plant geofence a first time. The operations also include receiving second position information, indicative of a first machine checkpoint in which the haul-truck enters and/or exits a machine geofence. The operations also include receiving third position information, indicative of a second material plant checkpoint in which the haul-truck enters the first material plant geofence a second time. The operations also include creating an association between the first material plant checkpoint and the second material plant checkpoint. The operations also include determining a haul-truck cycle time based at least partly on a time associated with the first material plant checkpoint and a time associated with the second material plant checkpoint.

In the following, embodiments, aspects and examples not falling under the scope of the independent claims are for illustrational purposes only.

In yet another aspect of the present disclosure, one or more computer-readable media stores instructions that, when executed by one or more processors of a device, configure the device to perform operations including receiving first position information, indicative of a first material plant checkpoint in which a haul-truck enters a first material plant geofence a first time. The operations also include receiving second position information, indicative of a first machine checkpoint in which the haul-truck enters and/or exits a machine geofence. The operations also include receiving third position information, indicative of a second material plant checkpoint in which the haul-truck enters the first material plant geofence a second time. The operations also include creating an association between the first material plant checkpoint and the second material plant checkpoint. The operations also include determining a haul-truck cycle time based at least partly on a time associated with the first material plant checkpoint and a time associated with the second material plant checkpoint.

Wherever possible, the same reference numbers will be used throughout the drawings to refer to same or like parts.

<FIG> is a diagram illustrating an example of how a processor may identify a haul-truck cycle. The processor obtains an indication of where the haul-truck is located at various times. The processor determines, from the indicated positions, whether the haul-truck has entered and/or exited various geofences. By creating an association between a first plant geofence entry and exit by a haul-truck and second plant geofence entry and exit by the same haul-truck, the processor may determine a cycle time for the haul-truck. Moreover, the processor may utilize tickets associated with the corresponding plant geofence entries and exits to determine the haul-truck cycle time.

A plant, such as material plant, is typically where a haul-truck obtains material (such as paving material) for use by a machine at a project worksite or for transfer to a different material plant. That is, the haul-truck obtains the material at the material plant and then transports the material to the machine at the project worksite or to the different material plant. The haul-truck may then return to the first material plant, typically to obtain additional material to take to a machine at the same or a different project worksite or to the different material plant or to even yet another material plant.

A portion of the material plant may be indicated by the contours of a geofence surrounding the plant. A geofence is a virtual perimeter for a tangible geographic area. A static geofence can be confined to a fixed boundary, such as a fixed boundary around a material plant. Alternatively, a dynamic geofence may be generated, to circumscribe the area covering a specified radial distance from a center point location that is in motion. For example, a dynamic geofence can be created around a paving machine that is in motion. As the machine moves, the position of the geofence surrounding the machine moves in correspondence with the movement of the machine.

Referring to <FIG>, an arrow <NUM> denotes a first entry by a haul-truck into a plant geofence <NUM> to a position denoted by <NUM>-<NUM> at time interval TI-<NUM>. A processor may determine the position of the haul-truck at time interval TI-<NUM> to be the position denoted by <NUM>-<NUM> based on information obtained, for example, using a Global Positioning System (GPS). For example, the processor may periodically receive a GPS signal and determine the position of the haul-truck based on a position indication in the GPS signal. For example, the GPS signal may indicate a latitude and longitude position of the haul-truck. Furthermore, the processor may compare the determined haul-truck position to known geofence positions, to determine whether the haul-truck position is within or outside any particular geofence known to the processor. For example, the processor may determine the haul-truck to be at the position <NUM>-<NUM> at time interval TI-<NUM> and, by comparing the position <NUM>-<NUM> to a known position of the plant geofence <NUM>, the processor may determine the haul-truck at position <NUM>-<NUM> to be within the plant geofence <NUM>.

Referring still to <FIG>, the haul-truck is moving within the plant geofence <NUM>. Subsequently, based on the motion of the haul truck, the processor determines the haul-truck to be at position <NUM>-<NUM> at time interval TI-<NUM>. Then another time the processor determines the position of the haul-truck, at time interval TI-<NUM>, the processor determines the haul-truck to be at position <NUM>-<NUM>. The processor determines, by comparing each of position <NUM>-<NUM> and <NUM>-<NUM> to the position of the plant geofence <NUM>, that the haul-truck is within the plant geofence <NUM>. In another example, the processor at certain time intervals ascertains the location of the haul-truck. For example, at a first time interval TI-<NUM>, the processor may ascertain the location of the haul-truck as being position <NUM>-<NUM>; at a second time interval TI-<NUM>, the processor may determine the location of the haul-truck as being position <NUM>-<NUM>; and at a third time interval TI-<NUM>, the processor may ascertain the location of the haul-truck as being position <NUM>-<NUM>. After comparing each of the locations with the boundary/area of plant geofence <NUM>, the processor may determine that the haul truck is within the plant geofence <NUM>.

However, at a next time interval TI-<NUM>, when the processor determines the position of the haul-truck, the processor determines the haul-truck to be at position <NUM>-<NUM>. By comparing the determined current position <NUM>-<NUM> and determined previous position <NUM>-<NUM> of the haul-truck to a known area of the plant geofence <NUM>, the processor may determine not only that the haul-truck is outside the plant geofence <NUM>, but the processor may also determine that the haul-truck has exited the plant geofence <NUM>. When a previous position is within a geofence and the next position is within the geofence, the processor determines the haul-truck is within the geofence. When the previous position is within the geofence and the next position is outside the geofence, the processor determines the haul-truck has exited the geofence. When the previous position is outside the geofence and the next position is outside the geofence, the processor determines the haul-truck is in transit. When the previous position is outside the geofence and the next position is within the geofence, the processor determines the haul-truck has entered the geofence. When the previous position is within the geofence and the next position is outside the geofence, the processor determines the haul-truck has exited the geofence.

As seen in <FIG>, the position <NUM>-<NUM> is within the plant geofence <NUM> and position <NUM>-<NUM> is outside the plant geofence <NUM> Accordingly, ass the haul-truck moved from position <NUM>-<NUM> to position <NUM>-<NUM> the processor may determine that the haul-truck has exited the plant geofence <NUM>.

As the haul-truck travels towards a machine at a project worksite to deliver material, the processor continues to determine and process the position of the haul-truck at various time intervals as indicated, for example, in the received GPS signal. Referring still to <FIG>, the processor determines, at time interval TI-<NUM>, the position of the haul-truck to be position <NUM>-<NUM>. Likewise at time intervals TI-<NUM>, TI-<NUM>, TI-<NUM> and TI-<NUM>, the processor determines the position of the haul-truck to be at position <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM> and <NUM>-<NUM>, respectively. At time interval TI-<NUM>, the processor determines the position of the haul-truck to be position <NUM>-<NUM>.

Each time the processor determines the position of the haul-truck, the processor may compare the determined position to known geofences, to determine whether the haul-truck position is within or outside a geofence. Furthermore, the processor may compare a status of the haul-truck at a particular position, as being within or outside a geofence to a status of the haul-truck at a previous position. Based on a result of the comparison, the processor may determine whether the haul-truck has entered or exited a geofence. For example, if the processor determines the status of the haul-truck to be outside a geofence and the status of the haul-truck at a previous position to be within the geofence, then the processor may determine the haul-truck has exited the geofence between the previous position and the current position. As another example, if the processor determines the status of the haul-truck to be within a geofence and the status of the haul-truck at a previous position to be outside the geofence, then the processor may determine the haul-truck has entered the geofence between the previous position and the current position.

When the processor determines the current position of the haul-truck to be position <NUM>-<NUM> at time interval TI-<NUM> and the corresponding status to be within the machine geofence <NUM>, and a previous position of the haul-truck at time interval TI-<NUM> to be position <NUM>-<NUM> and the corresponding status to be outside the machine geofence <NUM>, the processor may determine that the haul-truck has entered the machine geofence <NUM> between the position <NUM>-<NUM> and the position <NUM>-<NUM>.

Referring still to <FIG>, as the haul-truck continues to travel within the machine geofence <NUM>, the processor next determines the haul-truck at time interval TI-<NUM> to be at position <NUM>-<NUM>, then at position <NUM>-<NUM> at time interval TI-<NUM>, and then at position <NUM>-<NUM> at time interval TI-<NUM>. The processor determines the haul-truck to next be at position <NUM>-<NUM>, at time interval TI-<NUM>. When the processor determines the current position of the haul-truck to be position <NUM>-<NUM> and the corresponding status to be outside the machine geofence <NUM>, and a previous position of the haul-truck to be position <NUM>-<NUM> and the corresponding status to be inside the machine geofence <NUM>, the processor may determine that the haul-truck has exited the machine geofence <NUM> between the position <NUM>-<NUM> and <NUM>-<NUM>.

As the haul-truck continues to travel, the processor continues to determine and process the position of the haul-truck. Referring still to <FIG>, the processor determines the position of the haul-truck to be position <NUM>-<NUM> at time interval TI-<NUM>, then position <NUM>-<NUM> at time interval TI-<NUM>, then position <NUM>-<NUM> at time interval TI-<NUM>, and then position <NUM>-<NUM> at time interval TI-<NUM>. Yet another time the processor determines the position of the haul-truck, at time interval TI-<NUM>, the processor determines the position of the haul-truck to be position <NUM>-<NUM>. Due to the status of the haul-truck being outside the plant geofence <NUM> at position <NUM>-<NUM> and inside the plant geofence <NUM> at position <NUM>-<NUM>, the processor may determine that the haul-truck has entered the plant geofence <NUM> between the position <NUM>-<NUM> and the position <NUM>-<NUM>.

<FIG> is an example data structure <NUM> that the processor may utilize to record and process haul-truck positions and statuses. The data structure can be an array or a linked list. Each column <NUM>, <NUM>,. , <NUM> is a node of the data structure <NUM>. Each row indicates an attribute of the node. The example data structure <NUM> may be, for example, a dynamic linked-list data structure though, in <FIG>, links from record to record are not shown. A node indicates a record used to store several attributes of a given record.

Referring still to the <FIG> example data structure, the processor utilizes the column <NUM> to record and process a haul-truck position transition from position <NUM>-<NUM> (<FIG>) to position <NUM>-<NUM>. In the column <NUM> record, the processor has recorded the current position of the haul-truck (position <NUM>-<NUM>) as being within the plant geofence <NUM>. The processor has also recorded the previous position of the haul-truck (position <NUM>-<NUM>) as being within the plant geofence <NUM>, and the processor has recorded the subsequent position (position <NUM>-<NUM>, which is the same as the current position) as being within the plant geofence <NUM>. With regard to the status portion of the record <NUM>, the processor has recorded the status as "discard. " That is, because the previous position and subsequent position are both within the plant geofence <NUM>, the haul-truck has not made any transition relative to exiting a geofence. The column <NUM> record is not needed for the processor to determine the haul-truck cycle time, and the processor may discard it.

Referring still to the <FIG> example data structure <NUM>, the processor utilizes the column <NUM> record to record and process a haul-truck position transition from position <NUM>-<NUM> to position <NUM>-<NUM>. In the column <NUM> record, the processor has recorded the current position of the haul-truck (position <NUM>-<NUM>) as being the first instance outside the plant geofence <NUM>. The processor has recorded the previous position of the haul-truck, in column <NUM>, as being within the plant geofence <NUM>. Furthermore, the processor has recorded the subsequent position of the haul-truck, in column <NUM>, as being outside the plant geofence <NUM>. Because the processor has determined the current position of the haul-truck to be the first instance of the haul-truck being outside the plant geofence <NUM>, the processor records the status in column <NUM> as being an exit from the plant geofence <NUM>.

The processor uses the column <NUM> to record and process a haul-truck transition from position <NUM>-<NUM> to position <NUM>-<NUM>. In the column <NUM> record, the processor has recorded the current position of the haul-truck (position <NUM>-<NUM>) as being in transit. In the column <NUM> record, the processor has recorded the previous position of the haul truck as being outside the plant geofence <NUM> and also outside the machine geofence <NUM>. Furthermore, in the column <NUM> record, the processor has recorded the subsequent position of the haul-truck as also being outside the plant geofence <NUM> and also outside the machine geofence <NUM>. As a result, in the status position of the column <NUM>, the processor has recorded the status as "discard," since the column <NUM> record is not needed for the processor to determine the haul-truck cycle time. For example, if the data structure <NUM> is a linked list, then to optimize valuable system resources, the memory associated with the column <NUM> record may be released and the data structure <NUM> otherwise modified to no longer link to the column <NUM>.

Referring still to <FIG>, the processor utilizes the column <NUM> to record and process a haul-truck transition from position <NUM>-<NUM> to position <NUM>-<NUM>. In the column <NUM> record, the processor has recorded the current position of the haul-truck (position <NUM>-<NUM>) has being the first instance of the haul-truck being inside the machine geofence <NUM>. The processor has recorded the previous position of the haul-truck, in column <NUM>, as being outside the plant geofence <NUM> and outside the machine geofence <NUM>. Furthermore, the processor has recorded the subsequent position of the haul-truck, in column <NUM>, as being inside the machine geofence <NUM>. Because the processor has determined the current position of the haul-truck to be the first instance of the haul-truck being inside the machine geofence <NUM>, the processor records the status in column <NUM> as being an entrance to the machine geofence <NUM>.

In the column <NUM> record, the processor has recorded the current position of the haul-truck (position <NUM>-<NUM>) as being within the machine geofence <NUM>. The processor has also recorded the previous position of the haul-truck (position <NUM>-<NUM>) as being within the machine geofence <NUM>, and the processor has recorded the subsequent position (position <NUM>-<NUM>, which is the same as the current position) as being within the machine geofence <NUM>. With regard to the status portion of the record <NUM>, the processor has recorded the status as "discard. " That is, because the previous position and subsequent position are both within the machine geofence <NUM>, the haul-truck has not made any transition relative to a geofence. Thus, the column <NUM> record is not needed for the processor to determine the haul-truck cycle time.

Referring still to the <FIG> example data structure <NUM>, the processor utilizes the column <NUM> to record and process a haul-truck position transition from position <NUM>-<NUM> to position <NUM>-<NUM>. In the column <NUM> record, the processor has recorded the current position of the haul-truck (position <NUM>-<NUM>) as being the first instance outside the machine geofence <NUM>. The processor has recorded the previous position of the haul-truck, in column <NUM>, as being within the machine geofence <NUM>. Furthermore, the processor has recorded the subsequent position of the haul-truck, in column <NUM>, as being outside the machine geofence <NUM>. Because the processor has determined the current position of the haul-truck to be the first instance of the haul-truck being outside the machine geofence <NUM>, the processor records the status in column <NUM> as being an exit from the machine geofence <NUM>.

The processor uses the column <NUM> to record and process a haul-truck transition from position <NUM>-<NUM> to position <NUM>-<NUM>. In the column <NUM> record, the processor has recorded the current position of the haul-truck (position <NUM>-<NUM>) as being in transit. In the column <NUM> record, the processor has recorded the previous position of the haul truck as being outside the plant geofence <NUM> and also outside the machine geofence <NUM>. Furthermore, in the column <NUM> record, the processor has recorded the subsequent position of the haul-truck as also being outside the plant geofence <NUM> and also outside the machine geofence <NUM>. As a result, in the status position of the column <NUM>, the processor has recorded the status as "discard" since it does not indicate a transition relative to a geofence. The column <NUM> record is not needed for the processor to determine the haul-truck cycle time.

Referring still to the <FIG> example data structure <NUM>, the processor utilizes the column <NUM> to record and process a haul-truck position transition from position <NUM>-<NUM> to position <NUM>-<NUM>. In the column <NUM> record, the processor has recorded the current position of the haul-truck (position <NUM>-<NUM>) as being the first instance inside the plant geofence <NUM>. The processor has recorded the previous position of the haul-truck, in column <NUM>, as being outside the plant geofence <NUM> and outside of machine geofence. Furthermore, the processor has recorded the subsequent position of the haul-truck, in column <NUM>, as being inside the plant geofence <NUM>. Because the processor has determined the current position of the haul-truck to be the first instance of the haul-truck being inside the plant geofence <NUM>, the processor records the status in column <NUM> as being an entry to the plant geofence <NUM>.

<FIG> is a flowchart illustrating a process <NUM> by which the processor may determine a haul-truck cycle time, such as by processing a data structure such as the <FIG> example data structure <NUM>. The process <NUM> begins at <NUM>. At <NUM>, the processor finds an entry/exit pair (column <NUM>/<NUM>) for a plant geofence (such as the plant geofence <NUM>), referred to herein as a checkpoint. For example, with respect to the example data structure <NUM>, the processor may process the records <NUM>, <NUM>,. , <NUM> to identify a column (<NUM>) for an entrance to the plant geofence <NUM> and a column (<NUM>) for a corresponding exit from the plant geofence <NUM>. The pair of records are for a first checkpoint. In some examples, such as at the beginning of a day, the haul-truck may have remained parked within the plant geofence for a sustained period of time. In one example, the next trip cycle time may be indicated as invalid for productivity calculations (such as average cycle time for the haul truck) if the time the haul truck remains within the plant geofence is, for example, greater than six hours. However, the user may be able to view segments times for the trip, such as hauling time to paver, in paver, towards plant and in plant times).

At <NUM>, the processor finds the nearest (in time) checkpoint for the same haul-truck for the same plant. For example, with respect to the <FIG> example data structure <NUM>, the processor may identify the columns <NUM> as being for the next entry to the plant geofence <NUM> and a subsequent column (not shown) as being for the corresponding exit from the plant geofence <NUM>. The pair of records are for a second checkpoint. At <NUM>, the processor creates an association between the first checkpoint and the second checkpoint such as, for example, by storing an indication of the second checkpoint reference value (e.g., identification of the second checkpoint) in association with the first checkpoint.

At <NUM>, the processor determines if the first checkpoint and the second checkpoint have corresponding tickets. A ticket may include, for example, an indication of a time that a material load is picked up at a material plant and other information about the material load, such as amount of material, type of material, identification of the truck, etc..

If the processor determines at <NUM> that the first checkpoint and the second checkpoint have associated tickets then, at <NUM>, the processor determines the haul-truck cycle time based on the times indicated by the corresponding tickets. This may include, for example, determining a difference between times indicated in the tickets. If the processor determines at <NUM> that at least one of the first checkpoint and the second checkpoint do not have associated tickets then, at <NUM>, the processor determines the haul-truck cycle time based on a time difference between the geofence entries in the checkpoints. In other examples, a different time associated with a checkpoint may be utilized, such as an average of the geofence entry and exit times, or the exit times alone. At <NUM>, the process <NUM> ends.

<FIG> is a flowchart illustrating an example method a processor may use to filter out false positive checkpoint detections caused, for example, by a haul-truck hovering near a geofence. For example, the haul-truck may be waiting in line to enter a material plant such as the material plant surrounded by the material plant geofence <NUM> or the haul-truck may be waiting in line to deliver material to a machine. The process <NUM> begins at <NUM>. At <NUM>, the processor finds an entry/exit pair for a material plant geofence (such as the plant geofence <NUM>) or a machine geofence (such as the machine geofence <NUM>). At <NUM>, the processor finds the nearest checkpoint for the haul-truck and a geofence. At <NUM>, the processor determines if another/additional checkpoint is available (i.e., has been detected and recorded).

At <NUM>, if the processor has determined another checkpoint is available, then the processor determines the time difference between the two checkpoints, such as by determining a difference between the first exit and the second entrance. At <NUM>, the processor determines if the time difference is less than a jitter time. The jitter time is a time that may be specified such as, for example, <NUM>% of an average time spent inside a geofence by haul-trucks in general, from time of geofence entry to time of geofence exit. This is just an example, and other specifications for the jitter time may be utilized. One example reason a time difference may be less than the jitter is that the haul-truck is waiting in line to enter the material plant geofence <NUM>. The received GPS position signal has some inaccuracies. For example, the received GPS position signal may be accurate to within <NUM> feet with <NUM>% probability. Furthermore, a GPS signal may sometimes be degraded, such as by obstructions or multipath reflection. As the haul truck is waiting in line, the received locations for the haul-truck may actually indicate the haul truck is within the material plant geofence <NUM> and then outside the material plant geofence, even though the haul-truck remains outside the material plant geofence <NUM> and has not yet entered the material plant geofence <NUM> since the last actual checkpoint.

At <NUM>, if it has been determined that the time difference is less than the jitter time, then the two checkpoints are merged into one, with the first entry being recorded as the actual entry for the merged checkpoint and the last exit being recorded as the actual exit for the merged checkpoint. In this way, geofence crossings that have a high probability of being false positives are detected and disregarded. Thus, for example, a "false" exit while waiting to leave may be ignored, such that the actual exit is used in cycle time determination.

At <NUM>, if it has been determined that the time difference is not less than the jitter time, then a new checkpoint is created at <NUM> using the geofence entry and exit pair determined at <NUM>.

<FIG> is a flowchart illustrating an example method a processor may use to filter out a false checkpoint detection caused, for example, by a haul-truck passing near a plant geofence. For example, the haul-truck may be in transit to a machine (e.g., the machine surrounded by the machine geofence <NUM>) and may pass close enough to another material plant that the processor, using received position signals, may erroneously determine that the haul-truck entered and exited a geofence surrounding the other material plant.

The process <NUM> begins at <NUM>. At <NUM>, the processor finds an entry/exit pair for a machine geofence (such as the machine geofence <NUM>). At <NUM>, the processor finds the nearest checkpoint for the haul-truck and a plant geofence.

At <NUM>, the processor determines if an in-plant time for the checkpoint found at <NUM> is less than an expected in-plant time. The in-plant time for the checkpoint may be, for example, a time difference between the entry of the haul-truck to the plant geofence and the exit of the haul-truck from the plant geofence. The expected in-plant time may be, as just examples, set at two minutes or set at <NUM>% of the average time a haul-truck spends within a plant geofence. For example, as the haul-track passes by a plant geofence, due to inaccuracies in the position signal received by the processor, the position signal may inaccurately indicate that the haul-truck has entered and then exited a geofence surrounding the plant.

At <NUM>, if it has been determined that the plant checkpoint time in-time is less than the expected in-plant time, the current checkpoint is given a status of "passthrough" such that it is not used for determining haul-truck cycle time. At <NUM>, the next closest plant check-point for the same haul-truck is found, for which the processor makes the determination at <NUM>.

At <NUM>, if it has been determined that the plant checkpoint time in-time is not less than the expected in-plant time, the processor creates an association between the plant checkpoint and the machine checkpoint. At <NUM>, the processor calculates the time from plant geofence exit to the entry to the machine geofence. At <NUM>, the process <NUM> ends.

<FIG> is a flowchart illustrating an example method a processor may use to filter out a false checkpoint detection caused, for example, by a haul-truck passing near a machine geofence. For example, the haul-truck may be in transit to a machine (e.g., the machine surrounded by the machine geofence <NUM>) and may pass close enough to another machine that the processor, using position signals, may erroneously determine that the haul-truck entered and exited a geofence surrounding the other machine.

At <NUM>, the processor determines if the in-machine time for the checkpoint found at <NUM> is less than an expected in-machine time. The in-machine time for the checkpoint may be, for example, a time difference between the entry of the haul-truck to the machine geofence and the exit of the haul-truck from the machine geofence. The expected in-machine time may be, as just examples, set at two minutes or set at <NUM>% of the average time a haul-truck spends within a machine geofence. For example, as the haul-track passes by a machine geofence, due to inaccuracies in the position signal received by the processor, the position signal may inaccurately indicate that the haul-truck has entered and then exited a geofence surrounding the machine.

At <NUM>, if it has been determined that the machine checkpoint time in-time is less than the expected in-machine time, the current checkpoint is given a status of "passthrough" such that it is not used for determining haul-truck cycle time. At <NUM>, the next closest machine check-point for the same haul-truck is found, for which the processor makes the determination at <NUM>.

At <NUM>, if it has been determined that the machine checkpoint time in-time is not less than the expected in-machine time, the processor creates an association between the plant checkpoint (<NUM>) and the machine checkpoint. At <NUM>, the processor calculates the time from the machine geofence exit to the entry to the plant geofence. At <NUM>, the process <NUM> ends.

<FIG> schematically illustrates components of an example computing device <NUM> that may comprise a computing device for receiving and processing haul-truck position indications as well as determining haul-truck cycle time. The example computing device <NUM> may comprise any type of device, such as a mobile phone or other mobile computing device (e.g., a tablet computing device), a personal computer such as a desktop computer or laptop computer, a portable navigation device, gaming device, portable media player. television, set-top box, automated teller machine, and so forth. In some examples, the computing device <NUM> is a computing device that also performs functionality for the haul-truck, other than functionality used in determining haul-truck cycle time. For example, the computing device <NUM> may be part of a haul-truck's navigation system, a haul-truck's engine control system, a haul-truck's entertainment system or other system of the vehicle. In some examples, the computing device <NUM> is a specialized device configured specifically for haul-truck cycle times and, in other examples, the computing device <NUM> may perform other functionality as well.

As shown in <FIG>, an example computing device <NUM> may include at least one of a processing unit <NUM>, a transceiver <NUM> (e.g., radio, modem, etc.), a microphone <NUM>, a speaker <NUM>, power supply unit <NUM>, and a network interface <NUM>. The network interface may be usable to receive signals that include a position indication, such as a GPS signal. The processing unit <NUM> may include one or more processors <NUM> and memory <NUM>. The one or more processors <NUM> may comprise microprocessors, central processing units, graphics processing units, or other processors usable to execute program instructions to implement the functionality described herein. Additionally, or alternatively, in some examples, some or all of the functions described may be performed in hardware, such as an application specific integrated circuit (ASIC), a gate array, or other hardware-based logic device.

The transceiver <NUM> may comprise one or more hardware and/or software implemented radios to provide two-way RF communication with other devices in a network. The transceiver <NUM> may additionally or alternatively include a modem or other interface device to provide wired communication from the computing device <NUM> to other devices.

The microphone <NUM> may comprise physical hardware though, in some cases, an audio input interface may instead be provided to interface to an external microphone or other sound receiving device. Similarly, the speaker <NUM> may comprise physical hardware though, in some cases, an audio output interface may instead be provided to interface to an external speaker or other sound emitting device. The power supply unit <NUM> may provide power to the computing device <NUM>. In some instances, the power supply unit <NUM> comprises a power connector that couples to an Alternating Current (AC) or Direct Current (DC) mains power line. In other instances, such as when the computing device <NUM> is a mobile phone or other portable device, the power supply unit <NUM> may comprise a battery.

The memory <NUM> may include an operating system (OS) <NUM> and one or more applications <NUM> that are executable by the one or more processors <NUM>. The memory <NUM> may also store other information. For example, the memory <NUM> may store a position information data set <NUM> (which may comprise a data structure like the data structure <NUM>) whose contents may be processed to determine a haul-truck cycle time.

While detailed examples of certain computing devices (e.g., the example computing device <NUM>) are described herein, it should be understood that those computing devices may include other components and/or be arranged differently. As noted above, in some instances, a computing device may include one or more processors and memory storing processor executable instructions to implement the functionalities they are described as performing. Certain computing devices may additionally or alternatively include one or more hardware components (e.g., application specific integrated circuits, field programmable gate arrays, systems on a chip, and the like) to implement some or all of the functionalities they are described as performing.

Claim 1:
A method of determining a cycle time for a haul truck, comprising:
periodically receiving a GPS signal comprising data indicative of a position of the haul truck;
dynamically compiling a data structure including each data indicative of the position of the haul truck in combination with a time associated with the data indicative of the position of the haul truck;
comparing each data indicative of the position of the haul truck to known geofence positions;
identifying within the data indicative of the position of the haul truck first GPS position information (<NUM>-<NUM>), indicative of a first material plant checkpoint in which the haul truck enters a first material plant geofence (<NUM>) a first time;
identifying within the data indicative of the position of the haul truck second GPS position information (<NUM>-<NUM>, <NUM>-<NUM>), indicative of a first paver checkpoint in which the haul truck enters and/or exits a dynamic geofence (<NUM>), wherein the geofence moves in correspondence with movement of the paver;
identifying within the data indicative of the position of the haul truck third GPS position information (<NUM>-<NUM>), indicative of a second material plant checkpoint in which the haul truck enters the first material plant geofence (<NUM>) a second time;
creating an association between the first material plant checkpoint and the second material plant checkpoint; and
determining a cycle time based at least partly on a time associated with the first material plant checkpoint and a time associated with the second material plant checkpoint.