Embodiments described herein relate to systems and methods for preventing or mitigating collisions between a dipper and tracks of a mining machine SUMMARY
Rope shovels include a dipper that typically can be controlled by an operator to move along at least three motions: hoist (up/down), crowd (in/out), and swing (left/right). During the course of mining operations, an operator may inadvertently control the dipper in such a way that results in a collision with tracks of the rope shovel. Such collisions can damage the lower machinery, the dipper, or both.
Embodiments described herein provide systems and methods that mitigate or avoid such collisions by limiting dipper movement in terms of the swing motion, crowd motion, and/or hoist motion, depending on the current proximity of the dipper to the tracks. At least some of the embodiments provide collision prevention and mitigation by defining virtual three-dimensional fields around the dipper for each of the swing, crowd, and hoist dipper motions. When one or more of these virtual fields of the dipper overlaps a virtual tracks model for the rope shovel, the one or more dipper motions associated with the one or more overlapping virtual fields is limited. These dipper motions are increasingly limited the closer that the dipper is to the tracks, which may be perceived by the operator like the increasing repelling forces of the ends of two magnets having the same pole as they come closer together. By limiting one or more dipper motions, the systems and methods described herein result in mitigated collisions (e.g., collisions with reduced severity than would otherwise occur) and, in some instances, prevented collisions (i.e., collisions that are avoided that would otherwise occur).
In one embodiment, a method is provided for preventing and mitigating collisions between a dipper and tracks of a mining machine. The method includes receiving, by an electronic processor, dipper position data indicative of a position of the dipper and determining, by the electronic processor, a distance between the dipper and the tracks of the mining machine based on the dipper position data. The method further includes setting, by the electronic processor, a motion command limit for a dipper motion based on the distance, the dipper motion being selected from a group of a swing motion, a crowd motion, and a hoist motion and controlling, by the electronic processor, the dipper motion according to a dipper motion command limited by the motion command limit.
In another embodiment, a mining machine with a collision prevention and mitigation system is provided. The mining machine includes a frame, tracks supporting the frame and configured to be driven to move the frame over a ground surface, a dipper supported by the frame, a dipper drive coupled to the dipper and configured to move the dipper in a dipper motion selected from a group of a swing motion, a crowd motion, and a hoist motion, and a dipper position sensor configured to determine a position of the dipper. The mining machine further includes an electronic controller, which includes an electronic processor and a memory, that is coupled to the dipper drive and the dipper position sensor. The electronic controller is configured to receive dipper position data from the dipper position sensor indicative of a position of the dipper and determine a distance between the dipper and the tracks of the mining machine based on the dipper position data. The electronic controller is further configured to set a motion command limit for the dipper motion based on the distance, and control, via the dipper drive, the dipper motion according to a dipper motion command limited by the motion command limit.
In another embodiment, a collision prevention and mitigation control system is provided for a mining machine having a frame, tracks supporting the frame and configured to be driven to move the frame over a ground surface, a dipper supported by the frame, a dipper drive coupled to the dipper and configured to move the dipper in a dipper motion selected from a group of a swing motion, a crowd motion, and a hoist motion, and a dipper position sensor configured to determine a position of the dipper. The control system includes an electronic controller, which includes an electronic processor and a memory, that is coupled to the dipper drive and dipper position sensor. The electronic controller is configured to receive dipper position data from the dipper position sensor indicative of a position of the dipper and determine a distance between the dipper and the tracks of the mining machine based on the dipper position data. The electronic controller is further configured to set a motion command limit for the dipper motion based on the distance and control, via the dipper drive, the dipper motion according to a dipper motion command limited by the command limit.
Additional embodiments described herein provide systems and methods that mitigate or avoid such collisions between the dipper and an exclusionary zone by limiting dipper movement in terms of the swing motion, crowd motion, and/or hoist motion, depending on the current proximity of the dipper to the exclusionary zone. At least some of the embodiments provide collision prevention and mitigation by defining virtual three-dimensional fields around the dipper for each of the swing, crowd, and hoist dipper motions. When one or more of these virtual fields of the dipper overlaps a virtual exclusionary zone model for the rope shovel, the one or more dipper motions associated with the one or more overlapping virtual fields is limited. These dipper motions are increasingly limited the closer that the dipper is to the exclusionary zone, which may be perceived by the operator like the increasing repelling forces of the ends of two magnets having the same pole as they come closer together. By limiting one or more dipper motions, the systems and methods described herein result in mitigated collisions (e.g., collisions with reduced severity than would otherwise occur) and, in some instances, prevented collisions (i.e., collisions that are avoided that would otherwise occur).
Other embodiments described herein provide systems and methods for generating a three-dimensional virtual track model. This track model may be used, for example, in collision prevention and mitigation systems and methods, such as those described herein, and in other collision prevention and mitigation systems and other mining systems using virtual track models. In some embodiments, the systems and methods described herein provide a simplified modeling process that enables quick, accurate modeling of tracks of a mining machine that can account for custom tracks that vary in size depending on the particular mining machine. Other aspects of the embodiments will become apparent by consideration of the detailed description and accompanying drawings.
Before any embodiments are explained in detail, it is to be understood that the embodiments are not limited in its application to the details of the configuration and arrangement of components set forth in the following description or illustrated in the accompanying drawings. The embodiments are capable of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein are for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having” and variations thereof are meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Unless specified or limited otherwise, the terms “mounted,” “connected,” “supported,” and “coupled” and variations thereof are used broadly and encompass both direct and indirect mountings, connections, supports, and couplings.
In addition, it should be understood that embodiments may include hardware, software, and electronic components or modules that, for purposes of discussion, may be illustrated and described as if the majority of the components were implemented solely in hardware. However, one of ordinary skill in the art, and based on a reading of this detailed description, would recognize that, in at least one embodiment, the electronic-based aspects may be implemented in software (e.g., stored on non-transitory computer-readable medium) executable by one or more electronic processors, such as a microprocessor and/or application specific integrated circuits (“ASICs”). As such, it should be noted that a plurality of hardware and software based devices, as well as a plurality of different structural components, may be utilized to implement the embodiments. For example, “servers,” “computing devices,” “controllers,” “processors,” etc., described in the specification can include one or more electronic processors, one or more computer-readable medium modules, one or more input/output interfaces, and various connections (e.g., a system bus) connecting the components.
Relative terminology, such as, for example, “about,” “approximately,” “substantially,” etc., used in connection with a quantity or condition would be understood by those of ordinary skill to be inclusive of the stated value and has the meaning dictated by the context (e.g., the term includes at least the degree of error associated with the measurement accuracy, tolerances [e.g., manufacturing, assembly, use, etc.] associated with the particular value, etc.). Such terminology should also be considered as disclosing the range defined by the absolute values of the two endpoints. For example, the expression “from about 2 to about 4” also discloses the range “from 2 to 4.” The relative terminology may refer to plus or minus a percentage (e.g., 1%, 5%, 10%, or more) of an indicated value.
Functionality described herein as being performed by one component may be performed by multiple components in a distributed manner. Likewise, functionality performed by multiple components may be consolidated and performed by a single component. Similarly, a component described as performing particular functionality may also perform additional functionality not described herein. For example, a device or structure that is “configured” in a certain way is configured in at least that way but may also be configured in ways that are not explicitly listed.
As shown in
The saddle block 58 is rotatably coupled to the boom 26 by the shipper shaft 62, which is positioned between the first end 46 and the second end 50 of the boom 26 and extends through the boom 26. The handle 30 is moveably coupled to the boom 26 by the saddle block 58. The shipper shaft 62 includes a spline pinion for engaging a rack 90 of the handle 30. The first end 82 of the handle 30 is moveably received in the saddle block 58, and the handle 30 passes through the saddle block 58 such that the handle 30 is configured for rotational and translational movement relative to the boom 26 (
The dipper 34 is pivotably coupled to the handle 30 at a wrist joint 70. The bail 66 is coupled to the rope 42 passing over the boom sheave 54 and is pivotably coupled to the dipper 34. The pivot actuator 36 controls the pitch of the dipper 34 by rotating the dipper 34 about the wrist joint 70. In the illustrated embodiment, the pivot actuator 36 includes a pair of hydraulic cylinders directly coupled between a lower portion of the handle 30 and a lower portion of the dipper 34. In other embodiments, a different type of actuator may be used.
In the illustrated embodiment, the dipper 34 is a clamshell-type dipper including a main body 72 and a rear wall 74. The main body 72 is pivotably coupled to the rear wall 74 about a dipper joint and can be controlled by a hydraulic cylinder to open apart to discharge contents within the dipper 34. In other embodiments, instead of a clamshell-type dipper, the dipper 34 is a bucket-type dipper with a pivoting dump door that latches and that is selectively opened to dump contents of the dipper 34.
The shovel 10 further includes tracks 80 configured to be driven to move the shovel 10 forward, in reverse, or to turn over a ground surface. The tracks 80 may include a first, or right, track 80a and a second, or left, track 80b. The term tracks 80 may be used herein to reference one of the tracks 80a or 80b generically, or both of the tracks 80a and 80b collectively. The base 22 is further operable to rotate relative to the tracks 80 about a swing axis 84.
The shovel 10 of
The controller 200 includes combinations of hardware and software that are configured, operable, and/or programmed to, among other things, control the operation of the shovel 10, generate sets of control signals to activate the one or more indicators 205 (e.g., a liquid crystal display [“LCD”], one or more light sources [e.g., LEDs], etc.), monitor the operation of the shovel 10, and the like. The one or more sensors 240 include, among other things, a loadpin, a strain gauge, one or more inclinometers, gantry pins, one or more motor field modules (e.g., measuring motor parameters such as current, voltage, power, etc.), one or more rope tension sensors, one or more resolvers, RADAR, LIDAR, one or more cameras, one or more infrared sensors, and the like.
The controller 200 includes a plurality of electrical and electronic components that provide power, operational control, and protection to the components and modules within the controller 200 and/or shovel 10. For example, the controller 200 includes, among other things, an electronic processor 250 (e.g., a microprocessor, a microcontroller, or another suitable programmable device), a memory 255, input units 260, and output units 265. The electronic processor 250 includes, among other things, a control unit 270, an arithmetic logic unit (“ALU”) 275, and a plurality of registers 280 (shown as a group of registers in
The memory 255 is a non-transitory computer readable medium that includes, for example, a program storage area and a data storage area. The program storage area and the data storage area can include combinations of different types of memory, such as read-only memory (“ROM”), random access memory (“RAM”) (e.g., dynamic RAM [“DRAM”], synchronous DRAM [“SDRAM”], etc.), electrically erasable programmable read-only memory (“EEPROM”), flash memory, a hard disk, an SD card, or other suitable magnetic, optical, physical, or electronic memory devices. The electronic processor 250 is connected to the memory 255 and executes software instructions that are stored in a RAM of the memory 255 (e.g., during execution), a ROM of the memory 255 (e.g., on a generally permanent basis), or another non-transitory computer readable medium such as another memory or a disc. Software included in the implementation of the shovel 10 can be stored in the memory 255 of the controller 200. The software includes, for example, firmware, one or more applications, program data, filters, rules, one or more program modules, and other executable instructions. The controller 200 and, in particular, the electronic processor 250, is configured to retrieve from memory and execute, among other things, instructions for implementing or otherwise related to the control processes and methods described herein. In other constructions, the controller 200 includes additional, fewer, or different components.
The power supply 235 supplies a nominal AC or DC voltage to the controller 200 and other components or modules of the shovel 10. The power supply 235 receives power from, for example, an engine-generator, and conditions that power (e.g., steps down, steps up, filters the power) and provides the conditioned power to the components of the shovel 10 and controller 200. For example, the power supply 235 may include a plurality of power supplies providing different power levels to different components of the shovel 10. For example, a first power supply of the power supply 235 may provide lower voltages to operate circuits and components within the controller 200 or shovel 10 and a second power supply to provide power to the drives 215, 220, 225, 227. In other constructions, the controller 200 or other components and modules within the shovel 10 are powered by line voltage provided by a power cable coupled to a power station off-board the shovel 10, one or more batteries or battery packs, or another grid-independent power source (e.g., a solar panel, etc.).
The user interface 210 is used to control or monitor the shovel 10. The user interface 210 includes a combination of digital and analog input or output devices used to achieve a desired level of control and monitoring for the shovel 10. For example, the user interface 210 includes a display (e.g., a primary display, a secondary display, etc.) and input devices such as touch-screen displays, a plurality of knobs, dials, switches, buttons, etc. The display is, for example, a liquid crystal display (“LCD”), a light-emitting diode (“LED”) display, an organic LED (“OLED”) display, an electroluminescent display (“ELD”), a surface-conduction electron-emitter display (“SED”), a field emission display (“FED”), a thin-film transistor (“TFT”) LCD, or the like. The user interface 210 can also be configured to display conditions or data associated with the shovel 10 in real-time or substantially real-time. For example, the user interface 210 is configured to display measured electrical characteristics of the shovel 10, the status of the shovel 10, etc. In some implementations, the user interface 210 is controlled in conjunction with the one or more indicators 205 (e.g., LEDs, speakers, etc.) to provide visual or auditory indications (e.g., from a horn of the shovel 10) of the status or conditions of the shovel 10. In some implementations, at least a portion of the user interface 210 is off-board of the shovel 10 and includes control inputs enabling remote control of the shovel 10 by an operator not present in the operator cab.
The crowd drive 215, the hoist drive 220, the swing drive 225, and the tracks drive 227 may each include a respective motor and a drive controller configured to drive the motor based on commands from the controller 200. The commands may be generated in response to inputs received from an operator of the shovel 10 via the user interface 210.
The dipper drives 310 include the crowd drive 215, the hoist drive 220, and the swing drive 225 that are also illustrated in
In some embodiments, the dipper drives 310 implement closed loop feedback to control the respective motions of the dipper 34 according to the motion commands received from the controller 200. The feedback (e.g., sensed speed or torque) may be provided to the dipper drives 310 from the sensors 240, directly or via the controller 200.
The dipper position sensors 315 include a crowd sensor 315a, a hoist sensor 315b, and a swing sensor 315c. The dipper position sensors 315 form a portion of the sensors 240 (see
As also illustrated in
In addition to virtual models of the dipper 34 and tracks 80, the model data 325 may also include dimensional data associated with the dipper 34, tracks 80, and any other components of the rope shovel 10. For example, the model data 325 may include dimensional data associated with the base 22. Likewise the model data 325 may include dimensional data associated with a support structure of the dipper 34, or dipper support 350 (see
The controller 200 may also be referred to as a control system, such as a collision prevention and mitigation control system (e.g., when implementing the method 500) or a virtual track modeling system (e.g., when implementing the method 800 described below with respect to
The electronic processor 250 may be configured to determine the position, or (x, y, z) coordinates, of a point on the rope shovel 10 relative to the track center 405, based on a combination of one or more sensor readings and/or the dimensional data stored in memory 255. The sensor readings used to determine the coordinates of a point on the rope shovel 10 may include, but are not limited to, readings generated by the dipper position sensors 315. The dimensional data used to determine the coordinates of a point on the rope shovel 10 may include, but is not limited to, dimensional data associated with the base 22, dipper 34, tracks 80, and dipper support 350.
As an example, positions of one or more of the reference points associated with the dipper 34, or dipper reference points 410, shown in
The electronic processor 250 may be configured to determine respective sets of (x, y, z) coordinates for each dipper reference point making up the virtual dipper model 412 (e.g., the reference points 410a-410c) based on a combination of the dimensional data stored in memory 255 and swing, crowd, and hoist measurements taken by the dipper position sensors 315. When the dipper 34 is moved to a new position, the electronic processor 250 is operable to determine a new respective set of (x, y, z) coordinates for each one of the dipper reference points 410a-410c based on a combination of the dimensional data and updated values of the swing, crowd, and hoist measurements taken by the dipper position sensors 315. Therefore, the electronic processor 250 may be configured to determine the position of a dipper reference point 410 relative to the track center 405 regardless of the extent to which the dipper 34 is hoisted, crowded, or rotated.
Although described with respect to the dipper reference points 410a-410e, the electronic processor 250 may also be configured to determine a set of (x, y, z) coordinates, or a position relative to the track center 405, for any point on or near a component of the rope shovel 10. For example, the electronic processor 250 may be configured to determine the (x, y, z) coordinates of a point on a surface of the boom 26 or a point on the surface of the handle 30. In addition, as will be described in more detail below, the electronic processor 250 may be configured to derive, or determine, (x, y, z) coordinates of a point on a surface of the tracks 80 based on the (x, y, z) coordinates of a dipper reference point 410. With respect to
In some embodiments, the data defining the coordinate system 400 and position information for the shovel 10 on that coordinate system 400, including the current positions for the various reference points making of the virtual model of the dipper 34 and the virtual model of the tracks 80, including the swing position, crowd position, and hoist position of the dipper 34, and including the position information for the dipper support 350, may be stored as part of the model data 325.
In block 505, the electronic processor 250 receives dipper position data indicative of a position of the dipper 34. The dipper position data is provided to the electronic processor 250 by one or more of the dipper position sensors 315. For example, the dipper position data may include an output from one or more of the crowd sensor 315a, the hoist sensor 315b, and the swing sensor 315c. The output of the crowd sensor 315a indicates the crowd position of the dipper 34, the hoist sensor 315b indicates the hoist position of the dipper 34, and the swing sensor 315 indicates the swing position of the dipper 34.
Returning to
As noted, the distance between the dipper 34 and the tracks 80 may be used directly as an input into the limit function(s) or may be used indirectly in advance to generate the limit function(s) such that the current position of the dipper 34 may be used as an input into the limit function(s). In some embodiments, the electronic processor 250 determines a distance between the dipper 34 and the tracks 80 of the mining machine based on the dipper position data. In some embodiments, the distance may be a shortest distance between the dipper 34 and the tracks 80 (e.g., the distance between the two nearest points of the dipper 34 and the tracks 80). The distance may be a length measurement across three dimensions of space (e.g., x, y, and z dimensions) and, accordingly, may be referred to as a three-dimensional distance.
Like the virtual dipper model 412 of
Additionally, in some embodiments, to determine the position of the tracks 80, the electronic processor 250 determines a position of a three-dimensional virtual tracks model (a virtual model of the tracks 80) in the three-dimensional coordinate system (e.g., the local coordinate system 400). As shown in
With the positions of the dipper 34 and tracks 80 determined, the electronic processor 250 may then determine the distance between the dipper 34 and the tracks 80. For example, in some embodiments, the electronic processor 250 may determine a shortest distance 615 between the virtual dipper model 605 and the virtual tracks model 610 on the three-dimensional coordinate system 400, where the shortest distance represents the distance between the dipper 34 and the tracks 80 used in the method 500. For example, as described above, the electronic processor 250 is configured to determine the position of three-dimensional models 605 and 610 of the dipper 34 and the tracks 80, respectively, on the coordinate system 400. The electronic processor 250 may then execute a nearest neighbor algorithm, or similar known algorithm, to determine the shortest distance 615 between the three-dimensional models 605 and 610 in the coordinate system 400. As the distance is determined for two, three-dimensional models 605 and 610 in a three-dimensional coordinate system 400, the distance is a length measurement across three dimensions (e.g., x, y, and z dimensions). This distance measurement across three dimensions (also referred to as a three-dimensional distance) contrasts with, for example, a length measurement in a two-dimensional coordinate system (e.g., that considers just crowd and hoist motions) or between two points in a one-dimensional coordinate system (e.g., that considers just crowd motion or just hoist motion).
In some embodiments, other techniques are implemented by the electronic processor 250 to determine the distance between the dipper 34 and the tracks 80.
In some embodiments, the limit functions 330 include a slow region function and a stop region function for each of the crowd, hoist, and swing motions. In such embodiments, the electronic processor 250 may select the stop region function for a dipper motion in response to determining that the distance 615 is below a stop region threshold for that dipper motion, and may select the slow region function for a dipper function in response to determining that the distance 615 is above the stop region threshold, but below the slow region threshold for that dipper motion. In response to determining that the distance 615 is above the slow region threshold, the electronic processor 250 may return the default limit value for the motion command limit. In some embodiments, the slow region thresholds, stop region thresholds, and default limit values for each of the hoist, crowd, and swing motions are stored in the memory 255 (e.g., as part of the limit function 330).
In some embodiments, the slow region function (see plot 700 in
In the illustrated embodiment of
In some embodiments, the limit functions of
In some embodiments, the limit functions 330 include one or more equations (e.g., defining the function illustrated in
In block 520, the electronic processor 250 controls the dipper motion according to a dipper motion command limited by the motion command limit. For example, in response to operator operation of one of the motion command input devices 305 (see
In some embodiments of the method 500, in block 515, rather than setting a motion command limit for one dipper motion, the electronic processor 250 sets a motion command limit for two or three dipper motions based on the distance between the dipper 34 and the tracks 80, where the dipper motions are selected from the group of the swing motion, the crowd motion, and the hoist motion. In these embodiments, a similar process used to set the motion command limit for one dipper motion is used to set the dipper motion for the other dipper motions. For example, to set the motion command limits for the dipper motions, the electronic processor 250 may determine a limit value for each dipper motion using the distance between the dipper 34 and the tracks 80 (directly or indirectly) with one or more of the limit functions 330 stored in the memory 255 (see
Stated another way, in some embodiments of the method 500, the dipper motion is the crowd motion and motion command limit is a crowd motion command limit, and, in block 515, the electronic processor 250 further sets one or both of: (a) a hoist motion command limit for the hoist motion based on the distance and (b) a swing motion command limit for the swing motion based on the distance. Then, in block 520, the electronic processor 250 is configured to control the dipper motion of the dipper 34 according to dipper motion commands (e.g., crowd, hoist, and swing commands) limited by each of the crowd motion command limit, hoist motion command limit, and swing motion command limit.
In some embodiments, after block 520, the electronic processor 250 loops back to block 505 such that the electronic processor 250 repeatedly executes the method 500. By repeatedly executing the method 500, the electronic processor 250 may account for changes over time in the position of the dipper 34 and in the dipper motion command received via the dipper motion command input device 305. Thus, in some embodiments, the electronic processor 250 repeatedly determines the distance between the dipper 34 and the tracks 80 over time as the dipper 34 moves and updates the motion command limit based on the distance 615 as the distance 615 is repeatedly determined.
Accordingly, in some embodiments, in a first pass through method 500, to set the motion command limit for the dipper motion based on the distance (in block 515), the electronic processor 250 reduces the motion command limit from an initial value to a reduced value according to a function that defines the motion command limit to be lower as the distance 615 is reduced (e.g., according to the function for plot 710 in
To assist in illustrating the method 500, several example scenarios in accordance with the plot 710 of
In scenario 1, the distance 615 between the tracks 80 and the dipper 34 is 0.5 meters (m), and a dipper motion command input of 75% is received by the electronic processor 250. Accordingly, with reference to
In scenario 2, the distance 615 between the tracks 80 and the dipper 34 is 0.5 meters (m), and a dipper motion command input of 5% is received by the electronic processor 250. Accordingly, with reference to
In scenarios 3, 4, and 5 of Table I, the dipper motion command limit and dipper motion command are generated following a similar technique as explained with respect to scenarios 1 and 2 and, accordingly, are not explained in further detail.
As previously noted with respect to
In light of the above discussion, it should be apparent that, as the dipper 34 is controlled to be closer to the tracks 80, as a general rule, the motion commands are further limited. As a result, in some embodiments, when the dipper 34 is very close to the tracks 80, one or more of the dipper motions are restricted such that the dipper 34 moves slowly or not at all in response to motion command inputs from an operator. Additionally, in some embodiments, when the dipper 34 is controlled to crowd in (or hoist down) quickly by the operator towards the tracks 80, the electronic processor 250 will limit the crowd (or hoist) motion command more and more such that the dipper 34 is gradually slowed to prevent a collision with the tracks 80 or at least mitigate the impact of a collision with the tracks 80.
In some embodiments, the motion limits described with respect to the method 500 of
In effect, at least in some embodiments, the limit functions 330 of the rope shovel 10 define virtual three-dimensional fields around the dipper 34 for each of the swing, crowd, and hoist dipper motions. When one or more of these virtual fields of the dipper 34, which may be mapped onto the coordinate system 400 around the virtual dipper 605, overlaps the virtual tracks model 610, the one or more dipper motions associated with the one or more overlapping virtual fields is limited. These dipper motions are increasingly limited the closer that the dipper 34 is to the tracks 80. Accordingly, the increasing limitations imposed by the electronic processor 250 as the overlapping virtual fields of the dipper 34 get closer to the tracks 80 are perceived like the repelling forces of the ends of two magnets having the same pole. That is, as the same pole of two magnets approach one another, the repelling force of the magnetic fields increases. From the perspective of an operator of the shovel 10, the limit functions are smoothly applied in a natural and intuitive manner that does not inhibit productivity. Further, because, at least in some embodiments, the limit functions are applied independently to each of the dipper motions (hoist, crowd, and swing), limits are not placed on dipper motions unnecessarily. For example, if the dipper 34 is close enough to the tracks such that the virtual field for the crowd and hoist motions overlap the tracks 80, but the virtual field for the swing motion does not overlap the tracks 80, the operator is able to continue to control the dipper 34 to swing without limitation.
As described above with respect to method 500, a virtual model of the tracks 80 used in the collision prevention and mitigation system may be obtained during a calibration process for modeling tracks of a mining machine.
In block 805, the electronic processor 250 moves the dipper 34 to a first position associated with the tracks 80 of the rope shovel 10. For example, using the dipper motion command input devices 305, a rope shovel operator may input a command for moving the dipper 34 to the first position associated with the tracks 80. The electronic processor 250 receives the operator input signals from the dipper motion command input devices 305 and translates the signals to corresponding motion commands for the dipper drives 310. In response to receiving the motion commands from the electronic processor 250, the dipper drives 310 control movement of the dipper 34 to the first position associated with the tracks 80.
In some embodiments, the first position associated with the tracks 80, or first track position, is located near a front end of the tracks 80. For example, as shown in
Moving the dipper 34 to the first track position 900a may include aligning and/or contacting the first track position 900a with a specific point on the surface of the dipper 34. For example, the electronic processor 250 may be configured to move the dipper 34 such that one of the dipper reference points 410 is aligned with and/or contacting the first track position. As shown in
In block 810, the electronic processor 250 determines a first data point associated with, or indicative of, the first track position 900a. The first data point may include, but is not limited to, one or more measurements taken by the dipper position sensors 315 while the dipper 34 is located at the first track position 900a. For example, the electronic processor 250 may determine, based on measurements taken by the dipper position sensors 315, the extent to which the dipper 34 is crowded, the extent to which the dipper 34 is hoisted, and/or the rotational position of the dipper 34 while the dipper 34 is located at the first track position 900a. The crowd, hoist, and rotation measurements taken by the dipper position sensors 315 may be included in and/or stored in association with the first data point.
In addition, the electronic processor 250 may be configured to determine a set of (x, y, z) coordinates representing the first track position 900a, which may be included and/or stored in association with the first data point. As described above with respect to the rope shovel's local coordinate system 400, the electronic processor 250 may be configured to determine, or derive, the (x, y, z) coordinates of a point on or near the tracks 80 based on the (x, y, z) coordinates of a particular dipper reference point 410. Therefore, the (x, y, z) coordinates of the first track position 900a may be derived from the (x, y, z) coordinates of a particular dipper reference point 410 while the dipper 34 is located at the first track position 900a.
With respect to the
Although the (x, y, z) coordinates of the first track position 900a are illustrated and described as being equivalent to the (x, y, z) coordinates of the dipper center 410a, it should be understood that (x, y, z) coordinates of the first track position 900a may be derived from any of the respective (x, y, z) coordinates of the dipper reference points 410. For example, if the front right vertex 410b of the dipper is aligned with and/or contracting the front-top-right of right track 80a, the electronic processor may be configured to determine that the (x, y, z) coordinates of the first track position 900a are equivalent to the (x, y, z) coordinates of the front right dipper vertex 410b. In other instances, the electronic processor 250 may derive the (x, y, z) coordinates of the first track position 900a from the respective (x, y, z) coordinates of the rear right dipper vertex 410c, the front left dipper vertex 410d, the rear left dipper vertex 410e, or any other reference point defined on a surface of the dipper 34.
In block 815, the electronic processor 250 moves the dipper 34 to a second position associated with the tracks 80 of the rope shovel 10. For example, using the dipper motion command input devices 305, a rope shovel operator may input a command for moving the dipper 34 to the second position associated with the tracks 80. The electronic processor 250 receives the operator input signal the dipper motion command input devices 305 and translates the signals to corresponding motion commands for the dipper drives 310. In response to receiving the motion commands from the electronic processor 250, the dipper drives 310 control movement of the dipper 34 to the second position associated with the tracks 80.
In some embodiments, the second position associated with the tracks 80, or second track position, is located near a rear end of the tracks 80. For example, as shown in
Moving the dipper 34 to the second track position 900b may include aligning and/or contacting the second track position 900b with a specific point on the surface of the dipper 34. For example, the electronic processor 250 may be configured to move the dipper 34 such that one of the dipper reference points 410 is aligned with and/or contacting the second track position 900b. As shown in
In block 820, the electronic processor 250 determines a second data point associated with, or indicative of, the second track position 900b. The second data point may include, but is not limited to, one or more measurements taken by the dipper position sensors 315 while the dipper 34 is located at the second track position 900b. For example, the electronic processor 250 may determine, based on measurements taken by the dipper position sensors 315, the extent to which the dipper 34 is crowded, the extent to which the dipper 34 is hoisted, and/or the rotational position of the dipper 34 while the dipper 34 is located at the second track position 900b. The crowd, hoist, and rotation measurements taken by the dipper position sensors 315 may be included in and/or stored in association with the second data point.
In addition, the electronic processor 250 may be configured to determine a set of (x, y, z) coordinates representing the second track position 900b, which may be included and/or stored in association with the second data point. As described above with respect to the rope shovel's local coordinate system 400, the electronic processor 250 may be configured to determine, or derive, the (x, y, z) coordinates of point on or near the tracks 80 based on the (x, y, z) coordinates of a particular dipper reference point 410. Therefore, the (x, y, z) coordinates of the second track position 900b may be derived from the (x, y, z) coordinates of a particular dipper reference point 410 while the dipper 34 is located at the second track position 900b.
With respect to
Although the (x, y, z) coordinates representing the second track position 900b are illustrated and described as being equivalent to the (x, y, z) coordinates of the dipper center 410a, it should be understood that (x, y, z) coordinates of the second track position 900b may be derived from any of respective set of (x, y, z) coordinates representing the dipper reference points 410. For example, if the front right vertex 410b of the dipper is aligned with and/or contracting the rear-top-right vertex of right track 80a, the electronic processor 250 may be configured to determine that the (x, y, z) coordinates of the second track position 900b are equivalent to the (x, y, z) coordinates of the front right dipper vertex 410b. In other instances, the electronic processor 250 may derive the (x, y, z) coordinates of the second track position 900b from the respective (x, y, z) coordinates of the rear right dipper vertex 410c, the front left dipper vertex 410d, the rear left dipper vertex 410e, or any other reference point defined on a surface of the dipper 34.
In block 825, the electronic processor 250 generates a virtual model of the tracks 80 based on the first and second data points. For example, the electronic processor 250 may be configured to extrapolate virtual boundaries of the tracks 80 from the data included in the first and second data points. The virtual boundaries of the tracks 80 collectively form the virtual model of the tracks 80 and define a three-dimensional volume representing the tracks 80 in the rope shovel's local coordinate system 400. In some embodiments, the electronic processor 250 may be further configured to combine the first and second data points with dimensional data stored in memory 255 when extrapolating virtual boundaries of the tracks 80.
In some embodiments, the electronic processor 250 may be configured to define a virtual track boundary as one or more points within the local coordinate system 400 that represent and/or are otherwise extrapolated from the coordinates representing the first and second track positions. In such embodiments, the electronic processor 250 may be configured to generate a virtual model of the tracks 80 that is defined by the one or more boundary points extrapolated from the coordinates representing the first and second track positions. In some embodiments, the electronic processor 250 may be configured to define a virtual track boundary as a one or more line segments within the local coordinate system 400 that intersect, or are otherwise extrapolated from, the coordinates of the first and/or second track positions. In such embodiments, the electronic processor 250 may be configured to generate a virtual model of the tracks 80 that is defined by the intersection or joining of the line segments representing virtual track boundaries. In some embodiments, the electronic processor 250 may be configured to define a virtual track boundary as one or more arcs within the local coordinate system 400 that intersect, or are otherwise extrapolated from, the coordinates representing the first and/or second track positions. In such embodiments, the electronic processor 250 may be configured to generate a virtual model of the tracks 80 that is defined by the intersection or joining of the arcs representing virtual track boundaries. In some embodiments, the electronic processor 250 is configured to define a virtual track boundary as one or more curves (e.g., a line, a parabola, an ellipse, a circle, etc.) within the local coordinate system 400 that intersect, or are otherwise extrapolated from, the coordinates representing the first and/or second track positions. In such embodiments, the electronic processor 250 may be configured to generate a virtual model of the tracks 80 that is defined by the intersection of curves representing virtual track boundaries. In some embodiments, the electronic processor 250 may be configured to define a virtual track boundary as being a plane within local coordinates system 400 that intersects, or is otherwise extrapolated from, the coordinates representing the first and/or second track positions within the local coordinate system 400. In such embodiments, the electronic processor 250 may be configured to generate a virtual model of the tracks 80 that is defined by the intersection of planes representing virtual track boundaries. In some embodiments, the electronic processor 250 may be configured to define a virtual track boundary as a combination of one or more points, line segments, arcs, curves, and/or planes within the local coordinate system 400 that intersect, or are otherwise extrapolated from, the coordinates representing the first and/or second track positions within the local coordinate system 400. In such embodiments, the electronic processor 250 may be configured to generate a virtual model of the tracks 80 that is defined by the intersection of points, line segments, arcs, curves, and/or planes representing virtual track boundaries. It should be understood that the above described examples of defining track boundaries are not limiting, as the electronic processor 250 may be configured to define virtual track boundaries using alternative means. Furthermore, it should be understood that the electronic processor 250 may be further configured to use the dimensional data stored in memory 255 in combination with the first and second data points when generating the virtual track boundaries.
With reference to
As shown in
The electronic processor 250 may be further configured to extrapolate the six remaining boundary vertices of the box-shaped right track model 1100a from the first set of cartesian coordinates representative of the first track position 900a, the second set of cartesian coordinates from the second track position 900b, and dimensional data associated with the tracks 80 that is stored in memory 255.
For example, the electronic processor 250 may be configured to determine the cartesian coordinates of the boundary vertex that joins the front surface 1105, bottom surface 1125, and right surface 1115 of the right track model 1100a (hereinafter referred to as “front-bottom-right vertex 1130”) based on the first set of cartesian coordinates and a known height of the right track 80a that is stored in memory 255. In particular, the electronic processor 250 may determine that the front-bottom-right vertex 1130 has the following set of cartesian coordinates: (xa, ya, (za—height)), where the z-component of the front-bottom-right vertex 1130 equals the difference between the z-component of the first track position 900a and the known height of right track 80a. Similarly, the electronic processor 250 may be configured to extrapolate the cartesian coordinates of the boundary vertex that joins the rear surface 1120, bottom surface 1125, and right surface 1115 of the right track model 1100a (hereinafter referred to as “rear-bottom-right vertex 1135”) based on the second set of cartesian coordinates and the known height of the right track 80a. In particular, the electronic processor 250 may determine that the rear-bottom-right vertex 1135 has the following set of cartesian coordinates: (xb, yb, (zb—height)), where the z-component of the rear-bottom-right vertex 1135 equals the difference between the z-component of the second track position 900b and the known height of right track 80a.
The electronic processor 250 may be further configured to determine the cartesian coordinates of the boundary vertex that joins the front surface 1105, top surface 1125, and left surface 1140 of the right track model 1100a (hereinafter referred to as “front-top-left vertex 1145”) based on the first set of cartesian coordinates and a known width of the right track 80a that is stored in memory 255. In particular, the electronic processor 250 may determine that the front-top-left vertex 1145 has the following set of cartesian coordinates: ((xa—width), ya, za), where the x-component of the front-top-left vertex 1145 equals the difference between the x-component of the first track position 900a and the known width of right track 80a. Similarly, the electronic processor 250 may be further configured to determine the cartesian coordinates of the boundary vertex that joins the rear surface 1120, top surface 1125, and left surface 1140 of the right track model 1100a (hereinafter referred to as “rear-top-left vertex 1150”) based on the second set of cartesian coordinates and the known width of the right track 80a. In particular, the electronic processor 250 may determine that the rear-top-left vertex 1150 has the following set of cartesian coordinates: ((xb—width), yb, zb), where the x-component of the rear-top-left vertex 1150 equals the difference between the x-component of the first track position 900a and the known width of right track 80a.
In addition, the electronic processor 250 may be configured to determine the cartesian coordinates of the boundary vertex that joins the front surface 1105, bottom surface 1125, and left surface 1140 of the right track model 1100a (hereinafter referred to as “front-bottom-left vertex 1155”) based on the first set of cartesian coordinates, the known height of the right track 80a, and the known width of the right track 80a. In particular, the electronic processor 250 may determine that the front-bottom-left vertex 1155 has the following set of cartesian coordinates: ((xa—width), ya, (za—height)). The x-component of the front-bottom-left vertex 1155 equals the difference between the x-component of the first track position 900a and the known width of right track 80a, and the z-component of the front-bottom-left vertex 1155 equals the difference between the z-component of the first track position 900a and the known height of right track 80a. Similarly, the electronic processor 250 may be further configured to determine the cartesian coordinates of the boundary vertex that joins the rear surface 1120, bottom surface 1125, and left surface 1140 of the right track model 1100a (hereinafter referred to as “rear-bottom-left vertex 1160”) based on the second set of cartesian coordinates, the known height of the right track 80a, and the known width of the right track 80a. In particular, the electronic processor 250 may determine that the rear-bottom-left vertex 1160 has the following set of cartesian coordinates: ((xb—width), yb, (zb—height)). The x-component of the rear-bottom-left vertex 1160 equals the difference between the x-component of the second track position 900b and the known width of right track 80a and the z-component of the rear-bottom-left vertex 1160 equals the difference between the z-component of the second track position 900b and the known height of right track 80a.
In view of the above, the right track model 1100a generated by the electronic processor 250 includes six boundary surfaces and eight boundary vertices, wherein each boundary surface is defined by a respective set, or group, of four boundary vertices. The front surface 1105 of the right track model 1100a is bound by the first track position 900a, the front-bottom-right vertex 1130, the front-top-left vertex 1145, and the front-bottom-left vertex 1155. The top surface 1110 of the right track model 1100a is bound by the first track position 900a, the second track position 900b, the front-top-left vertex 1145, and the rear-top-left vertex 1150. The right surface 1120 of the right track model 1100a is bound by the first track position 900a, the second track position 900b, the front-bottom-right vertex 1130, and the rear-bottom-right vertex 1135. The rear surface 1120 of the right track model 1100a is bound by the second track position 900b, the rear-bottom-right vertex 1135, the rear-top-left vertex 1150, and the rear-bottom-left vertex 1160. The bottom surface 1125 of the right track model 1125 is bound by the front-bottom-right vertex 1130, the rear-bottom-right vertex 1135, the front-bottom-left vertex 1155, and the rear-bottom-left vertex 1160. The left surface 1140 of the right rack model 1100a is bound by the front-top-left vertex 1145, the rear-top-left vertex 1150, the front-bottom-left vertex 1155, and the rear-bottom-left vertex 1160.
In some instances, the tracks 80 may have a curved shape (e.g., see side view of
If it can be assumed that the right track 80a is approximately equal in size to the left track 80b, the electronic processor 250 may be configured to generate the left track model 1100b by mirroring, or reflecting, the boundary vertices included in the right track model 1100a across the y-z plane of the local coordinate system 400. In other words, if the right and left tracks 80a, 80b are approximately equal in size, the electronic processor 250 may be configured to define a set of boundary vertices for the left track model 1100b by flipping the signs of (e.g., changing from positive to negative) the x-components of the boundary vertices included in the right track model 1100a. For example, the cartesian coordinates of the front-top-left vertex of the left track model 1100b, (−xa, ya, za), are determined by flipping the sign of the x-component included in the cartesian coordinates representing the first track position 900a.
Although the virtual track model 1100 is described in several embodiments herein as being generally box-shaped, in some embodiments, the virtual track model may be generated as a variety of different shapes. For example, as described above, the electronic processor 250 may be configured to generate a virtual track model that is any combination of one or more boundary points, line segments, arcs, curves, and/or planes that define a three dimensional volume representing the tracks 80.
The virtual track model 1100 generated by electronic processor 250 may be used in the collision prevention and mitigation system described above with respect to method 500. For example, the virtual track model 1100 may be generated and stored in the memory 255 as part of the model data 325. Accordingly, the distance between the dipper 34 and the tracks 80 determined and used as part of the step 515 may include receiving the virtual track model 1100 from the memory 255. In some embodiments, step 515 of the method 500 includes generating and using, by the electronic processor 250, the virtual track model 1100 without storing the virtual track model 1100 in the memory 255.
Referring back to generation of a virtual track model, in some instances, the right track 80a is not assumed to be approximately equal in size to the left track 80b. For example, the respective front ends of the right and left tracks 80a, 80b may be configured to be individually extended and/or retracted. Thus, at times, the right track 80a may be shorter than, the same length as, or longer than the left track 80b. Therefore, while performing the track modeling method 800, the electronic processor 250 may be further configured to move the dipper 34 to a third track position and to determine a third data point associated with the third track position to accommodate for differences in track length.
Furthermore, the electronic processor 250 may be configured to move the dipper 34 to the third track position 1200c (e.g., after block 820 in the method 800 of
In these embodiments of the method 800, in block 825, the electronic processor 250 is operable to generate a virtual model of the tracks 80 using the first, second, and third data points associated with track positions 1200a-1200c. In particular, by using the first data point associated with the first track position 1200a and the second data point associated with the second track position 1200b, the electronic processor 250 is operable to generate a right track model 1300a (
As shown in
In addition, in some embodiments (e.g., where the rear end of the tracks 80 cannot be individually extended or retracted), it may be assumed that the distance from the track center 405 to the rear-top-right vertex of right track 80a (e.g., the second track position 1200b) is equal to the distance from the track center 405 to the rear-top-left vertex of left track 80b. Accordingly, the electronic processor 250 may be configured to extrapolate the coordinates of the rear-top-left boundary vertex 1305 from the coordinates representing the second track position 1200b. In particular, the electronic processor 250 may derive the coordinates of the rear-top-left boundary vertex 1305, (−xb, yb, zb), by flipping the sign of the x-component included in the second set of coordinates (xb, yb, zb). In a manner that is similar to the process described above, the electronic processor 250 may be configured to extrapolate coordinates of the three remaining rear boundary vertices (e.g., the rear-top-right vertex, the rear-bottom-left vertex, and the rear-bottom-right vertex) of the left track model 1300b from the coordinates of the rear-top-left boundary vertex 1305, (−xb, yb, zb). Therefore, the track modelling method 800 may be modified to generate a virtual model of tracks 80 that have varying lengths. Although described with respect to rope shovel tracks 80 having front ends that can be individually extended or retracted, it should be understood that the above described track modelling method may also be useful for generating tracks having rear ends that can be individually extended or retracted. Furthermore, it should be understood that the above described track modelling method may be used to generate a virtual model of tracks that cannot be individually extended or retracted. In such embodiments, the third data point associated with the third track position is redundant and provides for additional accuracy when generating the virtual track model.
In some embodiments, both the front end and the rear end of an individual track 80 may be configured to extend and retract. In such embodiments, the electronic processor 250 may not assume that the distance from the track center 405 to a point located on the rear surface of right track 80a is equal to the distance from the track center 405 to a corresponding point located on the rear surface of left track 80b. Rather, while performing the track modeling method 800, the electronic processor 250 may be configured to generate a virtual track model based on four track positions to accommodate for differences in track length.
For example, four track positions 1400a-1400d that may be used by the electronic processor 250 when generating a virtual track model are illustrated in
In some embodiments, the electronic processor 250 may be configured to generate a virtual track model based on data points associated with more than four track positions. In such embodiments, extrapolating virtual track boundaries from more than four track positions may provide for a more accurate track model than when compared to virtual track boundaries that are extrapolated from four or fewer track positions. For example, the track modeling method 800 may be modified such that the electronic processor 250 is configured to extrapolate virtual track boundaries from as many as five, six, eight, ten, twelve, or more track positions when generating a virtual track model. However, in some instances, the method 800 may require an excessive amount of time to complete if virtual track boundaries are extrapolated from too many positions associated with the tracks 80. That is, moving the dipper 34 to and deriving data points from a large number of track positions before generating the virtual track model may be inefficient and not provide improved accuracy that is worth the additional time. Accordingly, to prevent the track modeling method 800 from requiring too much time to complete, it may be desirable to generate a virtual model of the tracks 80 that is derived from fewer than 12 positions associated with the tracks 80. In some embodiments, it may be desirable to generate a virtual model of the tracks 80 that is derived from fewer than 10, 8, or 6 positions associated with the tracks 80, or in a range between 3 to 6, 3 to 8, 3 to 10, 3 to 12, 4 to 6, 4 to 10, or 4 to 12 positions associated with the tracks 80. These example ranges are inclusive of endpoints such that, for example, a range between 3 to 6 includes 3, 4, 5, and 6. As another example, six track positions 1500a-1500f that may be used by the electronic processor 250 when generating a virtual track model are illustrated in
Similar to the embodiments described above with respect to
In some embodiments, the respective locations of track positions are determined according to which information associated with the tracks 80 is known in advance of the process. For example, in the embodiments described above, virtual track boundaries are derived in part from known dimensional data associated with the tracks 80, such as track height and/or track width. However, in some embodiments, predetermined values of the track height and/or the track width are not stored in memory 255 in advance. Accordingly, in such embodiments, the respective locations of track positions may be chosen such that the electronic processor 250 is operable to extrapolate track dimensions from data points indicative of the track positions.
The location of the third track position 1600c is chosen to be located on a top surface of the right track 80a. In particular, the third track position 1600c is chosen to be located at a position on the top surface of right track 80a that has the tallest height, or largest displacement along the z-axis relative to the track center 405. For example, when the right track 80a is curved, a middle portion of the right track 80a is taller than the front and/or rear ends of the right track 80a. Thus, the third track position 1600c may be located on top of a middle portion of the right track 80a to enable the electronic processor to determine a height of the right track 80a.
The electronic processor 250 may be configured to derive the height of right track 80a from a relationship between the z-component of the third track position 1600c and the z-component of the first track position 1600a. In some embodiments, it may be assumed that the height, or z-component, of the first track position 1600a is a fraction of the height of the third track position 1600c. Accordingly, the electronic processor 250 may be configured to determine that the height of right track 80a is equal to a multiple of the difference between the z-component of the third track position 1600c and the z-component of the first track position 1600a. For example, if it is assumed that the height of the first track position 1600a is half the height of the third track position 1600c, the height of right track 80a is calculated by doubling the difference between the z-components of the first and third track positions 1600a, 1600c.
Although deriving track height is described with respect to the illustrated embodiment of
In some instances, it can be assumed that the height of right track 80a is approximately equal to the height of left track 80b. Accordingly, in such instances, the electronic processor 250 may be configured to determine that the calculated height of the right track 80a is equal to the height of the left track 80b when generating a virtual model of the tracks 80. As a first example, if it can be assumed that the right and left tracks 80a, 80b are equal in height and other boundary dimensions (e.g., length and width), the electronic processor 250 may be configured to generate a virtual model of the left track 80b by mirroring, or reflecting, the virtual model of right track 80a across the y-z plane of the local coordinate system 400. As another example, if it can be assumed the right and left tracks 80a, 80b are approximately equal in height but not equal in length, the electronic processor 250 may be configured to generate a virtual model of the left track 80b using the calculated height of right track 80a and the modelling processes described above with respect to
In some instances, it can be assumed that the width of right track 80a is approximately equal to the width of left track 80b. Accordingly, in such instances, the electronic processor 250 may be configured to determine that the calculated width of the right track 80a is equal to the width of the left track 80b when generating a virtual model of the tracks 80. As a first example, if it can be assumed that the right and left tracks 80a, 80b are equal in width and other boundary dimensions (e.g., length and height), the electronic processor 250 may be configured to generate a virtual model of the left track 80b by mirroring, or reflecting, the virtual model of right track 80a across the y-z plane of the local coordinate system 400. As another example, if it can be assumed the right and left tracks 80a, 80b are approximately equal in width but not equal in length, the electronic processor 250 may be configured to generate a virtual model of the left track 80b using the calculated width of right track 80a and the modelling processes described above with respect to
In some embodiments, the track modeling method 800 may be modified to enable the electronic processor 250 to determine a curvature of the tracks 80. For example,
The first track position 1800a is located at the front-right vertex of right track 80a. The second track position 1800b is located at a midpoint of the top surface of right track 80a. That is, the second track position 1800b is centered between the front and rear track ends on the top surface of right track 80a. The third track position 1800c is located at the center of the right-surface of the right track 80a. That is, the third track position 1800c is located at position on the right surface of right track 80a that is centered between the top and bottom surface of the right track 80a. Furthermore, the third track position 1800c is centered between the front and rear ends of the right track 80a.
While determining a curvature of the right track 80a, the electronic processor 250 is configured to move the dipper 34 to and determine respective sets of cartesian coordinates representing the track positions 1800a-1800c. At least in some embodiments, the shape of the right surface of right track 80a can be approximately modeled as an ellipse. Accordingly, the electronic processor 250 may be configured to extrapolate virtual boundaries of the right track 80a from the respective coordinates of the track positions 1800a-1800c and the equation for an ellipse.
For example, with respect to Equation 1 below, the electronic processor 250 may be configured to determine that the first radius, R1, of the right track 80a is equal to the difference between the respective y-components of the first track position 1800a and the third track position 1800c. Similarly, the electronic processor 250 may be configured to determine that the second radius, R2, of the right track 80a is equal to the difference between the respective z-components of the second track position 1800b and the third track position 1800c. Accordingly, by using Equation 1, the electronic processor 250 may be configured to extrapolate virtual track boundaries from cartesian coordinates representing points on the surface of a curved track 80.
In some embodiments, the electronic processor 250 may additionally be configured to calibrate the swing sensor 315c (e.g., a swing encoder) of the rope shovel 10 based on cartesian coordinates of the positions associated with the tracks 80. As noted above, the swing sensor 315c (see
To ensure that accurate rotational position information is being provided by the swing sensor 315c, it may be desirable to calibrate the swing sensor 315c during an initial setup stage, periodically after a certain amount of time or use of the rope shovel 10, or both to account for this offset. For example, the electronic processor 250 may determine the offset angle for the swing sensor 315c and may calibrate the swing sensor 315c by, for example, by reprogramming the swing sensor 315c based on the offset angle such that it provides the expected rotational angle for a given swing position of the dipper 34 (e.g., 0 degrees when the dipper is centered in front of the rope shovel 10) or storing the offset angle on the controller 200 such that the controller 200 may transform a received rotational position from the swing sensor 315c (e.g., swing angle R) with the offset angle (e.g., +2.5 degrees) to calculate an actual rotational position for the dipper 34 (e.g., R+2.5 degrees).
The electronic processor 250 may be further configured to extrapolate a pair of lines that respectively pass through, or nearly pass through, the track positions 1900a-1900f. In particular, as shown in
The electronic processor 250 then extrapolates a third line 1910 that passes through the second track position 1900b and is perpendicular to the first line 1905a. The electronic processor 250 then determines an angle (θ) between the third line 1910 and the second line 1905b. When the swing sensor 315c is properly calibrated, the third line 1910 intersects the second line 1905b at a right angle (i.e., the angle (θ)=90 degrees). However, when the third line does not intersect the second line 1905b at a right angle, the electronic processor 250 determines the offset angle to be equal to the difference between 90 degrees and the angle, θ, at which the third line 1910 intersects the second line 1905b. The electronic processor 250 then calibrates the swing sensor 315c, as described above, using the determined offset angle.
Thereafter, the rotational position for the dipper 34 is determined using the swing sensor 315c as calibrated by the offset angle, improving the accuracy of the determined rotational position. Although the swing sensor calibration was described such that, when the dipper 34 is centered in front of the rope shovel 10, the swing sensor 315c indicates a rotational position of 0 degrees, in some embodiments, the reference system for the swing angle is shifted such that 0 degrees indicates another reference point (e.g., where the dipper 34 is centered in the rear direction of the rope shovel 10).
With respect to
After determining a respective rotation angle of the dipper 34 at each of the front and rear track positions 1900a, 1900b, 1900c, and 1900d, the electronic processor 250 is configured to sum the four rotation angles and divide the sum of rotation angles by the total number of rotation angles, four. Accordingly, the electronic processor 250 determines that the offset angle of the swing sensor 315c is equal to the result of the sum of rotation angles divided by the total number of rotation angles. As an example, if it is determined that the rotation angle of dipper 34 is equal to 30 degrees at track position 1900a, 150 degrees at track position 1900b, −29.5 degrees at track position 1900c, and −149.5 degrees at track position 1900d, the electronic processor 250 will determine that the offset angle of swing sensor 315c is equal to 0.25 degrees. Although described with respect to four rotational positions of the dipper 34, it should be understood that the electronic processor 250 may be configured to use more (e.g., six) or less (e.g., two) rotational positions of the dipper 34 when determining an offset angle of the swing sensor 315c.
The exclusionary zone 2100a corresponds to the power cable reel 2105, the exclusionary zone 2100b corresponds to the hopper 2110, the exclusionary zone 2100c corresponds to the truck 2115, the exclusionary zone 2100d corresponds to the power supply station 2120, and the exclusionary zone 2100e corresponds to the tracks 80a and 80b. The exclusionary zones 2100a-e may be generically referred to as an exclusionary zone 2100 and collectively referred to as the exclusionary zones 2100. Additionally, in some embodiments, the track models described with respect to the method of
Returning to
In block 2005, the electronic processor 250 moves the dipper to a plurality of positions associated with an exclusionary zone, such as one of the exclusionary zones 2100a-c (generically referred to as the exclusionary zone 2100). For example, using the dipper motion command input devices 305, a rope shovel operator may input a command for moving the dipper 34 to positions 2125 associated with the exclusionary zone 2100 (e.g., the four positions 2125 of the exclusionary zone 2100c or the five positions 2125 of the exclusionary zone 2100d). The electronic processor 250 receives the operator input signals from the dipper motion command input devices 305 and translates the signals to corresponding motion commands for the dipper drives 310. In response to receiving the motion commands from the electronic processor 250, the dipper drives 310 control movement of the dipper 34 to iteratively move the dipper to each of the positions 2125 associated with the exclusionary zone 2100.
In block 2010, the electronic processor 250 determines data points for the exclusionary zone, each data point associated with a position of the plurality of positions. Each data point may include, but is not limited to, one or more measurements taken by the dipper position sensors 315 while the dipper 34 is located at a corresponding position of the plurality of positions. For example, the electronic processor 250 may determine, based on measurements taken by the dipper position sensors 315, the extent to which the dipper 34 is crowded, the extent to which the dipper 34 is hoisted, and/or the rotational position of the dipper 34 while the dipper 34 is located at each of the positions 2125 for a particular exclusionary zone. The crowd, hoist, and rotation measurements taken by the dipper position sensors 315 may be included in and/or stored in association with each data point. In addition, the electronic processor 250 may be configured to determine a set of (x, y, z) coordinates representing each of the positions 2125 for the exclusionary zone 2100, which may be included and/or stored in association with each respective data point. As described above with respect to the rope shovel's local coordinate system 400 in
In block 2015, the electronic processor 250 generates a virtual model of the exclusionary zone by extrapolating virtual boundaries of the exclusionary zone from the data points. For example, like in block 825 of
In block 2020, the electronic processor 250 receives dipper position data indicative of a position of the dipper 34. The dipper position data is provided to the electronic processor 250 by one or more of the dipper position sensors 315. For example, the dipper position data may include an output from one or more of the crowd sensor 315a, the hoist sensor 315b, and the swing sensor 315c. The output of the crowd sensor 315a indicates the crowd position of the dipper 34, the hoist sensor 315b indicates the hoist position of the dipper 34, and the swing sensor 315 indicates the swing position of the dipper 34.
In block 2025, the electronic processor 250 sets a motion command limit for a dipper motion based on a distance between the dipper 34 and the exclusionary zone 2100 of the mining machine inferred from the dipper position data, the dipper motion being selected from a group of a swing motion, a crowd motion, and a hoist motion. In some embodiments, to set the motion command limit based on the distance inferred from the dipper position data, the electronic processor 250 may determine a limit value using one or more of the limit functions 330 stored in the memory 255 (see
As noted, the distance between the dipper 34 and the exclusionary zone 2100 may be used directly as an input into the limit function(s) or may be used indirectly in advance to generate the limit function(s) such that the current position of the dipper 34 may be used as an input into the limit function(s). In some embodiments, the electronic processor 250 determines a distance between the dipper 34 and the exclusionary zone 2100 using similar techniques as described above with respect to the method 500 of
In some embodiments, the exclusionary zone 2100 is associated with a slow region function and stop region function for the dipper motion. In such embodiments, the electronic processor 250 may select the stop region function for a dipper motion when the distance between the dipper and the exclusionary zone 2100 is below a stop region threshold for that dipper motion, and may select the slow region function for a dipper function in response when the distance between the dipper and the exclusionary zone 2100 is above the stop region threshold, but below the slow region threshold for that dipper motion. When the distance between the dipper and the exclusionary zone 2100 is above the slow region threshold, the electronic processor 250 may return the default limit value for the motion command limit. In some embodiments, the slow region thresholds, stop region thresholds, and default limit values for each of the hoist, crowd, and swing motions are stored in the memory 255 (e.g., as part of the limit function 330). In some embodiments, the slow region function and stop region function associated with the exclusionary zone 2100 are similar to the functions shown in
In block 2030, the electronic processor 250 controls the dipper motion according to a dipper motion command limited by the motion command limit. Block 2030 may be implemented in a similar manner as described above with respect to block 520 in
In some embodiments of the method 2000, in block 2025, rather than setting a motion command limit for one dipper motion, the electronic processor 250 sets a motion command limit for two or three dipper motions based on the distance between the dipper 34 and the exclusionary zone 2100, where the dipper motions are selected from the group of the swing motion, the crowd motion, and the hoist motion. In these embodiments, a similar process used to set the motion command limit for one dipper motion is used to set the dipper motion for the other dipper motions. Accordingly, in these embodiments, in block 2030, the electronic processor 250 is configured to control the dipper motion of the dipper 34 according to dipper motion commands (e.g., crowd, hoist, and swing commands) limited by each of the crowd limit, hoist limit, and swing limit.
In some embodiments, after block 2030, the electronic processor 250 loops back to block 2005 such that the electronic processor 250 repeatedly executes the method 2000. By repeatedly executing the method 2000, the electronic processor 250 may account for changes over time in the position of the dipper 34 and in the dipper motion command received via the dipper motion command input device 305. Thus, in some embodiments, the electronic processor 250 repeatedly updates the motion command limits based on the distance between the dipper 34 and the exclusionary zone 2100 (or between multiple exclusionary zones 2100) over time as the dipper 34 moves and, in turn, controls the dipper motion based on the updated motion command limit.
In light of the above discussion, it should be apparent that, as the dipper 34 is controlled to be closer to the exclusionary zone 2100, as a general rule, the motion commands are further limited. As a result, in some embodiments, when the dipper 34 is very close to the exclusionary zone 2100, one or more of the dipper motions are restricted such that the dipper 34 moves slowly or not at all in response to motion command inputs from an operator. Additionally, in some embodiments, when the dipper 34 is controlled to crowd in (or hoist down) quickly by the operator towards the exclusionary zone 2100, the electronic processor 250 will limit the crowd (or hoist) motion command more and more such that the dipper 34 is gradually slowed to prevent a collision with the exclusionary zone 2100 or at least mitigate the impact of a collision with the tracks 80.
Each exclusionary zone may be associated with a particular set of limit functions 330. For example, the exclusionary zone 2100b for the hopper 2110 may be associated with six limit functions 330, including a separate slow region function and stop region function for each of the hoist, crowd, and swing motions. Similarly, each other exclusionary zone 2100 may be respectively associated with six further limit functions 330, including a separate slow region function and stop region function for each of the hoist, crowd, and swing motions. Ini some embodiments, the limit functions 330 for one of the exclusionary zones 2100 is more restrictive than the limit functions 330 for another of the exclusionary zones 2100. For example, the exclusionary zones 2100d and 2100a may be more restrictive than the other exclusionary zones 2100b, 2100c, and 2100e because the exclusionary zones 2100a and 2100d are for objects having high voltage power (the power supply cable 2122). For example, with reference to
In some embodiments, blocks 2005, 2010, and 2015 are executed multiple times to teach multiple exclusionary zones 2100 to the electronic processor 250. In such embodiments, after the virtual model of each exclusionary zone 2100 is generated, the electronic processor 250 proceeds to block 2020, 2025, and 2030. As such, in block 2025, the electronic processor 250 may determine the limit value for each exclusionary zone 2100 (based on the associated limit functions 330 for each exclusionary zone 2100), and then set the motion command limit to the lowest (i.e., most restrictive) limit value from the various exclusionary zones 2100. In some embodiments, this limit selection is repeated for each dipper motion (e.g., for the hoist, crowd, and swing motions) such that each dipper motion has a respective motion command limit set that is the lowest limit value by the limit functions 330 for the various exclusionary zones 2100 associated with the particular dipper motion.
In effect, at least in some embodiments, the limit functions 330 of the rope shovel 10 define virtual three-dimensional fields around the exclusionary zones 2100 for each of the swing, crowd, and hoist dipper motions. When one or more of these virtual fields of the dipper 34, which may be mapped onto the coordinate system 400 around the virtual dipper 605, overlaps the exclusionary zone 2100, the one or more dipper motions associated with the one or more overlapping virtual fields is limited.
Accordingly, embodiments described herein provide systems and methods for preventing and mitigating collisions between a dipper and tracks of a mining machine, such as a rope shovel.
Number | Date | Country | |
---|---|---|---|
Parent | 17216180 | Mar 2021 | US |
Child | 18638571 | US |