This patent application is directed to automated bulk excavation of material, and more specifically, to efficiently controlling automated excavators to remove material according to an optimized dig cycle.
An autonomous or automated excavator can be used to dig a block of material from the ground when performing mass or bulk excavation (of loose material). To be useful, such an excavator should dig autonomously with as little human intervention as possible. A productive (high tons per hour) and efficient (low fuel per hour) excavator can be of value to a customer. However, conventional methods for planning the movements of an excavator's linkage can result in wasted time, low bucket loads, and high fuel usage. While digging, material flows in unpredictable ways and can fall from the bucket back into previously excavated areas, so a dig planner must either prevent unwanted material movement, account for it or use an expensive perception system to sense the new terrain map. The ground may also resist the bucket in ways that could stop excavation from happening or from being executing according to the desired plan.
Efforts have been made to improve excavation planning. For example, U.S. Pat. No. 6,108,949 to Singh et al. (hereinafter “Singh”), describes a planning system for earthmoving operations such as digging that uses site geometry and divides terrain into a grid-like pattern of smaller excavation regions to determine boundaries and sequence of excavation. A refined planner then evaluates candidate excavations using a simulated model of a closed loop controller and by optimizing cost functions on criteria such as volume of material excavated, energy expended, and time, to determine the optimal location and orientation of a bucket of an excavator to begin excavating the region. The third level of the excavation planner is a control scheme wherein the selected excavation is executed by a closed loop controller that controls execution of a commanded excavation trajectory by monitoring forces exerted on a bucket, stick, and boom on an excavating machine. Singh, however, does not optimize the removal sequence of the smaller excavation regions.
Thus, there are still opportunities to improve on the efficiency controlling automated excavators to remove material according to an optimized dig cycle. The example systems and methods described herein are directed toward overcoming one or more of the deficiencies described above and/or other problems with the prior art.
In some aspects, the techniques described herein relate to a machine, such as an excavator, including: a boom, a stick, and a bucket, each having a range of motion that together defines dig block constraints, including: a reach inside limit; a reach outside limit; a swing first limit; a swing second limit; and a depth limit; one or more sensors positioned on the machine to count dig passes; one or more processors; and one or more memory devices having stored thereon instructions that when executed by the one or more processors cause the one or more processors to: generate an excavation plan, including: determining a number of elevations; determining a number of rings in each elevation; and determining a number of sectors in each ring; and direct the machine to perform one or more dig passes in order to sequentially excavate each sector, wherein the sectors in each elevation are excavated from the reach outside limit to the reach inside limit and from the swing first limit to the swing second limit; wherein the system moves to the next sector when a threshold number of dig passes is reached.
In some aspects, the techniques described herein relate to a machine, wherein the number of rings is the reach outside limit minus the reach inside limit divided by a cut length corresponding to the amount of material that the bucket can carry.
In some aspects, the techniques described herein relate to a machine, wherein the number of sectors in a ring is the outer arc length between the swing first limit and the swing second limit divided by a width of the bucket.
In some aspects, the techniques described herein relate to a machine, wherein the sectors are excavated from the swing first limit to the swing second limit beginning with a sector furthest from a dump location.
In some aspects, the techniques described herein relate to a machine, wherein the one or more sensors include at least one joint angle sensor.
In some aspects, the techniques described herein relate to a machine, wherein the one or more sensors include at least one inertial measurement unit.
In some aspects, the techniques described herein relate to a machine, wherein the dig block constraints further include one or more avoidance zones.
In some aspects, the techniques described herein relate to a system for planning a machine dig cycle, including: one or more processors; and one or more memory devices having stored thereon instructions that when executed by the one or more processors cause the one or more processors to: generate an excavation plan, including: determining a number of elevations; determining a number of rings in each elevation; and determining a number of sectors in each ring; and direct a machine to perform one or more dig passes in order to sequentially excavate each sector, wherein the sectors in each elevation are excavated from a reach outside limit to a reach inside limit and from a swing first limit to a swing second limit; wherein the system directs the machine to move to the next sector when a threshold number of dig passes is reached.
In some aspects, the techniques described herein relate to a system, wherein the excavator includes a boom, a stick, and a bucket, each having a range of motion that together defines dig block constraints, including: the reach inside limit; the reach outside limit; the swing first limit; and the swing second limit.
In some aspects, the techniques described herein relate to a system, wherein the number of rings is the reach outside limit minus the reach inside limit divided by a cut length corresponding to the amount of material that the bucket can carry.
In some aspects, the techniques described herein relate to a system, wherein the number of sectors in a ring is the outer arc length between the swing first limit and the swing second limit divided by a width of the bucket.
In some aspects, the techniques described herein relate to a system, wherein the sectors are excavated from the swing first limit to the swing second limit beginning with a sector furthest from a dump location.
In some aspects, the techniques described herein relate to a system, wherein the dig block constraints further include one or more avoidance zones.
In some aspects, the techniques described herein relate to a method for planning a machine dig cycle, including: generating an excavation plan, including: determining a number of elevations; determining a number of rings in each elevation; and determining a number of sectors in each ring; directing a machine to perform one or more dig passes in order to sequentially excavate each sector, wherein the sectors in each elevation are excavated from a reach outside limit to a reach inside limit and from a swing first limit to a swing second limit; and directing the machine to move to the next sector when a threshold number of dig passes is reached.
In some aspects, the techniques described herein relate to a method, wherein the machine includes a boom, a stick, and a bucket, each having a range of motion that together defines dig block constraints, including: the reach inside limit; the reach outside limit; the swing first limit; and the swing second limit.
In some aspects, the techniques described herein relate to a method, wherein the number of rings is the reach outside limit minus the reach inside limit divided by a cut length corresponding to the amount of material that the bucket can carry.
In some aspects, the techniques described herein relate to a method, wherein the number of sectors in a ring is the outer arc length between the swing first limit and the swing second limit divided by a width of the bucket.
In some aspects, the techniques described herein relate to a method, wherein the sectors are excavated from the swing first limit to the swing second limit beginning with a sector furthest from a dump location.
In some aspects, the techniques described herein relate to a method, wherein the dig block constraints further include one or more avoidance zones.
The systems and methods described herein may be better understood by referring to the following Detailed Description in conjunction with the accompanying drawings, in which like reference numerals indicate identical or functionally similar elements:
The headings provided herein are for convenience only and do not necessarily affect the scope of the embodiments. Further, the drawings have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be expanded or reduced to help improve the understanding of the embodiments. Moreover, while the disclosed technology is amenable to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail below. The intention, however, is not to unnecessarily limit the embodiments described. On the contrary, the embodiments are intended to cover all suitable modifications, combinations, equivalents, and alternatives falling within the scope of this disclosure.
Various examples of the systems and methods introduced above will now be described in further detail. The following description provides specific details for a thorough understanding and enabling description of these examples. One skilled in the relevant art will understand, however, that the techniques and technology discussed herein may be practiced without many of these details. Likewise, one skilled in the relevant art will also understand that the technology can include many other features not described in detail herein. Additionally, some well-known structures or functions may not be shown or described in detail below so as to avoid unnecessarily obscuring the relevant description.
The terminology used below is to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of some specific examples of the embodiments. Indeed, some terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this section.
The disclosed technology provides a dig cycle planner that can be a heuristic planner that determines a sequence of bucket passes to fully excavate a large volume of material from a single stationary track position. Disclosed herein are methods and systems for generating and executing an excavator dig cycle plan. The disclosed technology includes receiving excavator information that defines dig block constraints for the excavator. In some embodiments, the excavator information can include a reach inside limit, a reach outside limit, a swing first limit, a swing second limit, and a depth limit. The method includes generating an excavation plan based on the dig block constraints. In some embodiments, generating the excavation plan can include determining a number of elevations, determining a number of rings in each elevation, and determining a number of sectors in each ring. For a given machine size, there is a block reach range threshold below which rings are not needed. Above the threshold, the block can be decomposed into one or more rings to ensure that digging stays productive by “crowding” against undug material. The excavator is directed to perform one or more dig passes in order to excavate each sector according to the dig plan. The number of dig passes is monitored by the system to ensure that the dig plan is executed properly. The method directs the excavator to move to the next sector when a threshold number of dig passes is reached. In some embodiments, the system determines that the dig was effective and completed the sector from entry point to exit point, then it may move to the next sector after only one pass. If it does not, then excavation of the sector is attempted again. The threshold number is used to prevent an excessive or infinite number of attempts.
Dig cycle plan logic generally includes starting at a furthest reach of the bucket in order to crowd against un-dug areas of the dig block. The plan logic also includes starting furthest from the dump side in order to avoid spilling material back into the areas previously excavated. Sectors can be overlapped to avoid leaving thin “stranded” areas of material. Although the disclosed technology is shown and described with respect to hydraulic excavators, the technology applies to other machines performing excavation from a rotating chassis, such as hydraulic mining shovels, electric rope shovels, draglines, etc.
In some embodiments, the telematics processing system 106 can use the sensor data from the linkage angle sensors 22, 24, and 26 to determine a number of dig passes that the excavator has performed. This information can be stored in the telematics/utilization database 102. In some embodiments, the dig cycle planning system 100 can receive the excavator linkage configuration information from database 104 in order to determine dig block constraints and generate an excavation plan according to the technology disclosed herein. In some embodiments, linkage sensors are not needed. The number of dig passes that the excavator has performed can be determined in software logic against an open- or closed-loop control system.
As described above, the dig cycle planning system 100 can operate across a network connected to different processing and storage components. However, in other embodiments the dig cycle planning system 100 can be located on the excavator itself along with various others of the processing and storage capabilities noted above. For example, the dig cycle planning system 100 can be configured to determine the number of dig passes performed by directly receiving and analyzing the linkage sensor data from the boom angle sensor 22, the stick angle sensor 24, and the bucket angle sensor 26.
Each ring 302 is divided into multiple sectors 304 which are defined by the width 306 of the excavator's bucket. Accordingly, in some embodiments, the number of sectors 304 in a ring 302 can be calculated as the rings outer arc length between the swing first limit 206 and the swing second limit 208 (see
In some embodiments, the dig plan can be smaller footprint than the full range of motion if constrained to optimize break-out force or fuel efficiency. Alternatively, it could be constrained so as to not include an avoidance zone or to stay within the overall perimeter of a foundation design, etc.
In general, the dig cycle planning system 100 directs the excavator to dig the block 300 in elevations from top to bottom and dig each elevation through the sequence of rings 302. The outer ring(s) are excavated before the inner ring(s). For example, ring 302(1) is excavated prior to ring 302(2). Each ring 302 is excavated through a sequence of the sectors 304. The sectors overlap to avoid thin strands of material being left behind. Each sector 304 is excavated through a sequence of dig passes to excavate the sector. When a sector is cleared, the system directs the excavator to proceed to the next sector in the sequence. When a block is excavated, the HEX tracks to a new location to clear another block.
The sector sequence is determined, in part, by the number and location of the dump locations. Sectors furthest from the dump location(s) are excavated before sectors closer to the dump location. If dumping on both sides, one half of the sectors in a ring are excavated before the other half. Thus, the excavator starts at its furthest reach in order to crowd material against un-dug areas of the block. This sequence logic also avoids spilling material back into the pit.
In
In
The techniques disclosed here can be embodied as special-purpose hardware (e.g., circuitry), as programmable circuitry appropriately programmed with software and/or firmware, or as a combination of special-purpose and programmable circuitry. Hence, embodiments may include a machine-readable medium having stored thereon instructions which may be used to cause a computer, a microprocessor, processor, and/or microcontroller (or other electronic devices) to perform a process. The machine-readable medium may include, but is not limited to, optical disks, compact disc read-only memories (CD-ROMs), magneto-optical disks, ROMs, random access memories (RAMs), erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing electronic instructions.
Several implementations are discussed below in more detail in reference to the figures.
CPU 510 can be a single processing unit or multiple processing units in a device or distributed across multiple devices. CPU 510 can be coupled to other hardware devices, for example, with the use of a bus, such as a PCI bus or SCSI bus. The CPU 510 can communicate with a hardware controller for devices, such as for a display 530. Display 530 can be used to display text and graphics. In some examples, display 530 provides graphical and textual visual feedback to a user. In some implementations, display 530 includes the input device as part of the display, such as when the input device is a touchscreen or is equipped with an eye direction monitoring system. In some implementations, the display is separate from the input device. Examples of display devices are: an LCD display screen; an LED display screen; a projected, holographic, or augmented reality display (such as a heads-up display device or a head-mounted device); and so on. Other I/O devices 540 can also be coupled to the processor, such as a network card, video card, audio card, USB, FireWire or other external device, sensor, camera, printer, speakers, CD-ROM drive, DVD drive, disk drive, or Blu-Ray device.
In some implementations, the device 500 also includes a communication device capable of communicating wirelessly or wire-based with a network node. The communication device can communicate with another device or a server through a network using, for example, TCP/IP protocols. Device 500 can utilize the communication device to distribute operations across multiple network devices.
The CPU 510 can have access to a memory 550. A memory includes one or more of various hardware devices for volatile and non-volatile storage, and can include both read-only and writable memory. For example, a memory can comprise random access memory (RAM), CPU registers, read-only memory (ROM), and writable non-volatile memory, such as flash memory, hard drives, floppy disks, CDs, DVDs, magnetic storage devices, tape drives, device buffers, and so forth. A memory is not a propagating signal divorced from underlying hardware; a memory is thus non-transitory. Memory 550 can include program memory 560 that stores programs and software, such as an operating system 562, Dig Cycle Planning Platform 564, and other application programs 566. Memory 550 can also include data memory 570 that can include database information, etc., which can be provided to the program memory 560 or any element of the device 500.
Some implementations can be operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the technology include, but are not limited to, personal computers, server computers, handheld or laptop devices, cellular telephones, mobile phones, wearable electronics, gaming consoles, tablet devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, or the like.
In some implementations, server computing device 610 can be an edge server that receives client requests and coordinates fulfillment of those requests through other servers, such as servers 620A-C. Server computing devices 610 and 620 can comprise computing systems, such as device 500. Though each server computing device 610 and 620 is displayed logically as a single server, server computing devices can each be a distributed computing environment encompassing multiple computing devices located at the same or at geographically disparate physical locations. In some implementations, each server computing device 620 corresponds to a group of servers.
Client computing devices 605 and server computing devices 610 and 620 can each act as a server or client to other server/client devices. Server 610 can connect to a database 615. Servers 620A-C can each connect to a corresponding database 625A-C. As discussed above, each server 620 can correspond to a group of servers, and each of these servers can share a database or can have their own database. Databases 615 and 625 can warehouse (e.g., store) information. Though databases 615 and 625 are displayed logically as single units, databases 615 and 625 can each be a distributed computing environment encompassing multiple computing devices, can be located within their corresponding server, or can be located at the same or at geographically disparate physical locations.
Network 630 can be a local area network (LAN) or a wide area network (WAN), but can also be other wired or wireless networks. Network 630 may be the Internet or some other public or private network. Client computing devices 605 can be connected to network 630 through a network interface, such as by wired or wireless communication. While the connections between server 610 and servers 620 are shown as separate connections, these connections can be any kind of local, wide area, wired, or wireless network, including network 630 or a separate public or private network.
General software 720 can include various applications, including an operating system 722, local programs 724, and a basic input output system (BIOS) 726. Specialized components 740 can be subcomponents of a general software application 720, such as local programs 724. Specialized components 740 can include a dig pass counting module 744, a linkage configuration module 746, a dig cycle planning module 748, a dig pass command module 750, and components that can be used for transferring data and controlling the specialized components, such as interface 742. In some implementations, components 700 can be in a computing system that is distributed across multiple computing devices or can be an interface to a server-based application executing one or more of specialized components 740.
Those skilled in the art will appreciate that the components illustrated in
In some embodiments, a dig cycle planning system can include a dig pass counting module 744, a linkage configuration module 746, a dig cycle planning module 748, and a dig pass command module 750 (
The above description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding of the disclosure. However, in some instances, well-known details are not described in order to avoid obscuring the description. Further, various modifications may be made without deviating from the scope of the embodiments.
Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not for other embodiments.
The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. It will be appreciated that the same thing can be said in more than one way. Consequently, alternative language and synonyms may be used for any one or more of the terms discussed herein, and any special significance is not to be placed upon whether or not a term is elaborated or discussed herein. Synonyms for some terms are provided. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification, including examples of any term discussed herein, is illustrative only and is not intended to further limit the scope and meaning of the disclosure or of any exemplified term. Likewise, the disclosure is not limited to various embodiments given in this specification. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. In the case of conflict, the present document, including definitions, will control.