Method and apparatus for monitoring and managing loading dock and facility operations
The surveillance system integrates dock controllers and sensors to enhance loading dock operations, improving efficiency and safety by aggregating data for real-time monitoring and management.
Patent Information
- Application Number
- JP2025533335
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-12-08
- Filing Date
- 2023-12-08
- Publication Date
- 2026-01-14
AI Technical Summary
Existing loading docks and facilities lack comprehensive surveillance and management systems to efficiently monitor and manage operations, leading to inefficiencies and safety risks due to inadequate sensor integration and lack of centralized data analysis.
A surveillance system incorporating dock controllers, presence/motion detectors, notification systems, and a main server that aggregates data from various sensors to provide real-time monitoring and management of loading docks and facilities, enabling integrated control and alert systems.
Enhances operational efficiency and safety by providing real-time monitoring, alerting personnel to potential hazards, and optimizing dock operations through centralized data analysis and integrated control.
Smart Images

Figure 2026501128000001_ABST
Abstract
Description
[Technical Field]
[0001] Related Applications This patent claims the benefit of U.S. Provisional Patent Application No. 63 / 386,620, filed December 8, 2022. U.S. Provisional Patent Application No. 63 / 386,620 is hereby incorporated by reference in its entirety. Priority to U.S. Provisional Patent Application No. 63 / 386,620 is hereby claimed.
[0002] The present disclosure relates generally to surveillance systems, and more particularly to methods and apparatus for monitoring and managing the operation of loading docks and facilities. [Background technology]
[0003] A loading dock provides an area where vehicles (e.g., trucks, trailers, etc.) move adjacent to a raised platform of a building (e.g., a materials handling facility) so that loads can be easily transported between the vehicles and the building. Some loading docks include equipment such as dock levelers, vehicle restraints, and / or dock doors, any of which may be associated with one or more sensor / monitoring systems. Within a materials handling facility, there may be additional equipment to facilitate the movement, storage, and / or handling of loads, such as low-floor doors, HVAC (heating, ventilation, and air conditioning) systems, industrial doors to separate freezers and / or other rooms, conveyor systems, fans to move air within the facility, lighting, and signaling systems. [Brief explanation of the drawings]
[0004] [Figure 1] 1 is a diagram of an exemplary material handling facility in which the teachings disclosed herein may be implemented. [Figure 2] 2 is a view of the exemplary loading dock of FIG. 1 from the exterior of the material handling facility. [Figure 3] 2 is a view of the exemplary loading dock of FIG. 1 from inside the material handling facility, with a trailer parked on the dock. [Figure 4]4 is a cross-sectional side view of the exemplary loading dock of FIG. 1 associated with the trailer of FIG. 3. [Figure 5] FIG. 2 is a diagram of an exemplary graphical user interface that may be generated by the main server of FIG. 1. [Figure 6] FIG. 2 is a diagram of an exemplary graphical user interface that may be generated by the main server of FIG. 1. [Figure 7] FIG. 2 is a diagram of an exemplary graphical user interface that may be generated by the main server of FIG. 1. [Figure 8] FIG. 2 is a diagram of an exemplary graphical user interface that may be generated by the main server of FIG. 1. [Figure 9] FIG. 2 is a diagram of an exemplary graphical user interface that may be generated by the main server of FIG. 1. [Figure 10] FIG. 2 is a diagram of an exemplary graphical user interface that may be generated by the main server of FIG. 1. [Figure 11] FIG. 2 is a block diagram of an example implementation of the example main server of FIG. 1. [Figure 12] 12 is a flowchart representing example machine-readable instructions that may be executed to implement the example main server of FIG. 1 and / or FIG. 11. [Figure 13] 12 is a flowchart representing example machine-readable instructions that may be executed to implement the example main server of FIG. 1 and / or FIG. 11. [Figure 14] 14 is a block diagram of an example processing platform including processor circuitry configured to execute the example machine-readable instructions and / or example operations of FIGS. 12 and 13 to implement the main server of FIGS. 1 and / or 11. [Figure 15] FIG. 15 is a block diagram of an example implementation of the processor circuit of FIG. 14. [Figure 16] FIG. 15 is a block diagram of another exemplary implementation of the processor circuit of FIG. 14. [Figure 17]14 is a block diagram of an exemplary software distribution platform (e.g., one or more servers) that distributes software (e.g., software corresponding to the exemplary machine-readable instructions of FIGS. 12 and 13) to client devices, which are associated with end users and / or consumers (e.g., for license, sale, and / or use), retailers (e.g., for sale, resale, license, and / or sublicense), and / or original equipment manufacturers (OEMs) (e.g., for inclusion in products distributed to other end users, such as retailers and / or direct purchasers). DETAILED DESCRIPTION OF THE INVENTION
[0005] Generally, the same reference numbers are used throughout the drawings and the accompanying specification to refer to the same or like parts. The drawings are not necessarily to scale.
[0006] As used herein, the term "above" describes the relationship of two portions to the Earth, unless otherwise stated. A first portion is above a second portion if the second portion has at least one portion between the Earth and the first portion. Similarly, as used herein, a first portion is "below" a second portion if the first portion is closer to the Earth than the second portion. As noted above, a first portion may be above or below a second portion in one or more of the following states: another portion is between the first and second portions; another portion is not between the first and second portions; the first and second portions are in contact; or the first and second portions are not in direct contact with each other.
[0007] As used in this patent, stating that any part (e.g., layer, film, region, area, or plate) is in some manner on another part (e.g., positioned, located, disposed, formed, etc. on another part) indicates that the referenced part is in contact with the other part or that the referenced part is above the other part, with one or more intermediate part(s) located between the referenced part and the other part.
[0008] As used herein, connected relationships (e.g., attached, coupled, connected, joined) may include intermediate members between the elements referenced by the connected relationship and / or relative movement between those elements, unless otherwise specified. Thus, a connected relationship does not necessarily imply that two elements are directly connected and / or in fixed relationship to one another. As used herein, when any part is said to "contact" another part, this is defined to mean that there are no intermediate parts between the two parts.
[0009] Unless otherwise specified, descriptors such as "first," "second," "third," etc. are used herein without attributing or otherwise indicating any sense of priority, physical order, placement in a list, and / or ordering in any way, but are merely used as labels and / or arbitrary names to distinguish elements to facilitate understanding of the disclosed elements. In some instances, the descriptor "first" may be used to refer to an element in the detailed description, while the same element may be referred to within the claims by a different descriptor, such as "second" or "third." In such cases, it should be understood that such descriptors are used, for example, merely to clearly distinguish between elements that may otherwise share the same name.
[0010] As used herein, "about" and "approximately" modify these subjects / values to acknowledge the possible existence of variations that occur in real-world applications. For example, "about" and "approximately" may modify dimensions that may not be exact due to manufacturing tolerances and / or other real-world imperfections, as understood by those skilled in the art. For example, "about" and "approximately" may indicate that such dimensions may be within a tolerance range of ±10%, unless otherwise specified in the description below. As used herein, "substantially real-time" refers to near-instantaneous occurrence, acknowledging that there may be real-world delays due to computation time, transmission, and the like. Thus, unless otherwise specified, "substantially real-time" refers to real-time ±1 second.
[0011] As used herein, the phrase "communicate," including variations thereof, encompasses direct communication and / or indirect communication through one or more intermediate components, and does not require direct physical (e.g., wired) communication and / or constant communication, but further includes selected communication at periodic intervals, scheduled intervals, aperiodic intervals, and / or one-time events.
[0012] As used herein, "processor circuitry" is defined to include (i) one or more special-purpose electrical circuits configured to perform specific operations and including one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors), and / or (ii) one or more general-purpose semiconductor-based electrical circuits that are programmable with instructions to perform specific operations and including one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors). Examples of processor circuits include programmable microprocessors, field programmable gate arrays (FPGAs) that may instantiate instructions, central processor units (CPUs), graphics processor units (GPUs), digital signal processors (DSPs), XPUs, or integrated circuits such as microcontrollers and application-specific integrated circuits (ASICs). For example, an XPU may be implemented by a heterogeneous computing system that includes multiple types of processor circuits (e.g., one or more FPGAs, one or more CPUs, one or more GPUs, one or more DSPs, etc., and / or combinations thereof) and application program interface(s) (API) that can assign computational task(s) to any one(s) of the multiple types of processor circuits that are best suited to perform the computational task(s).
[0013] FIG. 1 illustrates an example material handling facility 100 in which the teachings disclosed herein may be implemented. The material handling facility 100 may be associated with, for example, a storage warehouse, a distribution center, a manufacturing plant, a retail store, etc. In the illustrated example, the material handling facility 100 includes multiple loading docks 102 (two are shown), which provide a platform for trucks to back up their trailers or truck beds (both referred to herein as trailers) and allow loading and / or unloading of materials between the interior of the trailer and the material handling facility 100. FIG. 2 illustrates an example loading dock 102 as viewed from the exterior of the material handling facility 100. FIG. 3 illustrates an example loading dock 102 as viewed from the interior of the material handling facility 100, with a trailer 300 parked on the dock 102. FIG. 4 illustrates a cross-sectional side view of the example loading dock 102 with an associated trailer 300. 1-4, the example dock 102 includes a door 104, a doorway barrier 106, a dock leveler 108, a vehicle restraint device 110, a presence / motion detector 112, and / or a notification system 114. In some examples, the dock 102 may be associated with and / or include other equipment, such as, for example, fans, signals, door seals, shelters, trailer stands, etc.
[0014] In the illustrated example, each of the docks 102 includes a dock controller 116 that monitors and / or controls the operation of a corresponding door 104, a corresponding door rail 106, a corresponding dock leveler 108, a corresponding vehicle restraint device 110, a corresponding presence / motion detector 112, a corresponding notification system 114, and / or other equipment associated with the dock. In some examples, the dock controller 116 includes a display screen 118 that displays information associated with the components monitored and / or controlled by the controller 116. The display screen 118 may be a touchscreen through which a user may input commands and / or instructions to operate the controller and / or access particular information associated with the controller, the dock, or operations involving the dock. In some examples, the display screen 118 may be incorporated into a different device that is separate from but communicates with the dock controller 116. Although a single controller 116 is shown as controlling all of the equipment associated with the dock 102, in some examples, each dock 102 may be associated with multiple controllers configured to control and / or monitor various of the doors 104, door barriers 106, dock levelers 108, vehicle restraints 110, presence / motion detectors 112, notification systems 114, and / or other equipment associated with the dock. In other examples, the dock controller 116 may be associated with more than one dock and thus be able to control more than one aspect and / or function of more than one dock.
[0015] A door 104 associated with the dock 102 is selectively movable between an open position and a closed position to unblock or close the doorway between the interior 120 of the material handling facility 100 and the external environment 122. Thus, when the trailer 300 is parked at the dock 102, the door 104 provides access to the trailer when the door 104 is in the open position and prevents such access when the door 104 is in the closed position.
[0016] In some examples, the door 104 is associated with one or more sensors and / or door monitoring systems that facilitate monitoring and / or controlling the operation of the door 104. For example, one or more door status sensors may monitor and / or detect the status of the door 104 (e.g., whether the door is fully open, fully closed, partially open, partially closed, open, or closed). One or more impact sensors may monitor and / or detect when the door 104 is struck (e.g., by a material handling vehicle (e.g., a forklift)). One or more photoelectric sensors positioned on either side of the door 104 may monitor and / or detect the passage of a person or object through the doorway when the door is open. One or more motion and / or presence sensors may monitor and / or detect activity in an area proximate to the doorway (e.g., within the material handling facility 100 and / or within the trailer 300). One or more radio frequency identification (RFID) sensors may monitor and / or detect the identity of personnel, equipment, and / or materials passing through the doorway. One or more temperature sensors may monitor and / or detect the temperature on one or both sides of the door 104. One or more airflow sensors may monitor and / or detect the flow of air through the door 104 (e.g., air passing through the door when in an open or partially open position and / or air leaking through the door when in a closed position). One or more other environmental sensors may monitor and / or detect pressure, humidity, contaminants, particulates, chemicals, etc. One or more actuator sensors may monitor and / or detect the energy consumption and / or operation of a door actuator (e.g., a motor) used to open and / or close the door. One or more image and / or video sensors (e.g., cameras) may be implemented to monitor and / or detect certain conditions of the dock based on image / video analysis. In some examples, the dock controller 116 receives output signals from these sensors to monitor and / or control the operation of the door 104 .
[0017] In some examples, the doorway barrier 106 is configured to provide a barrier that extends across a doorway associated with the door 104. The doorway barrier 106 may block passage through the doorway even when the door 104 is in an open position. In this manner, the doorway barrier 106 may be used as a safety measure when the door 104 is open but no trailer is parked at the dock 102, or when a trailer at the dock 102 is not restrained, as shown in FIG. 2, for example. The doorway barrier 106 may extend across the doorway in front of the door 104 in the interior 120 of the material handling facility 100 to protect the door 104 by reducing the likelihood that material handling equipment will strike the door 104, even when the door 104 is closed. In some examples, the doorway barrier 106 is associated with a barrier sensor 302 (FIG. 3) that outputs a signal to the dock controller 116 indicating the state of the doorway barrier 106 (e.g., whether the barrier is in active use and blocking the doorway (as shown in FIG. 2), stowed to provide passage through the doorway (as shown in FIGS. 3 and 4), or in some intermediate state). In some examples, the barrier sensor 302 and / or a different sensor detects an impact (e.g., force) on the barrier 106, which may indicate a collision with the barrier.
[0018] Often, when a truck bed or trailer (e.g., trailer 300 shown in FIGS. 3 and 4 ) is parked on dock 102, there may be a gap between the rear edge of the truck bed or trailer and the outer surface of the platform of dock 102. Dock leveler 108 provides an adjustable bridge across this gap, over which material handling equipment may move between the interior 120 of material handling facility 100 and the trailer of a vehicle parked on dock 102. Additionally, dock leveler 108 may be vertically adjustable to act as a ramp to compensate for trailers having various heights relative to the platform of dock 102. In some examples, dock leveler 108 includes one or more sensors that facilitate monitoring and control of the operation of dock leveler 108. For example, the leveler sensor may generate an output signal indicating when the dock leveler 108 is enabled (extended to span the gap between the dock platform and the trailer, as shown in FIGS. 3 and 4), disabled (the leveler is in a stored position, as shown in FIG. 2), or in some intermediate state. In some examples, if the trailer pulls away from the dock 102 while the dock leveler 108 is enabled, a sensor such as a limit switch may detect this (e.g., detecting the leveler falling when the extended end is no longer supported by the trailer). In such examples, the output of the limit switch may trigger the dock controller 116 to retract the dock leveler 108 to the disabled stored position.
[0019] The vehicle restraint 110 associated with each dock 102 is positioned in the external environment 122 to engage a portion of a vehicle (e.g., trailer 300) parked at the dock 102 to reduce unintended movement of the vehicle (e.g., due to the vehicle shifting as a result of material handling equipment moving around within the trailer and / or due to an inexperienced driver driving off the platform). In some examples, the vehicle restraint 110 engages the vehicle's rear bumper (e.g., ICC bar 400 shown in FIG. 4 ) to restrain the vehicle. In some examples, the vehicle restraint 110 engages a tire and / or any other suitable portion of the vehicle. In some examples, the vehicle restraint 110 includes a trailer bed (e.g., that engages and / or supports the underside of the vehicle's trailer). In some examples, the vehicle restraint 110 includes one or more sensors that facilitate monitoring and / or controlling the operation of the vehicle restraint 110. For example, the restraint sensor may generate an output signal that indicates when the vehicle restraint 110 is in a locked position (e.g., in a predetermined position to engage / restrain the vehicle) or when it is in an unlocked position (e.g., stored away from the vehicle). Alternatively or additionally, the restraint sensor(s) may generate an output signal that indicates the position of the restraint relative to a reference point and / or the force(s) experienced by the restraint to determine whether the restraint is effectively engaging / restraining the vehicle.
[0020] In the example illustrated in FIG. 1 , the presence / motion detector 112 represents one or more presence / motion detector systems. In some examples, the presence / motion detector 112 includes a presence detector system that detects the presence of a trailer 300 located at the dock 102. The term “trailer,” for purposes of description related to presence or motion detection, refers to a trailer that may or may not be connected to a tractor and / or may or may not be detached from a tractor, or alternatively, to a vehicle having a cargo compartment or platform. In some examples, the presence of the trailer 300 is detected via one or more trailer sensors 202 ( FIG. 2 ), which are located on the material handling facility 100 building and / or in the external environment 122 adjacent to the building. The trailer sensor(s) 202 may be implemented using any suitable sensor, such as, for example, a photoelectric sensor, a proximity sensor, a motion sensor, an inductive loop sensor, a light detection and ranging (LIDAR) system, a camera with analytics, etc. In some examples, the presence / motion detector 112 may include a presence detector system that detects the presence of personnel / equipment (e.g., a person walking and / or operating material handling equipment, an autonomous vehicle, etc.) in a trailer 300 parked at the loading dock 102 (e.g., for loading and / or unloading cargo) or outside the facility above the entrance to the dock 102. In some examples, the presence of personnel / equipment in the trailer 300 is detected based on a motion sensor 204 ( FIGS. 2-4 ) pointing toward the trailer from a location within the material handling facility 100. Additionally or alternatively, the presence / motion detector 112 includes a presence detector system that detects the presence of personnel / equipment / material on the platform of the leveler 108, in the leveler pit 402, and / or otherwise in close proximity to the dock 102. In some examples, the presence of personnel / equipment in the material handling facility 100 proximate the dock 102 is detected based on motion sensors 304 (FIGS. 3 and 4) pointing toward the leveler 108 and / or the surrounding area. Additionally or alternatively, the presence of personnel / equipment / materials may be detected in a leveler pit 402 (FIG. 4) below the dock leveler 108 (e.g., a leveler stored in a vertical upright position) based on one or more presence / motion sensors 404 in the leveler pit 402.In addition to detecting the presence of vehicles, personnel, or material handling equipment, any one of the presence / motion systems represented by presence / motion detector 112 in FIG. 1 may enable the determination of the movement (e.g., speed, direction, etc.), location (e.g., proximity, orientation, etc.), size, shape, etc., and combinations thereof, of vehicles, personnel, equipment, or other objects (e.g., products, materials), and may enable the differentiation of these objects.
[0021] The notification system 114 of the illustrated example may include multiple separately functioning notification systems, including one or more visual indicators (e.g., lights, display screens, etc.) and / or one or more audible indicators (e.g., horns, bells, sirens, speakers, etc.) that notify personnel near the dock 102 of particular status, warnings, events, and / or other conditions associated with some aspect or condition of the dock 102 and / or vehicles located thereon. Additionally or alternatively, some of the visual indicators may be lights intended to illuminate and / or improve the visibility of an area associated with the dock 102 without indicating any particular status or condition associated with the dock. The visual and / or audible indicators of the notification system 114 may be located within the interior 120 of the material handling facility 100 and / or in the external environment 122 outside the material handling facility 100, depending on the purpose of the indicator.
[0022] In some examples, at least some indicators within the material handling facility 100 are positioned and / or aimed toward the exterior environment 122 (e.g., on the end of an arm associated with the motion sensor 204 shown in FIGS. 2-4 ) to illuminate, be visible from, and / or be audible from the interior of a trailer parked at the dock 102 when the door 104 is open. Such indicators provide greater visibility to personnel entering the trailer to load and / or unload cargo. Such indicators may also alert personnel within the trailer to potential safety risks, such as an unengaged vehicle restraint 110 and / or the presence of personnel near the dock 102 platform that may not be visible from within the trailer. Other indicators within the material handling facility 100 may be positioned and / or aimed to illuminate, be visible from, and / or be audible from an area within the facility's interior 120 (e.g., on the dock platform and / or surrounding area). Some such indicators may serve as warnings of possible safety risks, such as, for example, an unengaged vehicle restraint device 110 and / or the presence of a person in the trailer who may be about to exit unexpectedly. Additionally or alternatively, the indicators may indicate the operational status of equipment associated with the dock 102.
[0023] In some examples, the notification system 114 of FIG. 1 includes a timing indicator 306 ( FIG. 3 ), positioned adjacent the door 104 and visible from within the material handling facility 100, that displays a timer indicating how long a trailer has been parked at the dock 102. In this manner, personnel can be informed of how much time is left before delay and / or demurrage charges begin to accrue. In some examples, the timing indicator 306 is implemented via a display screen 118 associated with the dock controller 116. In some examples, the timing indicator 306 may count down rather than up. In some examples, the timing indicator 306 may change appearance (e.g., change color, begin flashing, etc.) and / or activate another indicator when the timing indicator reaches a threshold to indicate to personnel that a time deadline associated with a particular operational constraint (e.g., the need to quickly complete the loading and / or unloading of a trailer) is approaching. In some examples, the timing indicator 306 may indicate the priority (e.g., based on color, flashing, etc.) of trailer loading and / or trailer unloading at the corresponding dock 102 relative to trailer loading and / or trailer unloading at other docks 102. In some such examples, the prioritization may be based on the predicted time distribution and / or predicted cost sharing across the multiple docks 102 of the material handling facility 100, taking into account available work resources (e.g., available personnel, available material handling equipment, pickup status, inter-dock order status, etc.). Although the timing indicator 306 is shown as separate and remote from the controller 116 in the illustrated example, in other examples, the controller 116 includes the timing indicator 306.
[0024] In some examples, one or more indicators are positioned outside the material handling facility 100 to illuminate, be visible from, and / or be audible from an area outside the dock 102. In some examples, such indicators may be lights that illuminate an area to provide greater visibility to persons within the external environment 122 (e.g., drivers backing their trailers up to the dock 102). Additionally or alternatively, in some examples, the indicators may be signals that provide warnings and / or guidance to persons within the external environment 122. For example, as shown in FIG. 2, signal indicators 206 on the exterior of the facility 100 include stop (red) and go (green) signals to instruct truck drivers when they may back their trailers (e.g., trailer 300 in FIGS. 3 and 4 ) into an area adjacent to the dock 102 and / or when they may pull away from the dock 102. In some examples, signals and / or audible indicators may be used to indicate to the driver when the vehicle restraint device 110 is in an inactive state (e.g., the vehicle restraint device 110 is not in use because the shape and / or configuration of the trailer prevents the vehicle restraint device 110 from engaging and / or restraining the trailer), when the dock equipment is undergoing maintenance, when someone / something is in or near the path of the trailer, etc. Such conditions may be communicated via separate indicators, utilizing various states of a common indicator (color / sound changes, flashing / ringing patterns, etc.), or combinations thereof. Additionally, in some examples, indicators associated with the dock 102 include signals and / or audible alarms that notify persons standing near the dock entrance when a truck is backing into the dock.
[0025] In some examples, dock controller 116 controls various indicators associated with notification system 114 based on one or more of signals received from various sensors associated with door 104, door barrier 106, dock leveler 108, vehicle restraint 110, and / or presence detector 112. For example, in some such examples, dock controller 116 causes signal indicator 206 to provide a stop signal (e.g., a red light) whenever a restraint signal indicates that vehicle restraint 110 is active and engaged with a trailer. As another example, if the door sensor indicates that door 104 is open when presence detector 112 does not detect a trailer parked on dock 102, there is a risk that the open door could create a fall onto the dock platform. Thus, in some examples, dock controller 116 may turn on a warning indicator to alert nearby individuals to an exposed fall. However, in some such instances, the dock controller 116 may not trigger a warning indicator when the barrier sensor 302 provides a signal that the doorway barrier 106 is in an active use state, blocking passage through the open doorway. Thus, various signal outputs from different signals of various sensors may be used in combination to trigger the activation or change of state of indicators associated with the notification system 114 to provide warnings, notifications, and / or guidance to persons within the area associated with the dock 102.
[0026] While the material handling facility 100 includes a dock 102 having various components and / or systems that facilitate the transfer of items between trailers and the material handling facility 100, the material handling facility 100 of FIG. 1 also includes other components and / or systems that facilitate the handling, movement, and / or storage of items within the interior 120 of the material handling facility 100. In some examples, these components and / or systems may operate substantially independently of one another from separate controllers that monitor and / or control the operation of these components and / or systems. In particular, as shown in FIG. 1, the material handling facility 100 includes one or more industrial doors 124 (two are shown), which are powered to selectively seal or unseal doorways and / or other passageways between various locations (e.g., rooms and / or other areas) within the material handling facility 100.
[0027] In the illustrated example, each door 124 includes a corresponding door controller 126 that controls the operation of the door 124. In some examples, the industrial doors 124 also include sensors similar or the same as those described above (for the doors 104 of the loading dock 102), allowing the door controller 126 to monitor and / or control the interior doors 124. For example, such a door 124 may include one or more door status sensors that indicate the status of the door 124 (e.g., open, closed, opening, closing, etc.), one or more impact sensors that monitor and / or detect when the door is struck, such as when a material handling vehicle strikes the door 124, one or more sensors, such as a photoelectric sensor, that monitor and / or detect the passage of a person or object through a doorway associated with the door 124, one or more motion and / or presence sensors that monitor and / or detect activity in an area proximate to the doorway (e.g., on one or both sides of the doorway), one or more sensors that monitor and / or detect the identity of personnel, equipment, and materials passing through the doorway, and one or more sensors that monitor and / or detect the identity of personnel, equipment, and materials passing through the doorway. The door 124 may include one or more RFID sensors, one or more temperature sensors that monitor and / or detect the temperature on one or both sides of the door 124, one or more other environmental sensors that monitor and / or detect pressure, humidity, contaminants, particulates, chemicals, etc., one or more airflow sensors that monitor and / or detect the flow of air through the door 124 (e.g., air passing through the door 124 when in an open or partially open position and / or air leaking through the door when in a closed position), and one or more actuator sensors that monitor and / or detect the energy consumption and / or operation of a door actuator (e.g., a motor) used to open and / or close the door 124. Additionally or alternatively, in some examples, the door 124 includes one or more departure sensors that detect a departure event. As used herein, a departure event is when the door leaf of the example door 124 is pushed out of the track that guides the lateral edge of the door leaf. Typically, a departure event occurs due to an impact of a relatively large object (e.g., a forklift) on the door leaf. However, a breakaway event may be caused by a burst of pressure. In some examples, the door controller 126 includes and / or is communicatively coupled to a local display screen similar to the display screen 118 of the dock controller 116.
[0028] In some examples, how the door controller 126 uses the signal output by such a sensor may depend on the location and / or intended use of the associated door 124. For example, one or more doors 124 may provide access to a freezer compartment. In such an example, the associated door controller 126 may monitor a feedback signal provided by a temperature sensor to ensure that the temperature on the freezer side of the freezer compartment remains at or below a temperature setpoint. Additionally or alternatively, the door controller 126 for a freezer compartment door may monitor how often and / or for how long the door is open (based on feedback from the door status sensor) and generate an alert when the frequency or duration of the door opening exceeds a corresponding threshold. In another example, one or more doors 124 may be used to control access to a clean room where contaminants are at a relatively low level. In some such examples, the door controller 126 may monitor feedback signals from one or more airflow and / or pressure sensors to ensure that airflow rates (which may lead to the spread of contaminants) are maintained at or below appropriate thresholds or that a particular pressure differential is maintained across the doorway. In some examples, separate doors (e.g., the industrial door 124 and / or the dock door 104) may be configured in an interlocking relationship such that operation of one door is conditional on the state or operation of the second door (e.g., only one of the two doors may be open at a given time). In such examples, signals from sensors monitoring operation of each door may be provided to separate door controllers 116, 126 associated with each door (or a single controller 116, 126 that controls both doors).
[0029] 1 , each of the dock controllers 116 associated with the various docks 102 and the door controllers 126 associated with the interior industrial doors 124 communicate with a main server 128. More specifically, in some examples, the dock controllers 116 and door controllers 126 transmit values corresponding to operational and / or status parameters configured within their respective controllers 116, 126 and / or feedback signals collected from any sensors associated with their respective controllers. In this manner, the main server 128 aggregates all available data associated with the various separate systems within the material handling facility 100. By aggregating data from different sources, the main server 128 can analyze and / or integrate the controller data, enabling it to identify relationships that would not otherwise be possible to identify. As described more fully below, in some examples, the main server 128 organizes the collected controller data and presents it to the end user via one or more dashboards or graphical user interfaces (GUIs) targeted to the end user's particular interests. The graphical user interfaces may be presented via one or more web pages, apps, applets, applications, etc. In some examples, the graphical user interfaces may be configurable to provide notifications and / or alerts upon detecting certain events based on the values of various parameter combinations monitored by one or more of the controllers 116, 126. Further details regarding exemplary main server 128 implementations are provided below in connection with FIGS. 11-13. Additionally or alternatively, in some examples, the main server 128 may transmit information back to the controllers 116, 126. In some such examples, the information sent to the controllers is passive, in that the information does not affect the operation of the components controlled by the controllers. In such an example, the information is provided for display on a local display screen (e.g., the display screen 118 of the dock controller 116 shown in FIG. 3 and a similar local display screen associated with one of the door controllers 126) and can be viewed by personnel located near the controller.In other examples, information sent from main server 128 to a controller may be active in that the information includes commands and causes the controller to perform a particular action. In the illustrated example, main server 128 is shown as being located within material handling facility 100, but in other examples, main server 128 may be located remotely away from material handling facility 100. In some examples, main server 128 may be integrated with and / or implemented by one of the dock controllers 116. In some examples, main server 128 may be located in the cloud (e.g., may be a server provided by a cloud provider).
[0030] In some examples, a graphical user interface generated based on information gathered by the main server 128 may be configurable to provide information regarding the configuration, operation, and / or current status of one or more of the docks 102 and / or doors 124 in substantially real time (e.g., with a delay of less than five seconds). Additionally, the graphical user interface may provide alerts and / or notifications regarding detected safety events and / or the need to schedule maintenance for equipment within the facility. In some examples, safety events across different equipment (e.g., various docks 102 and / or doors 124) may be aggregated and categorized based on the type of safety event, the time of the event, and / or the equipment involved, to evaluate the frequency and nature of the safety event. In some examples, depending on the nature of the safety event, the main server 128 may generate various recommendations for corrective actions, which may be provided through the graphical user interface. Exemplary graphical user interfaces and methods for recommending corrective actions and other safety analysis information provided to a user are further described below in connection with FIGS. 5-10.
[0031] In the example shown in FIG. 1 , main server 128 communicates with one or more remote servers not located at material handling facility 100. In some examples, the remote server(s) correspond to additional servers equivalent to main server 128 and located at other material handling facilities and / or other locations associated with the enterprise operating material handling facility 100 of FIG. 1 . Additionally or alternatively, in some examples, remote server(s) 130 may correspond to a server maintained by a manufacturer of equipment associated with one or more of dock controllers 116 and / or door controllers 126. For example, remote server 130 may provide equipment warranty information, equipment version and / or update information, equipment installation dates, technician and / or service call records, etc. In other examples, remote server 130 may be located in the cloud (e.g., may be a server provided by a cloud provider).
[0032] 1 , material handling facility 100 includes one or more management server(s) 132 that facilitate management of various aspects of the assets and / or operational operations of equipment at material handling facility 100. In some examples, management server(s) 132 communicate with main server 128 via a bus, a local area network (LAN), and / or a wide area network (e.g., the Internet). Example management server(s) 132 may include a dock / yard management system, an inventory control system, a video management system (VMS), a warehouse management system (WMS), an enterprise resource planning (ERP) system, etc. Additionally or alternatively, in some examples, one or more of management servers 132 may be combined with and / or implemented by main server 128.
[0033] For purposes of explanation, data reported from the various controllers 116, 126 in FIG. 1 to the main server 128 is referred to herein as IO (input / output) data because this data includes inputs and outputs monitored and / or provided by the respective controllers. IO data is also referred to herein as sensor feedback data because the IO data is based on feedback from sensors collected by the various controllers 116, 126. In the illustrated example, the IO data (sensor feedback data) collected by the main server 128 is transmitted from the controllers 116, 126 over a wireless mesh network (other network types may also be used, e.g., wired or wireless non-mesh). Thus, in the example shown in FIG. 1, each of the controllers 116, 126 includes an IO communication board 134 that includes a wireless transceiver (e.g., radio) that transmits the IO data according to any suitable communication protocol. In some examples, the IO boards of the controllers 116, 126 transmit IO data directly (e.g., without going through the mesh network) to a receiver associated with the main server 128. In other examples, IO data from one controller may be transmitted indirectly to the main server 128 via IO communication boards 134 in various controllers and / or via any other device or component capable of communicating over the mesh network (e.g., one or more gateways, relays, repeaters, etc.). In some examples, the IO boards of the controllers 116, 126 are implemented with reusable firmware modules that convert and normalize data collected by the various controllers into a common format corresponding to a particular communication protocol. The reusability of the firmware allows the firmware to be embedded into existing products and modified to integrate into the monitoring system of the main server 128.The ability of each of the controllers 116, 126 to transmit data in a common format according to a single communication protocol allows the main server 128 to directly integrate and correlate data collected from various types of controllers, regardless of the original source of the data and / or the nature and / or type of sensors used to generate such data.
[0034] In some examples, transmissions from the controllers 116, 126 reporting IO data include device identification information, which includes an identifier, name, and / or type of the device or controller sending the message, as well as the address of the device on the network. The device identification information allows the main server 128 to determine the message source (e.g., the controller that sent the message). In some examples, the IO data includes specific IO parameter values monitored and / or generated by the controller. In some examples, the IO parameter values correspond to the measured output of a sensor monitored by the corresponding controller (e.g., the output of a door sensor indicating whether the door 104 is open or closed). In other examples, the IO parameter values are not directly measured or sensed, but are derived based on one or more measurements (e.g., one or more measurements derive a transition state of the door 104 (e.g., opening or closing) based on the last state of the door sensor and a signal from an actuator sensor indicating that the door actuator is moving the door).
[0035] As described above, main server 128 serves as a central hub that collects and / or consolidates data associated with different systems (e.g., various docks 102 and / or industrial doors) operating throughout material handling facility 100. In some examples, main server 128 corresponds to and / or is associated with web server 136, including web server 136 that hosts one or more web pages accessible to users via client devices 138. Client devices 138 may be any suitable computing device having a browser for accessing web pages hosted by web server 136. Thus, client devices 138 may correspond to one or more operator stations located at material handling facility 100 (e.g., within the facility's logistics office). In some examples, client devices may be handheld devices (e.g., tablets, smartphones, etc.) carried by personnel throughout material handling facility 100 and / or remote from the facility. Additionally, some client devices 138 may be handheld devices used by truck drivers who transport trailers to or from the material handling facility 100 and / or yard jockeys who move trailers to different locations at the dock 102 and / or within the yard of the material handling facility 100.
[0036] The various web pages may include various graphical user interfaces designed to present various types of information in an easily understandable format and to facilitate user recognition of relationships between data collected from various sources within the material handling facility 100. In some examples, the main server 128, through web-based communications 140, automatically updates one or more of the web pages whenever new data related to a particular web page is collected. Additionally, in some examples, the web pages are designed to receive user input that is returned to the main server 128. In some examples, web page updates are implemented based on pull requests from client devices requesting updated information. Additionally or alternatively, in some examples, updates may be pushed to and dynamically updated by web pages actively opened by particular client devices using push requests. In some examples, user input received on one web page may be pushed to other web pages (e.g., other web pages accessed by other client devices 138) that display information related to the user input. Although the graphical user interface is disclosed herein with reference to a web page, the graphical user interface may be presented using something other than a web page (e.g., via an app, applet, application, etc.). In some examples, the graphical user interface is provided via a display device associated with the example notification system 114 that is local to a particular dock 102, as described above with reference to FIG.
[0037] In some examples, the main server 128 analyzes information provided by separate systems within the material handling facility 100 to identify situations, conditions, and / or events (collectively referred to herein as events) that may require a response or other solution. In some examples, the identification of such events is based on configurable rules that depend on feedback (e.g., specific IO data) from various ones of the controllers 116, 126. In some examples, the main server 128 triggers a specific response based on the detection of a particular event (e.g., when the conditions of an associated event rule are met). In some examples, the response may include returning information and / or instructions to one or more of the controllers 116, 126, causing such controller to initiate some action (e.g., opening or closing a door, changing the operating state of a fan, blower, or conveyor, toggling the state of an indicator light, etc.) within the equipment associated with the corresponding controller. In some examples, the main server 128 may respond to a particular event by generating an alert, alarm, notification, log entry, and / or report (collectively referred to herein as a notification) that is provided to one or more client devices 138. In some examples, such notifications may be provided via web communication 140 when updating a web page. Additionally or alternatively, the main server 128 may provide notifications to client devices 138 independent of the web server 136 using other forms of network communication 142, such as, for example, email messages, SMS (Short Message Service) messages, push notifications, etc. Additionally or alternatively, the main server 128 may send a notification of the rendering via a local display screen (e.g., display screen 118) associated with one of the controllers 116, 126 throughout the facility 100. In this manner, such notifications provide information to personnel located in close proximity to the same controller that reported the information to the main server 128 used to generate the notification.
[0038] Providing automatic notifications to individuals as disclosed herein enables those individuals to become aware of certain events that would otherwise remain unknown to them. This is a significant improvement to the efficient use and operation of the control systems described above, as the events may correspond to actions that disrupt the efficient loading, unloading, and / or storage of items at facility 100, actions that pose a safety risk to personnel in and / or around facility 100, actions that pose a risk of damage to equipment used within facility 100, etc. Through monitoring various systems and operations within material handling facility 100 and automatically generating and transmitting notifications, the examples disclosed herein enable affected individuals to take appropriate action in response to various notifications (e.g., reversing previously taken actions that triggered the notification, providing further training to reduce or eliminate the triggering event, planning and / or implementing preventative and / or maintenance activities, reconfiguring process flow and / or equipment use procedures, etc.).
[0039] In some examples, the nature or content of a particular notification depends on the nature of the particular event that triggered the notification. More specifically, in some examples, in addition to identifying occurrences of safety events, the main server 128 tracks or logs such events over time and categorizes different types of safety events by frequency (e.g., volume), location, and / or time of day. Based on these factors, the main server 128 may select a particular corrective action from a set of possible corrective actions for this event type, and the particular corrective action may be specified in a notification to the user via a graphical user interface and / or another messaging system. The frequency or number of various occurrences of a particular type of event may indicate whether the event is a periodic occurrence or a one-time type of situation and may influence the particular corrective action selected by the main server 128 to recommend to the user. The location of a particular type of event can also influence which specific corrective action is selected, based on whether the event occurs widely across multiple docks 102 and / or doors 124 (suggesting that there may be a problem with the way workers use equipment) or only at a particular dock 102 and / or door 124 (suggesting that there may be a problem with the equipment at the particular dock 102 and / or door 124 involved in the event). The time of day also influences the selection of a specific corrective action, in that a safety event that consistently occurs during a particular time block during a day is an indication that the problem is caused by activity during that particular time block. For example, if a time block corresponds to a particular work shift at the material handling facility 100, then most (or all) safety events that occur during that work shift may indicate that the way workers performed their tasks during that particular shift is the likely cause of the safety event. In contrast, if a particular type of safety event occurs at various times throughout the day, it is not possible to isolate a particular worker as the source of the problem. Instead, it may be the case that all workers require new training and / or operation and / or that the equipment configuration needs to be updated.
[0040] In consideration of the above factors, in some examples, the main server 128 divides or categorizes a particular type of safety event into one of four scenarios: (1) a scenario occurring at one location (e.g., one dock 102 or one door 124) during one time block (e.g., one shift) during a day; (2) a scenario occurring at one location during multiple time blocks during a day; (3) a scenario occurring at multiple locations during one time block during a day; and (4) a scenario occurring at multiple locations during multiple time blocks during a day. In some examples, the set of possible corrective actions from which the main server 128 selects a particular corrective action includes various corrective actions for each of the four scenarios listed above. In some examples, the set of possible corrective actions for a given type of safety event may differ from the set of possible corrective actions for a different type of safety event. In other examples, the same set of possible corrective actions is used for various types of safety events.
[0041] Various example corrective actions recommended for each of the four scenarios are summarized in Tables 1-8 for various example safety events. More specifically, Table 1 outlines example corrective actions for a safety event at dock 102 triggered by presence / motion detector 204, which detects movement within the trailer when vehicle restraint device 110 is not engaged to secure the trailer. This is a safety event because it presents the possibility that the trailer could be pulled away while someone is working inside the trailer.
[0042] Table 1: Corrective Actions for Unsafe Loading / Unloading from Trailers TIFF2026501128000002.tif93170
[0043] Table 2 outlines example corrective actions for a safety event at the dock 102, triggered by the vehicle restraint 110 being disabled (in this case, the vehicle restraint 110 is not engaged with a trailer at the dock) and the presence detector 112 indicating that a trailer is not present at the dock 102. This is a safety event because it indicates a potentially dangerous scenario in which a trailer is pulled from the dock 102 while the traffic light indicator 206 is at a stop (red) signal, violating the standard operating sequence for truck departures. The event could be triggered by a trailer not being present at the dock, such as when the dock door 104 is opened by personnel to cool the building or for some other reason other than loading or unloading a trailer. Thus, in some examples, the main server 128 confirms the presence of a trailer by matching timestamps to log entries related to the trailer's arrival and departure at the dock 102. In addition to the corrective actions shown in Table 2, the main server 128 may also identify and / or provide one or more videos that present or provide training regarding the proper use of vehicle restraint devices in an inactive state and / or stop (red) light departure conditions.
[0044] Table 2: Corrective Actions for Unsafe Trailer Departures TIFF2026501128000003.tif84170
[0045] Table 3 outlines example corrective actions for a safety event at dock 102, where the safety event is triggered by the dock door 104 being open while no trailer is present and the doorway barrier 106 is not engaged. Table 4 outlines example corrective actions for a similar safety event at dock 102 without the doorway barrier 106. The absence of the barrier 106 (either not available at the dock or available but not engaged) while the door is open and no trailer is present presents a potential detachment hazard.
[0046] Table 3: Corrective Actions for Potential Disengagement Hazards When Door Bars Are Available but Not Engaged TIFF2026501128000004.tif83170
[0047] Table 4: Corrective measures for potential falling hazards when door guards are not available TIFF2026501128000005.tif84170
[0048] Table 5 outlines example corrective actions for a safety event at dock 102 triggered by the vehicle restraint 110 being disabled. As explained above, in some instances, the vehicle restraint is disabled because the restraint is not latchable onto or engages a particular trailer (e.g., the trailer includes a lift gate, the trailer does not include a rear bumper, etc.). Therefore, as detailed in Table 5, the corrective action includes examining the state of the trailer to determine if the event was a time when the restraint should have been disabled or the proper operating sequence was not followed.
[0049] Table 5: Corrective Actions for Invalid Vehicle Restraints TIFF2026501128000006.tif122170
[0050] Table 6 outlines example corrective actions for a safety event on the interior industrial door 124, where the safety event is triggered by a departure sensor detecting that the door panel has been pushed outside the trajectory intended to guide its movement. Typically, such a departure event is caused by a large object (e.g., a forklift) striking the door panel as it moves between an open and closed position. However, door departure can also be caused by a pressure burst. Therefore, in some examples, the main server 128 relies on additional IO data to distinguish between these scenarios and recommend different corrective actions based on this determination. Additionally or alternatively, the corrective action recommended by the main server 128 may include a direction that determines the nature of the departure event. A departure event caused by an impact from a forklift while the door is open may indicate insufficient activation time to move from the closed position to the open position. In contrast, a departure event caused by a forklift impact as the door is closing may indicate insufficient detection of the doorway perimeter to ensure the doorway is clear before closing. Additionally or alternatively, an impact as the door is closing may also indicate that the door will remain open too quickly before closing (based on the closure timer) to allow passage through the doorway. Thus, in some examples, main server 128 uses additional IO data indicating the direction of door travel to imply a particular scenario and select a specific corrective action tailored to that scenario. Options for various example corrective actions for an impact as the door is opening versus an impact as the door is closing are shown in FIG. 6. Additionally or alternatively, the corrective action recommended by main server 128 may include a direction that determines the direction of door travel.
[0051] Table 6: Corrective measures for door panel separation TIFF2026501128000007.tif132170
[0052] Table 7 outlines example corrective actions for a safety event on an interior industrial door 124 triggered by the door's failure to return to track after a breakaway event.
[0053] Table 7: Corrective Actions for Improper Door Reset TIFF2026501128000008.tif122170
[0054] Table 8 outlines example corrective actions for a safety event at the interior industrial door 124, triggered by the door controller 126 reporting a door reversal (e.g., the door is closing and then switches to moving to an open position based on detecting that something or someone passed through the doorway while the door was closing). In addition to the corrective actions shown in Tables 1-8, the main server 128 may also identify and / or provide one or more videos that present or provide training on how to avoid the associated safety event(s) that triggered the need for the corrective action. For example, the main server 128 may identify and / or provide video that exhibits the appropriate motion sequence at the dock. Table 8: Corrective Actions for Door Reversals TIFF2026501128000009.tif93170
[0055] As indicated above, each of Tables 1-8 outlines four possible scenarios based on whether a particular safety event is associated with a single time block (e.g., a single shift) or multiple time blocks (e.g., multiple shifts), and based on whether the safety event is associated with a single location (e.g., a single dock or door) or multiple locations (e.g., multiple docks or doors). However, in other examples, different scenarios may be defined, including different categorizations and / or groupings of these and / or other factors, with different corresponding corrective actions. In some examples, artificial intelligence may be used to analyze and categorize historical data to identify patterns and / or determine specific scenarios for which specific corrective actions may be appropriate.
[0056] Generally, artificial intelligence (AI), including machine learning (ML), deep learning (DL), and / or other artificial machine-based logic, enables a machine (e.g., a computer, logic circuit, etc.) to use a model to process input data and generate output based on patterns and / or connections previously learned by the model through a training process. For example, a model may be trained with data to recognize patterns and / or connections and follow such patterns and / or connections when processing input data such that other input(s) result in output(s) consistent with the recognized patterns and / or connections.
[0057] Generally, the implementation of an ML / AI system involves two phases: a learning / training phase and an inference phase. During the learning / training phase, a training algorithm is used to train a model (e.g., a neural network) that operates according to patterns and / or connections based on training data. Generally, the model contains internal parameters that guide how input data is transformed into output data, such as through a series of nodes and connections within the model that transform the input data into output data. Additionally, hyperparameters are used as part of the training process to control how learning is performed (e.g., the learning rate, the number of layers used in the machine learning model, etc.). Hyperparameters are defined to be training parameters that are determined before the training process begins.
[0058] Various types of training can be performed based on the type of ML / AI model and / or expected output. For example, supervised training uses inputs and corresponding expected (e.g., labeled) outputs to select parameters for the ML / AI model (e.g., by iterating over selected parameter combinations) to reduce model error. Labeling, as used herein, refers to the expected output (e.g., classification, expected output value, etc.) of the machine learning model. Alternatively, unsupervised training (e.g., used in deep learning, a subset of machine learning, etc.) involves inferring patterns from inputs and selecting parameters for the ML / AI model (e.g., that do not benefit the expected (e.g., labeled) output).
[0059] After training, the deployed model may undergo an inference phase on processed data. During the inference phase, the data to be analyzed (e.g., live data) is input into the model, which is then run to generate output. This inference phase may be thought of as the AI's "thinking," generating output based on what it learned from training (e.g., by running the model and applying learned patterns and / or associations to live data). In some examples, input data undergoes pre-processing before being used as input to a machine learning model. Additionally, in some examples, output data may undergo post-processing after a machine learning model is generated by an AI model to convert the output into a useful result (e.g., a representation of the data, instructions to be executed by a machine, etc.).
[0060] In some examples, the output of the deployed model may be captured and provided as feedback. The feedback may be analyzed to determine the accuracy of the deployed model. If the feedback indicates that the accuracy of the deployed model is below a threshold or other criterion, training of an updated model may be triggered using the feedback and an updated training data set, hyperparameters, etc. to generate an updated deployed model.
[0061] 5 is an exemplary graphical user interface presented by an exemplary equipment monitoring web page 500. As shown in the depicted example, the equipment monitoring web page 500 includes graphics, icons, symbols, and / or associated information representing the state and / or status of a series of docks 102 and / or other doors 124 of the material handling facility 100 as determined based on data collected by the main server 128 from the dock controllers 116, 126 and / or other devices in communication with the main server 128. In this example, the various docks 102 of the material handling facility 100 are graphically represented by a series of individual dock graphics, images, or icons 502. In this example, the various dock graphics of the dock graphics 502 differ in appearance based on differences between the corresponding docks 102 represented by the various dock graphics 502. Specifically, the dock graphics 502 differ based on differences in the nature of the equipment and / or dock doors 104 associated with the docks 102 that are implemented at each of the docks 102. For example, the dock graphic 502 identified by dock number 10 is represented by a low-floor door 504, while all other dock graphics 502 include a high-floor dock door 506 to represent the various types of doors 104 implemented at the corresponding docks 102. In some examples, the dock graphics 502 associated with the high-floor dock door 506 also include a graphical representation of the various types of equipment implemented at the corresponding dock 102. For example, the vehicle restraint device indicator, icon, or symbol 508 represents the presence of the vehicle restraint device 110 of FIGS. 1 and 2 . Additionally, the traffic light indicator, icon, or symbol 510 represents the presence of the traffic light indicator 206 of FIG. 2 . Further, in this example, the dock graphics 502 identified by dock numbers 05, 14, and 15 include a seal indicator, icon, or symbol 512 positioned around the associated dock door 506 to indicate the presence of a seal on that particular dock 102, while all other dock graphics 502 do not include a seal indicator, icon, or symbol 512.Further, in this example, the dock graphics 502 identified by dock numbers 05, 07, and 14 are represented with a fence indicator, icon, or symbol 513 to indicate that the corresponding dock 102 includes the doorway fence 106 shown in Figures 1-4.
[0062] In the illustrated example, the dock graphics 502 includes an instrument number indicator 514 that identifies the number of a connected device or instruments from which the main server 128 is receiving IO data (e.g., via an associated dock controller 116). Additionally, in some examples, the dock graphics 502 includes a connection status indicator 518 that indicates whether the main server 128 can communicate with the dock controller 116 for each corresponding dock 102. In some examples, if the connection is lost, the connection status indicator 518 may change appearance (e.g., begin flashing, change color (become dimmed), or disappear completely).
[0063] In some examples, the dock graphic 502 is adjusted and / or updated substantially in real time to convey status information associated with the corresponding dock 102 represented by the dock graphic 502. For example, in some examples, the fence icon 513 changes appearance to distinguish between when the fence 106 is in active use and blocking a doorway (as shown in FIG. 2 ) and when the fence 106 is stowed (as shown in FIG. 3 ). In some examples, the fence indicator 513 appears only in response to feedback indicating that the fence is blocking a doorway. Similarly, as shown in association with the dock graphic 502 identified by dock number 06, the dock door 506 may not be shown to indicate an open door. In some such examples, the open door state is further indicated by an upward-pointing arrow 516. In some examples, when the trailer sensor 202 detects and / or generates a signal indicating the presence of a trailer at the corresponding dock, a trailer icon 520 is shown in front of the corresponding dock door 506. In some such examples, the signal indicator 510 switches from a go (green) signal (as in the case of the dock graphic 502 identified by dock number 02) to a stop (red) signal (as in the case of the dock graphic 502 identified by dock number 02) in response to the vehicle restraint 110 being activated. Additionally, in some examples, a lock indicator, icon, or symbol 507 is also shown to indicate when the restraint 110 has been activated to restrain the trailer. In some examples, the lock indicator 507 may change appearance (e.g., change color, become dimmed, disappear completely, begin flashing, include a prohibition symbol overlaid on the lock indicator 507, indicate unlocked, etc.) to indicate when the restraint is in a disabled mode.
[0064] As shown in the illustrated examples, the trailer indicator, icon, or symbol 520 may represent either a closed trailer door (as in the case of the dock graphic 502 identified by dock number 02) or an open trailer door (as in the case of the dock graphic 502 identified by dock number 03). In some examples, the open trailer door is intended to indicate when the dock leveler 108 is activated and in position to allow personnel to enter the trailer. Additionally, in some examples, a forklift indicator, icon, or symbol 522 is shown within the trailer indicator 520 (as in the case of the dock graphic 502 identified by dock number 11) in response to the presence / motion detector 112 detecting movement within the trailer. In some examples, the presence / motion detector indicator, icon, or symbol 524 appears to indicate whether movement within the trailer is being monitored, regardless of whether movement is detected (and the forklift icon 522 is shown). That is, in some examples, a presence / motion detector indicator 524 is provided in a dock graphic 502 that includes a presence / motion detector 112 that monitors for motion within the trailer. In some examples, when motion is detected within the trailer, the presence / motion detector indicator 524 changes appearance (as shown by the difference in the indicator 524 shown on dock number 02 versus dock number 11). The change in appearance of the presence / motion detector indicator 524 can be any suitable change (e.g., begin flashing, change color, become highlighted, become brighter, change size, etc.).
[0065] In some examples, a timing indicator 526 is provided in association with each dock graphic 502 that is currently associated with a trailer being effectively loaded and / or unloaded. In some examples, the timing indicator 526 provides the same timing information as the timing indicator 306 described above in association with FIG. 3. In some examples, when a trailer is parked at a dock but not effectively loaded or unloaded, a parking indicator 528 is provided as shown in association with dock number 13 in FIG. 5. In some examples, a utilization indicator 530 is also provided in association with each dock graphic 502 to display the utilization percentage of the corresponding dock 102 within the material handling facility 100.
[0066] In the example shown in FIG. 5 , the equipment monitoring web page 500 includes a series of industrial door graphics, images, or icons 532 that graphically represent corresponding industrial doors 124 within the material handling facility 100. In this example, the various ones of the door graphics 532 differ in appearance based on differences in the corresponding doors 124 represented by the various door graphics 532. For example, the door graphics 532 may differ in appearance to represent different types of doors (e.g., vertically translating doors, roll-up doors, horizontally translating doors, etc.) and / or different types of mechanisms by which the corresponding doors 124 open and close (e.g., motorized mandrels or rollers, motorized gears interlocking with openings and / or protrusions in the side edges of the door panel, etc.). Additionally, in some examples, a thermometer indicator, icon, or symbol 534 may be included to indicate that the corresponding door is a freezer door. In some examples, the thermometer indicator 534 may dynamically change to reflect the measured temperature of the associated freezer compartment. In some examples, the door graphic 532 includes one or more fan indicators, icons, or symbols 536 that indicate the presence of one or more fans generating airflow near the door (e.g., to reduce condensation on the door). In some examples, the number of fan indicators 536 associated with a given door graphic 532 represents the number of fans implemented in association with the corresponding door 124. In some examples, the door graphic 532 includes a motion sensor indicator, icon, or symbol 538 that indicates the presence of a motion sensor that may detect motion (e.g., approaching traffic) near the door. In some examples, separate motion sensors may monitor both sides of the door. In some such examples, two or more motion sensor indicators 538 may be provided. However, in other examples, a single motion sensor indicator 538 is provided to represent both sensors. In some examples, the motion sensor indicator 524 changes appearance (e.g., changes color, begins to flash, brightens, changes size, etc.) in response to a traffic sensor detecting the presence of traffic.
[0067] In some examples, whether a particular door 124 in the material handling facility 100 is open or closed (or somewhere between open and closed) may be indicated based on the appearance of the corresponding door graphic 532 in the equipment monitoring web page 500. In other examples, the position of the door panel in the door graphic 532 may represent the amount of time that a particular door has been open over a given time period. The given time period may be any suitable time period (e.g., one day, one week, two weeks, 30 days, one month, etc.). For example, in this example, the door graphic 532 labeled "01 RampToG" is shown with the door panel approximately half open, indicating that the door has been open approximately half the time during a recent period (e.g., the last 30 days). In some examples, a specific percentage value 540 (e.g., 51% for the "01 RampToG" door graphic 532) is provided to more accurately indicate the percentage of time the door has been open during the recent time period.
[0068] In some examples, a cycle indicator 542 is provided with each door graphic 532 to display the number of cycles the door has undergone. In some examples, the cycle indicator 542 represents the number of cycles over a recent time period (e.g., 1 day, 1 week, 2 weeks, 30 days, 1 month, etc.). In other examples, the cycle indicator 542 represents the number of cycles since the last service was performed on the door. In other examples, the cycle indicator 542 represents the number of cycles over the life of the door.
[0069] In some examples, the dock graphics of the dock graphics 502 and / or the door graphics of the door graphics 532 may change appearance when the corresponding dock 102 and / or industrial door 124 is associated with an event (e.g., a safety event, a maintenance event) triggered by a condition and / or status of the corresponding dock 102 and / or door 124 that satisfies the conditions of an event rule defined for the material handling facility 100. In some examples, the change in appearance corresponds to a change in color of some or all of the graphics 502, 532. In the illustrated example, the walls surrounding the doorways of the dock 102 and / or door 124 change color to indicate that an event has been detected in connection with the corresponding dock or door (e.g., either the door associated with the dock 102 or the door corresponding to one of the industrial doors 124). In some examples, the color change is limited to the occurrence of a detected event within a recent threshold time period (e.g., the most recent 30 days). In some examples, different colors are used to represent different categories or groupings of events. For example, in some examples, safety events are indicated by a yellow color, while maintenance events are indicated by a red color. In some examples, both safety events and maintenance events are indicated by a first portion of the graphics (e.g., the upper portion of the wall surrounding and above the doorway) changing to yellow and a second portion of the graphics (e.g., the lower portion of the wall to the side and / or below the doorway) changing to red. In other examples, various colors other than yellow and red may be used. Additionally or alternatively, other examples may use various changes in appearance other than color changes to indicate the occurrence of a safety event, a maintenance event, and / or other types of event.
[0070] In some examples, clicking or otherwise selecting a dock or door associated with a detected event may provide the user with the option to review further details about the event. For example, FIG. 6 shows the equipment monitoring web page 500 after selecting the dock graphic 502 associated with dock number 05. As shown in the illustrated example, selecting the dock graphic 502 converts the graphic into an event selection graphic 602, which allows the user to select information associated with a safety or maintenance event. In this example, the user selects a safety event, revealing a safety analysis pop-up 604 that provides further details about the safety event associated with the corresponding dock 102. In some examples, the safety analysis pop-up 604 may alternatively be rendered as a sidebar so as not to obscure any of the dock graphics 502 and / or door graphics 532 shown on the equipment monitoring web page 500. In some examples, the safety analysis pop-up 604 may be rendered as an entirely separate window and / or web page.
[0071] In the example shown in FIG. 6 , the safety analysis pop-up 604 identifies various safety event cards 606, 608 associated with various types of safety events. Safety event cards are an exemplary type of notification containing safety analysis information that the main server 128 provides to a user. The safety event cards 606, 608 display a risk level indicator 610 that identifies a risk level associated with the corresponding type of safety event. In some examples, safety events are categorized into two levels of risk, including high risk and low risk. As used in this context, a high-risk safety event is an event that poses an actual risk of injury or damage to personnel and / or equipment. In contrast, a low-risk safety event is an event where, due to the configuration of the equipment (e.g., based on interlocks), there is no actual threat of injury or damage to personnel or equipment. However, such an event is still considered a safety event (albeit a low-risk event) because it occurs based on behavior that has the potential to cause injury or damage if the equipment was not configured to prevent such an event and / or if the preventative measures implemented by the equipment do not operate as intended. In other words, a low risk safety event is one based on an individual attempting to perform an unsafe behavior that is prevented based on the configuration of the device.
[0072] As a specific example, opening the dock door 104 when a trailer is not present and the doorway barrier 106 is not engaged to block passage through the open doorway poses a risk of falling out. Because a fallout could occur in this situation, this constitutes a high-risk safety event. However, if an interlock were established that prevents a person from opening the door unless a trailer is present or the doorway barrier 106 is in place, this risk would not actually occur and could therefore be categorized as a low-risk safety event. Even though there is no real risk because the door is prevented from opening, the mere fact that a person attempts to open the door (but the door's opening is prevented due to the interlock) still presents a risk because this person does not understand the potential risks involved in attempting to open the door, as outlined above. Thus, low-risk events do not present any significant risk of actual injury or damage, but they do represent an opportunity to train workers not to attempt unsafe behaviors (even when such hazards are prevented by the equipment's configuration). Thus, low-risk safety events, also referred to herein as training opportunities, may be represented within the training opportunity cards 612 of the safety analysis pop-up 604.
[0073] Other types of low-risk safety events or training opportunities (which do not pose an actual risk of injury or damage due to precautions configured into the equipment) include a user attempting to open the dock door 104 when the vehicle restraint 110 is not engaged (and not disabled), a user attempting to deploy the dock leveler 108 when the door 104 is not fully open, a user attempting to deploy the leveler 108 when the vehicle restraint 110 is not engaged, a user attempting to unlock or release the vehicle restraint 110 while the vehicle restraint 110 is actively detected in the trailer, a user attempting to operate the vehicle while the leveler 108 is deployed, and a user attempting to operate the vehicle while the vehicle restraint 110 is deployed. The user attempts to unlock or release the restraint 110, the user attempts to stow the leveler 108 while the leveler 108 is actively detected within the trailer, the user attempts to close the door 104 while the door 104 is actively detected within the trailer, the user attempts to close the door 104 while the leveler 108 is deployed, the user attempts to unlock or release the vehicle restraint 110 before the door 104 is closed, the user attempts to unlock or release the vehicle restraint 110 before the door gate 106 is engaged, and the user attempts to lower the vertical leveler 108 when movement is detected within the dock leveler pit 402.
[0074] As shown in FIG. 6 , the safety event cards 606, 608 and the training opportunity card 612 each include a count indicator 614 that displays the total number of docks and / or doors affected by the particular type of event associated with each card 606, 608, 612. In some examples, the count is limited to a recent time period (e.g., the last 30 days or any other suitable time frame). In some examples, the count indicator 614 corresponds to all docks and / or doors across the material handling facility 100 to display the prevalence of a particular safety event. Thus, the fact that the selected dock number 05 accessed the safety analysis pop-up 604 is unrelated to the number included in the count indicator 614. However, in some examples, the particular type of event represented in the safety analysis pop-up 604 corresponds to the type of safety event that occurred in association with the selected dock number 05. 6 is associated with an unsafe loading dock safety event (represented by a first safety event card 606) and an unsafe loading / unloading trailer safety event (represented by a second safety event card 608). When a different dock graphic 502 is selected within the equipment monitoring web page 500, the particular safety event cards that appear within the safety analysis pop-up 604 may vary depending on the particular safety event detected in association with the dock represented by the selected dock graphic 502.
[0075] For example, FIG. 7 illustrates a different exemplary safety analysis pop-up 700 associated with a different dock within material handling facility 100. As shown in FIG. 7, safety analysis pop-up 700 includes the same two safety event cards 606, 608 as shown in safety analysis pop-up 604 of FIG. 6. Thus, both the dock selected in association with safety analysis pop-up 700 of FIG. 7 and dock number 05 selected in association with safety analysis pop-up 604 of FIG. 6 are associated with the same type of safety event. Notably, the count indicators 614 for these safety event cards 606, 608 are the same in both FIG. 6 and FIG. 7 because, as noted above, the numbers represent all docks associated with a particular safety event. However, safety analysis pop-up 700 of FIG. 7 includes an additional safety event card 702 associated with a potential detachment hazard safety event that does not appear in FIG. 6 because this particular safety event was not detected in association with dock number 05 during the relevant time period. In other examples, the safety analysis pop-ups 604, 700 may be identical in content and represent all safety events across the material handling facility 100, but do not provide an indication of which events correspond to the particular dock selected when accessing the safety analysis pop-up.
[0076] FIG. 8 illustrates another example safety analysis pop-up 800 including safety event cards 802, 804 corresponding to particular types of safety events associated with the industrial door 124. Each of the safety event cards 606, 608, 702, 802, 804 includes a risk analysis drop-down 616 that can be expanded to access more detailed information corresponding to the type of safety event represented by each card. In some examples, the risk analysis drop-down 616 includes information about the frequency (e.g., quantity), location, and time of various event instances or occurrences of the particular safety event throughout the material handling facility 100. As noted above, these factors are used to provide recommendations for corrective actions, as described above in connection with Tables 1-8. In some examples, the particular corrective action selected by the main server 128 is based on the frequency, location, and / or time of the safety event occurrence.
[0077] More specifically, FIG. 9 illustrates the example safety event card 702 of FIG. 7 with the risk analysis dropdown 616 expanded to reveal the details contained therein. In this example, the risk analysis dropdown 616 includes an event summary 902 that describes the scenario(s) that caused the safety event. The example risk analysis dropdown 616 also includes a time and location summary 904 that identifies the range or breadth of the safety event occurrence across various time blocks (e.g., various shifts) during a day and various locations (e.g., various docks and / or doors). In some examples, the time and location summary 904 corresponds to one of four scenarios, including: (1) single shift, single dock (or door); (2) single shift, multiple docks (or doors); (3) multiple shifts, single dock (or door); and (4) multiple shifts, multiple docks (or doors). Thus, the time and location summary 904 identifies one of four options in each of Tables 1-8 described above. In some examples, the safety event associated with the first scenario (single shift, single dock) is referred to as an isolated safety event because the first scenario is isolated to a particular dock (or door) during a particular shift.
[0078] 9, the risk analysis dropdown 616 provides further information, including a representation of the total number of occurrences or instances of safety events and a percentage breakdown of the total number of instances of safety events that occurred in each different time block. In this example, the breakdown or distribution of the various instances of safety events across the various time blocks is represented by a pie chart. However, the breakdown or distribution may be represented in any other suitable manner. As shown in the illustrated example, the majority (approximately 75%) of the omission risk safety events occurred during the day shift between 8 a.m. and 4 p.m. Thus, while the time and location summary 904 shows multiple shifts, further information reveals that one particular shift was the primary cause of the safety event occurrences. In some examples, if the percentage of instances of a safety event during a particular shift meets (e.g., exceeds) a threshold less than 100% (e.g., 85%, 90%, 95%, 98%, etc.), the time and location summary 904 may indicate that only one shift is associated with the safety event and select appropriate corrective action focusing on the particular shift that is the primary cause of all safety events (even if a small percentage of instances of the safety event occurred during a different shift). In other examples, the time and location summary 904 may indicate that a safety event is associated with a single shift only if all events are actually associated with a single shift (e.g., only if a 100% threshold is met). Although the illustrated example shows time blocks corresponding to shifts during a day, any suitable time blocks may be used.
[0079] Additionally, in some examples, the risk analysis dropdown 616 provides a percentage breakdown of the total number of instances of the safety event that occurred at each different dock or door where the safety event occurred at least once. In this example, the breakdown or distribution of the various instances of the safety event across the various docks is represented by a pie chart. However, the breakdown or distribution may be represented in any other suitable manner. As shown in the illustrated example, the majority of the detachment hazard safety events occurred during the day shift between 8 a.m. and 4 p.m., but the various instances of the safety event are relatively evenly distributed across all six identified docks. In some examples, if the percentage of safety event instances meets (e.g., exceeds) a threshold of less than 100% at a particular dock (e.g., 85%, 90%, 95%, 98%, etc.), the time and location summary 904 may indicate that only one dock is associated with the safety event, allowing for the selection of appropriate corrective actions that focus on the particular dock that is the primary contributor to all safety events (even if a small percentage of the safety event instances occurred at a different dock). In another example, the time and location summary 904 may indicate that a safety event is associated with a single dock only if all events are actually associated with one dock (e.g., only if a 100% threshold is met).
[0080] In the example shown in FIG. 9 , the risk analysis dropdown 616 also provides a recommended corrective action 906. As described above, the recommended corrective action 906 is selected from a set of possible corrective actions based on the frequency, location, and time of the safety event. More specifically, in some examples, the specific corrective action(s) is / are based on the determination of a particular one of four possible scenarios provided in the time and location summary 904. Various example corrective actions for different types of event scenarios are detailed in connection with Tables 1-8. In some examples, the corrective action 906 includes a training button 908 that provides access to training video illustrating the proper (safe) sequence of action that avoids the safety event at issue in the safety event card 702 of FIG. 9 . In some examples, the training video is provided directly inside the safety event card 702. In other examples, the safety event card 702 provides a link that enables the user to access the training video.
[0081] FIG. 10 illustrates the example safety event card 802 of FIG. 8 , with the risk analysis dropdown 616 expanded to reveal the details contained therein. In this example, the risk analysis dropdown 616 includes a location and time summary 1004 showing a specific safety event (e.g., a door curtain detachment) corresponding to multiple time blocks (e.g., multiple shifts) and one industrial door. In this situation, there is no distribution display of the various instances of the safety event across various locations (e.g., various doors) because all instances of the event occurred at the same door within the relevant reporting period (e.g., the most recent 30 days). However, a distribution or breakdown or distribution of the various instances across various shifts is provided. Similarly, in an example where the safety event corresponds to a single-shift, multiple-dock (or door) scenario, the shift breakdown or distribution may be omitted (since only a single shift is involved), while a breakdown or distribution across various docks (or doors) is provided. Furthermore, as illustrated in the example shown in FIG. 10 , various corrective actions 1006 are provided relative to FIG. 9 based on differences in frequency, location, and time of the detected safety event.
[0082] FIG. 11 is a block diagram illustrating an example implementation of the example main server 128 of FIG. 1 , which aggregates data from various scenarios associated with different devices (e.g., the dock 102 and / or the door 124) and generates a graphical user interface (GUI) based on such aggregated data. The main server 128 of FIG. 11 may be instantiated (e.g., instantiated, made to last for any length of time, embodied, implemented, etc.) by a processor circuit such as a central processing unit that executes instructions. Additionally or alternatively, the main server 128 of FIG. 11 may be instantiated (e.g., instantiated, made to last for any length of time, embodied, implemented, etc.) by an ASIC or FPGA configured to perform operations corresponding to the instructions. Thus, it should be understood that some or all of the circuitry of FIG. 11 may be instantiated simultaneously or at different times. Some or all of the circuitry may be instantiated, for example, in one or more threads that execute concurrently on hardware and / or serially on hardware. Further, in some examples, some or all of the circuitry of FIG. 11 may be implemented by a microprocessor circuit executing instructions implementing one or more virtual machines and / or containers. As shown in FIG. 11 , the example main server 128 includes a web server 136. However, as noted above, in some examples, the web server 136 may be implemented separately from the main server 128. Alternatively, the web server 136 may be identical to the main server 128. In other examples, the web server 136 may be implemented as software by the main server 128. As shown in FIG. 11 , the example main server 128 includes an example network communication interface circuit 1102, an example IO network interface circuit 1104, an example time stamping circuit 1106, an example data logging circuit 1108, an example sensor feedback analysis circuit 1110, an example safety event analysis circuit 1112, an example GUI generation circuit 1114, and an example memory 1116.
[0083] The example network communications interface circuit 1102 of FIG. 11 enables communication with client devices 138 independent of the web server 136. For example, the network communications interface circuit 1102 may send email messages and / or SMS messages to one or more client devices 138. Additionally, in some examples, the network communications interface circuit 1102 may send data to and / or receive data from local management server(s) 132 and / or remote server(s) 130. In some examples, data received from the servers 130, 132 is stored in the example memory 1116. In some examples, the network communications interface circuit 1102 is instantiated by a processor circuit configured to execute network interface instructions and / or perform operations such as those represented by the flowcharts of FIGS. 12 and 13.
[0084] The example IO network interface circuit 1104 of FIG. 11 enables communication with the dock controller 116 and the door controller 126. That is, the IO network interface circuit 1104 receives sensor feedback data collected by the controllers 116, 126 and / or any other type of IO data reported by the controllers 116, 126. Such data may be collected and stored in memory 1116 for subsequent analysis and / or processing. Additionally or alternatively, in some examples, the IO network interface circuit 1104 transmits instructions, commands, and / or other types of information to the controllers 116, 126. In some examples, the IO network interface circuit 1104 is instantiated by a processor circuit configured to execute IO network interface instructions and / or perform operations such as those represented by the flowcharts of FIGS. 12 and 13.
[0085] The example time-stamping circuit 1106 time-stamps sensor feedback data obtained via the IO network interface circuit 1104 and stores such data in the example memory 1116. In some examples, the sensor feedback data is additionally or alternatively time-stamped by a corresponding controller 116, 126 before being sent to the main server 128. In some examples, the time-stamping circuit 1106 is instantiated by a processor circuit configured to execute time-stamping instructions and / or perform operations such as those represented by the flowcharts of FIGS.
[0086] The example data logging circuit 1108 logs the sensor feedback data along with an associated timestamp provided by the example time stamping circuit 1106 to a memory 1116. In some examples, the data logging circuit 1108 is instantiated by a processor circuit configured to execute data logging instructions and / or perform operations such as those represented by the flowcharts of FIGS. 12 and 13. The example sensor feedback analysis circuit 1110 analyzes feedback collected from sensors associated with equipment in the dock 102 and / or industrial door 124, determines the state and / or status of the equipment, and provides appropriate commands and / or instructions to the equipment based on the reported state and / or status. Furthermore, in some examples, the sensor feedback analysis circuit 1110 analyzes and / or compares sensor feedback data collected from different dock controllers 116 associated with different docks 102 and / or different door controllers 126 associated with different doors 124. In some examples, the sensor feedback analysis circuit 1110 is instantiated by a processor circuit configured to execute sensor feedback analysis instructions and / or perform operations such as those represented by the flowcharts of FIGS. 12 and 13.
[0087] The example safety event analysis circuit 1112 determines whether the equipment state and / or condition (determined by the sensor feedback analysis circuit 1110) is associated with or involves any event rules that define conditions that trigger a safety event. That is, the safety event analysis circuit 1112 determines whether the reported equipment state and / or condition is the basis for conditions that define the triggering of an event. If the equipment state and / or condition is associated with one or more event rules, the safety event analysis circuit 1112 evaluates each of the associated event rules based on the newly reported equipment state and / or condition to determine whether any safety event has been triggered. In some examples, a particular event rule includes multiple conditions that must be met before triggering the corresponding safety event. That is, in some examples, the determination of a particular safety event may depend on several different pieces of information (e.g., different IO parameters) obtained from various sources (e.g., different sensors and / or several other devices). If an event has not been triggered, no further action is taken. When a safety event is triggered, the example data logging circuit 1108 logs the event to memory 1116 along with an associated timestamp provided by the example time stamping circuit 1106 .
[0088] When a safety event is triggered or detected, the example safety event analysis circuit 1112 may initiate one or more actions in response to the event. In some examples, one response includes generating and delivering a notification to relevant individuals, such as generating safety event cards 606, 608, 702, 802, and 804 in FIGS. 6-10. In some examples, such a notification includes one or more recommended corrective actions to resolve the detected safety event. Thus, in some examples, the safety event analysis circuit 1112 analyzes sensor feedback data to select appropriate corrective actions. More specifically, in some examples, the safety event analysis circuit 1112 identifies all instances or occurrences of a particular type of safety event during a given time period. In some examples, the given time period corresponds to a recent time period. The time period may be any suitable duration (e.g., one day, one week, two weeks, 30 days, one month, etc.). In some examples, the safety event analysis circuit 1112 analyzes all instances or occurrences of a particular type of safety event during a given time period and determines the total number of such occurrences across various locations (e.g., various docks and / or various doors) where such an event occurred at least once, the distribution of such occurrences, and the distribution of such occurrences across various time blocks during a day (e.g., various shifts during a day). In some examples, the safety event analysis circuit 1112 is instantiated by a processor circuit configured to execute safety event analysis instructions and / or perform operations such as those represented by the flowcharts of FIGS. 12 and 13.
[0089] The example GUI generation circuit 1114 illustrated in FIG. 11 generates GUIs (e.g., the GUIs shown in FIGS. 5-10 ) for display on web pages hosted by the web server 136. In some examples, the GUI generation circuit 1114 generates GUIs for other apps, applets, applications, etc. accessible to the client device 138 independent of the web server 136. The GUIs generated by the example GUI generation circuit 1114 may be based on the output of the sensor feedback analysis circuit 1110 and / or the safety event analysis circuit 1112. In some examples, the GUI generation circuit 1114 is instantiated by a processor circuit configured to execute GUI generation instructions and / or perform operations such as those represented by the flowcharts of FIGS. 12 and 13 .
[0090] In some examples, the main server 128 includes a means for serving web pages. For example, the means for serving web pages may be implemented by a web server 136. In some examples, the web server 136 may be instantiated by a processor circuit, such as the example processor circuit 1412 of FIG. 14 . For example, the web server 136 may be instantiated by the example microprocessor 1500 of FIG. 15 executing associated machine-executable instructions. In some examples, the web server 136 may be instantiated by hardware logic circuitry, such as may be implemented by an ASIC, an XPU, or an FPGA circuit 1600 of FIG. 16 configured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the web server 136 may be instantiated by any other combination of hardware, software, and / or firmware. For example, web server 136 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op amps), logic circuits, etc.) configured to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, although other configurations are equally suitable.
[0091] In some examples, the main server 128 includes means for communicating with the client devices 138. For example, the means for communicating with the client devices may be implemented by a network communications interface circuit 1102. In some examples, the network communications interface circuit 1102 may be instantiated by a processor circuit, such as the example processor circuit 1412 of FIG. 14 . For example, the network communications interface circuit 1102 may be instantiated by the example microprocessor 1500 of FIG. 15 executing associated machine-executable instructions. In some examples, the network communications interface circuit 1102 may be instantiated by hardware logic circuitry, such as may be implemented by an ASIC, an XPU, or an FPGA circuit 1600 of FIG. 16 configured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the network communications interface circuit 1102 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the network communications interface circuit 1102 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op amps), logic circuits, etc.) configured to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, although other configurations are equally suitable.
[0092] In some examples, main server 128 includes means for communicating with equipment within material handling facility 100. For example, the communication means may be implemented by IO network interface circuitry 1104. In some examples, IO network interface circuitry 1104 may be instantiated by a processor circuit, such as example processor circuitry 1412 of FIG. 14 . For example, IO network interface circuitry 1104 may be instantiated by example microprocessor 1500 of FIG. 15 executing machine-executable instructions. In some examples, IO network interface circuitry 1104 may be instantiated by hardware logic circuitry, such as may be implemented by an ASIC, an XPU, or FPGA circuitry 1600 of FIG. 16 configured to perform operations corresponding to machine-readable instructions. Additionally or alternatively, IO network interface circuitry 1104 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the IO network interface circuitry 1104 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (opamps), logic circuits, etc.) configured to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, although other configurations are equally suitable.
[0093] In some examples, the main server 128 includes means for time-stamping the collected data. For example, the time-stamping means may be implemented by a time-stamping circuit 1106. In some examples, the time-stamping circuit 110 may be instantiated by a processor circuit, such as the example processor circuit 1412 of FIG. 14. For example, the time-stamping circuit 1106 may be instantiated by the example microprocessor 1500 of FIG. 15 executing associated machine-executable instructions. In some examples, the time-stamping circuit 1106 may be instantiated by hardware logic circuitry, such as may be implemented by an ASIC, an XPU, or an FPGA circuit 1600 of FIG. 16 configured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the time-stamping circuit 1106 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the time-stamping circuit 1106 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.) configured to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, although other configurations are equally suitable.
[0094] In some examples, the main server 128 includes a means for logging data (e.g., sensor feedback data, safety events, etc.) in a data store (e.g., in the example memory 1116). For example, the logging means may be implemented by a data logging circuit 1108. In some examples, the data logging circuit 1108 may be instantiated by a processor circuit, such as the example processor circuit 1412 of FIG. 14 . For example, the data logging circuit 1108 may be instantiated by the example microprocessor 1500 of FIG. 15 executing machine-executable instructions, such as those implemented by at least blocks 1202 and 1208 of FIG. 12 . In some examples, the data logging circuit 1108 may be instantiated by hardware logic circuitry, such as may be implemented by an ASIC, an XPU, or an FPGA circuit 1600 of FIG. 16 configured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the data logging circuit 1108 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the data logging circuitry 1108 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op amps), logic circuits, etc.) configured to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, although other configurations are equally suitable.
[0095] In some examples, the main server 128 includes means for analyzing sensor feedback data. For example, the analysis means may be implemented by a sensor feedback analysis circuit 1110. In some examples, the sensor feedback analysis circuit 1110 may be instantiated by a processor circuit, such as the example processor circuit 1412 of FIG. 14 . In some examples, the sensor feedback analysis circuit 1110 may be instantiated by the example microprocessor 500 of FIG. 15 executing machine-executable instructions, such as those implemented by at least block 1204 of FIG. 12 . In some examples, the sensor feedback analysis circuit 1110 may be instantiated by hardware logic circuitry, such as may be implemented by an ASIC, an XPU, or an FPGA circuit 1600 of FIG. 16 configured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the sensor feedback analysis circuit 1110 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the sensor feedback analysis circuit 1110 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op amps), logic circuits, etc.) configured to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, although other configurations are equally suitable.
[0096] In some examples, the main server 128 includes means for identifying safety events and / or means for determining corrective action(s) for such safety events. The means for identifying safety events and / or means for determining corrective action(s) for such safety events may be implemented by the safety event analysis circuit 1112. In some examples, the safety event analysis circuit 1112 may be instantiated by a processor circuit, such as the example processor circuit 1412 of FIG. 14 . In some examples, the safety event analysis circuit 1112 may be instantiated by the example microprocessor 1500 of FIG. 15 executing machine-executable instructions, such as those implemented by at least blocks 1206 and 1212 of FIG. 12 and blocks 1302-1324 of FIG. 13 . In some examples, the safety event analysis circuit 1112 may be instantiated by hardware logic circuitry, such as may be implemented by an ASIC, an XPU, or an FPGA circuit 1600 of FIG. 16 configured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the safety event analysis circuit 1112 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the safety event analysis circuit 1112 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.) configured to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, although other configurations are equally suitable.
[0097] In some examples, the main server 128 includes means for generating a user interface and / or means for providing information to a user. For example, the generating means and / or providing means may be implemented by a GUI generating circuit 1114. In some examples, the GUI generating circuit 1114 may be instantiated by a processor circuit, such as the example processor circuit 1412 of FIG. 14. For example, the GUI generating circuit 1114 may be instantiated by the example microprocessor 1500 of FIG. 15 executing machine-executable instructions, such as those implemented by at least block 1210 of FIG. 12 and block 1326 of FIG. 13. In some examples, the GUI generating circuit 1114 may be instantiated by hardware logic circuitry, such as may be implemented by an ASIC, an XPU, or an FPGA circuit 1600 of FIG. 16 configured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the GUI generating circuit 1114 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the GUI generation circuit 1114 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op amps), logic circuits, etc.) configured to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, although other configurations are equally suitable.
[0098] In some examples, the main server 128 includes a means for storing data. For example, the storage means may be implemented by the memory 1116.
[0099] An exemplary manner of implementing the main server 128 of Figure 1 is shown in Figure 11, although one or more of the elements, steps, and / or devices shown in Figure 11 may be combined, divided, rearranged, omitted, eliminated, and / or implemented in any other manner. Additionally, the example web server 129, the example network communications interface circuit 1102, the example IO network interface circuit 1104, the example time-stamping circuit 1106, the example data logging circuit 1108, the example sensor feedback analysis circuit 1110, the example safety event analysis circuit 1112, the example GUI generation circuit 1114, the example memory 1116, and / or more generally the example main server 128 of Figure 1 may be implemented by hardware alone or in combination with software and / or firmware. Thus, for example, any of the example web server 129, the example network communications interface circuit 1102, the example IO network interface circuit 1104, the example time stamping circuit 1106, the example data logging circuit 1108, the example sensor feedback analysis circuit 1110, the example safety event analysis circuit 1112, the example GUI generation circuit 1114, the example memory 1116, and / or more generally the example main server 128 may be implemented by processor circuitry, analog circuit(s), digital circuit(s), logic circuit(s), programmable processor(s), programmable microcontroller(s), graphics processing unit(s) (GPU(s)), digital signal processor(s) (DSP(s)), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), and / or field programmable logic device(s) (FPLD(s)), such as a field programmable gate array (FPGA). Furthermore, the example main server 128 of FIG. 1 may include one or more elements, steps, and / or devices in addition to or instead of those shown in FIG. 11, and / or may include two or more of any or all of the illustrated elements, steps, and devices.
[0100] Figures 12 and 13 are flowcharts depicting exemplary machine-readable instructions that may be executed to configure a processor circuit to implement main server 128 of Figure 11. The machine-readable instructions may be one or more executable programs or portions of executable programs for execution by a processor circuit, such as processor circuit 1412 shown in exemplary processor platform 1400 described below in connection with Figure 14 and / or the exemplary processor circuits described below in connection with Figures 15 and / or 16. The programs may be embodied in software stored on one or more non-transitory computer-readable storage media, such as a compact disc (CD), floppy disk, hard disk drive (HDD), solid-state drive (SSD), digital versatile disk (DVD), Blu-ray disc, volatile memory (e.g., any type of random access memory (RAM)), or non-volatile memory (e.g., electrically erasable programmable read-only memory (EEPROM), flash memory, HDD, SSD) associated with processor circuitry located in one or more hardware devices; alternatively, the entire program and / or portions of the program may be executed by one or more hardware devices other than the processor circuitry and / or may be embodied in firmware or dedicated hardware. The machine-readable instructions may be distributed across multiple hardware devices and / or executed by one or more hardware devices (e.g., server and client hardware devices). For example, a client hardware device may be implemented by an endpoint client hardware device (e.g., a hardware device associated with a user) or an intermediate client hardware device (e.g., a Radio Access Network (RAN)) gateway that may facilitate communication between a server and an endpoint client hardware device. Similarly, a non-transitory computer-readable storage medium may include one or more media located on one or more hardware devices.Additionally, although the exemplary program has been described with reference to the flowcharts shown in Figures 12 and 13, numerous other ways of implementing the exemplary main server 128 may alternatively be used. For example, the order of execution of the blocks may be changed, and / or some of the described blocks may be modified, eliminated, or combined. Additionally or alternatively, any or all of the blocks may be implemented by one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, comparators, operational amplifiers (op amps), logic circuits, etc.) configured to perform the corresponding operations without executing software or firmware. The processor circuitry may be distributed across various network locations and / or locally, within one or more hardware devices (e.g., a single-core processor (e.g., a single-core central processing unit (CPU)), a multi-core processor (e.g., a multi-core CPU, XPU, etc.) within a single machine, multiple processors distributed across multiple servers in a server rack, multiple processors distributed across one or more server racks, CPUs and / or FPGAs located in the same package (e.g., the same integrated circuit (IC) package or two or more separate enclosures, etc.)).
[0101] The machine-readable instructions described herein may be stored in one or more of a compressed format, an encrypted format, a fragmented format, a compiled format, an executable format, a packaged format, etc. The machine-readable instructions described herein may also be stored as data or data structures (e.g., as portions of instructions, code, code representations, etc.) that can be utilized to create, manufacture, and / or produce the machine-readable instructions. For example, the machine-readable instructions may be fragmented and stored on one or more storage devices and / or computing devices (e.g., servers) located at the same or different locations as a network or collection of networks (e.g., in the cloud, in edge devices, etc.). The machine-readable instructions may require one or more of installing, modifying, adapting, updating, combining, supplementing, configuring, decrypting, decompressing, deploying, distributing, reallocating, compiling, etc., to make the machine-readable instructions directly readable, interpretable, and / or executable by computing devices and / or other machines. For example, machine-readable instructions may be individually compressed, encrypted, and / or stored in multiple portions stored on separate computing devices, which portions, when decoded, decompressed, and / or combined, form a set of machine-readable instructions that perform one or more operations that may together form a program such as those described herein.
[0102] In another example, machine-readable instructions may be stored in a state readable by a processor circuit, but require the addition of a library (e.g., a dynamic link library (DLL)), a software development kit (SDK), an application programming interface (API), etc., to execute the machine-readable instructions on a particular computing device or other device. In another example, the machine-readable instructions may require configuration (e.g., storing settings, entering data, recording network addresses, etc.) before the machine-readable instructions and / or corresponding program(s) can be executed, in whole or in part. Thus, as used herein, machine-readable medium may include machine-readable instructions and / or program(s), regardless of the particular format or state of the machine-readable instructions and / or program(s) while stored or otherwise at rest or in transit.
[0103] The machine-readable instructions described herein may be expressed in any past, present, or future command, scripting, or programming language. For example, the machine-readable instructions may be expressed using any of the following languages: C, C++, Java, C#, Perl, Python, JavaScript, Hypertext Markup Language (HTML), Structured Query Language (SQL), Swift, etc.
[0104] 12 and 13 may be implemented using executable instructions (e.g., computer and / or machine-readable instructions) stored on one or more non-transitory computer- and / or machine-readable media, such as optical storage devices, magnetic storage devices, HDDs, flash memory, read-only memory (ROM), CDs, DVDs, caches, any type of RAM, registers, and / or any other storage device or disk that stores information for any duration (e.g., for an extended period of time, persistently, for a short instance, while temporarily buffering, and / or while caching information). As used herein, the terms non-transitory computer-readable medium, non-transitory computer-readable storage medium, non-transitory machine-readable medium, and non-transitory machine-readable storage medium are expressly defined to include any type of computer-readable storage device and / or disk, to exclude propagated signals, and to exclude transmission media. As used herein, the terms "computer-readable storage device" and "machine-readable storage device" are defined to include any physical (mechanical and / or electrical) structure that stores information, but excludes propagating signals and excludes transmission media. Examples of computer-readable and machine-readable storage devices include any type of random access memory, any type of read-only memory, solid-state memory, flash memory, optical disks, magnetic disks, disk drives, and / or redundant array of independent disks (RAID) systems. As used herein, the term "device" refers to mechanical and / or electrical equipment, physical structures such as hardware, and / or circuitry that may or may not be configured with computer-readable instructions, machine-readable instructions, and / or circuitry that can be manufactured to execute computer-readable or machine-readable instructions.
[0105] The terms "including" and "comprising" (and all their forms and tenses) are used herein to be open-ended terms. Thus, whenever a claim uses any form of "including" or "comprising" (e.g., comprises, includes, comprising, including, having, etc.) as a preamble or within any claim definition, it is understood that additional elements, terms, etc. may be presented without departing from the scope of the corresponding claim or definition. As used herein, the phrase "at least," when used, for example, as a transitional term in a claim preamble, is open-ended, just as the terms "comprising" and "including" are open-ended. For example, the term "and / or" when used in the form A, B, and / or C, etc., refers to any combination or subset of A, B, and C, such as (1) A alone, (2) B alone, (3) C alone, (4) A and B, (5) A and C, (6) B and C, or (7) A, B, and C. The phrase "at least one of A and B," as used herein in the context of describing a structure, component, item, object, and / or thing, is intended to refer to an implementation that includes either (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, the phrase "at least one of A or B," as used herein in the context of describing a structure, component, item, object, and / or thing, is intended to refer to an implementation that includes either (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. The phrase "at least one of A and B," as used herein in the context of describing the performance or execution of a process, instruction, procedure, activity, and / or step, is intended to refer to an implementation that includes either (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.Similarly, the phrase "at least one of A or B," as used herein in the context of describing the performance or execution of processes, instructions, actions, activities, and / or steps, is intended to refer to an implementation that includes either (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.
[0106] As used herein, singular references (e.g., "a," "an," "first," "second," etc.) do not exclude a plurality. As used herein, the term "a," "an" or "an" object refers to one or more of that object. The terms "a," "an," "one or more," and "at least one" are used interchangeably herein. Furthermore, multiple means, elements, or method actions, although individually listed, may be performed, for example, by the same entity or object. Furthermore, although individual features may be included in various examples or claims, these can possibly be combined, and inclusion in various examples or claims does not imply that a combination of features is practicable and / or advantageous.
[0107] FIG. 12 is a flowchart representing example machine-readable instructions and / or example operations 1200 that may be executed and / or instantiated by a processor circuit to identify safety events in a material handling facility and provide safety analysis information along with recommended corrective actions to resolve the safety events. The machine-readable instructions and / or operations 1200 of FIG. 12 begin at block 1202, where the example IO network interface circuit 1104 receives feedback from a sensor associated with a door. For purposes of illustration, a door referenced in the flowchart may correspond to an industrial door 121 in the material handling facility 100 or a door 104 of a dock 102 of the material handling facility 100. That is, in the context of the flowchart, the term “door” may be replaced with the term “dock,” and the same logic and process flow would apply. Thus, feedback from a sensor associated with a door includes feedback from a sensor associated with a dock. In some examples, sensor feedback is provided by a dock controller 116 and / or a door controller 126 that collects feedback data from sensors associated with corresponding docks 102 and / or doors 121.
[0108] In block 1204, the example sensor feedback analysis circuit 1110 determines the state and / or status of the equipment associated with the door based on the sensor feedback data. In block 1206, the example safety event analysis circuit 1112 determines whether the state and / or status of the equipment triggers a safety event. In some examples, this determination is based on a single IO parameter associated with feedback from a single sensor and / or equipment associated with the dock or door. In other examples, the safety event determination is based on multiple IO parameters associated with feedback from multiple different sensors and / or multiple equipment. The number, source, and / or nature of the feedback depends on the specific conditions defined in the event rules that must be met before triggering the corresponding safety event. If a safety event is triggered, control proceeds to block 1208, where the example data logging circuit 1108 logs the safety event in a data store. Control then proceeds to block 1210. Returning to block 1206, if a safety event is not triggered, control proceeds directly to block 1210.
[0109] At block 1210, the example GUI generation circuit 1114 updates a web page user interface based on the sensor feedback data. In some examples, the web page is updated to reflect the current state and / or status of the equipment. Additionally, in situations where a safety event is triggered, the web page is updated to reflect the occurrence of the event, for example, by changing the appearance (e.g., color) of a graphic associated with the door (e.g., dock graphic 502, door graphic 532, etc.) when the safety event occurs. In some examples, the GUI generation circuit 1114 updates any other type of user interface (other than a web page, for example, an interface for a non-web-based application) provided to a user.
[0110] In block 1212, the example safety event analysis circuit 1112 determines whether a request to provide safety analysis information for the selected door has been received (e.g., via the example network communication interface circuit 1102 and / or the web server 136). If a request for such information has been received, control proceeds to block 1214, where the main server 128 generates the requested safety analysis information. Further details regarding the implementation of block 1214 are provided below in connection with FIG. 13 . Control then proceeds to block 1216, where the example GUI generation circuit 1114 renders (or causes the rendering of) the safety analysis information and provides recommended corrective action(s) for the associated safety event(s). Control then proceeds to block 1218. If a request to provide safety analysis information is not provided in block 1212, control proceeds directly to block 1218. In block 1218, the main server 128 determines whether to continue processing. If it is determined to continue processing, control returns to block 1202. Otherwise, the example process of FIG. 12 ends.
[0111] Figure 13 is a flowchart representing example machine-readable instructions and / or example operations 1300 that may be executed and / or instantiated by a processor circuit implementing block 1214 of Figure 12. The machine-readable instructions and / or operations 1300 of Figure 13 begin at block 1302, in which the example safety event analysis circuit 1112 identifies safety events that occurred in association with a selected door (e.g., associated with dock 102 or industrial door 121) during a recent time period. In block 1304, the example safety event analysis circuit 1112 identifies all instances of the identified safety events that occurred across all doors in the material handling facility 100 during the recent time period.
[0112] In block 1306, the example safety event analysis circuit 1112 determines whether the identified safety event is associated with two or more doors. If so, control proceeds to block 1308. In some examples, if the percentage of all instances of the safety event associated with a single door meets a relatively large threshold, the example safety event analysis circuit 1112 treats the safety event as being associated with a single door, even if a relatively small percentage of the safety event instances occurred in connection with different doors. In other examples, even if one instance of the safety event is associated with a different door than all other instances, the example safety event analysis circuit 1112 treats the safety event as being associated with multiple doors (and thus control proceeds to block 1308, as described above).
[0113] In block 1308, the example safety event analysis circuit 1112 determines whether the identified safety event is associated with more than one shift during a day. If it is determined that the identified safety event is associated with more than one shift during a day, control proceeds to block 1310. In some examples, if the percentage of all instances of the safety event associated with a single shift meets a relatively large threshold, the example safety event analysis circuit 1112 treats the safety event as being associated with a single shift, even if a relatively small percentage of the safety event instances occurred in association with different doors. In other examples, even if one instance of the safety event is associated with a different shift than all other instances, the example safety event analysis circuit 1112 treats the safety event as being associated with multiple shifts (thus, control proceeds to block 1310, as described above). In some examples, various blocks or divisions of time other than shifts within a day may be used.
[0114] In block 1310, the example safety event analysis circuit 1112 selects corrective actions for a safety event based on a multiple-shift, multiple-door scenario. In block 1312, the example safety event analysis circuit 1112 determines the distribution of various instances or occurrences of a safety event across various shifts (or other blocks of time). Control then passes to block 1316, where the example safety event analysis circuit 1112 determines the distribution of various safety event instances or occurrences across various doors (where at least one instance of the safety event occurred). Control then passes to block 1326.
[0115] Returning to block 1308, if the example safety event analysis circuit 1112 determines that the safety event is not associated with more than one shift (i.e., the safety event is associated with only a single shift, or a threshold is met and the safety event is treated as such), control proceeds to block 1314. In block 1314, the example safety event analysis circuit 1112 selects corrective actions for the safety event based on an isolated shift, multiple door scenario. Control then proceeds to block 1316 to determine the distribution of the safety event across different doors before proceeding to block 1326.
[0116] Returning to block 1306, if the example safety event analysis circuit 1112 determines that the safety event is not associated with more than one door (i.e., the safety event is associated with only a single door, or a threshold is met and the safety event is treated as such), control proceeds to block 1318.
[0117] In block 1318, the example safety event analysis circuit 1112 determines whether the identified safety event is associated with more than one shift during that day. If it is determined that the identified safety event is associated with more than one shift during that day, control proceeds to block 1320. In some examples, if the percentage of all instances of the safety event associated with a single shift meets a relatively large threshold, the example safety event analysis circuit 1112 treats the safety event as being associated with a single shift, even if a relatively small percentage of the safety event instances occurred in association with different doors. In other examples, even if one instance of the safety event is associated with a different shift than all other instances, the example safety event analysis circuit 1112 treats the safety event as being associated with multiple shifts (thus, control proceeds to block 1320, as described above). In some examples, various blocks or divisions of time other than shifts within a day may be used.
[0118] At block 1320, the example safety event analysis circuit 1112 selects corrective actions for the safety event based on a multiple shift, isolated door scenario. At block 1322, the example safety event analysis circuit 1112 determines the distribution of various instances or occurrences of the safety event across various shifts (or other time blocks). Control then passes to block 1326.
[0119] Returning to block 1318, if the example safety event analysis circuit 1112 determines that the safety event is not associated with more than one shift (i.e., the safety event is associated with only a single shift, or a threshold is met and the safety event is treated as such), control proceeds to block 1324. In block 1324, the example safety event analysis circuit 1112 selects a corrective action for the safety event based on an isolated safety event scenario. Control then proceeds to block 1326.
[0120] At block 1326, the example GUI generation circuit 1114 generates a safety event card for the identified safety event. In some examples, the GUI generation circuit 1114 generates some other form of notification that includes some or all of the content contained within the safety event card described above in connection with FIGS. 6-10. At block 1328, the example safety event analysis circuit 1112 determines whether there is another safety event (e.g., a different type of safety event) associated with the selected door. If it determines that there is another safety event associated with the selected door, control returns to block 1302. Otherwise, the example process of FIG. 12 ends, and the process returns to complete the process of FIG. 12.
[0121] In some examples, the request for safety analysis information (at block 1212 of FIG. 12) may be for all doors in material handling facility 100, rather than just the selected door. In such examples, the implementation of block 1214 of FIG. 12 (detailed in FIG. 13) is substantially the same as that outlined above, except that the process iterates through all identified safety events associated with any door in material handling facility 100, rather than just the safety events specifically associated with the particular door selected by the user.
[0122] Figure 14 is a block diagram of an example processor platform 1400 configured to execute and / or instantiate the example machine-readable instructions and / or example operations of Figures 12 and 13 that implement main server 128 of Figure 11. Processor platform 1400 may be, for example, a server, a personal computer, a workstation, a self-learning machine (e.g., a neural network), a mobile device (e.g., a mobile phone, a smartphone, a tablet such as an iPad™), a personal digital assistant (PDA), an Internet appliance, a headset (e.g., an augmented reality (AR) headset, a virtual reality (VR) headset, etc.), or other wearable device, or any other type of computing device.
[0123] The processor platform 1400 of the illustrated example includes a processor circuit 1412. The processor circuit 1412 of the illustrated example is hardware. For example, the processor circuit 1412 may be implemented by one or more integrated circuits, logic circuits, FPGAs, microprocessors, CPUs, GPUs, DSPs, and / or microcontrollers from any desired group or manufacturer. The processor circuit 1412 may be implemented by one or more semiconductor-based (e.g., silicon-based) devices. In this example, the processor circuit 1412 implements an example network communication interface circuit 1102, an example IO network interface circuit 1104, an example time stamping circuit 1106, an example data logging circuit 1108, an example sensor feedback analysis circuit 1110, an example safety event analysis circuit 1112, and an example GUI generation circuit 1114.
[0124] The processor circuitry 1412 of the illustrated example includes local memory 1413 (e.g., cache, registers, etc.). The processor circuitry 1412 of the illustrated example communicates with main memory, including volatile memory 1414 and nonvolatile memory 1416, via bus 1418. The volatile memory 1414 may be implemented with synchronous dynamic random access memory (SDRAM), dynamic random access memory (DRAM), RAMBUS® dynamic random access memory (RDRAM®), and / or any other type of RAM device. The nonvolatile memory 1416 may be implemented with flash memory and / or any other desired type of memory device. Access to the main memory 1414, 1416 of the illustrated example is controlled by a memory controller 1417.
[0125] The processor platform 1400 of the illustrated example also includes an interface circuit 1420. The interface circuit 1420 may be implemented by hardware conforming to any type of interface standard, such as an Ethernet interface, a Universal Serial Bus (USB) interface, a Bluetooth® interface, a Short-Field Communication (NFC) interface, a Peripheral Component Interconnect (PCI) interface, and / or a Peripheral Component Interconnect Express (PCIe) interface.
[0126] In the depicted example, one or more input devices 1422 are connected to the interface circuit 1420. The input device(s) 1422 allow a user to input data and / or commands into the processor circuit 1412. The input device(s) 1422 may be implemented by, for example, a sound sensor, a microphone, a camera (still or video), a keyboard, buttons, a mouse, a touchscreen, a trackpad, a trackball, an isopoint device, and / or a voice recognition system.
[0127] One or more output devices 1424 are also connected to the interface circuitry 1420 of the illustrated example. The output device(s) 1424 may be implemented, for example, by a display device (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display (LCD), a cathode ray tube (CRT) display, an in-place switching (IPS) display, a touch screen, etc.), a tactile output device, a printer, and / or speakers. Accordingly, the interface circuitry 1420 of the illustrated example typically includes a graphics driver card, a graphics driver chip, and / or a graphics processor circuit such as a GPU.
[0128] The interface circuitry 1420 of the depicted example also includes communications devices such as transmitters, receivers, transceivers, modems, residential gateways, wireless access points, and / or network interfaces that facilitate data exchange with external machines (e.g., any type of computing device) over a network 1426. Communications may be via, for example, an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a line-of-site wireless system, a cellular telephone system, an optical connection, etc.
[0129] The processor platform 1400 of the depicted example also includes one or more mass storage devices 1428 for storing software and / or data. Examples of such mass storage devices 1428 include magnetic storage devices, optical storage devices, floppy disk drives, HDDs, CDs, Blu-ray disk drives, redundant array of independent disks (RAID) systems, flash memory devices, and / or solid-state storage devices such as SSDs and DVD drives.
[0130] Machine-readable instructions 1432 that may be implemented by the machine-readable instructions of Figures 12 and 13 may be stored in mass storage device 1428, in volatile memory 1414, in non-volatile memory 1416, and / or on a removable non-transitory computer-readable storage medium such as a CD or DVD.
[0131] FIG. 15 is a block diagram of an example implementation of the processor circuit 1412 of FIG. 14. In this example, the processor circuit 1412 of FIG. 14 is implemented by a microprocessor 1500. For example, the microprocessor 1500 may be a general-purpose microprocessor (e.g., a general-purpose microprocessor circuit). The microprocessor 1500 executes some or all of the machine-readable instructions of the flowcharts of FIGS. 12 and 13, effectively instantiating the circuit of FIG. 11 as a logic circuit that performs operations corresponding to the machine-readable instructions. In some such examples, the circuit of FIG. 11 is instantiated by the hardware circuitry of the microprocessor 1500 in combination with the instructions. For example, the microprocessor 1500 may be implemented by a multi-core hardware circuit such as a CPU, DSP, XPU, or the like. While the microprocessor 1500 may include any number of exemplary cores 1502 (e.g., one core), the microprocessor 1500 in this example is a multi-core semiconductor device including N cores. The cores 1502 of the microprocessor 1500 may operate independently or cooperate to execute machine-readable instructions. For example, a firmware program, embedded software program, or machine code corresponding to a software program may be executed by one of the cores 1502 or by multiple cores of the cores 1502 simultaneously or at different times. In some examples, the machine code corresponding to a firmware program, embedded software program, or software program is divided into threads and executed in parallel by two or more of the cores 1502. The software program may correspond to some or all of the machine-readable instructions and / or operations represented by the flowcharts of FIGS. 12 and 13.
[0132] The cores 1502 may communicate via a first exemplary bus 1504. In some examples, the first bus 1504 may be implemented by a communication bus that facilitates communications associated with one or more of the cores 1502. For example, the first bus 1504 may be implemented by at least one of an Inter-Integrated Circuit (I2C) bus, a Serial Peripheral Interface (SPI) bus, a PCI bus, or a PCIe bus. Additionally or alternatively, the first bus 1504 may be implemented by any other type of computational or electrical bus. The cores 1502 may obtain data, instructions, and / or signals from one or more external devices via the exemplary interface circuitry 1506. The cores 1502 may output data, instructions, and / or signals to one or more external devices via the interface circuitry 1506. The cores 1502 in this example include exemplary local memory 1520 (e.g., a level 1 (L1) cache, which may be divided into an L1 data cache and an L1 instruction cache), but the microprocessor 1500 also includes exemplary shared memory 1510 that the cores (e.g., a level 2 (L2) cache) may share for fast access to data and / or instructions. Data and / or instructions may be communicated (e.g., shared) by writing to and / or reading from the shared memory 1510. The local memories 1520 of each of the cores 1502, and the shared memory 1510, may be part of a hierarchy of storage devices that includes multiple levels of cache memory and main memory (e.g., main memories 1414, 1416 in FIG. 14). Typically, memories at higher levels in the hierarchy exhibit faster access times and have smaller storage capacities than memories at lower levels. Changes at various levels of the cache hierarchy are managed (e.g., coordinated) by a cache coherency policy.
[0133] Each core 1502 may be referred to as a CPU, DSP, GPU, etc., or any other type of hardware circuit. Each core 1502 includes a control unit circuit 1514, an arithmetic logic (AL) circuit (sometimes referred to as an ALU) 1516, a number of registers 1518, a local memory 1520, and a second exemplary bus 1522. Other configurations may exist. For example, each core 1502 may include a vector unit circuit, a single instruction multiple data (SIMD) unit circuit, a load / store unit (LSU) circuit, a branch / jump unit circuit, a floating point unit (FPU) circuit, etc. The control unit circuit 1514 includes semiconductor-based circuitry configured to control (e.g., coordinate) the movement of data within the corresponding core 1502. The AL circuit 1516 includes semiconductor-based circuitry configured to perform one or more mathematical and / or logical operations on data within the corresponding core 1502. The AL circuit 1516 in some examples performs integer-based operations. In another example, the AL circuit 1516 also performs floating-point operations. In yet another example, the AL circuit 1516 may include a first AL circuit that performs integer-based operations and a second AL circuit that performs floating-point operations. In some examples, the AL circuit 1516 may be referred to as an arithmetic logic unit (ALU). The registers 1518 are semiconductor-based structures that store data and / or instructions, such as one or more results of operations performed by the AL circuit 1516 of the corresponding core 1502. For example, the registers 1518 may include vector register(s), SIMD register(s), general-purpose register(s), flag register(s), segment register(s), machine-specific register(s), instruction pointer register(s), control register(s), debug register(s), memory management register(s), machine check register(s), etc. The registers 1518 may be arranged in banks as shown in FIG. 15 . Alternatively, registers 1518 may be organized in any other arrangement, format, or structure, including being distributed throughout core 1502, to reduce access times. Second bus 1522 may be implemented by at least one of an I2C bus, an SPI bus, a PCI bus, or a PCIe bus.
[0134] Each core 1502 and / or microprocessor 1500 more generally may include additional and / or alternative structures to those shown and described above. For example, one or more clock circuits, one or more power supplies, one or more power gates, one or more cache home agents (CHAs), one or more convergent / common mesh stops (CMSs), one or more shifters (e.g., barrel shifter(s)), and / or other circuits may be present. Microprocessor 1500 is a semiconductor device fabricated to include many transistors interconnected to implement the structures described above within one or more integrated circuits (ICs) contained within one or more packages. The processor circuitry may include and / or cooperate with one or more accelerators. In some examples, accelerators are implemented by logic circuits that more quickly and / or efficiently perform specific tasks that could be performed by a general-purpose processor. Examples of accelerators include ASICs and FPGAs, such as those described herein. An accelerator may also be a GPU or other programmable device, and may be integrated into the processor circuitry, in the same chip package as the processor circuitry, and / or in one or more packages separate from the processor circuitry.
[0135] Figure 16 is a block diagram of another example implementation of processor circuit 1412 of Figure 14. In this example, processor circuit 1412 of Figure 14 is implemented by FPGA circuit 1600. For example, FPGA circuit 1600 may be implemented by an FPGA. FPGA circuit 1600 may be used, for example, to perform operations that might otherwise be performed by example microprocessor 1500 of Figure 15 executing corresponding machine-readable instructions. However, when configured, FPGA circuit 1600 instantiates the machine-readable instructions in hardware and can therefore often perform operations more quickly than a general-purpose microprocessor executing corresponding software could.
[0136] More specifically, in contrast to microprocessor 1500 of FIG. 15 above (which is a general-purpose device that can be programmed to execute some or all of the machine-readable instructions represented by the flowcharts of FIGS. 12 and 13, but whose interconnections and logic are fixed after fabrication), FPGA circuit 1600 of FIG. 16 includes interconnections and logic that can be configured and / or interconnected in various ways after fabrication, for example, to instantiate some or all of the machine-readable instructions represented by the flowcharts of FIGS. 12 and 13. In particular, FPGA circuit 1600 can be thought of as an array of logic gates, interconnects, and switches. The switches can be programmed to change the way the interconnects interconnect the logic gates (unless and until FPGA circuit 1600 is reprogrammed), effectively forming one or more dedicated logic circuits. The configured logic circuits enable the logic gates to cooperate in various ways to perform various operations on data received by input circuits. These operations may correspond to some or all of the flowcharts represented by the flowcharts of Figures 12 and 13. Thus, FPGA circuit 1600 may be configured to effectively instantiate some or all of the machine-readable instructions of the flowcharts of Figures 12 and 13 as special-purpose logic circuitry that performs the operations corresponding to these software instructions in a dedicated manner similar to an ASIC. Thus, FPGA circuit 1600 may perform operations corresponding to some or all of the machine-readable instructions of Figures 12 and 13 more quickly than a general-purpose microprocessor could perform the same.
[0137] In the example of FIG. 16 , FPGA circuit 1600 is configured to be programmed (and / or reprogrammed one or more times) by an end user using a hardware description language (HDL) such as Verilog. FPGA circuit 1600 of FIG. 16 includes example input / output (I / O) circuitry 1602 that obtains and / or outputs data from example configuration circuitry 1604 and / or external hardware 1606. For example, configuration circuitry 1604 may be implemented by an interface circuit that may obtain machine-readable instructions to configure FPGA circuit 1600 or portion(s) thereof. In some such examples, configuration circuitry 1604 may obtain machine-readable instructions from a user, a machine (e.g., a machine hardware circuit (e.g., a programmed circuit or dedicated circuit) that may implement an artificial intelligence / machine learning (AI / ML) model that generates the instructions), etc. In some examples, external hardware 1606 may be implemented by an external hardware circuit. For example, external hardware 1606 may be implemented by microprocessor 1500 of FIG. 15 . The FPGA circuit 1600 also includes an array of example logic gate circuits 1608, a plurality of example configurable interconnects 1610, and example memory storage circuits 1612. The logic gate circuits 1608 and the configurable interconnects 1610 are configurable to instantiate one or more operations that may correspond to at least a portion of the machine-readable instructions of FIGS. 12 and 13 and / or other desired operations. The logic gate circuits 1608 shown in FIG. 16 are fabricated in groups or blocks. Each block includes semiconductor-based electrical structures that can be configured into logic circuits. In some examples, the electrical structures include logic gates (AND gates, OR gates, NOR gates, etc.) that provide the basic building blocks for logic circuits. Electrically controllable switches (e.g., transistors) are present within each of the logic gate circuits 1608, allowing for the configuration of the electrical structures and / or logic circuits that form circuits that perform desired operations. The logic circuitry 1608 may include other electrical structures such as look-up tables (LUTs), registers (e.g., flip-flops or latches), multiplexers, and the like.
[0138] The configurable interconnects 1610 in the illustrated example are conductive paths, traces, vias, etc. that may include electrically controllable switches (e.g., transistors), the state of which may be changed by programming (e.g., using an HDL instruction language) to activate or disable one or more connections between one or more of the logic gate circuits 1608 to program a desired logic circuit.
[0139] The storage circuits 1612 in the illustrated example are configured to store one or more results of the operations performed by the corresponding logic gates. The storage circuits 1612 may be implemented by registers, etc. In the illustrated example, the storage circuits 1612 are distributed among the logic gate circuits 1608 to facilitate access and increase execution speed.
[0140] The example FPGA circuit 1600 of FIG. 16 also includes example dedicated operation circuitry 1614. In this example, the dedicated operation circuitry 1614 includes special purpose circuitry 1616 that can be called upon to perform commonly used functions, avoiding the need to program such functions in the field. Examples of such special purpose circuitry 1616 include memory (e.g., DRAM) controller circuitry, PCIe controller circuitry, clock circuitry, transceiver circuitry, memory, and multiply-accumulator circuitry. Other types of special purpose circuitry may be present. In some examples, the FPGA circuit 1600 may also include example general purpose programmable circuitry 1618, such as an example CPU 1620 and / or an example DSP 1622. Additionally or alternatively, there may be other general purpose programmable circuitry 1618, such as a GPU, XPU, etc., that can be programmed to perform other operations.
[0141] 15 and 16 illustrate two exemplary implementations of the processor circuit 1412 of FIG. 14 , numerous other approaches are contemplated. For example, as noted above, modern FPGA circuits may include an embedded CPU, such as one or more of the exemplary CPUs 1620 of FIG. 16 . Accordingly, the processor circuit 1412 of FIG. 14 may be further implemented by combining the exemplary microprocessor 1500 of FIG. 15 with the exemplary FPGA circuit 1600 of FIG. 16 . In some such hybrid examples, a first portion of the machine-readable instructions represented by the flowcharts of FIGS. 12 and 13 may be executed by one or more of the cores 1502 of FIG. 15 , a second portion of the machine-readable instructions represented by the flowcharts of FIGS. 12 and 13 may be executed by the FPGA circuit 1600 of FIG. 16 , and / or a third portion of the machine-readable instructions represented by the flowcharts of FIGS. 12 and 13 may be executed by an ASIC. Thus, it should be understood that some or all of the circuitry of Figure 11 may be instantiated simultaneously or at different times. Some or all of the circuitry may be instantiated, for example, within one or more threads that execute simultaneously and / or sequentially. Furthermore, in some examples, some or all of the circuitry of Figure 11 may be implemented within containers that execute on one or more virtual machines and / or microprocessors.
[0142] In some examples, the processor circuitry 1412 of Figure 14 may be in one or more packages. For example, the microprocessor 1500 of Figure 15 and / or the FPGA circuitry 1600 of Figure 16 may be in one or more packages. In some examples, an XPU may be implemented by the processor circuitry 1412 of Figure 14, which may be in one or more packages. For example, an XPU may include a CPU in one package, a DSP in another package, a GPU in yet another package, and an FPGA in yet another package.
[0143] FIG. 17 shows a block diagram illustrating an example software distribution platform 1705 for distributing software, such as the example machine-readable instructions 1132 of FIG. 14, to hardware devices owned and / or operated by third parties. The example software distribution platform 1705 may be implemented by any computer server, data facility, cloud service, etc., capable of storing software and transmitting it to other computing devices. The third parties may be customers of the entity that owns and / or operates the software distribution platform 1705. For example, the entity that owns and / or operates the software distribution platform 1705 may be a developer, seller, and / or licensor of software, such as the example machine-readable instructions 1132 of FIG. 14. The third parties may be consumers, users, retailers, OEMs, etc., that purchase and / or license the software for use and / or resale and / or sublicensing. In the illustrated example, the software distribution platform 1705 includes one or more servers and one or more storage devices. The storage device stores machine-readable instructions 1132, which may correspond to the example machine-readable instructions 1200, 1300 of FIGS. 12 and 13 described above. One or more servers of the example software distribution platform 1705 communicate with an example network 1710, which may correspond to any one or more of the Internet and / or example network 1426 described above. In some examples, the one or more servers respond to requests to transmit software to requesting parties as part of a business transaction. Payment for the distribution, sale, and / or license of the software may be handled by one or more servers of the software distribution platform and / or by a third-party payment entity. The server(s) enable purchasers and / or licensors to download the machine-readable instructions 1132 from the software distribution platform 1705. For example, software, which may correspond to the example machine-readable instructions 1200, 1300 of FIGS. 12 and 13, may be downloaded to the example processor platform 1400, which executes the machine-readable instructions 1132 to implement the main server 128.In some examples, one or more servers of the software distribution platform 1705 periodically provide, transmit, and / or force updates to the software (e.g., the example machine-readable instructions 1132 of FIG. 14 ) to ensure that improvements, fixes, updates, etc. are distributed to and applied to the software on end-user devices.
[0144] From the foregoing, it will be appreciated that exemplary methods, apparatus, and articles of manufacture are disclosed that enable data to be collected and integrated from different controllers, sensors, etc. within a material handling facility for subsequent analysis, and that generate notifications and / or provide output via a web page (or other application) interface that updates in substantially real time. The examples disclosed herein improve efficiency using electronic devices that monitor material handling facilities by aggregating and combining different information, thereby avoiding redundancy from monitoring multiple isolated systems. Furthermore, the combination of information collected from various sources allows users to access and / or bring to their attention certain conditions that were not previously possible to automatically detect, such as, for example, the nature and circumstances of a particular safety event relative to the occurrence of other instances of that safety event at other locations and / or other times of day. More specifically, examples disclosed herein categorize safety events into one of four scenarios based on whether all instances of the event in a given time period are associated with a single location (e.g., a single dock or a single door) or multiple locations, and whether the event is associated with a single time block within a day (e.g., a single work shift) or multiple time blocks within a day. Categorizing all instances of an event in this manner enables the selection of tailored recommendations for corrective actions that respond to the specific nature of the event for a more efficient and / or effective resolution of such events. Tracking all instances at different locations, at various times, and over extended time periods is particularly impractical for humans, and this tracking can provide significant practical improvements to the operation of material handling facilities based on improved efficiency in the use and / or operation of computing devices. Accordingly, the disclosed systems, methods, apparatus, and products are directed to one or more improvement(s) in the operation of machines, such as computers or other electronic and / or mechanical devices.
[0145] Further examples and combinations of examples include the following:
[0146] Example 1 includes an apparatus, the apparatus comprising at least one memory, machine-readable instructions, and processor circuitry that at least one of instantiates or executes the machine-readable instructions to: identify a first occurrence of a safety event associated with a first event type of a plurality of event types based on output of a sensor associated with at least one of a door or a dock in a material handling facility; determine times when various instances of the event occurred within a given time period; determine at least one number of various doors or various docks associated with the various instances of the event; select a specific corrective action from among a set of possible corrective actions based on the times of the various instances of the event and based on the at least one number of the various doors or various docks; and output, on an output device, an indication of the specific corrective action to a user.
[0147] Example 2 includes the apparatus of Example 1, wherein a first one of the doors is located at a first one of the docks of a material handling facility where a trailer is positioned for loading or unloading, and a second one of the doors is an industrial door separating two areas within the material handling facility.
[0148] Example 3 includes the apparatus of example 1 or 2, wherein a first one of the docks includes at least one of a vehicle restraint device, a dock leveler, a presence / motion detector, a notification system, or a doorway barrier.
[0149] Example 4 includes the apparatus of Example 1 or 3, wherein the processor circuit is for determining a proportion of all various instances of the event associated with a first door or a first dock of at least one of the doors or docks, the particular corrective action corresponding to a first corrective action of the corrective actions if the proportion meets a threshold, and the particular corrective action corresponding to a second corrective action of the corrective actions if the proportion does not meet the threshold, the second corrective action being different from the first corrective action.
[0150] Example 5 includes the apparatus of example 4, wherein the threshold value corresponds to all of the various instances of the event such that all of the various instances are associated with a first door or a first dock of at least one of the doors or docks.
[0151] Example 6 includes the apparatus of example 4 or 5, wherein the processor circuitry is for providing, in response to determining that the percentage does not meet the threshold, a distribution representation of the number of different instances of the event associated with different doors or docks of at least one of the doors or docks.
[0152] Example 7 includes the device of any one of Examples 4-6, wherein the percentage is a first percentage; the processor circuit is for determining a second percentage of all various instances of the event occurring during a first block of the plurality of time blocks during the day; the first corrective action corresponds to a third corrective action of the corrective actions if the second percentage meets a threshold; and the first corrective action corresponds to a fourth corrective action of the corrective actions if the second percentage does not meet the threshold; and the third corrective action is different from the fourth corrective action.
[0153] Example 8 includes the device of any one of Examples 1-7, wherein the processor circuitry is for determining a particular corrective action based on the times of the different proportions of the different instances of the event, associating the different proportions of the different instances of the event with different time blocks during a day, and determining a particular corrective action based on the distribution of the different instances of the event across the different time blocks.
[0154] Example 9 includes the apparatus of example 8, wherein the processor circuitry is for providing the distribution representation together with the specified corrective action.
[0155] Example 10 includes the apparatus of Examples 8 or 9, where the different time blocks correspond to different shifts of workers at a materials handling facility.
[0156] Example 11 includes the apparatus of any one of Examples 8-10, wherein the processor circuitry is for determining various door or dock numbers of the at least one of the doors or docks associated with at least one of the various instances of the event associated with a first door or a first dock of the at least one of the doors or docks, and determining a particular corrective action based on the various door or dock numbers of the at least one of the doors or docks.
[0157] Example 12 includes at least one non-transitory computer-readable medium containing instructions that, when executed, cause a processor circuit to identify a first occurrence of a safety event associated with a first event type of a plurality of event types based on output of a sensor associated with at least one of a door or a dock in a materials handling facility, determine times when various instances of the event occurred within a given time period, determine at least one number of various doors or various docks associated with the various instances of the event, select a specific corrective action from among a set of possible corrective actions based on the times of the various instances of the event and based on the at least one number of the various doors or various docks, and cause an output device to output an indication of the specific corrective action to a user.
[0158] Example 13 includes the at least one non-transitory computer-readable medium of Example 12, wherein a first one of the doors is located at a first one of a dock of a material handling facility where a trailer is positioned for loading or unloading, and a second one of the doors is an industrial door separating two areas within the material handling facility.
[0159] Example 14 includes the non-transitory computer-readable medium of at least one of Examples 12 or 13, wherein a first one of the docks includes at least one of a vehicle restraint device, a dock leveler, a presence / motion detector, a notification system, or a doorway barrier.
[0160] Example 15 includes at least one non-transitory computer-readable medium of any one of Examples 12-14, including instructions that cause the processor circuit to determine a proportion of all various instances of the event associated with at least one of a first door or a first dock of the doors or docks, and a particular corrective action corresponding to a first corrective action of the corrective actions if the proportion meets a threshold, and a particular corrective action corresponding to a second corrective action of the corrective actions if the proportion does not meet the threshold, the second corrective action being different from the first corrective action.
[0161] Example 16 includes at least one non-transitory computer-readable medium of Example 15, wherein the threshold value corresponds to all of the various instances of the event such that all of the various instances are associated with a first door or a first dock of at least one of the doors or docks.
[0162] Example 17 includes the non-transitory computer-readable medium of at least one of Examples 15 or 16, wherein the instructions cause the processor circuit to, in response to determining that the percentage does not meet the threshold, provide a distribution representation of the number of different instances of the event associated with different doors or docks of at least one of the doors or docks.
[0163] Example 18 includes the at least one non-transitory computer-readable medium of any one of Examples 15-17, wherein the percentage is a first percentage, and the instructions cause the processor circuit to determine a second percentage of all various instances of the event occurring during a first block of the plurality of time blocks during the day, the first corrective action corresponding to a third corrective action of the corrective actions if the second percentage meets a threshold, and the first corrective action corresponding to a fourth corrective action of the corrective actions if the second percentage does not meet the threshold, and the third corrective action is different from the fourth corrective action.
[0164] Example 19 includes the at least one non-transitory computer-readable medium of any one of Examples 12-18, wherein the instructions cause the processor circuit to determine a particular corrective action based on the times of different proportions of different instances of the event, associate different proportions of different instances of the event with different time blocks during a day, and determine a particular corrective action based on the distribution of the different instances of the event across the different time blocks.
[0165] Example 20 includes at least one non-transitory computer-readable medium of example 19, wherein instructions cause the processor circuit to provide a distribution representation together with a specific corrective action.
[0166] Example 21 includes at least one non-transitory computer-readable medium of Examples 19 or 20, wherein the different time blocks correspond to different shifts of workers at a material handling facility.
[0167] Example 22 includes at least one non-transitory computer-readable medium of any one of Examples 19-21, including instructions that cause a processor circuit to determine various door or dock numbers of the at least one of the doors or docks associated with at least one of various instances of the event associated with a first door or a first dock of the at least one of the doors or docks, and determine a particular corrective action based on the various door or dock numbers of the at least one of the doors or docks.
[0168] Example 23 includes a method, the method including: identifying a first occurrence of a safety event associated with a first event type of a plurality of event types based on output of a sensor associated with at least one of a door or a dock in a material handling facility; determining times at which various instances of the event occurred within a given time period; determining at least one number of various doors or various docks associated with the various instances of the event; selecting, by execution of instructions by a processor circuit, a specific corrective action from among a set of possible corrective actions based on the times of the various instances of the event and based on the at least one number of the various doors or various docks; and causing an output device to output an indication of the specific corrective action to a user.
[0169] Example 24 includes the method of example 23, wherein the first of the doors is located at a first dock of a dock of a material handling facility where the trailer is positioned for loading or unloading, and the second of the doors is an industrial door separating two areas within the material handling facility.
[0170] Example 25 includes the method of example 23 or 34, wherein the first of the docks includes at least one of a vehicle restraint device, a dock leveler, a presence / motion detector, a notification system, or a doorway barrier.
[0171] Example 26 includes the method of any one of Examples 23-25, further including determining a proportion of all various instances of the event associated with at least one of a first door or a first dock of the doors or docks, wherein the specific corrective action corresponds to a first corrective action of the corrective actions if the proportion meets a threshold, and the specific corrective action corresponds to a second corrective action of the corrective actions if the proportion does not meet the threshold, the second corrective action being different from the first corrective action.
[0172] Example 27 includes the method of example 26, wherein the threshold value corresponds to all of the various instances of the event such that all of the various instances are associated with a first door or a first dock of at least one of the doors or docks.
[0173] Example 28 includes the method of Example 26 or 27, and further includes, in response to determining that the percentage does not meet the threshold, providing a distribution representation of the number of different instances of the event associated with different doors or docks of at least one of the doors or docks.
[0174] Example 29 includes the method of any one of Examples 26-28, wherein the percentage is a first percentage, and the method further includes determining a second percentage of all various instances of the event that occurred during a first block of the plurality of time blocks during the day, wherein the first corrective action corresponds to a third corrective action of the corrective actions if the second percentage meets a threshold, and wherein the first corrective action corresponds to a fourth corrective action of the corrective actions if the second percentage does not meet the threshold, and the third corrective action is different from the fourth corrective action.
[0175] Example 30 includes the method of any one of Examples 23-29, further including associating different percentages of different instances of the event with different time blocks during a day based on the times of the different percentages of the different instances of the event, and determining a particular corrective action based on the distribution of the different instances of the event across the different time blocks.
[0176] Example 31 includes the method of example 30, further including providing a distribution representation together with the specified corrective action.
[0177] Example 32 includes the method of example 30 or 31, wherein the different time blocks correspond to different shifts of workers at a material handling facility.
[0178] Example 33 includes the method of any one of Examples 30-32, further including determining various door or dock numbers of the at least one of the doors or docks associated with at least one of the various instances of the event associated with a first door or a first dock of the at least one of the doors or docks, and determining a particular corrective action based on the various door or dock numbers of the at least one of the doors or docks.
[0179] The following claims are incorporated by reference into this detailed description. Although certain exemplary systems, methods, apparatus, and articles of manufacture have been disclosed herein, the scope of coverage of this patent is not limited thereto. To the contrary, this patent covers all systems, methods, apparatus, and articles of manufacture that fairly fall within the scope of the claims of this patent.
Claims
1. 1. An apparatus, comprising: at least one memory; machine-readable instructions; a processor circuit for at least one of instantiating and executing the machine-readable instructions; the machine-readable instructions comprising: identifying a first occurrence of a safety event associated with a first event type of the plurality of event types based on an output of a sensor associated with at least one of a door or a dock at the material handling facility; determining the times at which various instances of the event occurred within a given time period; determining at least one number of different doors or different docks associated with the different instances of the event; selecting a particular corrective action from a set of possible corrective actions based on the times of the various instances of the event and based on the number of at least one of the various doors or the various docks; and outputting to an output device an indication of said particular corrective action to a user. A device for:
2. 2. The apparatus of claim 1, wherein a first one of the doors is located on a first one of the docks of the material handling facility where a trailer is positioned for loading or unloading, and a second one of the doors is an industrial door separating two areas within the material handling facility.
3. The apparatus of claim 1 , wherein a first one of the docks includes at least one of a vehicle restraint device, a dock leveler, a presence / motion detector, a notification system, or a doorway barrier.
4. 2. The apparatus of claim 1, wherein the processor circuit is for determining a proportion of all the various instances of the event associated with a first door or a first dock of at least one of the doors or the docks, and the specific corrective action corresponds to a first corrective action of the corrective actions if the proportion meets a threshold, and the specific corrective action corresponds to a second corrective action of the corrective actions if the proportion does not meet the threshold, the second corrective action being different from the first corrective action.
5. The apparatus of claim 4 , wherein the threshold value corresponds to all of the different instances of the event such that all of the different instances are associated with the first door or the first dock of at least one of the doors or the docks.
6. 5. The apparatus of claim 4, wherein the processor circuitry is for providing, in response to determining that the percentage does not meet the threshold, a distribution representation of the number of the different instances of the event associated with different doors or docks of at least one of the doors or docks.
7. 5. The apparatus of claim 4, wherein the percentage is a first percentage, the processor circuit is for determining a second percentage of all the various instances of the event occurring during a first block of a plurality of time blocks during a day, the first corrective action corresponding to a third corrective action of the corrective actions if the second percentage meets a threshold, and the first corrective action corresponds to a fourth corrective action of the corrective actions if the second percentage does not meet the threshold, and the third corrective action is different from the fourth corrective action.
8. The processor circuitry includes: associating different percentages of the different instances of the event with different time blocks during a day based on the times of the different percentages of the different instances of the event; determining the particular corrective action based on a distribution of the different instances of the event over the different time blocks; The device of claim 1 .
9. The apparatus of claim 8 , wherein the processor circuitry is for providing the distribution representation together with the specific corrective action.
10. The apparatus of claim 8 , wherein the different time blocks correspond to different shifts of workers at the material handling facility.
11. The processor circuitry includes: determining a number of a different door or dock of the at least one of the doors or docks associated with at least one of the different instances of the event associated with a first door or dock of the at least one of the doors or docks; determining the specific corrective action based on the number of the various doors or docks of at least one of the doors or docks; 9. The device according to claim 8,
12. At least one non-transitory computer-readable medium containing instructions that, when executed, cause a processor circuit to at least: identifying a first occurrence of a safety event associated with a first event type of the plurality of event types based on an output of a sensor associated with at least one of a door or a dock at the material handling facility; determining the times at which various instances of the event occurred within a given time period; determining at least one number of different doors or different docks associated with the different instances of the event; selecting a particular corrective action from a set of possible corrective actions based on the times of the various instances of the event and based on the number of at least one of the various doors or the various docks; At least one non-transitory computer-readable medium that causes an output device to output an indication of said particular corrective action to a user.
13. 13. The at least one non-transitory computer-readable medium of claim 12, wherein a first one of the doors is located on a first one of the docks of the material handling facility where a trailer is positioned for loading or unloading, and a second one of the doors is an industrial door separating two areas within the material handling facility.
14. 13. The at least one non-transitory computer-readable medium of claim 12, wherein a first one of the docks includes at least one of a vehicle restraint device, a dock leveler, a presence / motion detector, a notification system, or a doorway barrier.
15. 13. The at least one non-transitory computer-readable medium of claim 12, wherein the instructions cause the processor circuit to determine a proportion of all the various instances of the event associated with a first door or a first dock of at least one of the doors or the docks, and the specific corrective action corresponds to a first corrective action of the corrective actions if the proportion meets a threshold, and the specific corrective action corresponds to a second corrective action of the corrective actions if the proportion does not meet a threshold, the second corrective action being different from the first corrective action.
16. 16. At least one non-transitory computer-readable medium as described in claim 15, wherein the threshold value corresponds to all of the various instances of the event such that all of the various instances are associated with a first door or a first dock of at least one of the doors or docks.
17. 16. The at least one non-transitory computer-readable medium of claim 15, wherein the instructions cause the processor circuit to, in response to determining that the percentage does not meet the threshold, provide a distribution representation of the number of the different instances of the event associated with different doors or docks of at least one of the doors or docks.
18. 16. The at least one non-transitory computer-readable medium of claim 15, wherein the percentage is a first percentage, and the instructions cause the processor circuit to determine a second percentage of all various instances of the event that occurred during a first block of a plurality of time blocks during a day, the first corrective action corresponding to a third corrective action of the corrective actions if the second percentage meets a threshold, and the first corrective action corresponding to a fourth corrective action of the corrective actions if the second percentage does not meet the threshold, and the third corrective action is different from the fourth corrective action.
19. The instructions cause the processor circuit to: associating different percentages of the different instances of the event with different time blocks during a day based on the times of the different percentages of the different instances of the event; 13. The at least one non-transitory computer-readable medium of claim 12, wherein the specific corrective action is determined based on a distribution of the different instances of the event over the different time blocks.
20. 20. The at least one non-transitory computer-readable medium of claim 19, wherein the instructions cause the processor circuit to provide the distribution representation along with the specific corrective action.
21. 20. The at least one non-transitory computer-readable medium of claim 19, wherein the different time blocks correspond to different shifts of workers at the material handling facility.
22. The instructions cause the processor circuit to: determining a number of a different door or dock of the at least one of the doors or docks associated with at least one of the different instances of the event associated with a first door or dock of the at least one of the doors or docks; 20. The at least one non-transitory computer-readable medium of claim 19, wherein the specific corrective action is determined based on the number of the various doors or docks of at least one of the doors or docks.
23. 1. A method, comprising: identifying a first occurrence of a safety event associated with a first event type of a plurality of event types based on an output of a sensor associated with at least one of a door or a dock at the material handling facility; determining the times at which various instances of the event occurred within a given time period; determining at least one number of different doors or different docks associated with the different instances of the event; selecting, by execution of instructions by a processor circuit, a particular corrective action from among a set of possible corrective actions based on the times of the various instances of the event and based on at least one number of the various doors or the various docks; causing an output device to output an indication of said particular corrective action to a user; and A method comprising:
24. 24. The method of claim 23, wherein a first one of the doors is located on a first one of the docks of the material handling facility where a trailer is positioned for loading or unloading, and a second one of the doors is an industrial door separating two areas within the material handling facility.
25. 24. The method of claim 23, wherein a first one of the docks includes at least one of a vehicle restraint device, a dock leveler, a presence / motion detector, a notification system, or a doorway barrier.
26. 24. The method of claim 23, further comprising determining a proportion of all the various instances of the event associated with a first door or a first dock of at least one of the doors or docks, wherein the specific corrective action corresponds to a first corrective action of the corrective actions if the proportion meets a threshold, and the specific corrective action corresponds to a second corrective action of the corrective actions if the proportion does not meet a threshold, the second corrective action being different from the first corrective action.
27. 27. The method of claim 26, wherein the threshold value corresponds to all of the different instances of the event such that all of the different instances are associated with a first door or a first dock of at least one of the doors or docks.
28. 27. The method of claim 26, further comprising, in response to determining that the percentage does not meet the threshold, providing a distribution representation of the number of the different instances of the event associated with different doors or docks of at least one of the doors or docks.
29. 27. The method of claim 26, wherein the percentage is a first percentage, the method further comprising determining a second percentage of all the various instances of the event that occurred during a first block of a plurality of time blocks during a day, the first corrective action corresponding to a third corrective action of the corrective actions if the second percentage meets a threshold, and the first corrective action corresponding to a fourth corrective action of the corrective actions if the second percentage does not meet the threshold, the third corrective action being different from the fourth corrective action.
30. associating different percentages of the different instances of the event with different time blocks during a day based on the times of the different percentages of the different instances of the event; determining the particular corrective action based on a distribution of the various instances of the event over the various time blocks; 24. The method of claim 23, further comprising:
31. 31. The method of claim 30, further comprising providing the distribution representation along with the specific corrective action.
32. 31. The method of claim 30, wherein the different time blocks correspond to different shifts of workers at the material handling facility.
33. determining a number of a different door or dock of the at least one of the doors or docks associated with at least one of the different instances of the event associated with a first door or dock of the at least one of the doors or docks; determining the specific corrective action based on the number of the various doors or docks of at least one of the doors or docks; 31. The method of claim 30, further comprising: