Excavator with improved motion sensing
By installing an IMU sensor on a hydraulic excavator and determining its position to generate a control signal, the problem of uncertain position after sensor installation is solved, and the operating accuracy and safety of the excavator are improved.
Patent Information
- Application Number
- CN202110525075.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-06-18
- Filing Date
- 2021-05-13
- Publication Date
- 2025-09-09
- Estimated Expiration
- 2041-05-13
AI Technical Summary
Existing hydraulic excavators have difficulty achieving high-precision machine operation control when the position and direction of sensors are uncertain after installation.
By installing an inertial measurement unit (IMU) sensor on a hydraulic excavator, combined with sensor position determination logic and control signal generator logic, the precise position of the sensor on the machine is determined and a control signal is generated to improve operational accuracy.
The operating accuracy and safety of the hydraulic excavator are improved without significantly increasing the cost.
Smart Images

Figure CN113818506B_ABST
Abstract
Description
Technical Field
[0001] This specification relates to excavators used for heavy construction and, more particularly, to improved sensing and control in such excavators. Background Art
[0002] Hydraulic excavators are heavy construction equipment that typically weigh between 3,500 and 200,000 pounds. These excavators have a boom, an arm, a bucket (or attachment), and a cab (sometimes called a house) on a rotating platform. A set of tracks is located below the house and provides movement for the hydraulic excavator.
[0003] Hydraulic excavators are used for a variety of operations, ranging from digging holes or trenches, demolition, placing or lifting large objects, and landscaping. Precise excavator operation is crucial for efficient operation and safety. A system and method for improving excavator operation accuracy without significantly increasing costs would be beneficial to the hydraulic excavator industry.
[0004] The above discussion is provided as general background information only and is not intended to be used as an aid in determining the scope of the claimed subject matter. Summary of the Invention
[0005] A movable machine includes a rotatable chamber and a sensor operably coupled to the rotatable chamber and configured to provide at least one sensor signal indicative of acceleration. The movable machine includes one or more controllers coupled to the sensor, the one or more controllers configured to implement: sensor position determination logic that determines a sensor position of the sensor on the rotatable chamber during rotation of the rotatable chamber based on the sensor signal; and control signal generator logic that generates a control signal based on the sensor position to control the movable machine.
[0006] This summary is provided to introduce some concepts in a simplified form that will be further described in the detailed description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all of the disadvantages noted in the background. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Figure 1 is a schematic diagram illustrating an example active machine.
[0008] Figure 2 is a block diagram illustrating an example activity machine.
[0009] Figure 3 is a schematic diagram illustrating an example active machine.
[0010] Figure 4 is a flow chart illustrating an example method of determining sensor location.
[0011] Figure 5A is a flow chart illustrating an example method of determining a chamber sensor location.
[0012] Figures 5B to 5C is a schematic diagram illustrating an example active machine.
[0013] Figure 6A is a flow chart illustrating an example method of determining a boom sensor position.
[0014] Figure 6B is a schematic diagram illustrating an example active machine.
[0015] Figure 7A is a flow chart illustrating an example method of determining a stick sensor position.
[0016] Figure 7B is a schematic diagram illustrating an example active machine.
[0017] Figure 8 is a block diagram illustrating an example computing system. DETAILED DESCRIPTION
[0018] Precision control or automatic control of an excavator or similar machine (such as a crane or backhoe) relies on a system of sensors. Typically, these sensors include an inertial measurement unit (IMU) that can detect acceleration, gravity, orientation, angular rotation, etc. When the IMU is attached to the machine during manufacturing, the physical location of the sensor on the component of the machine is usually known. However, when sensors are added later (for example, as aftermarket parts or manufacturer upgrades), the precise location and / or orientation of the sensor on the machine is unknown. While additional sensors can be used without knowing their precise location, being able to determine their location on the machine allows for higher precision control.
[0019] When an object rotates about an axis, the acceleration it experiences is a function of its displacement relative to the axis of rotation. Thus, the position of a sensor can be determined based on sensor data (e.g., acceleration) collected during rotation of the sensor in one or more directions about one or more axes. Additionally, the sensor can be mounted on a component that is movable relative to the axis of rotation (e.g., a boom movable relative to the swing axis of a chamber). Thus, the component can move from one pose to another between rotations. Utilizing the known geometry of the component and the accelerations sensed at different poses, sensor position ambiguity can be reduced or eliminated.
[0020] Figure 1 is a schematic diagram illustrating an example machine 100 as an excavator. Excavator or machine 100 includes a cabin 102 having an operator's cab 104 rotatably disposed above a tracked section 106. Cabin 102 can rotate 360 degrees about tracked section 106 via a rotatable coupling 108. A boom 110 extends from cabin 102 and can be raised or lowered in the direction indicated by arrow 112 based on actuation of one or more hydraulic cylinders 114. A stick or arm 116 is pivotally connected to boom 110 via a link pin 118 and is movable in the direction of arrow 120 based on actuation of a hydraulic cylinder 122. A bucket or attachment 124 is pivotally coupled to arm 116 at a link pin 126 and is rotatable about link pin 126 in the direction of arrow 128 based on actuation of a hydraulic cylinder 130.
[0021] Figure 2 is a schematic diagram illustrating an example machine 100. Machine 100 includes a controller 202, a user interface device 210, a data storage device 212, a sensor 220, sensor position determination logic 230, a controllable subsystem 240, a control system 250, and may also include other items, as shown in block 280. Illustratively, the components are part of machine 100, however, some of the blocks shown may be located remotely from machine 100 (e.g., on a remote server, on a different machine, etc.).
[0022] The controller 202 is configured to receive one or more inputs and execute a sequence of programmed steps to generate one or more suitable machine outputs for controlling the operation of the machine 100 (e.g., implementing various logic components). The controller 202 may include one or more microprocessors, or even one or more suitable general-purpose computing environments, as described in more detail below. The controller 202 is coupled to a user interface device 210 to receive machine control inputs from an operator in the cab. Examples of operator inputs include joystick movement, pedal movement, machine control settings, touch screen inputs, etc. Additionally, the user interface device 210 may also include one or more operator displays to provide information to the operator regarding the operation of the excavator.
[0023] Data storage device 212 stores various information used for the operation of machine 100. Illustratively, a geometry structure 214 corresponding to the geometry of various components of machine 100 (e.g., controllable subsystem 240) is stored in data storage device 212. For example, the dimensions and shape of boom 110 are stored in geometry structure 214. This information may include length, width, height, bends, corner radius, size and location of linkage pins, mass, center of mass, etc. Geometry structure 214 may also include three-dimensional models of various components (including subcomponents and mass calculations). Of course, data storage device 212 may also include many other items, as shown in box 216.
[0024] The sensors 220 include an inertial measurement unit (IMU) 222, a linkage sensor 224, and may also include various other sensors, as shown in box 226. The IMU sensors 222 may be located in various locations on the machine 100. For example, the IMU sensors 222 may be placed on the rotatable housing 102, the arm 110, the arm 116, and the attachment 124. The IMU sensors 222 can sense acceleration, orientation, rotation, and the like. They are positioned on these and other components of the machine 100 for precise control of the machine 100.
[0025] Sensors 220 also include a linkage sensor 224, which may include a strain gauge, a linear displacement sensor, a potentiometer, or the like. Link sensor 224 can sense the force exerted on controllable subsystem 240 and / or the orientation of the controllable subsystem through the displacement of its actuator. For example, boom 110 is typically actuated by a hydraulic cylinder, and the displacement of the piston in the hydraulic cylinder correlates to the position of boom 110 relative to rotatable chamber 102. In another example, a potentiometer can be located near a linkage pin between boom 110 and forearm 116. This potentiometer outputs a signal indicating the angle between boom 110 and forearm 116.
[0026] Sensor position determination logic 230 determines the positions of various IMU sensors 222 (or other sensors) on machine 100. Sensor position determination logic 230 includes pose sequence logic 231, motion sequence logic 232, chamber sensor position determination logic 233, boom sensor position determination logic 234, arm sensor position determination logic 235, and attachment sensor position determination logic 236. It may also include other components, as indicated by block 237. Pose sequence logic 231 generates or selects a pose sequence for machine 100 to actuate during sensor position determination. For example, to determine the position of sensors on machine 100, it may be beneficial to change the pose of machine 100 and accelerate (e.g., rotatable chamber 102) at various poses. This is because, as the pose changes, the sensors will be displaced (predictably) to different relative positions relative to the axis of rotation of rotatable chamber 102.
[0027] Action sequence logic 232 generates or selects a sequence of actions that machine 100 actuates during sensor position determination. For example, to determine the position of a sensor on machine 100, generating actions allows for the detection of acceleration, particularly angular acceleration and velocity. Because angular acceleration / velocity shares a common relationship with physical displacement from the axis of rotation, known rotational acceleration / velocity can be used to determine the physical displacement from the axis of rotation. This geometry, along with the known geometry of the geometry 214 and the linked positions to each other, can provide the position of the sensor on its respective controllable subsystem 240. The actions generated or selected by action sequence logic 232 can also include a static period, allowing the orientation of IMU sensor 222 to be determined. Furthermore, the static period allows for the acquisition of a control value or angle of IMU sensor 222.
[0028] The room sensor position determination logic 233 receives sensor signals from the IMU sensor 222 located on the rotatable room 102. As the rotatable room 102 rotates through a given series of motions and rests, the attached IMU sensor 222 generates various readings. The room sensor position determination logic 233 receives these readings and, based on them, determines the position of the IMU sensor 222 located on the rotatable room 102. Of course, the room sensor position determination logic 233 can also determine the position of the IMU sensor 222 located on the rotatable room 102 in other ways. For example, the room sensor position determination logic 233 can generate an interface that allows a user to enter user input, and the room sensor position determination logic 233 determines the sensor position based on the user input.
[0029] The boom sensor position determination logic 234 receives sensor signals from the IMU sensor 222 located on the boom 110. As the rotatable chamber 102 rotates through a given series of motions and stops, the boom 110 also rotates and pauses, and the attached IMU sensor 222 generates various readings. The boom sensor position determination logic 234 receives these readings and determines the position of the IMU sensor 222 located on the boom 110 based on the sensor readings. Of course, the boom sensor position determination logic 234 can also determine the position of the IMU sensor 222 located on the boom 110 in other ways. For example, an actuator of the boom 110 can be actuated, and the readings received from the IMU 222 during this actuation can be used to calculate the position of the sensor 222. In another example, the boom sensor position determination logic 234 can generate an interface that allows a user to enter user input, and the boom sensor position determination logic 234 determines the sensor position based on the user input.
[0030] The arm sensor position determination logic 235 receives sensor signals from one or more IMU sensors 222 located on the arm 116. As the rotatable chamber 102 rotates through a given series of motions and pauses, the arm 116 also rotates and pauses, and the attached IMU sensors 222 generate various readings. The arm sensor position determination logic 235 receives these readings and determines the position of the IMU sensors 222 located on the arm 116. Of course, the arm sensor position determination logic 235 can also determine the position of the IMU sensors 222 located on the arm 116 in other ways. For example, an actuator of the arm 116 can be actuated, and the readings received from the IMU 222 during this actuation can be used to calculate the position of the sensors 222. In another example, the arm sensor position determination logic 235 can generate an interface that allows the user to enter user input, and the arm sensor position determination logic 235 determines the sensor position based on the user input.
[0031] Attachment sensor position determination logic 236 receives sensor signals from one or more IMU sensors 222 located on attachment 124. As rotatable chamber 102 rotates through a given series of motions and pauses, attachment 124 also rotates and pauses, and the attached IMU sensors 222 generate various readings. Attachment sensor position determination logic 236 receives these readings and determines the position of IMU sensors 222 located on attachment 124. Of course, attachment sensor position determination logic 236 can also determine the position of IMU sensors 222 located on attachment 124 in other ways. For example, an actuator of attachment 124 can be actuated, and readings received from IMU 222 during this actuation can be used to calculate the position of sensor 222. In another example, attachment sensor position determination logic 236 can generate an interface that allows a user to enter user input, and attachment sensor position determination logic 236 determines the sensor position based on the user input.
[0032] The control system 250 controls the operation of the machine 100. The control system 250 includes (semi-automatic) control logic 252, control signal generator logic 254, and may also include other items, as shown in box 256. The (semi-automatic) control logic 252 allows for fully automatic or partially automatic control by the operator of the machine 100. For example, semi-automatic control would include intelligent grading operations that would allow the attachment 124 (i.e., the bucket) to grade or dig a trench even though the standard displacement of the link 109 during actuation is circular (e.g., due to rotation about the link pin). Fully automatic control can include fully automatic control by the system, such as digging a trench without user intervention.
[0033] Figure 3 is a schematic diagram of an example excavator. The dimensions shown can be calculated using one or more of the methods described herein. The machine Z axis (Z M ) is defined by the axis of rotation of the rotatable chamber 102. Ideally, Z M parallel to gravity, as shown by arrow g. However, if the machine 100 is located on uneven ground, arrows g and Z M will not be parallel and this difference can be taken into account. M ) perpendicular to Z M , and extends in the positive direction toward the arm 110. As shown in the figure, there is a sensor 222-0 on the rotatable chamber 102. The sensor 222-0 is located at an angle θ0 away from the Z M 、X M P at the origin 0M Sensor 222-0 is also located away from the link pin of the arm 110 at P 0B .
[0034] The boom 110 has a boom X-axis (X) defined by a line connecting the boom / chamber link pin to the boom / arm link pin. B ). Z axis of the upper arm (Z B ) perpendicular to X B , and extends upward from the boom / chamber link pin. As shown, there is a sensor 222-1 on the boom 110. The sensor 222-1 is located at an angle θ1 away from X B 、X Z P at the origin 1B The sensor 222-1 is also located away from the arm 110 / arm 116 link pin. 1A .
[0035] The arm 116 has an arm X-axis (X) defined by a line connecting the arm / boom link pin to the arm / attachment link pin. A ). The Z axis of the forearm is perpendicular to the X A , and extends upward from the boom / arm link pin. As shown, there is a sensor 222-2 on the arm 116. The sensor 222-2 is located at an angle θ2 away from X A 、X A P at the origin 2A .
[0036] The location of sensors 222-0, 222-1, 222-2 can be globally (e.g., in X M and Z M On), locally (e.g. in X B 、Z B or X A 、Z A The local X-axis may be defined relative to a pin joint (on the pin joint) or relative to some other point on the machine 100. Of course, any position defined on one of these ranges can be converted to the other. For example, as shown, the local X-axis passes through the pin joint, however, in other examples, the X-axis may be defined elsewhere.
[0037] Figure 4is a flow chart illustrating example operations 400 for determining the positions of various sensors on an active machine. Operations 400 begin at block 410, where sensor positioning operations 400 are initialized. As shown in block 412, initialization may include moving the machine 100 to a flat, stable surface. This surface will allow for a baseline to be set for the sensors 222 (e.g., for calibration). As shown in block 414, initialization may include calibrating the various sensors 220. Calibration may account for uneven terrain that may affect sensor readings (e.g., acceleration and deceleration when the sensor rotates about an axis tilted from the axis of gravity). Calibration may also account for other factors that may distort sensor signals and calculations based on the sensor signals. Initialization may also include other processes, as shown in block 416. For example, the machine 100 may be moved to an open area where it can extend all of its controllable subsystems 240 without colliding with another object.
[0038] Operation 400 continues at block 420, where the position of a first sensor (e.g., sensor 222 on rotatable chamber 102) is determined. As shown in block 422, the position can be determined based on, for example, a sensor signal output from sensor 222 as machine 100 rotates through a series of motions. As shown in block 424, the position can be determined based on manually measuring the position of sensor 222 on rotatable chamber 102. As shown in block 426, the position can also be determined in other ways.
[0039] Operation 400 continues at block 430 where it is determined whether there are more sensors to be positioned. If not, operation 400 continues at block 470, which will be described in more detail below. If so, operation 400 continues at block 440.
[0040] At block 440, the position of a second sensor (e.g., sensor 222 on boom 110) is determined. As shown in block 442, the position can be determined based on the sensor signal output of sensor 222 on boom 110 as machine 100 rotates through a series of motions. As shown in block 444, the position can be determined based on manually measuring the position of sensor 222 on boom 110. As shown in block 446, the position can also be determined in other ways. For example, by analyzing images captured by sensors on machine 100, the images can be analyzed for machine parts and sensors. The distance between these parts in the image can then be used to determine the physical location of the sensor.
[0041] Operation 400 continues at block 450, where it is determined whether there are more sensors to be positioned. If not, operation 400 continues at block 470, where the sensor positions are stored, for example, in data storage device 212. If so, operation 400 continues at block 460, where the position of the next sensor is determined. As shown in block 462, the position can be determined based on the sensor signal output of sensor 222 as the machine rotates through a series of actions (e.g., rotating housing 102, raising boom 110, lowering boom 110, extending arm 116, retracting arm 116, etc.). As shown in block 464, the position can be determined based on manually measuring the position of sensor 222. As shown in block 466, the position can also be determined in other ways.
[0042] Figure 5A is a flow chart illustrating example operations 500 for determining the position of a sensor on a rotatable chamber 102 on a machine 100. For ease of explanation, Figure 5A Will refer to Figure 3 or Figure 5B All aspects of it. Figure 5A You can also refer to the following 11 equations. Equations 1 to 3 are used for calculations at rest (e.g., Figure 5A ), and equations 4 through 11 are used to perform calculations during steady-state swing (or near steady-state swing). For clarity and repeatability below, the numbered subscripts have been removed from the equations below.
[0043]
[0044] A x = -g sinθ Equation 2
[0045] A z =g cosθ Equation 3
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054] Operation 500 begins at block 510 , where the sensor position determination operation 500 is initialized. Initialization may include moving the machine 100 to a flat, stable surface, as shown in block 512 . Initialization may include calibrating one or more sensors 220 on the machine 100 , as shown in block 514 . Of course, initialization may include various other tasks, as shown in block 516 . For example, initialization may include loading the machine geometry or the positions of other sensors or components of the machine 100 .
[0055] Operations 500 continue at block 520 where the angle of the sensor 222 is determined while stationary. For example, Figure 5B The angle θ0 in is determined at rest. The angle θ0 can be determined as shown in equation 1 above.
[0056] Operation 500 continues at block 530, where the rotatable chamber 102 is swung about the Z-axis in one direction (e.g., counterclockwise) and, during this rotation, sensor data is collected. For example, the sensor 220 (e.g., the IMU 222) senses characteristics of the motion (e.g., acceleration, force, etc.) and stores the sensed data. As shown in block 532, the rotatable chamber 102 is swung at full speed. As shown in block 534, the rotatable chamber 102 is swung at a steady state, which may be less than full speed. As shown in block 536, the rotatable chamber 102 is swung at a different speed or state.
[0057] Operation 500 continues at block 540, where the rotatable chamber 102 is swung about the Z axis in a second direction (e.g., clockwise) opposite the first direction, and during this rotation, sensor data is collected. For example, characteristics of the motion are sensed (e.g., by the IMU 222) and the sensed data is stored. As shown in block 542, the rotatable chamber is swung at full speed. As shown in block 544, the rotatable chamber 102 is swung at a steady state, which may be less than full speed. As shown in block 546, the rotatable chamber 102 is swung at a different speed or state.
[0058] Operations 500 continue at block 550 where the distance P is calculated. X Global P 0MX It can be calculated in several different ways. For example, with respect to Figure 5C , the global P can be calculated using equations 8 and 9 above X Alternatively, the global P may be calculated using the best fit of the data collected in blocks 530 and 540 using the θ determined in block 520 X During steady-state rotation, equations 4 to 11 apply, where ω is the angular velocity, and the other variables correspond to Figure 3 The reference numerals in .
[0059] Operations 500 continue at block 560 where P is calculated. X and P Z .P X and P Z This can be calculated using equations 10 and 11 shown below. The global Px calculated in block 550 is used to solve for P X and P Z As shown in block 562, the measured P Z Can be used to solve P X and P Z As shown in block 564, the nominal P Z Can be used to solve P X and P Z Of course, P X and P Z It may also be determined in other ways, as shown in block 566 .
[0060] Operations 500 continue at block 570 where P is determined. Y P can be determined using Equation 6 above and the data collected in blocks 530 and 540. Y Of course, P Y It may also be determined in other ways, as shown in block 564 .
[0061] Operation 500 continues at block 580, where the position is stored for later use. As shown in block 582, the relative position of the sensor can be stored. For example, the position of the sensor relative to a component of the machine 100 (e.g., a link pin, boom, housing, arm, etc.). As shown in block 584, the global position of the sensor can be stored. For example, the position of the sensor relative to the swing axis of the machine 100 or the position of the sensor relative to the ground. As shown in block 586, the position of the sensor can be stored in the data storage device 212 on the machine 100. Of course, the position of the sensor can also be stored in some other format at a different location, as shown in block 588.
[0062] Operations 500 continue at block 590 where the machine 100 is controlled based on the position of the one or more sensors 222 .
[0063] Figure 6A is a flow chart illustrating an example operation for determining the position of the boom sensor. For ease of explanation, Figure 6A Will refer to Figure 3 and Figure 6B all aspects. Figure 6A Also refer to the following 8 equations applied during steady-state rotation. θ in Equation 11 corresponds to Figure 6B θ in .
[0064]
[0065]
[0066]
[0067] A z =g Equation 14
[0068]
[0069]
[0070]
[0071]
[0072] Operation 600 begins at block 610, where operation 600 is initialized. Initialization may include moving machine 100 to a flat, stable surface, as shown in block 612. Initialization may include calibrating sensors 220 on machine 100, as shown in block 614. Of course, initialization may include various other things, as shown in block 616. For example, initialization may include loading the machine geometry or the positions of other sensors or components of machine 100.
[0073] Operations 600 continue at block 620 where θ1 is determined while at rest. θ1 may be determined using Equation 1 mentioned above, as shown at block 622. θ1 may also be determined in other ways, as shown at block 624.
[0074] Operation 600 continues at block 630, where the rotatable chamber 102 is swung about the Z-axis in one direction (e.g., counterclockwise) and, during this rotation, sensor data is collected. For example, the sensor 220 (e.g., the IMU 222) senses characteristics of the motion and stores the sensed data. As shown in block 632, the rotatable chamber 102 is swung at full speed. As shown in block 634, the rotatable chamber 102 is swung at a steady state, which may be less than full speed. As shown in block 636, the rotatable chamber 102 is swung at a different speed or state.
[0075] Operation 600 continues at block 640, where the rotatable chamber 102 is swung about the Z-axis in a second direction (e.g., clockwise) opposite the first direction, and during this rotation, sensor data is collected. For example, characteristics of the motion are sensed (e.g., by the IMU 222) and the sensed data is stored. As shown in block 642, the rotatable chamber may be swung at full speed. As shown in block 644, the rotatable chamber 102 may also or alternatively be swung at a steady state, which may be less than full speed. As shown in block 646, the rotatable chamber 102 may also or alternatively be swung at a different speed or state.
[0076] Operation 600 continues at block 650, where the boom 110 is repositioned. After the boom 110 is repositioned, operation 600 repeats blocks 620 through 640, where the boom 110 is in a new position. As shown in block 662, the new position may be a 90-degree rotation of the boom 110. The new position may include a different rotation or posture, as shown in block 656.
[0077] Operations 600 continue at block 660 where P is determined. X and P Y As shown in block 662, P X and P Y This can be determined using equations 15 to 18 above. For example, the best fit of the sensor data for the first position can be calculated for the second position using equations 15 and 16, assuming equations 17 and 18. Note that θ1 in equation 15 represents the angle of boom 110 at the first position, and θ2 in equation 16 represents the angle of boom 110 at the second position.
[0078] Operations 600 continue at block 670 where P is calculated. Z As shown in block 672, the arm 110 may be actuated, and based on the sensor signals during actuation, P may be calculated. Z As shown in block 674, P can be determined by measuring the position Z Of course, P can also be calculated in other ways. Z , as shown in box 676.
[0079] Operations 600 continue at block 680 where the machine 100 is controlled based on the position of the one or more sensors 222 .
[0080] Figure 7A is a flow chart illustrating example operations for determining arm sensor positions. Operation 700 begins with initialization at block 710. As shown in block 712, initialization may include moving the machine 100 to a flat, stable surface. As shown in block 714, initialization may include calibrating the sensors 220 on the machine 100. As shown in block 716, initialization may include loading previously calculated positions, such as the positions of the rotatable chamber sensor, the arm 110, and the linkage pin. Of course, initialization may include various other operations, as shown in block 718.
[0081] Operations 700 continue at block 720 where θ is determined at rest. As shown in block 722 , θ may be determined using Equation 1 above. Of course, θ may also be determined in other ways, as shown in block 724 .
[0082] Operation 700 continues at block 730, where the rotatable chamber 102 is swung about the Z-axis in one direction (e.g., counterclockwise) and, during this rotation, sensor data is collected. For example, the sensor 220 (e.g., the IMU 222) senses characteristics of the motion and stores the sensed data. As shown in block 732, the rotatable chamber 102 is swung at full speed. As shown in block 734, the rotatable chamber 102 is additionally or alternatively swung at a steady state, which may be less than full speed. As shown in block 736, the rotatable chamber 102 is additionally or alternatively swung at a different speed or state.
[0083] Operation 700 continues at block 740, where the rotatable chamber 102 is swung about the Z-axis in a second direction (e.g., clockwise) opposite the first direction, and during this rotation, sensor data is collected. For example, characteristics of the motion are sensed (e.g., by the IMU 222) and the sensed data is stored. As shown in block 742, the rotatable chamber is swung at full speed. As shown in block 744, the rotatable chamber 102 is additionally or alternatively swung at a steady state, which may be less than full speed. As shown in block 746, the rotatable chamber 102 is additionally or alternatively swung at a different speed or state.
[0084] Operation 700 continues at block 750 where the machine 100 is repositioned. The pose sequence logic 231 may determine the pose to which the machine 100 should be repositioned. For example, the machine 100 may be repositioned to four different poses in four iterations, a first pose with the arm 116 tucked in and the boom 110 lowered, a second pose with the arm 116 tucked in and the boom 110 raised, a third pose with the arm 116 extended and the boom 110 raised, and a fourth pose with the arm 116 extended and the boom 110 lowered.
[0085] Operations 700 continue at block 760 where P is determined. X and P Y and P Z As shown in block 762, linear regression of the values collected in blocks 730 and 740 may be used to determine P X and P Y and P Z As shown in block 764, P X and P Y and P Z It can be determined by measuring the position of the sensor. X and P Y and P Z It may also be determined in other ways, as shown in block 766 .
[0086] Operations 700 continue at block 770 where the machine 100 is controlled based on the position of the one or more sensors 222 .
[0087] Figure 8 It can be deployed Figure 2 An embodiment of a computing environment of an element or portion thereof (e.g., Figure 8 , an example system for implementing some embodiments includes a general purpose computing device in the form of a computer 810. Components of the computer 810 may include, but are not limited to, a processing unit 820 (which may include the controller 202), a system memory 830, and a system bus 821 that couples various system components including the system memory to the processing unit 820. The system bus 821 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. Figure 2 The memory and program described can be deployed in Figure 8 in the corresponding part of .
[0088] Computer 810 typically includes various computer-readable media. Computer-readable media can be any available media that can be accessed by computer 810, and includes volatile and non-volatile media, removable and non-removable media. By way of example and not limitation, computer-readable media can include computer storage media and communication media. Computer storage media is different from, and does not include, modulated data signals or carrier waves. It includes hardware storage media, including volatile and non-volatile, removable and non-removable media, which are implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other storage technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by computer 810. Communication media can specifically be computer-readable instructions, data structures, program modules or other data in a transmission mechanism, and includes any information transfer medium. The term "modulated data signal" means that one or more of its characteristics are set or changed in such a manner as to encode information in the signal.
[0089] The system memory 830 includes computer storage media in the form of volatile and / or nonvolatile memory, such as read-only memory (ROM) 831 and random access memory (RAM) 832. A basic input / output system 833 (BIOS), containing the basic routines that help transfer information between elements within the computer 810, such as during startup, is typically stored in ROM 831. RAM 832 typically contains data and / or program modules that are immediately accessible to and / or currently being operated on by the processing unit 820. By way of example, and not limitation, Figure 8 Operating system 834 , application programs 835 , other program modules 836 , and program data 837 are shown.
[0090] The computer 810 may also include other removable / non-removable volatile / non-volatile computer storage media. For example only, Figure 8 Shown are a hard disk drive 841, a magnetic disk drive 851, a nonvolatile magnetic disk 852, an optical disk drive 855, and a nonvolatile optical disk 856 that read from or write to non-removable, nonvolatile magnetic media. The hard disk drive 841 is typically connected to the system bus 821 through a non-removable memory interface, such as interface 840, and the magnetic disk drive 851 and optical disk drive 855 are typically connected to the system bus 821 through a removable memory interface, such as interface 850.
[0091] Alternatively or additionally, the functions described herein may be at least partially performed by one or more hardware logic components. For example, but not limited to, exemplary types of hardware logic components that may be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (e.g., ASSPs), system-on-a-chip systems (SOCs), and complex programmable logic devices (CPLDs).
[0092] discussed above and in Figure 8 The drives and their associated computer storage media shown in FIG. 8 provide storage of computer readable instructions, data structures, program modules and other data for the computer 810. For example, in FIG. Figure 8845, other program modules 846, and program data 847. Note that these components can be the same as or different from operating system 834, application programs 835, other program modules 836, and program data 837.
[0093] A user can enter commands and information into the computer 810 through input devices such as a keyboard 862, a microphone 863, and a pointing device 861 (such as a mouse, trackball, or touch pad). Other input devices (not shown) may include a joystick, a game controller, a satellite dish, a scanner, or the like. These and other input devices are typically connected to the processing unit 820 through a user input interface 860 that is coupled to the system bus, but may be connected through other interface and bus structures. A visual display 891 or other type of display device is also connected to the system bus 821 through an interface such as a video interface 890. In addition to a monitor, the computer may also include other peripheral output devices such as speakers 897 and a printer 896, which may be connected through an output peripheral interface 895.
[0094] Computer 810 operates in a networked environment using logical connections, such as a local area network (LAN) or a wide area network (WAN), to one or more remote computers, such as remote computer 880 .
[0095] When used in a LAN networking environment, the computer 810 is connected to the LAN 871 via a network interface or adapter 870. When used in a WAN networking environment, the computer 810 typically includes a modem 872 or other means for establishing communications over the WAN 873 (such as the Internet). In a networked environment, program modules can be stored in a remote memory storage device. For example, FIG8 shows that remote application programs 885 can reside on a remote computer 880.
[0096] It should also be noted that the various embodiments described herein can be combined in various ways. That is, parts of one or more embodiments can be combined with parts of one or more other embodiments. This is fully contemplated herein. While the flowcharts are shown in the order given, it is contemplated that the steps can be performed in a different order than shown.
[0097] Example 1 is an active machine comprising:
[0098] Rotatable chamber;
[0099] a sensor operatively coupled to the rotatable chamber and configured to provide at least one sensor signal indicative of an acceleration of the sensor; and
[0100] One or more controllers coupled to the sensor, the one or more controllers configured to implement:
[0101] sensor position determination logic that determines a sensor position of a sensor on the rotatable chamber based on the sensor signal during rotation of the rotatable chamber; and
[0102] Control signal generator logic generates a control signal based on the sensor position to control the active machine.
[0103] Example 2 is the active machine of claim 1, wherein the one or more controllers are configured to implement:
[0104] An action sequence logic is provided that causes the rotation of the rotatable chamber to include a sequence of rotational and stationary states.
[0105] Example 3 is the active machine of any or all of the preceding examples, wherein the sensor position determination logic determines the sensor position based on a best fit algorithm applied to:
[0106] at least one sensor signal during a stationary state; and
[0107] At least one sensor signal during one of the rotations.
[0108] Example 4 is the mobile machine of any or all of the preceding examples, further comprising a boom coupled to the rotatable chamber and a boom sensor coupled to the boom, the boom sensor generating a boom sensor signal indicative of an acceleration of the boom sensor; and
[0109] The sensor position determination logic includes a boom sensor position determination logic that determines a boom sensor position based on a boom sensor signal during rotation of the rotatable chamber.
[0110] Example 5 is the active machine of any or all of the preceding examples, wherein the linked sensor position determination logic receives machine geometry data from a data storage device, and wherein the linked sensor position determination logic determines the sensor position based on the machine geometry data.
[0111] Example 6 is the active machine of any or all of the preceding examples, wherein the one or more controllers are configured to implement:
[0112] Pose sequence logic that actuates the boom to one or more poses during a sequence of rotational and stationary states.
[0113] Example 7 is the active machine of any or all of the preceding examples, wherein the one or more gestures include:
[0114] wherein the upper arm is in a first posture at a first angle;
[0115] The upper arm is in a second posture at a second angle.
[0116] Example 8 is the active machine of any or all of the preceding examples, wherein the second angle is offset from the first angle by approximately 90 degrees.
[0117] Example 9 is the mobile machine of any or all of the preceding examples, further comprising an arm coupled to the boom and an arm sensor coupled to the arm, the arm sensor generating an arm sensor signal indicative of an acceleration of the arm sensor; and
[0118] The sensor position determination logic includes a forearm sensor position determination logic that determines a forearm sensor position based on a forearm sensor signal during rotation of the rotatable chamber.
[0119] Example 10 is the active machine of any or all of the preceding examples 1, wherein the sensor position determination logic generates an interface that allows a user to enter a user input, and the sensor position determination logic determines the sensor position based on the user input.
[0120] Example 11 is the active machine of any or all of the preceding examples, wherein the sensor comprises an IMU.
[0121] Example 12 is a method of controlling an excavator, the method comprising:
[0122] periodically obtaining a sensor signal from a sensor operatively coupled to the excavator;
[0123] actuating one or more controllable subsystems of the excavator through a series of actions;
[0124] determining a sensor position of the sensor based on sensor signals obtained during the series of actions;
[0125] Control the excavator based on sensor position.
[0126] Example 13 is the method of any or all of the preceding examples, wherein actuating one or more controllable subsystems of the excavator through a series of actions comprises:
[0127] actuating one or more controllable subsystems to a first posture;
[0128] maintaining one or more controllable subsystems stationary in a first posture; and
[0129] Rotate the excavator while maintaining the first posture.
[0130] Example 14 is the method of any or all of the preceding examples, wherein actuating one or more controllable subsystems of the excavator through a series of actions comprises:
[0131] The excavator is rotated in the second direction while maintaining the first posture.
[0132] Example 15 is the method of any or all of the preceding examples, wherein actuating one or more controllable subsystems of the excavator through a series of actions comprises:
[0133] actuating the one or more controllable subsystems to a second posture;
[0134] maintaining the one or more controllable subsystems stationary in the second posture; and
[0135] Rotate the excavator while maintaining the second posture.
[0136] Example 16 is the method of any or all of the preceding examples, wherein determining the sensor position comprises:
[0137] A best fit of the sensor data is determined based on sensor signals obtained during a series of actions.
[0138] Example 17 is the method of any or all of the preceding examples, wherein actuating one or more controllable subsystems of the excavator through a series of actions comprises:
[0139] actuating the one or more controllable subsystems to a third posture;
[0140] maintaining the one or more controllable subsystems stationary in a third posture; and
[0141] Rotate the excavator while maintaining the third posture.
[0142] Example 18 is an active machine comprising:
[0143] Rotatable chamber;
[0144] upper arm;
[0145] a first IMU sensor coupled to the rotatable chamber;
[0146] a second IMU sensor coupled to the boom;
[0147] room sensor position determination logic that determines a position of a first IMU sensor;
[0148] a boom sensor position determination logic, the boom sensor position determination logic determining a position of a second IMU sensor;
[0149] A control system controls the active machine based on a position of the first IMU sensor and a position of the second IMU sensor.
[0150] Example 19 is the active machine of any or all of the preceding examples, wherein the chamber sensor position determination logic determines the position of the first IMU sensor based on a first sensor signal generated by the first IMU sensor; and
[0151] The arm sensor position determination logic determines the position of the second IMU sensor based on a second sensor signal generated by the second IMU sensor.
[0152] Example 20 is the active machine of any or all of the preceding examples, further comprising:
[0153] arm;
[0154] a third IMU sensor coupled to the arm;
[0155] Forearm sensor position determination logic that determines a position of a third IMU sensor based on a third sensor signal generated by the third IMU sensor.
[0156] Although the subject matter has been described in language specific to structural features and / or methodological acts, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts are disclosed as example forms of implementing the claims.
Claims
1. An activity machine (100), comprising: a rotatable chamber (102); a sensor (222) operatively coupled to the rotatable chamber (102) and configured to provide at least one sensor signal indicative of an acceleration of the sensor (222); as well as One or more controllers coupled to the sensor (222), the one or more controllers configured to implement: sensor position determination logic (230) that determines a sensor position of a sensor (222) on the rotatable chamber (102) based on the sensor signal during rotation of the rotatable chamber (102); as well as control signal generator logic that generates a control signal based on the sensor position to control the active machine (100), wherein the one or more controllers are configured to implement: action sequence logic such that the rotation of the rotatable chamber includes a sequence of rotational and stationary states, wherein the sensor position determination logic is configured to determine the sensor position based on a best fit algorithm applied to: the at least one sensor signal during a stationary state; and The at least one sensor signal during one of the rotations.
2. The mobile machine according to claim 1, further comprising: a boom coupled to the rotatable chamber and a boom sensor coupled to the boom, the boom sensor generating a boom sensor signal indicative of an acceleration of the boom sensor; as well as The sensor position determination logic includes a boom sensor position determination logic that determines a boom sensor position based on the boom sensor signal during rotation of the rotatable chamber.
3. The mobile machine according to claim 2, wherein: The boom sensor position determination logic receives machine geometry data from a data storage device, and wherein the boom sensor position determination logic determines a boom sensor position based on the machine geometry data.
4. The mobile machine according to claim 2, wherein: The one or more controllers are configured to implement: Pose sequence logic actuates the boom to one or more poses during a sequence of rotational and stationary states.
5. The mobile machine according to claim 4, wherein: The one or more gestures include: wherein the upper arm is in a first posture at a first angle; The upper arm is in a second posture at a second angle.
6. The mobile machine according to claim 5, wherein: The second angle is offset from the first angle by approximately 90 degrees.
7. The mobile machine according to claim 2, further comprising: a forearm coupled to the upper arm and a forearm sensor coupled to the forearm, the forearm sensor generating a forearm sensor signal indicative of an acceleration of the forearm sensor; as well as Wherein the sensor position determination logic includes a forearm sensor position determination logic that determines a forearm sensor position based on the forearm sensor signal during rotation of the rotatable chamber.
8. The mobile machine according to claim 1, wherein: The sensor position determination logic generates an interface that allows a user to enter a user input, and wherein the sensor position determination logic determines the sensor position based on the user input.
9. The mobile machine according to claim 1, wherein: The sensor includes an IMU.
10. A method for controlling an excavator, the method comprising: periodically obtaining a sensor signal from a sensor coupled to the excavator; actuating one or more controllable subsystems of the excavator through a series of actions; determining a sensor position of the sensor based on the sensor signals obtained during the series of motions, wherein the sensor position determination logic is configured to determine the sensor position based on a best fit algorithm applied to: the at least one sensor signal during a stationary state; the at least one sensor signal during one of the rotations; as well as The excavator is controlled based on the sensor position.
11. The method according to claim 10, wherein: Actuating the one or more controllable subsystems of the excavator through the series of actions includes: actuating the one or more controllable subsystems to a first posture; maintaining the one or more controllable subsystems stationary in a first posture; and The excavator is rotated while maintaining the first posture.
12. The method according to claim 11, wherein Actuating the one or more controllable subsystems of the excavator through the series of actions includes: The excavator is rotated in a second direction while maintaining the first posture.
13. An activity machine (100), comprising: a rotatable chamber (102); Upper arm (110); a first IMU sensor coupled to the rotatable chamber (102); a second IMU sensor coupled to the upper arm (110); room sensor position determination logic to determine a position of the first IMU sensor; A boom sensor position determination logic, wherein the boom sensor position determination logic determines a position of the second IMU sensor; as well as a control system (250) for controlling the mobile machine (100) based on the position of the first IMU sensor and the position of the second IMU sensor, wherein the chamber sensor position determination logic and the boom sensor position determination logic are configured to determine each sensor position based on a best fit algorithm applied to: at least one sensor signal during a stationary state; as well as At least one sensor signal during one of the rotations.
Citation Information
Patent Citations
System and method for controlling machine pose using sensor fusion
CN109101032A