This disclosure is directed toward power machines. More particularly, the present disclosure is directed toward automatic control of the movement of power machines over terrain, including along predetermined and adaptive planned paths. Power machines, for the purposes of this disclosure, include any type of machine that generates power for the purpose of accomplishing a particular task or a variety of tasks. One type of power machine is a work vehicle. Work vehicles, such as loaders, are generally self-propelled vehicles that have a work device, such as a lift arm (although some work vehicles can have other work devices) that can be manipulated to perform a work function. Work vehicles include loaders, excavators, utility vehicles, tractors, and trenchers, to name a few examples.
In some cases, control systems of power machines can execute operations without the presence or active intervention of a human operator. For example, pumps, motors, cylinders, and other actuators of a power machine can be electronically controlled in known ways to implement particular driving operations (e.g., steering operations, forward or reverse travel, etc.) and workgroup operations (e.g., operating a lift arm or an implement). Thus, one or more appropriately configured electronic control devices (e.g., hub controllers) can automatically control appropriate actuators, based on various operator and non-operator inputs, to automatically implement a variety of power machine operations. In some cases, automatic operation can include automatically tracking a planned path over terrain.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
Generally, examples disclosed herein can provide improved automatic (e.g., automated) travel for power machines, including over preplanned travel paths. For example, travel along a preplanned path can be implemented via commanded movement toward a target point along the preplanned path, and the location of the target point along the path can be adaptively updated, including based on current operating conditions of a power machine (e.g., travel speed) or environmental context (e.g., local path curvature). In some cases, a nearer location for a target point can be determined when travel speed for a power machine is relatively low and a more distant location for a target point can be determined when travel speed for a power machine is relatively high. Correspondingly, in some cases, a nearer location may correspond to a power machine approaching or executing a turn and a more distant location may correspond to a power machine traveling along a generally low-curvature portion of a path. In some cases, implementation of an adaptively update target point can improve smoothing of an actual travel path of a power machine and thereby generally increase operational efficiency.
Some examples of the disclosure provide a method for controlling travel of a power machine (e.g., automatically controlling automatic travel) that can be implemented using one or more processor devices (e.g., general or special purpose electronic controllers). A planned path for travel of the power machine can be identified between a starting location and a destination. A target point along the planned path can be determined based on a set distance of the target point from the power machine, and commanding travel of the power machine toward the target point. One or more tractive elements of the power machine can be controlled to cause the power machine to automatically travel toward the target point. As the power machine automatically travels toward the target point, the set distance can be updated based on one or more of a local curvature of the planned path or a travel speed of the power machine. As the power machine automatically travels toward the target point, a location of the target point along the planned path can be updated based on the updated set distance.
In some example, updating a set distance of a target point from a power machine includes increasing the set distance based on an increase in the travel speed of the power machine and decreasing the set distance based on a decrease in the travel speed of the power machine. In some example, a commanded travel speed of a power machine can be automatically decreased based on increases in a local curvature of the planned path and the commanded travel speed of the power machine can be automatically increased based on decreases in the local curvature of the planned path.
In some examples, controlling one or more tractive elements to cause a power machine to automatically travel toward a target point can cause the power machine to deviate from a planned path. In some examples, the deviation from the planned path can result in an actual travel path of the power machine that is locally shorter than the planned path, between common endpoints along the planned path. In some examples, the deviation from the planned path can result in a total actual travel path of the power machine from the starting location to the destination that is shorter than the planned path as measured from the starting location to the destination.
In some examples, updating a set distance of a target point from the power machine can be further based on a selection (e.g., a user selection) of at least one operating mode of a plurality of predetermined operating modes for path tracking by the power machine.
In some examples, updating a set distance of a target point from the power machine can be further based on a turning radius of the power machine.
In some examples, updating a set distance of a target point from the power machine includes increasing the set distance to a maximum value upon substantial completion of a turn along the planned path.
Some examples provide a power machine configured for automatic operations. The power machine can include a main frame, one or more tractive elements configured to move the main frame over terrain, one or more work elements supported by the main frame, and a power source supported by the main frame and configured to provide tractive power to the one or more tractive elements and to provide working power to the one or more work elements. A control system can include one or more processor devices configured to execute control operations, including: identifying a first local curvature of a planned path for automatic travel of the power machine; setting a first target travel speed for the power machine based on the first local curvature; determining a current location for the power machine; identifying a first location of a target point along the planned path, based on the current location of the power machine and one or more of the first local curvature or the first target travel speed; and controlling automatic travel of the power machine, including commanding a first heading for the power machine based on the identified first location of the target point to automatically control travel of the power machine.
In some examples, identifying a first location of a target point along a planned path, based on the one or more of a first local curvature or a first target travel speed, includes determining the first target travel speed based on the first local curvature and identifying the location of the target point based on the first target travel speed.
In some examples, as a power machine travels toward a target point along a first heading, an updated location of the target point along the planned path can be identified based on one or more of a second local curvature of the planned path or a second travel speed of the power machine. Controlling automatic travel of the power machine can include commanding an updated heading for the power machine based on the identified updated location of the target point.
In some examples, identifying an updated location of a target point includes, as a power machine travels toward the target point, updating a distance between the power machine and the target point based on one or more of a (e.g., second) local curvature of a planned path or a (e.g., second) travel speed of the power machine.
In some examples, automatically controlling travel of a power machine can include one or more of: automatically increasing a distance between a target point and a reference location on the power machine based on an increase in travel speed of the power machine; automatically decreasing the distance between the target point and the reference location based on a decrease in the travel speed of the power machine; automatically decreasing a commanded travel speed of the power machine based on increases in local curvature of the planned path; or automatically increasing the commanded travel speed of the power machine based on decreases in local curvature of the planned path.
In some examples, user input can be received indicating a selection of an operating mode from a plurality of operating modes. In response to receiving the user input, a power machine can be operated for automatic travel in the selected operating mode, wherein each of the plurality of operating modes specifies a respective correspondence between (a) a distance between the power machine and a target point and (b) one or more of: travel speed of the power machine or local curvature of a planned path.
In some examples, one or more sensors can be arranged to detect data representing aspects of the terrain. A control system can include a circular buffer memory structure. The control system can be configured to: store in the circular buffer memory structure an initial map of a first area of the terrain; receive data from the one or more sensors representing one or more of: one or more potential obstacles within the terrain, or a second area of the terrain that extends beyond an edge of the first area of the terrain; and store an updated map of the terrain in the circular buffer memory structure, including a representation of the one or more of: the one or more potential obstacles within the terrain, or the second area of the terrain that extends beyond an edge of the first area of the terrain. In some examples, storing the updated map can overwrite at least part of the initial map within the circular buffer module.
Some examples provide a power machine configured for automatic operations. The power machine can include a main frame, one or more tractive elements configured to move the main frame over terrain, a power source supported by the main frame and configured to provide tractive power to the one or more tractive elements, and a control system that includes a circular buffer module and one or more processor devices. The control system can be configured to: store in the circular buffer module an initial representation of a first area of the terrain; control automatic travel of the power machine, including commanding first tractive operations by the one or more tractive elements based on the initial representation of the terrain; receive data from one or more sensors corresponding to one or more of: one or more potential obstacles within the terrain, or a second area of the terrain that extends beyond an edge of the first area of the terrain; store an updated representation of the terrain in the circular buffer, including a representation of the one or more of: the one or more potential obstacles within the terrain, or the second area of the terrain that extends beyond an edge of the first area of the terrain; and further control automatic travel of the power machine, including commanding second tractive operations by the one or more tractive elements based on the updated representation of the terrain.
In some examples, a control system can be further configured to: store an offset for a circular buffer that locates a power machine within a first area of terrain; and update the offset based upon receiving the data corresponding to a second area of the terrain.
In some examples, a second area of terrain represented by an updated representation can be of substantially the same areal size as a first area of the terrain represented by an initial representation.
This Summary and the Abstract are provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. The Summary and the Abstract are not intended to identify key features or essential features of the claimed subject matter, nor are they intended to be used as an aid in determining the scope of the claimed subject matter.
The concepts disclosed in this discussion are described and illustrated with reference to exemplary embodiments. These concepts, however, are not limited in their application to the details of construction and the arrangement of components in the illustrative embodiments and are capable of being practiced or being carried out in various other ways. The terminology in this document is used for the purpose of description and should not be regarded as limiting. Words such as “including,” “comprising,” and “having” and variations thereof as used herein are meant to encompass the items listed thereafter, equivalents thereof, as well as additional items.
As used herein, unless otherwise specified, “substantially the same” (or variations thereof) indicates that two values deviate from each other by 5% or less, with reference to the value with a smaller absolute size. In this regard, for example, the values 100 and 105 are substantially the same because they deviate from each other by 5%.
Also as used herein, unless otherwise specified, a “turn” indicates a part of a path of travel of a power machine (e.g., of an actual or a planned path of travel) that exhibits non-zero curvature and links two other parts of the path that respectively exhibit substantially zero curvature (i.e., having less than 5 degrees of local variation of tangent lines over at least a length of the relevant power machine) or opposite curvature as the turn (e.g., in the case of an S-curve). Similarly, “substantial completion” of a turn (and the like, e.g., “substantially completing,” etc.) indicates that a reference point (e.g., leading edge, center of gravity, or center of rotation) of a power machine or a tractive element thereof has traveled along the turn to a point that is one or more of: at least halfway through the path of the leading edge along the turn, or past a point of maximum curvature for the turn.
Also as used herein, unless otherwise specified, curvature indicates the mathematical curvature (i.e., 1/R) of smoothly curving paths or path segments or the angular change of a path or path segment formed from straight (or other) lines that extend between nodes, as measured relative to an unchanged forward-travel direction at the relevant point. Thus, for example, for a path that extends along a first straight-line segment to a node point and then along a second straight-line segment from the node point, the curvature at the node point is the angle, at the node, between the second line segment and a straight extension of the first line segment past the node point. In some examples, nodes can be points in a path map at intersections between path lines. In some examples, nodes can be curved or other transitional paths between path lines. (e.g., a short, curved path segment that defines internal curvature as well as extending along a node-defined curvature between two straight-line path segments).
As also noted above, during automatic travel of a power machine over terrain, the heading of the power machine can sometimes be controlled based on one or more planned paths. For example, an initial planned path that extends between a starting location and a destination can be predetermined (e.g., before the power machine starts to travel from a starting point), based on known or detected obstacles or other aspects of the terrain, other environmental factors, characteristics of the power machine or a planned operation, etc. The power machine can then be commanded to travel in directions that will cause the power machine to approximately follow the planned path. Further, in some cases, a planned path can be updated adaptively during the commanded travel, as sensors or other inputs introduce new data regarding the terrain, the power machine, etc.
In some cases, to improve the efficiency and smoothness of operation, a power machine can be commanded to travel toward a target point that is located on a planned path ahead of the power machine relative to the direction of travel. However, an optimal distance between a power machine and a target point may vary depending on different factors. Accordingly, some embodiments of the present disclosure include methods, control systems, and power machines systems generally that are configured to operate with automatically varying distances between a target point along a planned path and a power machine that is tracking the planned path by pursuing the target point.
In some cases, an optimal distance of a target point from a power machine during target-chasing travel may depend on operational characteristics of the power machine (e.g., turn radius, travel speed, etc.) or on the characteristics of a particular part of a planned path (e.g., a local curvature of the path, representing a turn that the power machine is approaching or currently navigating, the presence of one or more obstacles within a virtual map of the terrain, etc.). Accordingly, in some embodiments, a distance of a target point from a power machine that is tracking a planned path can be automatically adjusted based on current or expected operational characteristics of a power machine (e.g., current or commanded travel speed) or current or upcoming characteristics of a planned path (e.g., average curvature of a path along a turn that has been reached by a target point or that is within a particular range of a power machine). For example, some control systems can be configured to automatically reduce a distance of a target point from a power machine based on the power machine approaching (or moving along) a part of a path that exhibits an increase in local curvature (e.g., a turn between straight segments of the path), and to increase the distance based on the power machine approaching (or moving along) a part of the path that exhibits a decrease in local curvature (e.g., the end of a turn). Thus, in some cases, the power machine may tend to “cut off” less of a corner or other turn, because the target point toward which travel of the power machine is commanded may be automatically moved to be closer to the power machine along the path as the power machine approaches the turn. Further, the power machine may tend to oscillate less substantially along (and about) straighter portions of the path because a more distant target point can allow for more gradual adjustments of travel vectors to more closely approximate the planned path.
As another example, some control systems can be configured to automatically reduce a distance of a target point from a power machine based on a decrease in travel speed of the power machine (e.g., a detected or derived current travel speed, or a commanded target travel speed), and to decrease the distance of the target point from the power machine based on an increase in travel speed of the power machine. In this arrangement, similar benefits along turns and other path segments can be obtained as are generally discussed above. Indeed, in some cases, adjustment of a location of a target point based directly on travel speed can correspond to adjustment of the location of the target point based indirectly on path geometry (e.g., local curvature), and vice versa. For example, in some embodiments, a control system can be configured to automatically command an adjusted travel speed for a power machine based on local path curvature (e.g., to reduce speed for increased curvature), and to automatically command an adjusted location of a target point along a path based on travel speed.
These concepts can be practiced on various power machines, as will be described below. A representative power machine on which the embodiments can be practiced is illustrated in diagram form in
Certain work vehicles have work elements that are capable of performing a dedicated task. For example, some work vehicles have a lift arm to which an implement such as a bucket is attached such as by a pinning arrangement. The work element, i.e., the lift arm can be manipulated to position the implement for the purpose of performing the task. The implement, in some instances can be positioned relative to the work element, such as by rotating a bucket relative to a lift arm, to further position the implement. Under normal operation of such a work vehicle, the bucket is intended to be attached and under use. Such work vehicles may be able to accept other implements by disassembling the implement/work element combination and reassembling another implement in place of the original bucket. Other work vehicles, however, are intended to be used with a wide variety of implements and have an implement interface such as implement interface 170 shown in
On some power machines, implement interface 170 can include an implement carrier, which is a physical structure movably attached to a work element. The implement carrier has engagement features and locking features to accept and secure any of a number of implements to the work element. One characteristic of such an implement carrier is that once an implement is attached to it, it is fixed to the implement (i.e. not movable with respect to the implement) and when the implement carrier is moved with respect to the work element, the implement moves with the implement carrier. The term implement carrier as used herein is not merely a pivotal connection point, but rather a dedicated device specifically intended to accept and be secured to various different implements. The implement carrier itself is mountable to a work element 130 such as a lift arm or the frame 110. Implement interface 170 can also include one or more power sources for providing power to one or more work elements on an implement. Some power machines can have a plurality of work element with implement interfaces, each of which may, but need not, have an implement carrier for receiving implements. Some other power machines can have a work element with a plurality of implement interfaces so that a single work element can accept a plurality of implements simultaneously. Each of these implement interfaces can, but need not, have an implement carrier.
Frame 110 includes a physical structure that can support various other components that are attached thereto or positioned thereon. The frame 110 can include any number of individual components. Some power machines have frames that are rigid. That is, no part of the frame is movable with respect to another part of the frame. Other power machines have at least one portion that is capable of moving with respect to another portion of the frame. For example, excavators can have an upper frame portion that rotates with respect to a lower frame portion. Other work vehicles have articulated frames such that one portion of the frame pivots with respect to another portion for accomplishing steering functions.
Frame 110 supports the power source 120, which is capable of providing power to one or more work elements 130 including the one or more tractive elements 140, as well as, in some instances, providing power for use by an attached implement via implement interface 170. Power from the power source 120 can be provided directly to any of the work elements 130, tractive elements 140, and implement interfaces 170. Alternatively, power from the power source 120 can be provided to a control system 160, which in turn selectively provides power to the elements that capable of using it to perform a work function. Power sources for power machines typically include an engine such as an internal combustion engine and a power conversion system such as a mechanical transmission or a hydraulic system that is capable of converting the output from an engine into a form of power that is usable by a work element. Other types of power sources can be incorporated into power machines, including electrical sources or a combination of power sources, known generally as hybrid power sources.
Power machine 100 includes an operator station 150 that includes an operating position from which an operator can control operation of the power machine. In some power machines, the operator station 150 is defined by an enclosed or partially enclosed cab. Some power machines on which the disclosed embodiments may be practiced may not have a cab or an operator compartment of the type described above. For example, a walk behind loader may not have a cab or an operator compartment, but rather an operating position that serves as an operator station from which the power machine is properly operated. More broadly, power machines other than work vehicles may have operator stations that are not necessarily similar to the operating positions and operator compartments referenced above. Further, some power machines such as power machine 100 and others, whether or not they have operator compartments or operator positions, may be capable of being operated remotely (i.e. from a remotely located operator station) instead of or in addition to an operator station adjacent or on the power machine. This can include applications where at least some of the operator controlled functions of the power machine can be operated from an operating position associated with an implement that is coupled to the power machine. Alternatively, with some power machines, a remote control device can be provided (i.e. remote from both of the power machine and any implement to which is it coupled) that is capable of controlling at least some of the operator controlled functions on the power machine.
Loader 200 includes frame 210 that supports a power system 220, the power system being capable of generating or otherwise providing power for operating various functions on the power machine. Frame 210 also supports a work element in the form of a lift arm structure 230 that is powered by the power system 220 and can perform various work tasks. As loader 200 is a work vehicle, frame 210 also supports a traction system 240, which is also powered by power system 220 and can propel the power machine over a support surface. The lift arm structure 230 in turn supports an implement carrier 272, which can receive and securing various implements to the loader 200 for performing various work tasks. The loader 200 can be operated from an operator station 250 from which an operator can manipulate various control devices to cause the power machine to perform various functions. A control system 260 is provided for controlling the various functions of the loader 200.
Various power machines that can include or interact with the embodiments discussed below can have various different frame components that support various work elements. The elements of frame 210 discussed herein are provided for illustrative purposes and should not be considered to be the only type of frame that a power machine on which the embodiments can be practiced can employ. Frame 210 of loader 200 includes an undercarriage or lower portion 211 of the frame and a mainframe or upper portion 212 of the frame that is supported by the undercarriage. The mainframe 212 of loader 200 is attached to the undercarriage 211 such as with fasteners or by welding the undercarriage to the mainframe. Mainframe 212 includes a pair of upright portions 214 located on either side and toward the rear of the mainframe (only one is shown in
The lift arm structure 230 shown in
Each of the lift arms 232 of lift arm structure 230 as shown in
An exemplary implement interface 270 is provided at a second end 234B of the arm 234. The implement interface 270 includes an implement carrier 272 that is capable of accepting and securing a variety of different implements to the lift arm 230. Such implements have a machine interface that is configured to be engaged with the implement carrier 272. The implement carrier 272 is pivotally mounted to the second end 234B of the arm 234. Implement carrier actuators 233 are operably coupled the lift arm structure 230 and the implement carrier 272 and are operable to rotate the implement carrier with respect to the lift arm structure.
The implement interface 270 also includes an implement power source 235 available for connection to an implement on the lift arm structure 230. The implement power source 235 includes pressurized hydraulic fluid port to which an implement can be coupled. The pressurized hydraulic fluid port selectively provides pressurized hydraulic fluid for powering one or more functions or actuators on an implement. The implement power source can also include an electrical power source for powering electrical actuators or an electronic controller on an implement. The electrical power source 235 also exemplarily includes electrical conduits that are in communication with a data bus on the excavator 200 to allow communication between a controller on an implement and electronic devices on the loader 200. It should be noted that the specific implement power source on loader 200 does not include an electrical power source.
The lower frame 211 supports and has attached to it a pair of tractive elements 242, identified in
Upper frame portion 212 supports cab 252, which defines, at least in part, operator compartment or station 250. A seat 254 is provided within cab 252 in which an operator can be seated while operating the excavator. While sitting in the seat 254, an operator will have access to a plurality of operator input devices 256 that the operator can manipulate to control various work functions, such as manipulating the lift arm 230, the traction system 240, and so forth.
Display devices are provided in the cab to give indications of information relatable to the operation of the power machines in a form that can be sensed by an operator, such as, for example audible or visual indications. Audible indications can be made in the form of buzzers, bells, and the like or via verbal communication. Visual indications can be made in the form of graphs, lights, icons, gauges, alphanumeric characters, and the like. Displays can be dedicated to providing dedicated indications, such as warning lights or gauges, or dynamic to provide programmable information, including programmable display devices such as monitors of various sizes and capabilities. Display devices can provide diagnostic information, troubleshooting information, instructional information, and various other types of information that assists an operator with operation of the power machine or an implement coupled to the power machine. Other information that may be useful for an operator can also be provided.
In the illustrated example, the power conversion system 224 of power machine 200 includes a hydrostatic drive pump 224A, which provides a power signal to drive motors 226A and 226B. The drive motors 226A, 226B in turn are each operably coupled to respective drive sprockets 246A, 246B to drive the endless tracks 244. Although not shown, one or more (e.g., two) drive motors or other actuators can sometimes power one or more (e.g., four) axles, which can in turn be coupled to wheels or other tractive elements. In some embodiments, a wheeled (or other) skid steer system can be provided, with each of the drive motors 226A, 226B, for example, powering a respective set of two axles (not shown) so that turning operations can be accomplished by different applications of tractive power on opposing sides of the power machine 200 (e.g., rather than by pivoting an axle, wheel, or frame assembly).
The hydrostatic drive pump 224A can be mechanically, hydraulically, or electrically coupled to operator input devices to receive actuation signals for controlling the drive pump. The power conversion system also includes an implement pump 224C, which is also driven by the power source 222. The implement pump 224C is configured to provide pressurized hydraulic fluid to a work actuator circuit 238, which is in communication with work actuator 239. Work actuator 239 is representative of a plurality of actuators, including the lift cylinder, tilt cylinder, telescoping cylinder, and the like. The work actuator circuit 238 can include valves and other devices to selectively provide pressurized hydraulic fluid to the various work actuators represented by block 239 in
In some embodiments, as also generally noted above, similarly arranged power conversion systems may operate to receive and utilize electrical power. For example, electric motors can be provided in place of the drive motors 226A, 226B to receive operational power from an electrical power source rather than from the drive pump 224A.
The description of power machine 100 and loader 200 above is provided for illustrative purposes, to provide illustrative environments on which the embodiments discussed below can be practiced. While the embodiments discussed can be practiced on a power machine such as is generally described by the power machine 100 shown in the block diagram of
As generally noted above, in some embodiments, a power machine can be controlled to track a planned path based on automatic adjustments of a target point along the planned path. In different embodiments, control systems for power machines can operate to automatically determine a planned path and automatically provide electronic command signals for operation of the power machine to track the planned path (e.g., based on known protocols for motor control and generally known feedback systems). As one example,
During execution of the method 300, a control system can regularly (e.g., cyclically) receive input data from one or more sensors or other input devices, to inform execution of various operations of the method. Some input data may be external location data 314 that may indicate a global or relative position or orientation (e.g., absolute or relative heading) of a power machine. For example, to inform localization of a power machine at block 302 (e.g., identification of a current location and orientation of the power machine) some control systems can include GPS devices (or other similar equipment) that can provide external location data or orientation data for the power machines based on known processing of signals from satellite or beacon sources. In some cases, a power machine can include two or more GPS devices, so that two distinct signals can be analyzed and a more accurate estimation of the location or orientation of the power machine can be determined.
In some embodiments, due to the noisy nature and inherent accuracy limitations of GPS signals, further operations may be beneficial to more reliably determine a current location or orientation of a power machine (collectively, the “pose” of the power machine). For example, some known approaches can use extended Kalman filtering to provide improved estimations of current power machine poses by analyzing locational measurements over time, in combination with expected movement of a power machine (e.g., to correct predicted location from tractive control signals based on measured localization data from GPS devices). In some cases, including under approaches using extended Kalman filtering, uncertainty of localization data can also be tracked. Thus, in some embodiments, operations of a power machine can also sometimes be controlled based on certainty regarding the current pose of the power machine, including as further discussed below.
After or concurrent with localization of a power machine at block 302 to determine a current pose 316 of the power machine, the method 300 can include mapping operations at block 304 to provide a virtual map of relevant (e.g., adjacent and surrounding) terrain, including obstacles or objects also present in the terrain. Generally, mapping operations can account for known obstacles or other aspects of terrain and for unknown obstacles or other aspects of terrain, as determined based on external terrain data (e.g., from radar or other sensor input). Some known approaches can use probabilistic occupancy techniques, in which an occupancy grid of a virtual map is populated with a certainty (or likelihood) value relating to the calculated probability that an obstacle (or other notable geometrical aspect) is present in each grid cell (e.g., for each 0.25 m×0.25 m portion of a relevant area of terrain). As updated data regarding terrain is received, including via regular radar scans over a particular angular and distance range, certainty values of the occupancy grid can then be updated (e.g., increased based on radar hits on a previously unknown or uncertain obstacle for a particular grid cell). Thus, as shown in
In some cases, a buffer zone can be provided around obstacles in a virtual map of terrain, including to provide appropriate safety factors for travel of a power machine around obstacles, in view of relevant uncertainties for a control system. For example, as shown in
As also shown in
As a related effect, as a power machine moves over terrain, the power machine may eventually approach one or more edges of a virtual map that is guiding the automatic travel. In some cases, a virtual map can thus be updated, as appropriate, to incorporate new regions of terrain. In some embodiments, the region of terrain covered by a virtual map can be updated based on a scanning area of a power machine reaching one or more boundary edges of a previously-constituted virtual map. For example, as shown in
In some embodiments, a control system for mapping terrain (e.g., as can implement parts of the method 300) can use a circular (or “ring”) buffer architecture to store map data. Under known principles, circular buffers can generally operate with a fixed amount of total storage and a sequential and repeating (i.e., circular) writing and over-writing progression for data blocks within the buffer, as can effectively result in a first-written—first-overwritten management of data for the fixed storage size. Some power machines may include a relatively small amount of available memory for mapping, so use of a circular buffer for mapping operations can sometimes be particularly useful for power machine operations.
Generally, as updated map information is received (e.g., based on radar scans by the power machine 404), confidence values or other parameters for grids of a virtual map can be updated as needed. Further, as movement of a power machine extends a scanned area to a different region of terrain, grid cells with older and more spatially distant confidence values (i.e., less relevant grid cells) can be effectively reallocated to represent new regions of terrain (e.g., new regions within the virtual map 400′ as compared to the map 400). In some cases, as a power machine moves relative to a virtual map stored in a circular buffer, an accurate allocation of grid cells of the map to particular real-world areas of terrain can be maintained, despite the moving reference frame of the power machine, simply by updating an offset value for the circular buffer (e.g., a location of the power machine 404 or other origin relative to grid cells of a current virtual map). As with other approaches noted above, use of such an adaptive offset value, particularly in combination with a circular buffer for mapping data, can generally improve power machine performance, including via reduction in required memory space and processor time.
Returning to
In some embodiments, once an initial path has been identified, additional path smoothing can be implemented, including to provide a shorter overall travel path or otherwise improve performance (e.g., reduce jerkiness during travel). A variety of path smoothing approaches are possible, including line-of-sight smoothing, an example of which as illustrated in
Referring again to
In some embodiments, a target point may be located along a path at a particular set distance from a power machine. For example, a target point can be located at a particular distance from the power machine, as measured directly between a reference point on the power machine and the target point or as measured along a planned path between the target point and a location on the panned path that is closest to the power machine. Correspondingly, a target point may tend to move along a planned path as a power machine travels along (e.g., tracks) the path. As generally discussed above, it may be useful in some cases to locate a tracking point as far distant from a power machine as is practically possible, as this can result in a smoother and more natural trajectory for some operations, particularly when the robot approaches sharp corners.
In some cases, an optimal distance between a power machine and a target point may vary depending on operating conditions for the power machine, aspects of a planned path (or corresponding terrain), or other factors. For example, although a larger distance for a target point can result in smoother travel overall, the larger distance can also result in a power machine cutting off substantial portions of a path along sharper turns (e.g., square or sharper corners) or at higher speeds. Further, although a smaller distance for a target point can result in less substantial cutting of corners, the smaller distance can also result in substantial overshooting of a path at sharper path turns or at higher speeds.
Thus, in some embodiments, as part of tracking of a planned path (e.g., at block 308), a control system can automatically update a distance of the target point from a power machine (i.e., from an arbitrary reference point on the power machine) based on a local curvature of the planned path, a travel speed of the power machine, or other factors. For example, along straighter (i.e., lower curvature) portions of a path or during travel at higher speeds, a control system can automatically provide a target point at larger distances from a power machine. Likewise, a target point can be automatically provided at smaller distances near or along higher curvature portions of a path or during travel at lower speeds. Thus, for example, some embodiments can allow power machines to automatically navigate a planned path with relatively high fidelity during turns or other low-speed maneuvers, while also maintaining relatively smooth movement during straighter travel or other high-speed maneuvers.
In some embodiments, locating a target point relative to a power machine can be based on speed (e.g., can vary proportionally with speed) or can be based on path curvature (e.g., can vary inversely with curvature). For example, some control systems can operate to automatically decrease a commanded travel speed of a power machine based on current or anticipated increases in the local curvature of a planned path (e.g., for upcoming turns) and can automatically increase a commanded travel speed of the power machine based on current or anticipated decreases in the local curvature of the planned path (e.g., for upcoming straight-aways). Further, and similarly, a distance of a target point from a power machine can be automatically reduced at lower speeds and can automatically be increased at higher speeds (e.g., according to the assumption that lower speeds correspond to higher curvature areas of the path). Thus, in short, in some embodiments, power machine speed can be reduced or increased based on geometric aspects of a planned path, and a target point can be moved closer to or farther from a power machine based on power machine speed.
In some cases, combined control of speed based on curvature and control of target point location based on speed may provide for particularly efficient computation and control, including because velocity control can be fundamentally separated from calculations to determine a tracking point location, as may allow for more flexible control device architectures and data flows. Further, operator tuning may be more intuitive under this approach than under others. However, in some embodiments, similar control can be implemented in other ways, including by determining target-point distance or travel speed in different orders or based on different parameters.
In different embodiments, different correspondence between path curvature, travel speed, and target-point location can be used. In some cases, path curvature can be mapped to travel speed based on a lookup table that can be initially populated or calibrated (and later tuned) based on the operational characteristics of a particular power machine, the preferences of a particular operator, characteristics of the relevant terrain, etc. Likewise, in some cases, travel speed can be linearly mapped to distance of a target point for pursuit tracking based on a predetermined minimum and maximum possible distance of a target and a minimum and maximum travel speed. This noted approach may prove particularly effective in systems with limited available processing power. However, particular target-point distances can also be associated with particular speeds, curvatures, or other factors in a variety of other ways.
In some embodiments, a reduced distance for a target point may be implemented only until a power machine has substantially (or fully) completed a particular operation. For example, as a power machine travels at lower speeds through an initial portion of a turn on a path, a target point for pursuit tracking by the power machine may be at a minimum distance from the power machine. Once the power machine completes some portion of the turn, however, the distance of target point may be automatically increased to a particular value or range. For example, once a power machine substantially (or fully) completes a turn, a target point for pursuit tracking may be automatically moved to a maximum distance from the power machine. In some cases, a target-point distance may be increased to a maximum distance as a step (or stepped) change. In some cases, the distance can be increased gradually to a maximum (e.g., linearly with travel distance).
In some embodiments, the correspondence among path curvature, travel speed, and target-point distance may be tunable, to provide customizable operating characteristics for particular terrain, operators, tasks, etc. For example, different operating modes can include a variety of different preset correspondences between travel speed (or curvature) and target-point distance, to provide for maximum-speed operation, open-space operation (e.g., with minimal expected obstacles), close-constraint operation (e.g., to maximize avoidance of numerous, sensitive, or otherwise notable obstacles), etc. As desired, an operator can then select a particular operating mode for execution of particular power machine operations.
In some embodiments, particular mappings among path curvature, travel speed, and target-point distance can be determined based on uncertainty values associated with mapping or localization operations (see, e.g.,
In some embodiments, a distance of a target point from a power machine can be determined based partly on operational characteristics of the power machine. As noted above, for example, target-point distance can be based on vehicle speed. In some cases, target-point distance can additionally (or alternatively) be based on turning radius, maximum speed, minimum speed, or other characteristics of a particular power machine. For example, a minimum or maximum target-point distance can be set based on a turning radius of a power machine or a minimum or maximum expected travel speed of the power machine.
An example implementation of the method 300 and various specific operations discussed above is illustrated in
Referring to
Further, with reference to
Continuing, in the illustrated example, the distances for the target points 710C, 710F also remain relatively small, albeit above a minimum setting, at least until the power machine 700 substantially completes the associated turn. However, the distance for the target point 710H has been returned toward a maximum value substantially sooner, relative to progress through the associated turn, due to the lower curvature of the turn. Correspondingly, in some embodiments, a target-point distance (e.g., near the target points 710C, 710F, 710H) can sometimes be increased beyond a predetermined threshold (e.g., to a maximum value) only after a power machine has substantially completed a turn or other relevant operation.
By way of example in this regard,
The behavior of target-point distance relative to path curvature and substantial completion of turns, as illustrated in
As generally noted above, pursuit tracking operations to follow a planned path can sometimes effectively result in supplemental smoothing of a travel path of a power machine. For example, as shown in
Consistent with the discussion above, some embodiments can include a control method 900, as shown in
Continuing, the method 900 can further include determining at block 904 a location of a target point along the planned path for pursuit tracking by the power machine. For example, as similarly discussed above, a location of a tracking point can be determined at block 904 based on setting a larger distance from a power machine for certain portions of a path (e.g., less curved portions) and a smaller distance from the power machine for other portions of the path (e.g., more curved portions).
In some cases, also as noted above, determining (at block 904) a location of at target point based on path characteristics can sometimes be further (or alternatively) based on travel speed (e.g., on an intervening control of travel speed). For example, in some implementations, the method 900 can further include determining at block 906 a target travel speed for a power machine based on the identified (at block 902) shape characteristics (e.g., local curvature) of a planned path. Correspondingly, for example, determining at block 904 the location of a target point can sometimes be based directly on a determined (at block 906) travel speed for a power machine, and can thus be only indirectly based on the identified (at block 902) shape characteristic.
As generally noted above, once a location of a tracking point has been determined at block 904, pursuit of the tracking point by a power machine can then be commanded at block 908, including based on a variety of known control architectures for automatic activation of work elements of a power machine. Further, as path-tracking travel of a power machine continues, the method 900 can repeat as needed, in whole or in part. For example, an additional (e.g., spatially approaching) characteristic of the planned path can be identified (at block 902), an updated location of a tracking point can be determined accordingly (at block 904), and then updated pursuit of the tracking point can be commanded (at 908).
Also consistent with the discussion above, some embodiments can include a control method 1000, as shown in
As the method 1000 continues, data can be received at block 1004 from one or more sensors, as may correspond to one or more potential obstacles within the terrain, or to a second area of the terrain that extends beyond an edge of the first area of the terrain. For example, updated data from radar scans may correspond to changes in certainty values for particular grid cells based on occurrence or non-occurrence of radar pings, or may correspond to an extension of map data to a second area that is different from the first area (e.g., as shown by the map 400′ in
As generally noted above, an updated representation of terrain can then be stored at block 1006 in the circular buffer, with data being written and over-written according to known general principles of data management for circular buffers. For example, a stored updated representation of terrain can include an updated (or new) representation of one or more detected potential obstacles within the terrain, or a representation of the second area of the terrain that extends beyond an edge of the first area of the terrain, which may result in the overwriting of older data within the buffer.
In some implementations, other operations may also be included, including operations that are also discussed generally above. For example, some implementations can include storing an offset for the circular buffer that locates (i.e., localizes) the power machine relative a first area of terrain, as represented by map data in the circular buffer. As appropriate, the offset can then be updated based on received data (at block 1004) that relates to a second, different area of terrain or that otherwise indicates a movement of the power machine relative to the first area of terrain. In some embodiments, a spatial area of terrain that is represented by a stored (at block 1006) updated representation may be of substantially the same total size as a spatial area of terrain within the initial representation (e.g., as shown for the maps 400, 400′ in
In some embodiments, aspects of the invention, including computerized implementations of methods according to the invention, can be implemented as a system, method, apparatus, or article of manufacture using standard programming or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a processor device (e.g., a serial or parallel general purpose or specialized processor chip, a single- or multi-core chip, a microprocessor, a field programmable gate array, any variety of combinations of a control unit, arithmetic logic unit, and processor register, and so on), a computer (e.g., a processor device operatively coupled to a memory), or another electronically operated controller to implement aspects detailed herein. Accordingly, for example, embodiments of the invention can be implemented as a set of instructions, tangibly embodied on a non-transitory computer-readable media, such that a processor device can implement the instructions based upon reading the instructions from the computer-readable media. Some embodiments of the invention can include (or utilize) a control device such as an automation device, a special purpose or general purpose computer including various computer hardware, software, firmware, and so on, consistent with the discussion below. As specific examples, a control device can include a processor, a microcontroller, a field-programmable gate array, a programmable logic controller, logic gates etc., and other typical components that are known in the art for implementation of appropriate functionality (e.g., memory, communication systems, power sources, user interfaces and other inputs, etc.).
The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier (e.g., non-transitory signals), or media (e.g., non-transitory media). For example, computer-readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips, and so on), optical disks (e.g., compact disk (CD), digital versatile disk (DVD), and so on), smart cards, and flash memory devices (e.g., card, stick, and so on). Additionally, it should be appreciated that a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (LAN). Those skilled in the art will recognize that many modifications may be made to these configurations without departing from the scope or spirit of the claimed subject matter.
Certain operations of methods according to the invention, or of systems executing those methods, may be represented schematically in the FIGS. or otherwise discussed herein. Unless otherwise specified or limited, representation in the FIGS. of particular operations in particular spatial order may not necessarily require those operations to be executed in a particular sequence corresponding to the particular spatial order. Correspondingly, certain operations represented in the FIGS., or otherwise disclosed herein, can be executed in different orders than are expressly illustrated or described, as appropriate for particular embodiments of the invention. Further, in some embodiments, certain operations can be executed in parallel, including by dedicated parallel processing devices, or separate computing devices configured to interoperate as part of a large system.
As used herein in the context of computer implementation, unless otherwise specified or limited, the terms “component,” “system,” “module,” and the like are intended to encompass part or all of computer-related systems that include hardware, software, a combination of hardware and software, or software in execution. For example, a component may be, but is not limited to being, a processor device, a process being executed (or executable) by a processor device, an object, an executable, a thread of execution, a computer program, or a computer. By way of illustration, both an application running on a computer and the computer can be a component. One or more components (or system, module, and so on) may reside within a process or thread of execution, may be localized on one computer, may be distributed between two or more computers or other processor devices, or may be included within another component (or system, module, and so on).
Also as used herein, unless otherwise limited or defined, “or” indicates a non-exclusive list of components or operations that can be present in any variety of combinations, rather than an exclusive list of components that can be present only as alternatives to each other. For example, a list of “A, B, or C” indicates options of: A; B; C; A and B; A and C; B and C; and A, B, and C. Correspondingly, the term “or” as used herein is intended to indicate exclusive alternatives only when preceded by terms of exclusivity, such as “either,” “only one of” or “exactly one of” For example, a list of “one of A, B, or C” indicates options of: A, but not B and C; B, but not A and C; and C, but not A and B. A list preceded by “one or more” (and variations thereon, e.g., “at least one of”) and including “or” to separate listed elements indicates options of one or more of any or all of the listed elements. For example, the phrases “one or more of A, B, or C” and “at least one of A, B, or C” indicate options of: one or more A; one or more B; one or more C; one or more A and one or more B; one or more B and one or more C; one or more A and one or more C; and one or more of A, one or more of B, and one or more of C. Similarly, a list preceded by “a plurality of” (and variations thereon) and including “or” to separate listed elements indicates options of multiple instances of any or all of the listed elements. For example, the phrases “a plurality of A, B, or C” and “two or more of A, B, or C” indicate options of: A and B; B and C; A and C; and A, B, and C.
Also as used herein, unless otherwise expressly limited or defined, the term “automatic operations” (and the like) refers to operations that are at least partly dependent on electronic application of computer algorithms for decision-making without human intervention. In this regard, unless otherwise expressly limited or defined, “automatic travel” refers to travel of a power machine or other vehicle in which at least some decisions regarding steering, speed, distance, or other travel parameters are made without direct intervention by a human operator. Relatedly, the term “automated operations” (and the like), unless otherwise expressly limited or defined, refers to a subset of automatic operations for which no intervention by a human operator is required. For example, automated travel can refer to automatic travel of a power machine or other vehicle during which steering, speed, distance, or other travel parameters are determined in real time without operator input. In this regard, however, operator input may sometimes be received to start, stop, interrupt, or define parameters (e.g., top speed) for automated travel or other automated operations.
Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail to the disclosed embodiments without departing from the spirit and scope of the concepts discussed herein.
This application claims priority to U.S. provisional patent application no. 63/185,630, titled “AUTOMATED PATH TRACKING FOR POWER MACHINES” and filed May 7, 2022, the entirety of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63185630 | May 2021 | US |