A system and method for coordinating a mobile robot with a worker to access a work area.
The system optimizes mobile robot operation by determining a non-interfering stopping posture for autonomous robots, reducing interference and task completion time in facilities.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- ZEBRA TECHNOLOGIES CORP
- Filing Date
- 2024-02-21
- Publication Date
- 2026-04-10
AI Technical Summary
Autonomous or semi-autonomous mobile robots in facilities often interfere with operators' access to work locations, increasing task completion time and requiring unnecessary path recalculations.
A system and method that involves a server determining a stopping posture for the mobile robot, including a stop position and orientation outside a restricted area to avoid interfering with the operator's access zone, and guiding the robot to this posture to optimize task completion time.
Reduces interference with operators, minimizing redundant path recalculations, and optimizing task completion time by ensuring the robot's stopping posture allows for efficient worker access and movement.
Smart Images

Figure 2026510708000001_ABST
Abstract
Description
Background Art
[0001]
[0001] Facilities such as warehouses, manufacturing facilities, and medical facilities may employ autonomous or semi-autonomous mobile robots to transport articles within the facility. The movement of articles to / from shelves may be assisted by operators in the facility. Upon arriving at the work location, the robot may physically interfere with the operator's access to the work location, increase the time required to perform each operation, and / or cause a progression readjustment that consumes time and energy.
Summary of the Invention
[0002]
[0002] Attached drawings in which like reference numerals refer to equal or functionally similar elements across separate drawings are incorporated herein with the modes for carrying out the following invention, form a part of this specification, further show embodiments of the concepts including the claimed invention, and serve to explain the various principles and advantages of those embodiments.
Brief Description of the Drawings
[0003] [Figure 1]
[0003] It is a schematic diagram of an exemplary system for coordinating a mobile robot with an operator to access a work location. [Figure 2]
[0004] It is a schematic diagram of the mobile robot of FIG. 1. [Figure 3]
[0005] It is a flowchart of an exemplary method for coordinating a mobile robot with an operator to access a work location. [Figure 4]
[0006] It is a schematic diagram of an exemplary implementation of block 310 of the method of FIG. 3. [Figure 5]
[0007] In blocks 315 and 320 of the method of FIG. 3, it is a flowchart of an exemplary method for identifying an operator access zone and determining a stop posture. [Figure 6]
[0008] Figure 5 is a schematic diagram illustrating an example of the method. [Figure 7]
[0009] This is a schematic diagram illustrating an exemplary implementation of block 325 of the method shown in Figure 3. [Figure 8]
[0010] This is a schematic diagram illustrating an example of iterative implementation of the method shown in Figure 3 to enable "Follow Me" functionality. [Figure 9]
[0011] This is a flowchart illustrating an example method for dealing with obstacles. [Figure 10]
[0012] Figure 9 is a schematic diagram illustrating an example of the method. [Modes for carrying out the invention]
[0004]
[0013] Those skilled in the art will understand that the elements in the figures are shown for conciseness and clarity and are not necessarily drawn to a specific scale. For example, the dimensions of some elements in the figures may be exaggerated relative to others to help improve the understanding of embodiments of the invention.
[0005]
[0014] Components of the apparatus and methods are represented in the drawings by conventional symbols where appropriate, and only specific details relevant to understanding embodiments of the invention are shown so as not to obscure this disclosure with details that would be immediately apparent to those skilled in the art who have an interest in the description herein.
[0006]
[0015] Examples disclosed herein relate to a method comprising the steps of: obtaining a work location; identifying a restricted area around the work location, wherein the restricted area represents an area where a mobile robot is restricted from stopping; identifying a worker access zone to the restricted area for a worker to access the location; and determining a stopping posture for a mobile robot, wherein the stopping posture includes a stop position and orientation outside the restricted area, selected to avoid interfering with the worker access zone.
[0007]
[0016] Additional examples disclosed herein relate to a server comprising a memory and communication interface and a processor interconnected with the memory and communication interface, the processor configured to perform the following for a mobile robot: to acquire a work location for a work; to define a restricted area around the work location, where the restricted area defines an area where the mobile robot is restricted from stopping; to identify a worker access zone within the restricted area, where the worker access zone is for a worker to enter the restricted area to access the work location; and to determine a stopping posture for the mobile robot, wherein the stopping posture includes a stop position and orientation selected to avoid interfering with the worker access zone outside the restricted area; and to guide the mobile robot to the stopping posture for completion of the work.
[0008]
[0017] Additional examples disclosed herein include a chassis having a travel assembly and a processor configured to acquire a work location, identify a restricted area around the work location, the restricted area representing an area where the mobile robot is restricted from stopping, identify a worker access zone to the restricted area for a worker to access the work location, and determine a stopping posture for the mobile robot, wherein the stopping posture includes a stopping position outside the restricted area, selected to avoid interfering with the worker access zone.
[0009]
[0018] Figure 1 shows a system 100 deployed inside a facility such as a warehouse, manufacturing facility, or medical facility. The facility includes a plurality of support structures 104 for holding articles 108. In the example shown, the support structures 104 include, for example, shelf modules arranged in sets that form aisles 112-1 and 112-2 (aisles 112-1 and 112-2 are collectively called aisles 112, and similar nomenclature is used herein for other components). As shown in Figure 1, the support structures 104 in the form of shelf modules include support surfaces 116 for supporting articles 108. In other examples, the support structures 104 may also include pegboards, bins, and the like.
[0010]
[0019] In other examples, the facility may include fewer or more passageways 112 than shown in Figure 1. In the shown example, the passageways 112 are formed by a set of eight support structures 104 (four on each side). However, the facility may also have a wide variety of other passageway layouts. As is clear, each passageway 112 is a space that is open at its ends and defined on both sides by support structures 104. The passageways 112 may be used by people, vehicles, etc. In even further examples, the facility may not need to include passageways 112 and instead may include assembly lines, etc.
[0011]
[0020] The article 108 may be handled according to a wide variety of processes, depending on the nature of the facility. In some examples, the facility may be a shipping facility, a distribution facility, etc., and the article 108 may be placed on a support structure 104 for storage and then removed from the facility for shipment.
[0012]
[0021] The placement of article 108 into and / or removal of article 108 from the support structure may be performed by a mobile robot 120 and worker 148 via task assignment by a cooperative server 128. Although only one robot 120 and one worker 148 are shown in this example, more robots 120 and workers 148 may be deployed in the facility depending on the size and / or layout of the facility, the nature of the article 108, etc.
[0013]
[0022] Each task may include one or more destination locations and one or more actions to be performed at those locations. Tasks may include tasks for picking items from a support structure to the robot 120, tasks for transferring items from the robot 120 to the support structure, or non-item-related tasks for the robot 120 to assist the worker 148 (for example, for the robot to act as a stepladder). For example, the server 128 may assign the robot 120 a picking task to move to a picking location within the facility and await the receipt of one or more items 108 at the picking location. Alternatively, the worker 148 may be assigned a corresponding picking task to proceed to the picking location, retrieve one or more of the items 108 from the support structure 104 at the picking location, and place the items 108 into or on the robot 120.
[0014]
[0023] Tasks can be assigned to workers 148 via a mobile computing device 152. Device 152 may be a tablet computer, smartphone, wearable computer (e.g., smart glasses), barcode scanner, etc. Device 152 can implement functions to help workers 148 complete various tasks in the facility, such as by providing instructions to perform picking tasks.
[0015]
[0024] To improve and optimize work assignments between multiple workers 148 and robots 120 within a facility, the server 128 may be configured to track the locations of robots 120 and workers 148 within the facility's coordinate system 124 (for example, using the location of device 152 as a proxy). Thus, the facility may include a location tracking subsystem, which may include wireless emitters deployed throughout the facility, such as wireless network access points, beacons (e.g., Bluetooth beacons), and radio frequency identification (RFID) readers. In another example, the location tracking subsystem may include cameras or other sensors configured to detect device 152 and / or robots 120 from video streams captured by the cameras. Devices 152 and robots 120 may be configured to determine their locations in coordinate system 124 based on signal strength measurements and / or other parameters determined from signals generated by the emitters. Devices 152 and robots 120 can then report their determined locations to the server 128. In other examples, the emitter can collaborate to determine the location of robot 120 and / or device 152 and report it to server 128 (for example, in the case of an emitter that includes an RFID reader). In further examples, device 152 and / or robot 120 may include motion sensors, such as an inertial measuring unit (IMU), (in the case of robot 120) an odometer, and a light detection and ranging (LIDAR) sensor, to help determine and report their location.
[0016]
[0025] Each robot 120 can be configured to track its pose (e.g., location / position and orientation) in a coordinate system 124 pre-set in the facility, such as within the facility. The robot 120 can autonomously move within the facility and can move to a picking location assigned to the robot 120, for example, to receive and / or place an item 108. To perform the work assigned to the robot 120 by the server 128, the mobile robot 120 can be configured to capture and process sensor data to detect obstacles in the facility, such as a support structure 104, a human operator 148, etc. The robot 120 can change its travel behavior in response to detection of such an obstacle, for example, by changing the route taken by the robot 120 or stopping the movement along the route to allow the operator 148 to pass.
[0017]
[0026] The work can be assigned to the robot 120 and, via the device 152, to the operator 148 by, for example, the exchange of messages between the server 128 and the robot 120 and / or the device 152 through a link 130 defined by a suitable combination of local and wide area networks. The server 128 is deployed in the facility and can communicate with the robot 120 via one or more local networks, such as a wireless local area network (WLAN) deployed within the facility. In other examples, the server 128 is located away from the facility and can communicate with the robot 120 and the device 152 via a combination of local and wide area networks. In some examples, the server 128 is configured to assign work to the robot 120 and the device 152 in multiple facilities.
[0018]
[0027] The server 128 includes a processor 132, such as one or more dedicated hardware controllers, including a central processing unit (CPU), a graphics processing unit (GPU), or an application-specific integrated circuit (ASIC). The processor 132 is communicably coupled to memory 136, such as a non-temporary computer-readable medium, such as a preferred combination of volatile and non-volatile memory elements. The processor 132 is also coupled to a communication interface 140, such as a wireless transceiver, which allows the robot 120 to communicate with other computing devices, such as a mobile robot 120. Memory 136 can store a number of computer-readable instructions that can be executed by the processor 132, such as a work and route assignment application 144, and the execution of the work and route assignment application 144 by the processor 132 configures the processor 132 to assign work and robot routes for the mobile robot 120 to proceed to each work location.
[0019]
[0028] During operation, when the robot 120 is assigned to a task at a work area, the robot 120 may conventionally proceed to a stopping position in the aisle 112 directly in front of the work area. However, such stopping positions may obstruct or hinder the worker 148 from the work area, including, for example, obstructing or hindering the picking of the item 108 to be placed on the robot 120 from the support structure 104. This increases the amount of time required to perform the task and may necessitate the robot 120 spending additional time at each work area.
[0020]
[0029] In other examples, when operator 148 arrives at the work location ahead of robot 120, robot 120 may detect operator 148 as an obstacle and may change its path in an attempt to reach the designated stop position. However, since operator 148 may obstruct the stop position, robot 120 may not be able to find a suitable path and may continuously attempt to recalculate its path. This can result in redundant and unnecessary path recalculations by robot 120 and can additionally increase the difficulty when operator 148 places article 108 on moving robot 120.
[0021]
[0030] Thus, according to the present disclosure, for each operation and work location, server 128 can additionally assign a stop posture associated with the operation. The stop posture can include a stop position located outside the restricted area around the work location. That is, the restricted area can be defined by an area within passageway 112 around the work location where robot 120 is restricted from stopping. The restricted area can be dynamically selected based on the operation, the size of article 108, the size of passageway 112, etc. to enable operator 148 to easily perform the operation. For example, the size of the restricted area can be selected based on the physical characteristics of operator 148 (e.g., height and / or arm span, dominant hand, use of mobility aids, etc.).
[0022]
[0031] In some examples, the stopping orientation may include an additional stop orientation for orienting the object basket on the robot 120 toward the vicinity of the worker and / or the work area. In particular, referring to Figure 2, for example, the robot 120 in an exemplary configuration is shown in more detail. The robot 120 includes a chassis 200 having a running assembly 204 such as wheels, tracks, etc., driven by electric motors. The chassis 200 supports at least one object basket 208, and in this example, four object baskets 208-1, 208-2, 208-3, and 208-4 are shown. Each object basket 208 is for collecting objects 108 for a particular order. The item baskets 208 can be arranged on the chassis 200 such that two baskets 208-1 and 208-3 extend from the central portion 212 of the chassis 200 on a first side, and the other two baskets 208-2 and 208-4 extend from the central portion 212 on a second side opposite the first side. That is, the central portion 212 may prevent an operator 148 on the first side from accessing baskets 208-2 and 208-4 on the second side, and vice versa. The stopping orientation assigned to the robot 120 in a stopped position may therefore allow the operator 148 to access the appropriate basket 208 for the task.
[0023]
[0032] In addition to the stopping position, the server 128 may additionally determine a robot path for the robot 120 to move to the work area, in particular to the stopping position. The robot path may be determined based on the worker path, in particular to avoid interference with the worker path. That is, if candidate robot paths and worker paths are planned so that the robot 120 and worker 148 are expected to be in the same position (or within a threshold distance from each other) at the same time (or within a threshold time period), the candidate robot path may be discarded and a new robot path may be drawn so, for example, by going through a different passage 112, moving along a different side of passage 112, etc.
[0024]
[0033] The stopping posture and robot path of robot 120 may be determined by server 128 to reduce the number of times robot 120 needs to adjust its progress and to optimize the time required for worker 148 to perform the work with the assistance of robot 120, prioritizing the space available for worker 148 during the process and while working (in other words, at the work site). The stopping posture is preferably determined in real time, for example, in response to the commencement of each task assigned to robot 120. This may allow server 128 to take into account the current location of worker 148, their worker path, etc.
[0025]
[0034] In other examples, the stopping posture may be determined by the robot 120 itself, by a mesh network including the robot 120 with communication with device 152 and / or cooperating server 128, or by other suitable computing resources.
[0026]
[0035] Next, with reference to Figure 3, the functions implemented by the server 128 will be described in more detail. Figure 3 shows a method 300 for coordinating a mobile robot with a worker to enable the robot to access the work area of the work. Method 300 will be described in relation to its implementation in system 100, in particular through the execution of application 144 by the server 128. In other examples, part or all of method 300 may be implemented by other suitable devices or systems, such as a robot 120, a distributed system such as a mesh network formed from multiple robots 120, etc.
[0027]
[0036] Method 300 is initiated in block 305, for example, in response to robot 120 preparing to perform a task assigned to robot 120. For example, robot 120 may provide a directive to server 128 that it is preparing for a task. This directive may include, for example, a request for a robot path to proceed to the work location. Thus, in block 305, server 128 obtains the work location for the task. The work location may be retrieved, for example, from a work and / or item repository stored in memory 136, from another server, or similar. The work location may be defined, for example, by a passageway 112 where the relevant item 108 is located, a specific support structure 104, and a specific support surface 116 where the relevant item 108 is located. In other examples, the work location may be defined within the facility's coordinate system 124, a combination of the above, and similar.
[0028]
[0037] In block 310, the server 128 defines a restricted area around the work area. In particular, the restricted area defines the area in which the mobile robot 120 is restricted from stopping. That is, the stopping position of the robot 120 is not permitted to be within the restricted area.
[0029]
[0038] For example, referring to Figure 4, a schematic diagram of a portion of the facility map 400 is shown. The map 400 identifies the work area 404 for the work of the mobile robot 120. In particular, the work area 404 may represent the location on the support structure 104 of the item 108 to be retrieved or picked. The map 400 further shows the restricted area 408 around the work area 404. In this example, restricted area 408-1 is defined by a circular area with radius r around the work area 404 that overlaps with the portion of the facility that the robot 120 can pass through. That is, since the robot cannot pass through the support structure 104, restricted area 408-1 may be limited to a semicircle located within the passage 112. In other examples, other restricted areas 408 may have other shapes and / or sizes (e.g., rectangular, elliptical, custom shapes defined by the worker or facility manager). For example, Figure 4 shows restricted areas 408-2 and 408-3, which have a rectangular shape and a custom-defined shape, respectively.
[0030]
[0039] In some examples, the server 128 may dynamically select the size of the restricted area 408 (defined, for example, by radius r in the case of restricted area 408-1) based on the size and / or shape of the article 108, the size of the aisle 112 of the work area 404, or other parameters. For example, the radius r may be selected to be at least half of the maximum dimensions of the article 108, thereby allowing the restricted area 408 to accommodate the maximum dimensions of the article 108. In other examples, the restricted area 408 may be defined to ensure that at least a threshold amount of space (e.g., half the width of the aisle 112, 91.44 cm (3 feet) of space, or some other fixed amount of space) is available within the aisle 112 for other workers 148 and / or robots 120 to pass through the aisle 112. When defining the restricted area 408, the server 128 may consider a combination of the size and / or shape of the article 108 and the size of the aisle 112. For example, the restricted area 408-2 may have at least the length of the maximum dimension of article 108 (in other words, defined longitudinally along the aisle 112) and a width of up to half the width of the aisle 112 (in other words, defined transversely to the aisle 112). Similarly, the restricted area 408-3 may be a custom-defined area or a semicircle with a radius centered on the work area, with smaller segments (e.g., segments extending beyond half the width of the aisle) excluded. Other shapes and / or sizes of the restricted area 408 are also contemplated.
[0031]
[0040] Returning to Figure 3, in block 315, the server 128 identifies the worker access zone of the restricted area. The worker access zone is the portion of the restricted area (e.g., edge, small area, etc.) where the worker 148 is expected to access the item 108 at the work site. Thus, the worker access zone can inform the selection of a stopping posture for the robot 120 to reduce the possibility that the robot 120 and the worker 148 will interfere with each other, thereby increasing the time to complete the work and / or increasing progress adjustments by the robot 120.
[0032]
[0041] Therefore, in block 320, the server 128 determines a stopping posture for the robot based on the worker access zone identified in block 315. In particular, the stopping posture includes a stopping position outside the restricted area. Furthermore, the stopping posture is selected to avoid interfering with the worker access zone identified in block 315.
[0033]
[0042] For example, referring to Figure 5, a flowchart of method 500 for identifying worker access zones and selecting a stopping position in blocks 315 and 320 is shown.
[0034]
[0043] In block 505, server 128 obtains the worker path of worker 148, who is assigned to the same task as robot 120. The worker path may be, for example, a suggested (in other words, suggested to worker 148 by server 128 via device 152) or predicted path for worker 148 to proceed to the work location, based on worker 148's current location within the facility.
[0035]
[0044] In block 510, the server 128 identifies worker access zones based on the worker's path. For example, a worker access zone may be defined proximal to the work area with respect to the worker's path. That is, the worker access zone may be upstream of the work area with respect to the worker's path and direction of travel along the passage 112 for worker 148 to reach the work area. In some examples, a worker access zone may be defined as a small area or portion of a restricted area, while in other examples, a worker access zone may be a portion of the outer perimeter of a restricted area.
[0036]
[0045] For example, referring to Figure 6, another schematic diagram of map 400 having a restricted area 408 is shown. Furthermore, server 128 may identify worker routes 600 for worker 148 to proceed to work location 404.
[0037]
[0046] Upon obtaining the worker path 600, the server 128 may identify a worker access zone. For example, the worker access zone may be a sub-region 604 representing approximately half of the restricted area 408. In particular, the restricted area 408 may be divided approximately in two at the work area 404 perpendicular to the longitudinal axis of the passage 112. That is, the restricted area 408 may be divided into a sub-region 604 that is upstream of the work area 404 with respect to the worker path 600, and another sub-region 608 that is downstream of the work area 404 with respect to the worker path 600. Sub-region 604 is either near the worker path 600 or upstream with respect to the worker path 600, while sub-region 608 is distal to the worker path 600, and therefore, between sub-regions 604 and 608, sub-region 604 is identified as the worker access zone.
[0038]
[0047] In other examples, the worker access zone may be defined as a portion 612 of the perimeter of the restricted area 408. For example, the perimeter portion 612 may be defined based on the average proportions of the worker 148 and the average width required for the worker 148 to enter the restricted area 408, as well as the portion of the perimeter closest to the worker path 600.
[0039]
[0048] Returning to Figure 5, in block 515, the server 128 determines a stopping position for the robot 120. In particular, the stopping position is outside the restricted area and avoids interfering with the worker access zone. Such a position may be, for example, on the second side of the work area distal to the worker path, or downstream of the work area with respect to the worker path and direction of travel along the passage 112 for worker 148 to proceed to the work area.
[0040]
[0049] For example, referring to the example shown in Figure 6, server 128 may select a position along the outer perimeter of small area 608, since any position along the outer perimeter of small area 604 could obstruct small area 604 as a worker access zone. Alternatively, server 128 may select a position along the outer perimeter of restricted area 408, excluding the outer perimeter portion 612 designated as a worker access zone.
[0041]
[0050] In some examples, when the server 128 selects a stopping position, it may additionally consider other parameters and / or conditions. For example, the stopping position for the robot 120 may be selected to be the closest to the work area that meets certain criteria. Furthermore, preferably, the stopping position may be along the edge of the passageway 112 to allow other robots 120 or workers 148 to pass the robot 120 that is at the stopping position.
[0042]
[0051] In block 520, the server 128 determines a stop orientation for the robot 120. In particular, the robot 120 and / or the server 128 may first identify one or more housings of the robot 120 that are available for work. For example, a housing may include one of the baskets 208, or (for example, in the case of a large item 108 that does not fit into one of the baskets 208) a part of the chassis 200, in which the item 108 may be loaded into or onto in connection with the work. The stop orientation may be selected to orient one or more identified housings on the mobile robot 120 near the work area or toward the worker access zone, such that the housings are accessible by an operator from the operator access zone.
[0043]
[0052] For example, when the robot 120 includes an item basket 208 that may be obstructed by parts of the robot 120 itself, such as a central section 212, selecting a stopping orientation for the robot 120 can further reduce the time to perform the task by providing access to the item basket 208 by the worker 148. Thus, if the item basket 208 is on the first side of the central section 212, the stopping orientation may be selected to orient the first side of the robot 120 toward the vicinity of the work area. The robot 120 may still be oriented substantially parallel to the length of the aisle 112, so that the first side of the robot 120 faces one end of the aisle 112 and the second side of the robot 120 faces the other end of the aisle 112. In other examples, the stopping orientation may include any angular direction of the robot 120 to allow the item basket 208 to be angled toward the work area.
[0044]
[0053] For example, returning to Figure 6, a stopping position 616 and stopping orientation 620 for the robot 120 are also shown. In this example, the stopping position 616 is selected to be outside the restricted area 408, adjacent to the support structure 104 of the work area 404 (in other words, adjacent to the support structure 104 on which the relevant article 108 sits), and along the outer perimeter of the small area 608. More specifically, the stopping position 616 is selected so that the entire robot 120 is located outside the restricted area 408. That is, the stopping position 616, which can generally represent the center of the robot 120, may be selected to be far enough away from the restricted area 408 to allow the robot 120 to stop substantially adjacent to the outer perimeter of the restricted area 408. In other examples, the stopping position 616 itself may be along the outer perimeter of the restricted area 408, and the robot 120 may partially obstruct the restricted area when it reaches the stopping position 616.
[0045]
[0054] The stopping orientation 620 is indicated by an arrow, where the arrow represents the “forward” direction of the robot 120 (indicated by a dashed line), or the direction in which the first side of the robot 120 should be oriented. Other directional expressions and definitions for the robot 120 are also contemplated in other examples. In this example, the stopping orientation 620 orients the first side of the robot 120 toward the work area 404, thereby positioning the object basket 208-1 (indicated by a dotted line) near the work area 404.
[0046]
[0055] The stopping position and stopping orientation both define the stopping posture of the robot 120, and thus the server 128 can then return to method 300 of Figure 3. In particular, the server 128 may proceed to block 325. In block 325, the server 128 determines the robot path for the robot 120 to proceed to the stopping posture. Preferably, the robot path may be defined to avoid interference with the worker path for the worker 148 to proceed to the work location while optimizing the distance the robot 120 travels. The robot path may be determined to avoid interference with the worker path if, for example, (i) no portion of the robot path overlaps with the worker path, (ii) the estimated arrival time of the worker 148 is after a threshold buffer time from the estimated arrival time of the robot 120, and (iii) the time-series regions of the robot path and the worker path are in another preferred manner that determine that they do not overlap or interfere with each other.
[0047]
[0056] For example, referring to Figure 7, a schematic diagram of map 400 is shown, including three potential robot paths 700-1, 700-2, and 700-3. For example, server 128 may obtain a worker path 600 for worker 148 to proceed to work location 404 and, based on the worker path 600, consider the estimated arrival time of worker 148.
[0048]
[0057] Server 128 may consider a robot path 700-1 that has the shortest length and the fewest number of turns to reach the stopping position 616. If it is estimated that worker 148 will arrive before or after robot 120 within a threshold buffer time based on robot path 700-1, Server 128 may determine that robot path 700-1 and worker path 600 interfere with each other because portions of robot path 700-1 and worker path 600 are within each other's threshold distance and robot path 700-1 passes through a restricted area. If it is estimated that worker 148 will arrive after a threshold buffer time based on the estimated arrival time of robot 120, it may be determined that robot path 700-1 and worker path 600 do not interfere with each other. That is, robot 120 has enough time to arrive at its location before worker 148 without interfering with worker 148.
[0049]
[0058] In other examples, instead of considering only the arrival times of robot 120 and worker 148, server 128 may additionally consider the speeds at which robot 120 and worker 148 are expected to travel along robot path 700-1 and worker path 600, respectively. For example, after obtaining the worker path, server 128 may time-series the worker path 600 to define the footprint that worker 148 is expected to occupy at a given time. For example, worker path 600 may be time-series for predefined time intervals (e.g., 5 seconds, 10 seconds, etc.) to define the area in which worker 148 is expected to be located within a given interval. Server 128 may also time-series robot path 700-1 as an additional measure. If the corresponding time-series regions of robot path 700-1 and worker path 600 do not interfere with each other (e.g., do not overlap), server 128 may determine that robot path 700-1, as a whole, does not interfere with worker path 600.
[0050]
[0059] If the most direct robot path 700-1 is determined to interfere with the worker path 600, the server 128 may consider alternative robot paths, such as robot paths 700-2 and 700-3. If the passage 112 is wide enough to accommodate both the robot 120 and the worker 148, the server 128 may select robot path 700-2, in which case robot path 700-2 is defined on the side of passage 112 opposite the worker path 600. In some examples, the server 128 may be configured to define robot path 700-2 regardless of the estimated arrival times of the robot 120 and the worker 148, since robot path 700-2 does not interfere with the worker path 600 at all (in other words, it is at least a threshold distance away from the worker path 600).
[0051]
[0060] In another example, if passage 112 is not wide enough to accommodate both robot 120 and worker 148, or wide enough to reduce the possibility of congestion (for example, allowing robots and / or workers moving in opposite directions to pass through passage 112), server 128 may define a robot path 700-3 that passes through a different passage 112 than the one containing the work area. Since robot path 700-3 does not overlap with worker path 600 (in other words, it is not within the threshold distance of worker path 600), robot path 700-3 may be determined to avoid interference with worker path 600.
[0052]
[0061] In addition to defining the path to be followed to reach the stopping position 616, each robot path 700 may also define an additional rotation to be performed at the stopping position 616 in order to achieve the assigned stopping orientation 620. For example, when following robot path 700-1, the front side of robot 120 may be facing the opposite side of the stopping orientation 620, and therefore it may rotate 180° to obtain the correct stopping orientation 620. Similarly, when following robot path 700-2, the front side of robot 120 may be facing the support structure 104, and therefore robot 120 may rotate 90° to obtain the correct stopping orientation 620. When following robot path 700-3, robot 120 is already oriented to the stopping orientation 620, and therefore no further rotation is performed.
[0053]
[0062] Returning to Figure 3, after determining the robot path, in block 330, the server 128 guides the robot 120 to a stopping position for the completion of the task. For example, the server 128 may send the robot path determined in block 325 to the robot 120 in order to proceed to the stopping position.
[0054]
[0063] In some cases, after guiding the robot 120 to a stopping position, the server 128 may monitor the progress of the worker 148 into the work area. In particular, the worker 148 may, at its own discretion, deviate from the worker path suggested or predicted by the server 128. In some cases, such deviation may result in the worker 148 entering the work area passage 112 from the opposite direction, and thus the worker access zone may change. This allows the server 128 to predict changes in the worker path based on the worker 148's position and direction of movement when monitoring the worker 148's position in progress into the work area. In response to detecting a deviation from the worker path, the server 128 may determine a new predicted worker path, return to block 315 to identify a new worker access zone, and then a new stopping position for the robot 120.
[0055]
[0064] In other examples, the predicted or suggested worker path may be determined by the server 128 based on the tasks assigned to worker 148, and therefore the server 128 can ignore deviations from the worker path. For example, the server 128 may determine that several tasks are located within the same passageway and assign tasks to worker 148 in such a way that the worker and robot paths are optimized to move from one end of the passageway to the other without turning back (in other words, exhibiting a follow-me relationship between robot 120 and worker 148).
[0056]
[0065] For example, referring to Figure 8, illustrative schematic diagrams of several iterations of method 300 for enabling “follow me” responses are shown. In particular, Figure 8 shows a portion of the facility map 800. The map 800 identifies three work locations 804-1, 804-2, and 804-3, each located along a single aisle having a first end 802-1 and a second end 802-2. Based on the locations of worker 148 and robot 120, server 128 may assign work in the order of work location 804-1, work location 804-2, and work location 804-3 to allow robot 120 and worker 148 to move from the first end 802-1 to the second end 802-2.
[0057]
[0066] Each of the work areas 804 may have its own restricting area 808-1, 808-2, and 808-3 that restricts the stopping position of the robot 120 in each work area 804. Furthermore, as can be seen, the restricting area 808 may vary in size, for example, based on the items 108 being picked in each work area 804. The server 128 can assign its respective stopping positions 812-1, 812-2, and 812-3 in each work area 804, each stopping position located on the side of the corresponding restricting area 808 that is closer to the second end 802-2 of the aisle. As a result, when the robot 120 and worker 148 move from the first work area 804-1 to the second work area 804-2 and then to the third work area 804-3, a "follow me" relationship is established, in which the worker path 816 and robot path 820 between work areas 804 result in worker 148 following robot 120.
[0058]
[0067] In some examples, if worker 148 is expected to arrive before robot 120, the worker access zone may be defined to allow worker 148 to access the work area and move toward the next task without being obstructed by robot 120. That is, the stopping position 812 may be on each side of the corresponding restricted area 808, closer to the first end 802-1 of the passageway. This results in a “follow me” relationship when robot 120 and worker 148 move from the first work area 804-1 to the second work area 804-2 and the third work area 804-3, in which the worker path and robot path result in robot 120 following worker 148.
[0059]
[0068] Other forms of assigning tasks and associated stopping postures are also contemplated. For example, instead of determining the robot path in block 325 of method 300, server 128 may proceed directly to block 330 to guide robot 120 to a stopping posture. In such an example, server 128 may send robot 120 a stopping posture, including the stopping position and stopping orientation. Robot 120 itself may then determine a suitable robot path to proceed to the specified stopping posture, for example, by performing the process described with respect to block 325. In other examples, part or all of method 300 may be implemented by robot 120, and / or a distributed system such as a mesh network formed from multiple robots 120, or similar.
[0060]
[0069] The determination of the robot path by the robot 120 may, in addition, allow for consideration of obstacles and / or other progress items detected by the robot 120's sensors. For example, referring to Figure 9, an exemplary method 900 for dealing with obstacles is shown. Method 900 is described below as being carried out by the robot 120, but in other examples it may be carried out by other suitable devices and / or systems, such as the server 128, in response to a request from the robot 120.
[0061]
[0070] In block 905, the robot 120 detects obstacles that interfere with a designated stopping position for the robot 120. The robot 120 may detect such obstacles using a variety of sensors, including, for example, image sensors and depth sensors. Obstacles may be, for example, another robot, a worker, or a pallet (e.g., containing goods). In some examples, the robot 120 may monitor the obstacle for a predetermined amount of time to determine whether it is temporary (e.g., a worker and / or robot passing through the stopping position while moving) or permanent or semi-permanent (e.g., another robot waiting at the stopping position for another task to be performed). If the obstacle is temporary, the robot 120 may discard the classification of the detected object as an obstacle.
[0062]
[0071] In block 910, robot 120 may select a second stopping posture. The second stopping posture may include a second stopping position that maintains the condition of being outside the restricted area. However, the second stopping posture may relax other conditions, such as avoiding obstruction of the worker access zone. For example, robot 120 may instead prioritize arranging the second stopping position along the support structure 104 on which the work area is located in order to maintain passage space for other robots 120 and / or workers 148 in the passage 112. Additionally, robot 120 may determine a second stopping orientation to orient the object basket toward the vicinity of the work area.
[0063]
[0072] In some examples, the robot 120 may also consider the worker path and estimated arrival time when selecting a new stopping posture. Thus, in block 915, the robot 120 can obtain the worker path for worker 148 to proceed to the work location. The robot 120 can communicate directly with the device 152 associated with worker 148 and with the server 128 to obtain the worker path, or with other suitable devices in the facility to obtain the worker path.
[0064]
[0073] In block 920, if robot 120 determines that the worker path does not interfere with the second stopping position, robot 120 proceeds to block 930 and moves to the second stopping position. For example, the decision in block 920 may simply be based on the estimated arrival time of worker 148 based on the worker path. That is, if robot 120 can move to the second stopping position before worker 148 arrives at the work location, robot 120 may determine that the worker path does not interfere with the second stopping position. This may allow robot 120 to prioritize maintaining passage space within the passage 112.
[0065]
[0074] In block 920, if robot 120 determines that the worker path interferes with the robot's ability to reach a second stopping position selected in block 910, robot 120 proceeds to block 925 to select a further stopping position for robot 120. The further stopping position may include further stopping positions and orientations. The further stopping positions may maintain the condition that they are outside the restricted area, but may be located, for example, on the opposite side of the passage 112 where the work area is located.
[0066]
[0075] After selecting a further stopping position in block 925, robot 120 proceeds to block 930 to proceed to another stopping position. In some examples, robot 120 may iteratively check for other obstacles, interferences, etc. that may prevent further stopping positions and select further stopping positions until a suitable stopping position is identified.
[0067]
[0076] For example, referring to Figure 10, a schematic diagram of a portion of map 400 is shown. In particular, after selecting a stopping position 616 and proceeding toward stopping position 616, robot 120 may detect an obstacle 1000 at stopping position 616. Therefore, robot 120 may select a second stopping position 1004 outside the restricted area, along the support structure of the work area 404.
[0068]
[0077] The robot 120 may further refer to the worker path 600 to determine whether it can proceed to the second stopping position 1004 before the worker 148 arrives at the work area 404. If the robot 120 determines that it can proceed to the second stopping position 1004 (in other words, the worker path 600 does not interfere with the selected second stopping position 1004), the robot 120 proceeds to the second stopping position 1004. If the robot 120 determines that it cannot proceed to the second stopping position 1004 before the worker 148 arrives at the work area 404 (in other words, the worker path 600 interferes with the selected second stopping position 1004), the robot selects a further stopping position 1008 and proceeds to that further stopping position 1008.
[0069]
[0078] Specific embodiments have been described in the above specification. However, those skilled in the art will understand that various modifications and changes can be made without departing from the scope of the invention as set forth in the following claims. Accordingly, this specification and the figures should be considered in an illustrative rather than restrictive sense, and all such modifications shall be within the scope of this teaching.
[0070]
[0079] For example, rather than guiding an autonomous mobile robot, the coordination methods described herein may be applied to another vehicle or transporter, such as a forklift truck, pallet truck, or other manned or unmanned vehicle, to point to a stopping position outside a restricted area so as not to interfere with the location where work is being performed.
[0071]
[0080] No benefit, advantage, solution to a problem, or any element that may cause any benefit, advantage, or solution to occur or become more prominent should be construed as an essential, necessary, or required feature or element of any or all of the claims. The present invention is defined solely by the appended claims, including any amendments made during the pendency of this application, and all equivalents of those claims issued.
[0072]
[0081] Furthermore, in this specification, relational terms such as “first” and “second,” “top” and “bottom” may be used solely to distinguish one entity or act from another, and do not necessarily require or imply any actual relationship or order between such entities or acts. The terms “comprises,” “comprising,” “has,” “having,” “includes,” “including,” “contains,” and “containing,” or any other variations thereof, cover non-exclusive inclusion, thereby meaning that a process, method, article, or apparatus that comprises, has, includes, or contains a list of elements may include not only those elements but also other elements that are not explicitly listed or that are inherent to such process, method, article, or apparatus. The elements following "comprises ...a," "has ...a," "includes ...a," and "contains ...a" do not preclude the existence of additional equivalent elements in a process, method, article, or apparatus that comprises, have, include, or contain that element, unless otherwise specified herein. The terms "a" and "an" are defined as one or more unless otherwise specified herein. The terms "substantially," "essentially," "approximately," "about," or any other version thereof are defined as being close to what is understood by those skilled in the art, and in one non-limiting embodiment, the term is defined as being within 10%, in another embodiment within 5%, in another embodiment within 1%, and in another embodiment within 0.5%.As used herein, the term “coupled” is defined as being connected, but not necessarily in an immediate or mechanical way. A device or structure “configured” in a certain way is configured at least in that way, but may be configured in other ways not listed.
[0073]
[0082] It will be understood that some embodiments may consist of one or more dedicated processors (or “processing devices”), such as microprocessors, digital signal processors, customized processors, and field-programmable gate arrays (FPGAs), along with specific non-processor circuits, and unique stored program instructions (including both software and firmware) that control one or more processors to implement some, almost all, or all of the functions of the methods and / or apparatus described herein. Alternatively, some or all of the functions may be implemented by a state machine that does not have stored program instructions, or by one or more application-specific integrated circuits (ASICs) in which each function or some combination of a certain function is implemented as custom logic. Of course, a combination of these two approaches may be used.
[0074]
[0083] Furthermore, embodiments may be implemented as computer-readable storage media having computer-readable code stored therein for programming a computer (e.g., comprising a processor) to carry out the methods described and claimed herein. Examples of such computer-readable storage media include, but are not limited to, hard disks, CD-ROMs, optical storage devices, magnetic storage devices, ROMs (read-only memory), PROMs (programmable read-only memory), EPROMs (erasable programmable read-only memory), EEPROMs (electrically erasable programmable read-only memory), and flash memory. Moreover, those skilled in the art will expect that, guided by the concepts and principles disclosed herein, it will be possible to easily generate such software instructions and programs and ICs with minimal experimentation, despite potentially requiring significant effort and numerous design choices due to, for example, available time, current technology, and economic considerations.
[0075]
[0084] This abstract of the disclosure is provided to enable readers to quickly grasp the nature of the technical disclosure. The abstract is submitted with the understanding that it is not to be used to interpret or limit the scope or meaning of the claims. In addition, it is found that in the modes for carrying out the invention described above, various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure should not be interpreted as reflecting an intention that the claimed embodiments require more features than are explicitly stated in each claim. Rather, as the following claims reflect, the subject matter of the invention consists of fewer features than all of the single disclosed embodiment combined. Thus, the following claims are incorporated herein into the modes for carrying out the invention, and each claim stands on its own as separately claimed subject matter.
Claims
1. A method for coordinating a mobile robot with a worker to access a work site, wherein the method is: The steps include obtaining the location of the aforementioned work, A step of identifying a restricted area around the work area, wherein the restricted area represents an area where the mobile robot is restricted from stopping; The steps include identifying a worker access zone for the restricted area for the worker to access the work area, A step of determining the stopping posture of the mobile robot, the step of determining the stopping posture including a stopping position outside the restricted area selected so as to avoid obstructing the worker access zone. A method that includes [a certain feature].
2. The method according to claim 1, wherein the restricted area comprises an area within a predetermined radius from the work area.
3. The method according to claim 1, wherein at least one of the size or shape of the restricted area is defined based on one or more of the size of the articles in the work area and the width of the passageway in the work area.
4. The steps include: obtaining a worker route for the worker to proceed to the work location; The steps include identifying the worker access zone based on the worker route and The method according to claim 1, further comprising:
5. The worker access zone is located near the worker path, on the first side of the work area, The stopping position is located on the second side of the work area, distal to the worker's path. The method according to claim 4.
6. In response to detecting the worker's departure from the worker's designated path, Steps to acquire a new worker route, The steps include identifying a new worker access zone based on the aforementioned new worker route, A step of determining a new stopping posture for the mobile robot based on the new worker access zone. The method according to claim 4, further comprising:
7. The steps include: detecting an obstacle at the stopping position using the mobile robot; The steps include determining a second stopping position, which includes a second stopping position outside the aforementioned restricted area, and The method according to claim 1, further comprising:
8. The method according to claim 1, wherein the stopping posture further includes a stopping orientation for the mobile robot, the stopping orientation being selected to orient the mobile robot toward the worker access zone.
9. The steps include identifying one or more housings of the mobile robot that are available for the aforementioned work, The steps include orienting the mobile robot such that one or more of the housings are accessible by the worker from the worker access zone, and The method according to claim 8, further comprising:
10. The steps include: obtaining a worker route for the worker to proceed to the work location; A step of determining a robot path to the aforementioned stopping position, wherein the robot path is defined in such a way as to avoid interference with the operator path. The method according to claim 1, further comprising:
11. The robot path is (i) No part of the robot path overlaps with the worker path, (ii) The estimated worker arrival time is within a threshold buffer time from the estimated robot arrival time, or (iii) The time-series regions of the robot path and the worker path do not overlap with each other. The method according to claim 10, wherein in one of the cases, it is determined to avoid interference with the worker path.
12. The method according to claim 1, further comprising the step of guiding the mobile robot to the stopping position in order to complete the aforementioned work.
13. A server for coordinating a mobile robot with a worker in order to access the work site in order to carry out the work, The aforementioned server, Memory and communication interface In addition to being equipped, A processor interconnected with the memory and the communication interface, For the mobile robot, to acquire the location of the work, Identifying a restricted area around the work area, wherein the restricted area represents an area where the mobile robot is restricted from stopping. Identifying worker access zones for the restricted area for the worker to access the work area, Determining the stopping posture of the mobile robot, wherein the stopping posture includes a stopping position outside the restricted area, selected to avoid obstructing the worker access zone. A processor configured to perform A server equipped with the following features.
14. The server according to claim 13, wherein the restricted area comprises an area within a predetermined radius from the work area.
15. The server according to claim 13, wherein at least one of the size or shape of the restricted area is defined based on one or more of the size of the articles in the work area and the width of the passageway in the work area.
16. The aforementioned processor, The worker obtains a worker route for the worker to proceed to the work site, Based on the worker route, identify the worker access zone. The server according to claim 13, further configured to perform the following:
17. The worker access zone is located near the worker path, on the first side of the work area, The stopping position is located on the second side of the work area, distal to the worker's path. The server according to claim 16.
18. The aforementioned processor, In response to detecting the worker's departure from the worker's designated path, To acquire a new worker route, Based on the aforementioned new worker routes, identify new worker access zones, Based on the new worker access zone, a new stopping posture for the mobile robot is determined. The server according to claim 16, further configured to perform the following:
19. The aforementioned processor, In response to the detection of an obstacle at the stopping position by the mobile robot, a second stopping position including a second stopping position outside the restricted area is determined. The server according to claim 13, further configured to perform the following:
20. The server according to claim 13, wherein the stopping posture further includes a stopping orientation for the mobile robot, the stopping orientation being selected to orient the mobile robot toward the worker access zone.
21. The aforementioned processor, Identify one or more housings of the mobile robot that are available for the aforementioned work, The mobile robot is oriented such that one or more of the housings are accessible by the worker from the worker access zone. The server according to claim 20, further configured to perform the following:
22. The aforementioned processor, The worker obtains a worker route for the worker to proceed to the work site, Determining a robot path to the aforementioned stopping position, wherein the robot path is defined in such a way as to avoid interference with the operator path. The server according to claim 13, further configured to perform the following:
23. It is a mobile robot, A chassis having a running assembly, Obtaining a workspace, Identifying a restricted area around the work area, wherein the restricted area represents an area where the mobile robot is restricted from stopping. Identifying worker access zones for the restricted area for the worker to access the work area, Determining the stopping posture of the mobile robot, wherein the stopping posture includes a stopping position outside the restricted area, selected to avoid obstructing the worker access zone. A processor configured to perform the following actions A mobile robot equipped with [specific features / equipment].
24. The aforementioned processor, The worker obtains a worker route for the worker to proceed to the work site, Based on the worker route, identify the worker access zone. The mobile robot according to claim 23, further configured to perform the following:
25. The worker access zone is located near the worker path, on the first side of the work area, The stopping position is located on the second side of the work area, distal to the worker's path. The mobile robot according to claim 23.
26. The aforementioned processor, In response to the detection of an obstacle at the stopping position by the mobile robot, a second stopping position including a second stopping position outside the restricted area is determined. The mobile robot according to claim 23, further configured to perform the following:
27. The aforementioned processor, Identify one or more housings of the mobile robot that are available for the aforementioned work, The mobile robot is oriented such that one or more of the housings are accessible by the worker from the worker access zone. The mobile robot according to claim 23, further configured to perform the following: