Modern mobile machinery, including construction and agricultural machines, have dramatically increased the efficiency of performing various work-related tasks. For example, earthmoving machines employing automatic grade control systems are able to grade project areas using fewer passes than what was previously done manually. As another example, modern asphalt pavers and other road makers have allowed replacement of old roads and construction of new roads to occur on the order of hours and days instead of what once took place over weeks and months. Due to the automation of various aspects, construction and agriculture projects can be carried out by crews with fewer individuals than what was previously required. The technological breakthroughs in mobile machinery owe much to the availability of accurate sensors that allow real-time monitoring of the condition and position of a machine's components and/or the surrounding environment.
Despite the improvements to modern mobile machinery, new systems, methods, and techniques are still needed.
A summary of the various embodiments of the invention is provided below as a list of examples. As used below, any reference to a series of examples is to be understood as a reference to each of those examples disjunctively (e.g., “Examples 1-4” is to be understood as “Examples 1, 2, 3, or 4”).
Example 1 is a computer-implemented method of performing a material dump operation at a construction machine, the computer-implemented method comprising: receiving a first user input to activate a material dump mode of the construction machine, the construction machine having a bucket and an arm that are pivotally connected via a bucket pin; setting a fixed rotation point in a reference frame that is to be at a constant distance during the material dump operation from one or both of (i) the bucket pin and/or (ii) a leading edge of the bucket; receiving a second user input while the material dump mode is activated to cause the bucket to uncurl; and while the bucket is uncurling, and in response to receiving the second user input while the material dump mode is activated, generating one or more control signals causing one or more elements of the arm to vertically rotate so as to maintain the constant distance from the fixed rotation point while the bucket is uncurling.
Example 2 is the computer-implemented method of example(s) 1, wherein the second user input causes a bucket actuator of the construction machine to retract, causing the bucket to uncurl.
Example 3 is the computer-implemented method of example(s) 1-2, wherein the arm of the construction machine comprises a boom and a stick, wherein the boom is semi-rigidly connected to the stick, and the stick is semi-rigidly connected to the bucket.
Example 4 is the computer-implemented method of example(s) 3, wherein generating the one or more control signals causes a stick actuator and a boom actuator of the construction machine to extend or retract to maintain the leading edge of the bucket at the constant distance from the fixed rotation point while the bucket is uncurling.
Example 5 is the computer-implemented method of example(s) 4, wherein generating the one or more control signals includes, for each time step of multiple time steps: determining an actual angle associated with the bucket at the time step; and calculating a target angle associated with the stick and a target angle associated with the boom based on the actual angle associated with the bucket at the time step and the fixed rotation point; wherein the one or more control signals cause an actual angle associated with the stick to align with the target angle associated with the stick and an actual angle associated with the boom to align with the target angle associated with the boom.
Example 6 is the computer-implemented method of example(s) 1-5, wherein the fixed rotation point is set to be within an inner 50% region formed by parallel lines between the bucket pin and the leading edge that are orthogonal to a line connecting the bucket pin and the leading edge.
Example 7 is the computer-implemented method of example(s) I-6, wherein the constant distance from the bucket pin to the fixed rotation point is greater than the constant distance from the leading edge of the bucket to the fixed rotation point during the material dump operation.
Example 8 is the computer-implemented method of example(s) 1-7, wherein the construction machine is an excavator.
Example 9 is a non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising: receiving a first user input to activate a material dump mode of a construction machine, the construction machine having a bucket and an arm that are pivotally connected via a bucket pin; setting a fixed rotation point in a reference frame that is to be at a constant distance during a material dump operation from one or both of (i) the bucket pin and/or (ii) a leading edge of the bucket; receiving a second user input while the material dump mode is activated to cause the bucket to uncurl; and while the bucket is uncurling, and in response to receiving the second user input while the material dump mode is activated, generating one or more control signals causing one or more elements of the arm to vertically rotate so as to maintain the constant distance from the fixed rotation point while the bucket is uncurling.
Example 10 is the non-transitory computer-readable medium of example(s) 9, wherein the second user input causes a bucket actuator of the construction machine to retract, causing the bucket to uncurl.
Example 11 is the non-transitory computer-readable medium of example(s) 9, wherein the arm of the construction machine comprises a boom and a stick, wherein the boom is semi-rigidly connected to the stick, and the stick is semi-rigidly connected to the bucket, wherein generating the one or more control signals causes a stick actuator and a boom actuator of the construction machine to extend or retract to maintain the leading edge of the bucket at the constant distance from the fixed rotation point while the bucket is uncurling.
Example 12 is the non-transitory computer-readable medium of example(s) 11, wherein generating the one or more control signals includes, for each time step of multiple time steps: determining an actual angle associated with the bucket at the time step; and calculating a target angle associated with the stick and a target angle associated with the boom based on the actual angle associated with the bucket at the time step and the fixed rotation point; wherein the one or more control signals cause an actual angle associated with the stick to align with the target angle associated with the stick and an actual angle associated with the boom to align with the target angle associated with the boom.
Example 13 is the non-transitory computer-readable medium of example(s) 9, wherein the fixed rotation point is set to be within an inner 50% region formed by parallel lines between the bucket pin and the leading edge that are orthogonal to a line connecting the bucket pin and the leading edge.
Example 14 is the non-transitory computer-readable medium of example(s) 9, wherein the constant distance from the bucket pin to the fixed rotation point is greater than the constant distance from the leading edge of the bucket to the fixed rotation point during the material dump operation.
Example 15 is a system comprising: one or more processors; and a computer-readable medium comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising: receiving a first user input to activate a material dump mode of a construction machine, the construction machine having a bucket and an arm that are pivotally connected via a bucket pin; setting a fixed rotation point in a reference frame that is to be at a constant distance during a material dump operation from one or both of (i) the bucket pin and/or (ii) a leading edge of the bucket; receiving a second user input while the material dump mode is activated to cause the bucket to uncurl; and while the bucket is uncurling, and in response to receiving the second user input while the material dump mode is activated, generating one or more control signals causing one or more elements of the arm to vertically rotate so as to maintain the constant distance from the fixed rotation point while the bucket is uncurling.
Example 16 is the system of example(s) 15, wherein the second user input causes a bucket actuator of the construction machine to retract, causing the bucket to uncurl.
Example 17 is the system of example(s) 15, wherein the arm of the construction machine comprises a boom and a stick, wherein the boom is semi-rigidly connected to the stick, and the stick is semi-rigidly connected to the bucket, wherein generating the one or more control signals causes a stick actuator and a boom actuator of the construction machine to extend or retract to maintain the leading edge of the bucket at the constant distance from the fixed rotation point while the bucket is uncurling.
Example 18 is the system of example(s) 17, wherein generating the one or more control signals includes, for each time step of multiple time steps: determining an actual angle associated with the bucket at the time step; and calculating a target angle associated with the stick and a target angle associated with the boom based on the actual angle associated with the bucket at the time step and the fixed rotation point; wherein the one or more control signals cause an actual angle associated with the stick to align with the target angle associated with the stick and an actual angle associated with the boom to align with the target angle associated with the boom.
Example 19 is the system of example(s) 15, wherein the fixed rotation point is set to be within an inner 50% region formed by parallel lines between the bucket pin and the leading edge that are orthogonal to a line connecting the bucket pin and the leading edge.
Example 20 is the system of example(s) 15, wherein the constant distance from the bucket pin to the fixed rotation point is greater than the constant distance from the leading edge of the bucket to the fixed rotation point during the material dump operation.
The accompanying drawings, which are included to provide a further understanding of the disclosure, are incorporated in and constitute a part of this specification, illustrate embodiments of the disclosure and together with the detailed description serve to explain the principles of the disclosure. No attempt is made to show structural details of the disclosure in more detail than may be necessary for a fundamental understanding of the disclosure and various ways in which it may be practiced.
In the appended figures, similar components and/or features may have the same numerical reference label. Further, various components of the same type may be distinguished by following the reference label with a letter or by following the reference label with a dash followed by a second numerical reference label that distinguishes among the similar components and/or features. If only the first numerical reference label is used in the specification, the description is applicable to any one of the similar components and/or features having the same first numerical reference label, irrespective of the suffix.
Excavators play an important role in construction projects by performing tasks such as digging, trenching, material handling, and demolition. An excavator performs material handling through a combination of its various components and hydraulic systems. In one example, the excavator operator positions the machine near the material to be handled. The operator uses the hydraulic controls in the cabin to extend and retract the arm, as well as to control the angle of the bucket. Once the bucket is positioned over the material, the operator uses the hydraulic controls to engage the bucket to scoop up soil, rocks, or debris. The operator then activates the excavator's hydraulic system to lift the material off the ground and rotate the excavator's platform to swing the material to the desired location. Once the bucket is properly positioned, the operator gradually rotates the bucket to place the material on the desired spot. The hydraulic controls can enable precise lowering and release of the material.
Releasing the material in a precise location using an excavator can be challenging due to the uncurling motion of the bucket. For example, it is typically difficult to release the material in a relatively confined or specific area as different amounts of material are released at different points in the uncurling motion, causing the released material to extend over several feet. In many cases, the majority of the material may be released when the bucket is halfway through the uncurling motion, and the remaining material may slowly be released during the remainder of the motion, resulting in a wide area with deposited material.
Embodiments of the present invention relate to techniques for automatically controlling an excavator's arm during a material dump operation in a manner such that material is deposited in a confined area. In some cases, the automatic motion of the excavator's arm is triggered when the operator-controlled motion of the excavator's bucket is detected. The operator of the excavator may activate a material dump mode by pressing a button. Then, the operator may operate the hydraulic controls to vertically rotate the bucket to perform an uncurling motion. As the bucket is uncurled, the boom and stick cylinders are automatically actuated without user control, causing the bucket to rotate around a fixed rotation point that is set between the bucket pin and the bucket's leading edge.
In the following description, various examples will be described. For purposes of explanation, specific configurations and details are set forth in order to provide a thorough understanding of the examples. However, it will also be apparent to one skilled in the art that the example may be practiced without the specific details. Furthermore, well-known features may be omitted or simplified in order not to obscure the embodiments being described.
The figures herein follow a numbering convention in which the first digit or digits correspond to the figure number and the remaining digits identify an element or component in the figure. Similar elements or components between different figures may be identified by the use of similar digits. For example, 108 may reference element “08” in
Construction machine 100 may have various embodiments, such as a tractor with wheels, axles, and a gasoline-, diesel-, electric-, or steam-powered engine that provides power and traction to drive along a desired path, typically at a constant speed. Construction machine 100 may be a tracked vehicle that uses a continuous track of treads or track plates driven by the vehicle's wheels. An operator can control construction machine 100 by providing inputs to control unit 160 using a range of input devices, including levers, switches, buttons, pedals, steering wheels, and touch screens. These inputs can cause various actuators to move construction machine 100.
In some examples, construction machine 100 may include an undercarriage 106 supporting the entire machine structure. Undercarriage 106 is designed to provide stability, mobility, and ground clearance, thereby facilitating movement of construction machine 100 on various terrains and conditions. A platform 104 is positioned above undercarriage 106 and is horizontally rotatable with respect to the undercarriage 106 via a platform joint 120. Platform 104 serves as a base for mounting various components of construction machine 100, including a cab which houses an operator of construction 100 as well as an arm 128 that connects bucket 110 to platform 104, where arm 128 includes a boom 102 and a stick 108. The platform's ability to rotate horizontally about an axis of rotation enables construction machine 100 to maneuver easily in tight spaces and improves its operational efficiency.
Boom 102 is vertically rotatable with respect to platform 104 via a boom pin 134 and, in some examples, is also horizontally rotatable with respect to platform 104 via a boom swing joint. This dual-axis rotation allows boom 102 to cover a wide range of motion and provides construction machine 100 with increased flexibility during operation. Stick 108 is pivotally connected to boom 102 via a stick pin 136. Stick 108, in combination with boom 102, enables construction machine 100 to achieve a greater reach and depth during digging and material handling operations. A bucket 110 is pivotally connected to stick 108 and is designed to scoop, dig, carry, and transport materials (e.g., soil, rock, or debris) during excavation and construction processes. Bucket 110 may rotate vertically with respect to stick 108 about an axis of rotation that is aligned with a bucket pin 122 that serves as the pivotal connection between bucket 110 and stick 108.
Construction machine 100 further includes several actuators (e.g., cylinders) that facilitate the movement of boom 102, stick 108, and bucket 110. Movement of a boom actuator 114 causes boom 102 to rotate vertically with respect to platform 104. Movement of a stick actuator 116 causes stick 108 to rotate vertically with respect to boom 102, and movement of an implement actuator 118 causes bucket 110 to rotate vertically with respect to stick 108. Optionally, a boom swing actuator (not shown) can cause boom 102 to rotate horizontally with respect to platform 104 about an axis of rotation. Each of these actuators may be hydraulic cylinders that convert the hydraulic fluid's pressure into mechanical force.
In some embodiments, boom 102 and platform 104 may be considered as separate bodies that have a semi-rigid coupling between them. This coupling is semi-rigid in that the bodies can move relative to each other but can also be fixed at a given orientation. Boom 102 and platform 104 may therefore be considered to be semi-rigidly connected. Similarly, undercarriage 106 and platform 104 may be semi-rigidly connected, boom 102 and stick 108 may be semi-rigidly connected, and stick 108 and bucket 110 may be semi-rigidly connected.
During operation of construction machine 100, bucket 110 can be curled or uncurled by utilizing the rotational movement facilitated by bucket pin 122, stick pin 136 and/or boom pin 134. The movement of curling and uncurling bucket 110 of an excavator can involve using the excavator's hydraulic system to manipulate bucket actuator 118, stick actuator 116, and/or boom actuator 114. In one example, when the operator wants to curl or close the bucket of the excavator, the operator activates the hydraulic controls responsible for extending bucket actuator 118, as pressurized hydraulic fluid enters bucket actuator 118, it pushes the piston rod outward, causing bucket 110 to pivot around bucket pin 122 and move a leading edge 124 of bucket 110 closer to the excavator's body. Simultaneously, the operator may extend stick actuator 116 and retract (or extend) boom actuator 114 to pull arm 128 toward the excavator' body.
To uncurl or open the bucket, the process is reversed. The operator retracts bucket actuator 118 by controlling the hydraulic system, causing the piston rod of bucket actuator 118 to retract, allowing bucket 110 to pivot in the opposite direction around bucket pin 122. Simultaneously, in some instances, the operator may retract stick actuator 116 and extend (or retract) boom actuator 114 to pull arm 128 away from the excavator' body. By retracting bucket actuator 118 while retracting stick actuator 116, leading edge 124 of bucket 110 moves away from the machine's body, resulting in the bucket uncurling or opening.
In some embodiments, control unit 160 may determine the geospatial position of construction machine 100 based on sensor data captured by one or more sensors mounted to construction machine 100. For example, a position sensor (not shown in
As shown in
As shown in
Each of the possible fixed rotation points 538 can offer different dumping characteristics. In some instances, the operator of an excavator can select one of several possible fixed rotation points prior to performing a material dump operation. This selection may be based on the material type and/or particle size. For example, for a material having a small particle size (such as sand), it may be desirable to select a fixed rotation point closer to leading edge 524, whereas for a material having a larger particle size (such as gravel or rocks), it may be desirable to select a fixed rotation point closer to bucket pin 522. In some examples, the type of material and/or particle size may be detected using sensors mounted to the excavator, and the fixed rotation point may be set based on the detected material type and/or detected particle size, with a fixed rotation point being set closer to bucket pin 522 upon detecting a material having a larger particle size (e.g., average particle size greater than a threshold) and a fixed rotation point being set closer to leading edge 524 upon detecting a material having a smaller particle size (e.g., average particle size less than the threshold).
In some examples, during a material dump operation and while bucket 610 is uncurling, the control unit of construction machine 600 may generate control signals to cause stick 608 and/or boom 602 to vertically rotate to achieve the rotation of bucket 610 around a fixed rotation point 638. To facilitate this, the control unit may maintain several angles such as a bucket angle θBUCKET, a stick angle θSTICK, and a boom angle θBOOM, where bucket angle θBUCKET is defined as the angle between the orientation of bucket 610 (e.g., the line connecting bucket pin 622 and leading edge 624) and the orientation of stick 608 (e.g., the line connecting stick pin 636 and bucket pin 622), stick angle θSTICK is defined as the angle between the orientation of stick 608 and the orientation of boom 602 (e.g., the line connecting boom pin 634 and stick pin 636), and boom angle θBOOM is defined as the angle between the orientation of boom 602 and the orientation of platform 604.
In some examples, the control unit may first determine an actual bucket angle θBUCKET, an actual stick angle θSTICK, and an actual boom angle θBOOM using one or more sensors mounted to construction machine 600 (e.g., an IMU mounted to each component). Next, the control unit may determine the actual position(s) of bucket pin 622 and/or leading edge 624. Next, the control unit may compare bucket pin 622 and/or leading edge 624 to fixed rotation point 638 to determine target position(s) of bucket pin 622 and/or leading edge 624. For example, these target positions should follow arcs that maintain constant distances from fixed rotation point 638. Next, the control unit calculates a target stick angle θSTICK and a target boom angle θBOOM based on the target position(s) of bucket pin 622 and/or leading edge 624, and the actual bucket angle θBUCKET.
Optionally, the target stick angle θSTICK and the target boom angle θBOOM may be calculated further based on the actual stick angle θSTICK, and the actual boom angle θBOOM.
The control unit can generate a first control signal for controlling the boom actuator to move boom 602 so as to align the actual boom angle θBOOM with the target boom angle θBOOM.
Alternatively or additionally, the control unit can generate a second control signal for controlling the stick actuator to move stick 608 so as to align the actual stick angle θSTICK with the target stick angle θSTICK. Each of the above steps may be repeated for each time step of multiple time steps. For example, at a second time step after a first time step, actual angles and actual positions are redetermined, target stick and boom angles are recalculated, and control signals are regenerated to rotate the boom and stick to align actual stick and boom angles with target boom and stick angles.
Between times T1 and T2, the control unit receives a second user input to gradually uncurl bucket 710, causing the bucket actuator to retract and the bucket angle θBUCKET to increase. While bucket angle θBUCKET increases between times T1 and T2, the control unit generates a first control signal that causes the boom actuator to extend and the boom angle θBOOM to increase and a second control signal that causes the stick actuator to extend and the stick angle θSTICK to decrease. As shown in
Between times T2 and T3, the control unit continues to receive the second user input and continues to gradually uncurl bucket 710, causing the bucket actuator to retract and the bucket angle θBUCKET to again increase. While bucket angle θBUCKET increases between times T2 and T3, the control unit generates a third control signal (or an updated first control signal) that causes the boom actuator to retract and the boom angle θBOOM to decrease. The control unit also generates a fourth control signal (or an updated second control signal) that causes the stick actuator to extend and the stick angle θSTICK to decrease. As shown in
Machine control system 850 may include a control unit 860 that receives data from the various sensors and inputs and generates commands that are sent to the various actuators and output devices. In the illustrated example, control unit 860 receives an input signal 853 from input device(s) 852 and sensor data 855 from sensor(s) 854, and generates control signal(s) 857 which are sent to actuator(s) 856. Control unit 860 may include one or more processors and an associated memory. In some embodiments, control unit 860 may be communicatively coupled to an external computing system 862 located external to machine control system 850 and the construction machine. External computing system 862 may send instructions to control unit 860 of the details of a work-related task. External computing system 862 may also send alerts and other general information to control unit 860, such as traffic conditions, weather conditions, the locations and status of material transfer vehicles, and the like.
An operator can use input device(s) 852 to produce input signal 853 that indicates a desired movement of the vehicle, a desired movement of the implement, a desired rotation of the implement, a desired extension distance of the implement, a desired height of the implement, an activation of one or more mechanisms on the implement (e.g., sprayers, cutters, etc.), and the like. Input device(s) 852 can include a keyboard, a touchscreen, a touchpad, a switch, a lever, a button, a steering wheel, an acceleration pedal, a brake pedal, and the like. Input device(s) 852 can be mounted to any physical part of the vehicle, such as within the cab of the vehicle, or may include one or more wearable or handheld devices.
Sensor(s) 854 can include one or more position sensor(s) 858 and/or inertial sensor(s) 865. Position sensor(s) 858 can be a combination of GNSS receivers, which determine position using wireless signals received from satellites, and total stations, which determine position by combining distance, vertical angle, and horizontal angle measurements. Inertial sensor(s) 865 can include one or more sensors that detect movement of the components of the construction machine to which they are rigidly attached. For example, inertial sensor(s) 865 can include one or more gyroscopes for detecting angular acceleration, angular rate and/or angular position, one or more accelerometers for detecting linear acceleration, linear velocity, and/or linear position, one or more inertial measurement units (IMUs) which may each include one or more accelerometers, one or more gyroscopes, and/or one or more magnetometers for detecting the above-listed types of data, among other possibilities.
Inertial sensor(s) 865 can directly detect angular rate and integrate to obtain angular position, or alternatively, an inertial sensor can directly measure angular position and determine a change in angular position (e.g., compute the derivative) to obtain angular rate. In many instances, inertial sensor(s) 865 can be used to determine the yaw angle (rotation angle with respect to a vertical axis), the pitch angle (rotation angle with respect to a transverse axis), and/or the roll angle (rotation angle with respect to a longitudinal axis) of the construction machine.
Control unit 860 may include various controllers and modules to assist in the generation of control signal(s) 857. Each of the controllers and modules may include dedicated hardware and/or may be performed using the main processor and/or memory of control unit 860. Control signal(s) 857 may include direct current (DC) or alternating current (AC) voltage signals, DC or AC current signals, and/or information-containing signals. An example of an information-containing signal may be a controller area network (CAN) message that may be sent along a CAN bus or other communication medium. In some instances, control signal(s) 857 include a pneumatic or hydraulic pressure. Upon receiving control signal(s) 857, actuator(s) 856 may be caused to move in a specified manner, such as by extending, retracting, rotating, lifting, or lowering by a specified amount. Actuator(s) 856 may use various forms of power to provide movement to the components of the construction machine. For example, actuator(s) 856 may be electric, hydraulic, pneumatic, mechanical, or thermal, among other possibilities. Actuator(s) 856 may include a boom actuator (e.g., a boom cylinder), a stick actuator (e.g., a stick cylinder), an implement actuator (e.g., an implement cylinder), a boom swing actuator (e.g., a boom swing cylinder), among other possibilities.
At step 902, a control unit (e.g., control units 160, 860) receives a first user input (e.g., input data 853) to activate a material dump mode of the construction machine. The construction machine may include a bucket (e.g., buckets 110, 210, 310, 410, 510, 610, 710) and an arm (e.g., arms 128, 628) that are pivotally connected via a bucket pin (e.g., bucket pins 122, 222, 322, 422, 522, 622). Activation of the material dump mode may enable automatic control of the arm in response to detection of operator-controlled motion of the bucket.
At step 904, the control unit sets a fixed rotation point (e.g., fixed rotation points 338, 438, 538, 638) in a reference frame that is to be at a constant distance during the material dump operation from one or both of the bucket pin and/or a leading edge (e.g., leading edges 124, 224, 324, 424, 524, 624) of the bucket. The reference frame may be a machine reference frame or a world reference frame. The fixed rotation point may be between the bucket pin and the leading edge. The fixed rotation point may be set to be within an inner 50% region formed by four equally spaced parallel lines between the bucket pin and the leading edge that are orthogonal to a line connecting the bucket pin and the leading edge (e.g., the inner 50% region corresponding to the union of the two inner 25% regions). In some examples, the constant distance from the bucket pin to the fixed rotation point may be greater than the constant distance from the leading edge of the bucket to the fixed rotation point during the material dump operation.
At step 906, the control unit receives a second user input (e.g., input data 853) while the material dump mode is activated. The second user input may cause control signals (e.g., control signals 857) to be generated to cause the bucket to uncurl. For example, the second user input may cause a bucket actuator (e.g., bucket actuator 118) to retract.
At step 908, the control unit generates, while the bucket is uncurling, and in response to receiving the second user input while the material dump mode is activated, one or more control signals (e.g., control signals 857) causing one or more elements of the arm to vertically rotate so as to maintain the constant distance from the fixed rotation point while the bucket is uncurling. The one or more control signals may include a first control signal that causes a boom actuator (e.g., boom actuator 114) to extend or retract to vertically rotate a boom (e.g., booms 102, 602, 702) and/or a second control signal that causes a stick actuator (e.g., stick actuator 116) to extend or retract to vertically rotate a stick (e.g., sticks 108, 608, 708).
In some examples, generating the one or more control signals includes, for each time step of multiple time steps, determining an actual angle associated with the bucket at the time step and calculating a target angle associated with the boom and a target angle associated with the stick based on the actual angle associated with the bucket at the time step and the fixed rotation point. In some examples, target positions of the bucket pin and/or the leading edge can be calculated based on the relationship between current (actual) positions of the bucket pin and/or the leading edge and the fixed rotation point. At each time step, the first and second control signals can be updated (or regenerated) based on the target angles associated with the boom and stick, respectively).
In the illustrated example, computer system 1000 includes a communication medium 1002, one or more processor(s) 1004, one or more input device(s) 1006, one or more output device(s) 1008, a communications subsystem 1010, and one or more memory device(s) 1012. Computer system 1000 may be implemented using various hardware implementations and embedded system technologies. For example, one or more elements of computer system 1000 may be implemented within an integrated circuit (IC), an application-specific integrated circuit (ASIC), an application-specific standard product (ASSP), a field-programmable gate array (FPGA), such as those commercially available by XILINX®, INTEL®, or LATTICE SEMICONDUCTOR®, a system-on-a-chip (SoC), a microcontroller, a printed circuit board (PCB), and/or a hybrid device, such as an SoC FPGA, among other possibilities.
The various hardware elements of computer system 1000 may be communicatively coupled via communication medium 1002. While communication medium 1002 is illustrated as a single connection for purposes of clarity, it should be understood that communication medium 1002 may include various numbers and types of communication media for transferring data between hardware elements. For example, communication medium 1002 may include one or more wires (e.g., conductive traces, paths, or leads on a PCB or integrated circuit (IC), microstrips, striplines, coaxial cables), one or more optical waveguides (e.g., optical fibers, strip waveguides), and/or one or more wireless connections or links (e.g., infrared wireless communication, radio communication, microwave wireless communication), among other possibilities.
In some embodiments, communication medium 1002 may include one or more buses that connect the pins of the hardware elements of computer system 1000. For example, communication medium 1002 may include a bus that connects processor(s) 1004 with main memory 1014, referred to as a system bus, and a bus that connects main memory 1014 with input device(s) 1006 or output device(s) 1008, referred to as an expansion bus. The system bus may itself consist of several buses, including an address bus, a data bus, and a control bus. The address bus may carry a memory address from processor(s) 1004 to the address bus circuitry associated with main memory 1014 in order for the data bus to access and carry the data contained at the memory address back to processor(s) 1004. The control bus may carry commands from processor(s) 1004 and return status signals from main memory 1014. Each bus may include multiple wires for carrying multiple bits of information and each bus may support serial or parallel transmission of data.
Processor(s) 1004 may include one or more central processing units (CPUs), graphics processing units (GPUs), neural network processors or accelerators, digital signal processors (DSPs), and/or other general-purpose or special-purpose processors capable of executing instructions. A CPU may take the form of a microprocessor, which may be fabricated on a single IC chip of metal-oxide semiconductor field-effect transistor (MOSFET) construction. Processor(s) 1004 may include one or more multi-core processors, in which each core may read and execute program instructions concurrently with the other cores, increasing speed for programs that support multithreading.
Input device(s) 1006 may include one or more of various user input devices such as a mouse, a keyboard, a microphone, as well as various sensor input devices, such as an image capture device, a temperature sensor (e.g., thermometer, thermocouple, thermistor), a pressure sensor (e.g., barometer, tactile sensor), a movement sensor (e.g., accelerometer, gyroscope, tilt sensor), a light sensor (e.g., photodiode, photodetector, charge-coupled device), and/or the like. Input device(s) 1006 may also include devices for reading and/or receiving removable storage devices or other removable media. Such removable media may include optical discs (e.g., Blu-ray discs, DVDs, CDs), memory cards (e.g., CompactFlash card, Secure Digital (SD) card, Memory Stick), floppy disks, Universal Serial Bus (USB) flash drives, external hard disk drives (HDDs) or solid-state drives (SSDs), and/or the like.
Output device(s) 1008 may include one or more of various devices that convert information into human-readable form, such as without limitation a display device, a speaker, a printer, a haptic or tactile device, and/or the like. Output device(s) 1008 may also include devices for writing to removable storage devices or other removable media, such as those described in reference to input device(s) 1006. Output device(s) 1008 may also include various actuators for causing physical movement of one or more components. Such actuators may be hydraulic, pneumatic, electric, and may be controlled using control signals generated by computer system 1000.
Communications subsystem 1010 may include hardware components for connecting computer system 1000 to systems or devices that are located external to computer system 1000, such as over a computer network. In various embodiments, communications subsystem 1010 may include a wired communication device coupled to one or more input/output ports (e.g., a universal asynchronous receiver-transmitter (UART)), an optical communication device (e.g., an optical modem), an infrared communication device, a radio communication device (e.g., a wireless network interface controller, a BLUETOOTH® device, an IEEE 802.11 device, a Wi-Fi device, a Wi-Max device, a cellular device), among other possibilities.
Memory device(s) 1012 may include the various data storage devices of computer system 1000. For example, memory device(s) 1012 may include various types of computer memory with various response times and capacities, from faster response times and lower capacity memory, such as processor registers and caches (e.g., L0, L1, L2), to medium response time and medium capacity memory, such as random-access memory (RAM), to lower response times and lower capacity memory, such as solid-state drives and hard drive disks. While processor(s) 1004 and memory device(s) 1012 are illustrated as being separate elements, it should be understood that processor(s) 1004 may include varying levels of on-processor memory, such as processor registers and caches that may be utilized by a single processor or shared between multiple processors.
Memory device(s) 1012 may include main memory 1014, which may be directly accessible by processor(s) 1004 via the address and data buses of communication medium 1002. For example, processor(s) 1004 may continuously read and execute instructions stored in main memory 1014. As such, various software elements may be loaded into main memory 1014 to be read and executed by processor(s) 1004 as illustrated in
Computer system 1000 may include software elements, shown as being currently located within main memory 1014, which may include an operating system, device driver(s), firmware, compilers, and/or other code, such as one or more application programs, which may include computer programs provided by various embodiments of the present disclosure. Merely by way of example, one or more steps described with respect to any methods discussed above, may be implemented as instructions 1016, which are executable by computer system 1000. In one example, such instructions 1016 may be received by computer system 1000 using communications subsystem 1010 (e.g., via a wireless or wired signal that carries instructions 1016), carried by communication medium 1002 to memory device(s) 1012, stored within memory device(s) 1012, read into main memory 1014, and executed by processor(s) 1004 to perform one or more steps of the described methods. In another example, instructions 1016 may be received by computer system 1000 using input device(s) 1006 (e.g., via a reader for removable media), carried by communication medium 1002 to memory device(s) 1012, stored within memory device(s) 1012, read into main memory 1014, and executed by processor(s) 1004 to perform one or more steps of the described methods.
In some embodiments of the present disclosure, instructions 1016 are stored on a computer-readable storage medium (or simply computer-readable medium). Such a computer-readable medium may be non-transitory and may therefore be referred to as a non-transitory computer-readable medium. In some cases, the non-transitory computer-readable medium may be incorporated within computer system 1000. For example, the non-transitory computer-readable medium may be one of memory device(s) 1012 (as shown in
Instructions 1016 may take any suitable form to be read and/or executed by computer system 1000. For example, instructions 1016 may be source code (written in a human-readable programming language such as Java, C, C++, C#, Python), object code, assembly language, machine code, microcode, executable code, and/or the like. In one example, instructions 1016 are provided to computer system 1000 in the form of source code, and a compiler is used to translate instructions 1016 from source code to machine code, which may then be read into main memory 1014 for execution by processor(s) 1004. As another example, instructions 1016 are provided to computer system 1000 in the form of an executable file with machine code that may immediately be read into main memory 1014 for execution by processor(s) 1004. In various examples, instructions 1016 may be provided to computer system 1000 in encrypted or unencrypted form, compressed or uncompressed form, as an installation package or an initialization for a broader software deployment, among other possibilities.
In one aspect of the present disclosure, a system (e.g., computer system 1000) is provided to perform methods in accordance with various embodiments of the present disclosure.
For example, some embodiments may include a system comprising one or more processors (e.g., processor(s) 1004) that are communicatively coupled to a non-transitory computer-readable medium (e.g., memory device(s) 1012 or main memory 1014). The non-transitory computer-readable medium may have instructions (e.g., instructions 1016) stored therein that, when executed by the one or more processors, cause the one or more processors to perform the methods described in the various embodiments.
In another aspect of the present disclosure, a computer-program product that includes instructions (e.g., instructions 1016) is provided to perform methods in accordance with various embodiments of the present disclosure. The computer-program product may be tangibly embodied in a non-transitory computer-readable medium (e.g., memory device(s) 1012 or main memory 1014). The instructions may be configured to cause one or more processors (e.g., processor(s) 1004) to perform the methods described in the various embodiments.
In another aspect of the present disclosure, a non-transitory computer-readable medium (e.g., memory device(s) 1012 or main memory 1014) is provided. The non-transitory computer-readable medium may have instructions (e.g., instructions 1016) stored therein that, when executed by one or more processors (e.g., processor(s) 1004), cause the one or more processors to perform the methods described in the various embodiments.
The methods, systems, and devices discussed above are examples. Various configurations may omit, substitute, or add various procedures or components as appropriate. For instance, in alternative configurations, the methods may be performed in an order different from that described, and/or various stages may be added, omitted, and/or combined. Also, features described with respect to certain configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves and, thus, many of the elements are examples and do not limit the scope of the disclosure or claims.
Specific details are given in the description to provide a thorough understanding of exemplary configurations including implementations. However, configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the configurations. This description provides example configurations only, and does not limit the scope, applicability, or configurations of the claims. Rather, the preceding description of the configurations will provide those skilled in the art with an enabling description for implementing described techniques. Various changes may be made in the function and arrangement of elements without departing from the spirit or scope of the disclosure.
Having described several example configurations, various modifications, alternative constructions, and equivalents may be used without departing from the spirit of the disclosure. For example, the above elements may be components of a larger system, wherein other rules may take precedence over or otherwise modify the application of the technology. Also, a number of steps may be undertaken before, during, or after the above elements are considered.
Accordingly, the above description does not bind the scope of the claims.
As used herein and in the appended claims, the singular forms “a”, “an”, and “the” include plural references unless the context clearly dictates otherwise. Thus, for example, reference to “a user” includes reference to one or more of such users, and reference to “a processor” includes reference to one or more processors and equivalents thereof known to those skilled in the art, and so forth.
Also, the words “comprise,” “comprising,” “contains,” “containing,” “include,” “including,” and “includes,” when used in this specification and in the following claims, are intended to specify the presence of stated features, integers, components, or steps, but they do not preclude the presence or addition of one or more other features, integers, components, steps, acts, or groups.
It is also understood that the examples and embodiments described herein are for illustrative purposes only and that various modifications or changes in light thereof will be suggested to persons skilled in the art and are to be included within the spirit and purview of this application and scope of the appended claims.