Abstract:
Methods of detection and prevention for snags or off center lifts, and auto-centering a crane over a load. Snag detection includes monitoring angular deflection of the load with respect to an at-rest position, and halting movement of the crane in a direction of increasing angular deflection. Controlling off center lifting includes detecting a side load condition for a load, and preventing a hoist operation when the side load condition is detected. Auto-centering a load includes determining a position of a block coupled to the load with respect to a trolley of the crane, and centering the trolley over the block prior to a moving operation. Centering includes comparing a position of a block marker using a trolley camera to a known centered position of the marker with respect to the camera, and moving the trolley to match the determined position of the marker to its known centered position.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
       [0001]    This application is a divisional of U.S. application Ser. No. 14/815,338, filed Jul. 31, 2015, which claims the benefit of U.S. Provisional Application No. 62/031,549, filed on Jul. 31, 2014, hereby incorporated herein in its entirety by reference. 
     
    
     FIELD 
       [0002]    Aspects of the present disclosure relate to crane and/or hoist systems, and in particular to control or augmentation of crane and/or hoist systems. 
       BACKGROUND 
       [0003]    In some hoisting situations, it is difficult for a crane operator to determine if a crane is directly over the top of a load that is to be moved. In a side load situation, the crane is not directly over the point at which the hook/bottom block is attached to the load. Instead the bottom block may be offset horizontally some amount from its at-rest position. For example, suppose an operator intends to lift a load resting on the ground. If, after attaching the crane&#39;s hook to the load, the hook is displaced twelve inches to the side of its at-rest position, then when the operator hoists the load and the load leaves the ground, it may begin to swing. Loads can exceed 100,000 pounds, and can be very large as well. Swinging loads are hazardous because they can cause a number of potential issues, including cable damage creating a risk of cable breakage; damage to the load from impacting surrounding objects; damage to other loads or infrastructure; or injury or death to personnel on the ground hit or crushed by a swinging load. 
         [0004]    If the hook is not correctly positioned over the load prior to hoisting, then the crane operator will often attempt to adjust the position of the crane so that the hook is vertically centered over the load, i.e., the hook is directly over the top of the center of gravity of the load. However, as has been mentioned, it is often difficult for an operator to determine if a hook is directly aligned above the load center. Even a small deviation from center can cause issues such as those described above. 
         [0005]    In some situations, once a load has been moved, the crane is then moved to a different location. If an operator of the crane or ground personnel fail to ensure that the hook is disconnected from the load or the rigging, or fail to notice that the motion of the crane will take the hook into or through an area that has obstacles, a hook can snag. When a hook snags, motion of the hook can become unpredictable, and can lead to damage to the crane, cables, hook, and can cause serious injury or death, especially if the hook snags and drags something heavy or breakable. 
       SUMMARY 
       [0006]    This Summary and the Abstract herein are provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary and the Abstract are not intended to identify key features or essential features of the claimed subject matter, nor are they intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the Background. 
         [0007]    In one embodiment, a method of augmenting a lifting operation for a crane includes detecting a side load condition for a load to be moved by the crane, and preventing a hoist operation when the side load condition is detected. 
         [0008]    In another embodiment, a method of snag detection for a load to be moved with a crane includes monitoring an angular deflection of the load with respect to an at-rest position of the load, and halting movement of the crane in a direction that results in an increasing angular deflection. 
         [0009]    In another embodiment, a method of auto-centering a load to be moved with a crane includes determining a position of a block coupled to the load with respect to a trolley of the crane, and centering the trolley over the block prior to a moving operation. Centering includes in one embodiment comparing a position of a fiducial marker associated with the block using a camera associated with the trolley to a known centered position of the fiducial marker with respect to the camera, and moving the trolley to match the determined position of the fiducial marker to the known centered position of the fiducial marker. 
         [0010]    In another embodiment, a crane motion detection system includes a camera configured to mount on a trolley of the crane, a fiducial marker configured to mount on a hook of the crane within a field of view of the camera, and a controller coupled to the camera to receive and process images from the camera, and coupled to the trolley to control operation of the trolley in response to processed images. The controller in one embodiment controls operation to at least one of detecting and preventing off center lifts of a load, detecting and preventing snagging of a load, and auto-centering the crane over a load as described in other embodiments herein. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0011]      FIG. 1  is a diagrammatic view of a crane and motion control system according to an embodiment of the present disclosure; 
           [0012]      FIG. 2  is a top view of a portion of a bottom block of  FIG. 1 ; 
           [0013]      FIG. 3  is a block diagram of a controller according to an embodiment of the present disclosure; 
           [0014]      FIG. 4  is a representative view of a camera image according to an embodiment of the present disclosure; 
           [0015]      FIGS. 5A and 5B  are diagrammatic views of a crane with bottom block in at-rest and angularly displaced configurations; 
           [0016]      FIG. 6  is a representative view of a camera image according to another embodiment of the present disclosure; 
           [0017]      FIG. 7  is a representative view of a camera image according to another embodiment of the present disclosure; and 
           [0018]      FIG. 8  is a schematic view of a controller on which embodiments of the present disclosure may be practiced. 
       
    
    
     DETAILED DESCRIPTION 
       [0019]    Embodiments of the present disclosure provide motion control systems for industrial cranes including, for example only and not by way of limitation, heavy equipment production cranes, primary metals coil cranes, general purpose single and double girder bridge cranes, and the like. Side load detection, auto load centering, and snag detection are some of the motion controls provided by embodiments of the present disclosure. 
         [0020]    Camera-based crane manipulation and control may increase safety and may simplify hoisting tasks. Embodiments of the disclosure include a camera mounted to a crane in a position to be able to image a fiducial marker having a fiducial pattern thereon that is mounted to a hook/bottom block of the crane in a position so as to be visible in the field of view of the camera. With the image of the hook/bottom block of the crane, a controller, such as a programmable logic controller (PLC) is used to interpret data from the image to detect and in some cases correct issues with crane loading. Such issues include by way of example only and not by way of limitation, side load detection, auto load centering, and snag detection. In general, adverse cable angles may be detected against a threshold, such as an angular deflection of a fixed value, a hoist length, a distance of the block from an image capture element mounted on a trolley of the crane, or the like. A control response may be initiated, or a warning may be issued, following the detection. 
         [0021]    Sensory information about hook position is obtained using the camera, such as an industrial machine vision digital camera in one embodiment, together with software, firmware and/or hardware such as a programmable logic controller (PLC) to control operation of a crane, specifically, of the motion of a crane. The camera is in one embodiment mounted on a crane trolley, near a cable drum, oriented downward toward a typical at-rest position for the hook. In this configuration, the hook is visible to the camera. The camera captures and analyzes in one embodiment 20 images of the hook including the fiducial marker per second. Hook position information is determined by the controller using the images and known functions relating to the fiducial marker, as described further below. In this disclosure, the terms hook and bottom block may be used interchangeably, as known in the field. 
         [0022]    To facilitate reliable hook tracking, in one embodiment, the fiducial marker comprises a pattern of retro-reflective fiducial markers fastened to the hook. Fiducial markers are easily discernable from the other features in the workspace. They permit the camera to track the hook consistently and accurately. While retro-reflective fiducial markers are described herein, it should be understood that any fiducial marker capable of being imaged by the camera is amenable to use with the embodiments of the present disclosure without departing from the scope of the disclosure. 
         [0023]    Embodiments of the present disclosure mount an industrial camera to a crane, mount fiducial markers on a bottom block or hook of the crane within the field of view of the camera, and determine with a controller an angular or horizontal displacement of the hook from its at-rest position, using images taken by the camera of the fiducial markers. With that information, the controller may be used in some embodiments to implement control restrictions on the crane or implement crane movement to correct the angular displacement, or issue warning(s) to the crane operator. 
         [0024]    Referring to  FIG. 1 , a diagrammatic view of a crane  100  is shown. Crane  100  is shown generally, but it should be understood that crane  100  can comprise any number of overhead crane types such as single and double girder bridge cranes, and the like. Crane  100  comprises in one embodiment crane body  102  which can comprise a set of parallel runways with a traveling bridge spanning the gap and movable in a direction parallel with the runways, and a trolley movable laterally along the bridge (i.e., perpendicular to the runways), or the like, as are known in the art. A hoist  103  travels along the trolley, and supports a bottom block  104  and hook  106  using cabling  108 . The crane  100  is used to hoist or move a load  110  rigged to the hook  106  through rigging  112 , such as cables or the like. An imaging system  114  (in one embodiment a digital camera such as an industrial machine vision camera or the like) is mounted to the crane body  102  (such as to the trolley or hoist  103 ) in a position so as to place fiducial marker  116 , which is mounted to the bottom block  104  or hook  106 , visible in its image field of view. 
         [0025]    Fiducial marker  116  in one embodiment comprises a fiducial with a plurality of retro-reflective fiducial markers  202  thereon, as shown in top view in  FIG. 2 . Retro-reflective marker  116  is shown mounted to a top surface  117  of bottom block  104 . However, it should be understood that retro-reflective marker  116  may be mounted in a different position on the bottom block  104  or to the hook  106 , provided that it is visible to the field of view of camera  114 . Also, camera  114  may be mounted in a different position on the crane body  102  so long as the retro-reflective marker  116  is visible in the field of view of the camera  114  during operation. Although a series of six round retro-reflective fiducial markers  202  arranged in a particular pattern are shown, it should be understood that different fiducial patterns or quantity of fiducials may be used in embodiments of the present disclosure without departing from the scope of the disclosure. 
         [0026]    Referring also to  FIG. 3 , camera  114  is connected in one embodiment to a controller  300  that analyzes images from the camera  114  to determine position of the hook  106  and/or bottom block  104 . In another embodiment, the camera includes processing power sufficient to analyze the images to determine position of the hook, and reports this result to the controller. In this embodiment, the camera is a “smart” camera. It has image taking capabilities and image processing capabilities. The results of the processing are issued to the PLC. In an at-rest position, that is, with the bottom block and hook in a substantially static position free hanging on the cables  108  from the crane body  102 , the camera  114  takes an image including the retro-reflective marker  116 , and conveys the image to the controller  300 , or processes the image itself. Controller  300  or camera determines the position of the bottom block  104  and hook  106  relative to its at-rest position by determining the position of the retro-reflective marker  116  relative to its at-rest position (see below). Position parameters include in some embodiments position within the field of view of the camera  114  and/or a distance of the bottom block  104  or hook  106  from the camera  114 , and may be determined as described below. Communication between camera  114 , controller  300 , and crane controls  120  at operator location  118  may be accomplished over one or more of a number of connections, including by way of example only and not by way of limitation, wired connections, wireless connections, or a combination thereof. 
         [0027]    Referring now also to  FIG. 4 , in one embodiment, this determination of position of the retro-reflective marker  116  is made using an image  400  provided to the controller  300 . As is seen in  FIG. 4 , image  400  occupies a specific area  402 , which may be a display or portion of a display, or any known dimension area (such as a number of pixels wide and a number of pixels deep, or the like). The centroid location  412  of the fiducial markers  202  on retro-reflective marker  116  may be expressed with respect to the image  400  as a particular number of pixels  404  from a top edge  405  of the image  400 , and a particular number of pixels  406  from a right side edge  407  of the image  400 . The location of the bottom block  104  in one embodiment may therefore be determined by reference to the number of pixels  404  and  406 , and a centroid  412  of the retro-reflective marker  116  may also be determined. The centroid will have a coordinate of  404 ,  406  as determined from the top  405  and right  407  of the image  400  which constitutes the field of view of the camera  114 . It should be understood that the coordinates may be with respect to any point within the field of view of the camera  114 , and can be expressed in a number of different units other than pixels as described herein, as embodied in the image without departing from the scope of the disclosure. 
         [0028]    Normally, operations of a crane such as crane  100  are controlled by an operator in a cab or operator location  118  using controls  120  (simplified for purposes of this disclosure). The crane operator uses the controls  120  to perform operations including hoist operations, traverse operations, and the like, as are known in the art. Typically, an operator and another person or persons responsible for a load on the crane work in combination to rig the load in preparation for crane operations. Rigging can be difficult, especially for very large loads, or for loads that are not uniform or symmetric. Despite experience and skill of riggers and crane operators, nevertheless, loads can be improperly rigged, leading to potentially very dangerous situations in which loads can shift, be side pulled, tip, or the like. 
         [0029]    For example, when bottom block  104  (and hook  106 ) are coupled to a load such as load  110  as shown in  FIG. 1 , a condition known as side-loading may occur. Side-loading can lead to side pull lifts, which can cause serious consequences for loads, cranes, and personnel, as described above. An example of a side loading condition is shown in diagrammatic form in  FIGS. 5A and 5B . A rest position of a bottom block  104  coupled to crane body  102  with cables  108  is shown in dashed lines, and a side loaded position of bottom block  104  coupled to crane body  102  with cables  108  is shown in solid lines. As may be seen, the bottom block  104  is displaced from its at-rest position by an angle α with respect to its at-rest position. A determination of this side-load angle α may be made in one embodiment using an image (such as image  400 ) of the bottom block  104  in its rest position versus an image of the bottom block  104  in its current position, that is, a position in which the crane  100  is ready for a hoist operation (as shown in  FIG. 6 ). 
         [0030]    Referring now also to  FIG. 6 , representative image  600  including bottom block  104  and its retro-reflective marker  116  in a side-loaded position such as that shown in  FIG. 5  and taken by a camera such as camera  114  is shown. In the image  600 , retro-reflective marker  116  is in a different position than its at-rest position as shown in  FIG. 4 . The bottom block  104  and consequently the retro-reflective marker  116  have moved from their at-rest positions by a distance in the x-direction by an amount of pixels  604  and in the y-direction by an amount of pixels  606 . The centroid position  412 ′ of the bottom block  104  and retro-reflective marker  116  is determined in this embodiment again using the fiducial markers  202 . The centroid location  412 ′ of the fiducial markers  202  on retro-reflective marker  116  may be expressed with respect to the image  600  as a particular number of pixels  404 ′ from a top edge  405  of the image  600 , and a particular number of pixels  406 ′ from a right side edge  407  of the image  600 . The location of the bottom block  104  in one embodiment may therefore be determined by reference to the number of pixels  404 ′ and  406 ′, and a centroid  412 ′ of the retro-reflective marker  116  may also be determined. The centroid  412 ′ will have a coordinate of  404 ,  406  as determined from the top  405  and right  407  of the image  600  which constitutes the field of view of the camera  114 . The bottom block  104  is therefore side-loaded in  FIG. 6  by an amount that may be determined using the images  600  and  400 , by determining the distance  612  in pixels between the centroid locations  412  and  412 ′. Based on the camera lens and camera characteristics, a simple conversion between a number of pixels and an angle is used to determine the angle α between the centroid positions  412  and  412 ′. 
         [0031]    In one embodiment, when the controller  300  determines that a load (such as load  110 ) on the hook is side-loaded by an angle greater than a determined, settable and adjustable threshold, the controller  300  disallows any hoisting operation. That is, even if a crane operator uses the controls  120  to initiate a hoist operation, the controller  300  disables the hoisting operation. In one embodiment, a signal is sent from the controller  300  to crane controls  120  that disables the hoisting operation. Hoisting operation may be re-enabled when the side-loading is corrected to an angle below the threshold. The threshold angle of acceptable side-loading may be set based on the load, the crane, the conditions, or some combination thereof. 
         [0032]    When camera  114  captures an image of the bottom block  104  in its field of view, the image may be transmitted to the controller  300 , and the controller  300  uses that image, along with the known function and base images of the bottom block  104  in its at-rest position for the distance between the camera  114  and the bottom block  104  (described in detail below), to determine an angular displacement of the bottom block  104  from its at-rest position. Alternatively, the camera may capture the image and process it internally to determine the current angular displacement. Then, this value is transmitted to the controller. The angular displacement threshold at which hoisting is prevented may be in one embodiment a function of one or more of the load characteristics and the distance between the camera and the bottom block. In one embodiment, when the bottom block  104  is higher, that is, when the distance between the camera  114  and the bottom block  104  is smaller, the allowable angular displacement may be larger than when the distance between the camera  114  and the bottom block  104  is larger. In one embodiment, the controller  300  is programmed to determine the distance between the camera  114  and the bottom block  104  (described below with reference to  FIG. 7 ) and consult a table of the threshold angle α of angular displacement allowed before preventing hoisting operations. 
         [0033]    Referring again to  FIGS. 4 and 6 , one embodiment of the present disclosure provides for auto-centering of a load. Side load hoisting prevention is concerned with preventing a hoisting operation if there is a side-loading exceeding a certain predetermined angle. Auto-centering uses images of a bottom block  104  and hook  106  in an at-rest position (as shown at  400  in  FIG. 4 ) and of the bottom block  104  and hook  106  in a loaded condition potentially ready for hoisting (as shown at  600  in  FIG. 6 ) to adjust the position of the bottom block  104  and hook  106  to place the bottom block  104  and hook  106  in the at-rest position of the bottom block  104  and hook  106  before operation. This may be done automatically by an operator engaging auto-centering such as by selection of auto-centering via controls  120 . In another embodiment, auto-centering may be set to activate when a hoisting operation is initiated by an operator. 
         [0034]    To accomplish this, the component pixel distances used for determining an angle α of side-loading may be used for auto-centering. Specifically,  FIG. 4  shows an image  400  of a bottom block  104  and the retro-reflective marker  116  thereon. The centroid  412  of the fiducial markers  202  of the retro-reflective marker  116  is identified as a number of pixels  404  from a top  405  of the image  400  and a number of pixels  406  from a right side  407  of the image  400 .  FIG. 6  shows an image  600  of the bottom block  104  and retro-reflective marker  116  thereon. The centroid of the fiducial markers  202  of the retro-reflective marker  116  has moved, and is now at a centroid location identified as  412 ′ which is a number of pixels  404 ′ from a top  405  of the image  600  and a number of pixels  406 ′ from a right edge  407  of the image  600 . This correlates to a difference of a number of pixels  604  in the x-direction and a number of pixels  606  in the y-direction, as indicated by the axis legend of the figures. As the speed of current cameras allows for imaging at a speed of at least 20 frames per second, corrective movement can be made essentially in real time, as follows. 
         [0035]    If the bottom block  104  is off center with respect to its at-rest position in either or both of the x- or y-directions beyond a certain threshold, in an auto-centering operation, the crane  100  automatically moves the bottom block  104  to center the bottom block  104  on its at-rest position. Movement of the crane provides independent movement in each of the x- and y-directions. In one embodiment, the controller  300  determines the number of pixels  604  from the at-rest position the bottom block  104  is in the x-direction, and determines the number of pixels  606  from the at-rest position the bottom block  104  is in the y-direction, and initiates movement of the crane toward the at-rest position in each of the x- and y-directions. To move the bottom block  104  toward its at-rest position in one embodiment, the controller  300  initiates control of the crane to move the bottom block  104  toward its at-rest position in the x-direction, and initiates control of the crane to move the bottom block  104  toward its at-rest position in the y-direction. In one embodiment, the movement of the crane is at its minimum speed to avoid, or at a speed suitable to prevent or reduce, unnecessary oscillation or swaying (i.e., overshoot) of the bottom block  104  and hook  106 . For each axis of motion, in this embodiment along the x-direction of movement and along the y-direction of movement, the pixel difference between the off-center position (as shown in image  600 ) and the at-rest position (as shown in image  400 ) is determined by subsequent images in the same fashion as described above. Once the displacement of the bottom block  104  changes sign on a particular axis, motion in that direction is stopped by the controller  300 . Additionally, motion may also be stopped when the angular displacement is less than a predetermined, settable amount, or when auto-centering has been active for a specified duration. 
         [0036]    One corrective motion for each axis is used in one embodiment so as to avoid potential oscillation of the bottom block  104  and hook  106  that might be caused by multiple corrections or continuous corrections. One motion is enabled as follows. Once a position  404 ′, 406 ′ is determined, motion toward the at-rest position  404 , 406  is initiated in auto-centering. In the x-direction, a number of pixels  604  is the difference between  404 ′ and  404 . Movement of the crane in the x-direction is performed while the controller monitors the current position with respect to the at-rest position. As the determined difference  604  between  404 ′ and  404  shrinks, it eventually gets to 0 and then to −1 pixel. At this point, the displacement is considered to have changed signs, and motion on the x-axis is stopped. The same operation occurs for the corrective motion in the y-direction. Corrective action along the axes is independent. Alternatively, auto-centering is stopped in another embodiment when the angle is less than a specified threshold for a finite duration, or if auto-centering action has been active for a specified duration. This is especially useful in systems where the angle may not change sign. These methods may be implemented independently or simultaneously. 
         [0037]    Oscillation may also be induced when motion of the crane is at a variable speed, such as proportional control. In a proportional control scheme, a high velocity is used at a start of a corrective motion, and as the distance to be corrected decreases, the speed of motion also decrease. Embodiments of the present disclosure may use proportional control for corrective motion, but motion at a constant minimum speed of the crane with only one corrective motion per axis is used in one embodiment. If more than one corrective motion is used, that may induce limit cycling and constant correction that may make a situation worse. 
         [0038]    A distance from the camera  114  to the retro-reflective marker  116  may be determined in one embodiment without distance sensors using a known distance function determined by a size of the retro-reflective marker at various known distances from the camera such as may be determined in calibration of the camera. A closed form function may be determined allowing the controller  300  to determine where in the field of view of the camera the at-rest position of the bottom block  104  is for all distances from the camera  114  to the bottom block  104 . 
         [0039]    For example, the closer the retro-reflective marker  116  is to the camera, the larger it appears in an image taken by the camera. So, once the function of distance from the camera  114  to retro-reflective marker  116  is determined, the controller  300  simply determines the size of the retro-reflective marker  116 , compares it to the function or known size parameters, and determines the distance of the retro-reflective marker  116  from the camera  114 . From that distance, the at-rest position for the hook is known at any distance from the camera  114 , without using distance sensors. In another embodiment, a hoist length sensor may be used. In such a configuration, hoist length data from the hoist length sensor may be used directly with the closed form functions for determining the at-rest position of the hook. 
         [0040]    Referring now also to  FIG. 7 , an image  700  is shown. Image  700  has retro-reflective marker  116  shown. In this image  700 , retro-reflective marker  116  is larger in the field of view of the camera  114  than the image of the retro-reflective marker  116  in the field of view of the camera  114  shown in  FIG. 4 . A measurable dimension of the retro-reflective marker  116  is made for each image. For example, in  FIG. 4 , a dimension  408  and a distance  410  are determined with respect to specific identifiable individual fiducials  202 . The same dimensions with respect to the same fiducials  202  are also measured in  FIG. 7  as dimensions  408 ′ and  410 ′. Given the known distance function, the distance of the camera  114  from the retro-reflective marker  116  may be determined by the size of the fiducial. 
         [0041]    One embodiment of the present disclosure determines when a snag condition occurs. A snag condition may occur, as described above, when a hook catches on a load, an obstruction of some sort, infrastructure, rigging, or the like, or when the hook is not fully disconnected from a load that has been moved, for example. In a snag detection operation, embodiments of the present disclosure determine, based on a comparison in the controller  300  of images of the bottom block  104  in its at-rest position to its current position, whether a traverse operation of the crane is displacing the hook  106  from its at-rest position by more than a particular angular displacement. In snag detection, once a difference in position between the at-rest position and the current position of the hook  106  exceeds a certain, settable, angle, traverse motion of the crane in the direction of motion that increases the angular deflection is stopped by the controller. Movement to alleviate the snag, that is, in the direction of motion that decreases the angular deflection, is still allowed. In another embodiment, the controller  300  may, using known functions, determine a velocity or acceleration of displacement from an at-rest position to identify a snag or potential snag condition. In one embodiment, the controller  300  issues an emergency stop command to the crane when a snag condition is detected. Then, once the crane has stopped motion, correction of the snag may be initiated. 
         [0042]    Snag detection operation can mitigate but not necessarily completely eliminate hazards associated with snagging, and cannot in all instances prevent a snag. This is, in part, because whether a load is dragged and causes damage depends on a number of factors including but not limited to load height, mass, capability of drives and brakes on the crane, how heavy crane is, and the like. 
         [0043]    While a bottom block and hook are shown in the various figures, it should be understood that additional hoisting devices such as magnets, balls, and the like known in the art are amenable for use with the embodiments described herein without departing from the scope of the disclosure. 
         [0044]    Embodiments of the present disclosure are compatible with existing variable frequency drives for cranes. Enabling and disabling embodiments of the present disclosure may be accomplished with existing wired or radio pendants. Embodiments of the present disclosure are configured to be retrofitted onto existing hardware platforms, including but not limited to heavy equipment production cranes, primary metals coil cranes, and general purpose single &amp; double girder bridge cranes. Embodiments of the present disclosure may be used in standalone form, or in conjunction with other crane control technology, for example only and not by way of limitation, with Expertoperator™, Safemove™, and Automove™ offered by PaR Systems of Shoreview, Minn. 
         [0045]    The system controller such as PLC  300  shown in  FIG. 3  and usable on all the hoist systems herein described can comprise a digital and/or analog computer. The logic to implement the control features can be implemented on a PLC with an appropriate input/output configuration.  FIG. 8  and the related discussion provide a brief, general description of a suitable computing environment in which the system controller  300  can be implemented. Although not required, the system controller  300  can be implemented at least in part, in the general context of computer-executable instructions, such as program modules, being executed by a computer  370 . Generally, program modules include routine programs, objects, components, data structures, etc., which perform particular tasks or implement particular abstract data types. Those skilled in the art can implement the description herein as computer-executable instructions storable on a computer readable medium. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including multi-processor systems, networked personal computers, mini computers, main frame computers, and the like. Aspects of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computer environment, program modules may be located in both local and remote memory storage devices. 
         [0046]    The computer  370  comprises a conventional computer having a central processing unit (CPU)  372 , memory  374  and a system bus  376 , which couples various system components, including memory  374  to the CPU  372 . The system bus  376  may be any of several types of bus structures including a memory bus or a memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The memory  374  includes read only memory (ROM) and random access memory (RAM). A basic input/output (BIOS) containing the basic routine that helps to transfer information between elements within the computer  370 , such as during start-up, is stored in ROM. Storage devices  378 , such as a hard disk, a floppy disk drive, an optical disk drive, etc., are coupled to the system bus  376  and are used for storage of programs and data. It should be appreciated by those skilled in the art that other types of computer readable media that are accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, random access memories, read only memories, and the like, may also be used as storage devices. Commonly, programs are loaded into memory  374  from at least one of the storage devices  378  with or without accompanying data. 
         [0047]    Input devices such as a keyboard  380  and/or pointing device (e.g. mouse, joystick(s))  382 , or the like, allow the user to provide commands to the computer  370 . A monitor  384  or other type of output device can be further connected to the system bus  176  via a suitable interface and can provide feedback to the user. If the monitor  384  is a touch screen, the pointing device  382  can be incorporated therewith. The monitor  384  and input pointing device  382  such as mouse together with corresponding software drivers can form a graphical user interface (GUI)  386  for computer  370 . Interfaces  388  on the system controller  300  allow communication to other computer systems if necessary. Interfaces  388  also represent circuitry used to send signals to or receive signals from the actuators and/or sensing devices mentioned above. Commonly, such circuitry comprises digital-to-analog (D/A) and analog-to-digital (A/D) converters as is well known in the art. 
         [0048]    Without limitation, some aspects of the disclosure include, snag detection, auto-centering, and hoist prevention on side loading. Further aspects include a crane motion detection system comprising a camera, a fiducial marker, and a controller to process images from the camera to control operation of a crane in side-loading, snagging, and auto-centering situations; and a controller aspect configured to execute computer executable instructions for performing methods of snag detection, auto-centering and side load detection as shown and described herein. 
         [0049]    Although the subject matter has been described in language directed to specific environments, structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not limited to the environments, specific features or acts described above as has been held by the courts. Rather, the environments, specific features and acts described above are disclosed as example forms of implementing the claims.