Robot staging area management
Patent Information
- Application Number
- JP2024185901
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-12
- Filing Date
- 2024-10-22
- Publication Date
- 2025-02-19
- Estimated Expiration
- 2043-09-12
AI Technical Summary
【0009】 対照的に、ロボティクスステージングシステムは、ロボットステージングエリア内のロボットフリートを管理し、効率的および効果的な充電、修理、メンテナンス、保管を確実にし、さらにはロボットステージングエリアのスペースおよびロボットステージングステーションを最も効率的に使用するように構成され得る。様々な実装形態において、ロボットが生産モードからステージングモードに移行するときに、たとえば、生産エリア内で生産ミッションを完了した後にロボットステージングエリアに入ることによって、ロボティクス管理システムは、ロボティクスステージングシステムへの制御のハンドオーバーを実行し得る。様々な実装形態において、このハンドオーバーは、入ってくるロボットの現在の状態を識別するための診断検査を含み得る。この診断検査から少しずつ集められた情報に基づいて、ロボティクス管理システムおよび/またはロボティクスステージングシステムは、将来のミッションに備えてロボットを準備するためにとるべきアクションを識別し得る。
Smart Images

Figure 2025023939000001_ABST
Abstract
Description
[Technical field]
[0001] This application relates to robotic staging area management. [Background technology]
[0002] Complex industrial facilities, such as petrochemical refineries, chemical plants, etc., can contain a myriad of components that require regular inspection and / or maintenance. These tasks have traditionally been performed by humans but are redundant, repetitive, error-prone, and even dangerous. For example, many process automation facilities include areas that pose increased risk to personnel and / or accidents, such as explosion-proof ("ex-proof") areas. Many of these inspection and maintenance tasks are increasingly being entrusted to robots, including ground robots and unmanned aerial vehicles (UAVs). However, this increased reliance on robots also introduces various challenges, such as how to keep a fleet of robots in good working order efficiently and effectively while minimizing interruptions to the robots' missions.
[0003] For example, it may be possible to keep all robots in a process automation facility fully charged by implementing a one-to-one correspondence of charging stations and robots, so that each robot can go to its associated charging station at any time to recharge its batteries. However, this may result in many charging stations remaining unused for significant periods of time, unnecessarily wasting resources and wasting space. Similarly, resources such as power may be consumed to maintain an entire fleet of robots at the highest level of capacity without considering the capacity level appropriate for the tasks to be completed by the robot fleet. Furthermore, it is conceivable that many production missions will have dedicated start or end points where robots begin or complete the production mission. Failure to efficiently organize the location of each robot in the fleet may result in excessive storage requirements and clogs in the robot paths. Furthermore, within a robot staging area (also referred to as a "robot yard"), a robot is likely to encounter many more robots than within the operating area of the process automation facility, creating additional challenges. [Prior art documents] [Non-patent literature]
[0004] [Non-Patent Document 1] ISA-95 Standard for "Enterprise-Control System Integration" (https: / / www.isa.org / standards-and-publications / isa-standards / isa-standards-committees / isa95) Summary of the Invention [Problem to be solved by the invention]
[0005] A fleet of robots needs to be organized so that capable robots are available when needed to complete operational missions while minimizing resources consumed and disruption to other robots. In addition, the management of the fleet of robots needs to be integrated with the management of the facility so that robot guidance is performed efficiently and limits the number of robots and / or stations within the facility. Furthermore, a management system is needed that determines what resources are needed to keep the facility running without simply applying most resources to all robots.
[0006] For example, instead of charging the battery when the charge level of the robot falls below a preset threshold, the technology described herein determines the battery level required to complete a task in an industrial facility based on expected demand and the expected availability of other robots, allowing the robot to be charged in a manner that promotes overall efficiency, such as when the robot needs to complete a task or when costs associated with charging are reduced. As another example, instead of repairing a mobile robot whenever it fails some static performance benchmark, the implementation described herein may apply an asset monitoring strategy that predicts failures or performance shortfalls based on expected tasks and the expected availability of other robots, and the robot may be sent to a repair / maintenance robot staging station when necessary. As yet another example, when a robot is moved to make way for other robots, the technology described herein moves a particular robot to a prioritized position for a production mission. [Means for solving the problem]
[0007] In various implementations, a "robot staging area" or "robot yard" may be declared or otherwise defined. A robot staging area is an area of an industrial facility where mobile robots are stored while not performing production missions. A robot staging area may include multiple different types of robot staging stations to provide different services to the mobile robots. These services may include, but are not limited to, charging, repair / maintenance, firmware and software updates, payload changes (e.g., "retooling"), storage, production mission start point stations, etc.
[0008] In various implementations, a robotics management system may include or be operatively coupled to a robotics staging system. The robotics management system may be configured to manage a fleet of mobile robots that perform various production missions within an industrial facility based on the needs of the facility, schedules, human demands, etc. These production missions may include, for example, inspecting and / or repairing sensors and / or actuators, clearing obstructions, inspecting other aspects of the industrial facility (e.g., monitoring for chimney flames), performing various maintenance or cleaning tasks, or any other task that may be performed by a mobile robot within a production area of the industrial facility.
[0009] In contrast, the robotics staging system may be configured to manage the robot fleet in the robot staging area, ensure efficient and effective charging, repair, maintenance, storage, and also make the most efficient use of the robot staging area space and robot staging stations. In various implementations, when a robot transitions from a production mode to a staging mode, for example, by entering the robot staging area after completing a production mission in the production area, the robotics management system may perform a handover of control to the robotics staging system. In various implementations, this handover may include a diagnostic check to identify the current state of the incoming robot. Based on information gleaned from this diagnostic check, the robotics management system and / or robotics staging system may identify actions to take to prepare the robot for future missions.
[0010] In some implementations, the robotics staging system may retrieve information about the robot itself from the robotics management system (e.g., battery life, location, various robot health characteristics) and (2) the missions to which the robot may be assigned. Based on this retrieved information, the robotics staging system may manage the robots in the robot staging area. The management of the robots in the robot staging area by the robotics staging system may include, for example, determining whether the robot needs to be charged and if so, whether the robot needs to be moved to a charging robot staging station; determining whether the robot needs to undergo maintenance (including predicting whether and / or when the robot will need maintenance in the future) and if so, whether the robot needs to be moved to a maintenance robot staging station; determining whether the robot needs to begin a production mission and if so, which robot staging station is a preferred starting location for the production mission; determining whether the robot is not needed for any missions or other activities for at least a certain period of time and if so, whether the robot should be moved to a storage robot staging station; and / or determining whether there are other robots blocking the way of the robot that needs to be moved to a location.
[0011] If the robotics staging system determines that one or more movements of the robots within the robot staging area are required, the robotics staging system may generate one or more of what will be referred to as "staging missions." The robotics staging system may then assign the staging missions to the associated robots so that the robots move to the appropriate positions at the appropriate times within the robot staging area.
[0012] In various implementations, the robotics staging system may maintain a real-time record of the current placement of each robot in the robot staging area. For example, the robotics staging system may receive real-time placement information for the robots in the robot staging area and, in some cases, for the robots in the production area of the industrial facility. Global Positioning System (GPS) positioning may be used if sufficient accuracy can be achieved. However, one advantage of having a defined robot staging area is that real-time placement information may be more easily determined with greater accuracy even in limited space using other positioning techniques, such as cameras or other sensors in the robot staging area. In various implementations, a grid or other coordinate system may be virtually mapped over the robot staging area. In some implementations, the robot staging area may be binarized or simulated in the robotics staging system, where real-time updates are generated regarding the robot positions. In various implementations, the robotics staging system may predict future placement of one or more robots. This may enable the robotics staging system to predict future competing mission paths and make adjustments to avoid collisions or other conflicts.
[0013] As an example, assume that the robotics staging system determines that a robot needs to be charged and therefore needs to move to a charging robot staging station. The robotics staging system may receive real-time updates of the placement of each robot in the robot staging area as well as updates regarding each charging station in the robot staging area that is compatible with each robot. The robotics staging system may also connect to a robotics management system to collect diagnostic data about the robot, such as battery data. The robotics staging system may then compare the battery level to a threshold, which in some cases may be set based on the needs of an upcoming mission assigned to the robot. In other implementations, this comparison may be performed by the robotics management system and communicated to the robotics staging system.
[0014] If the battery level is too low, the robotics staging system may generate a relocation staging mission by calculating a lowest-cost path between the location of the robot and the location of a suitable charging station (e.g., with a charger compatible with the robot). The cost may be based on factors such as distance traveled, energy used, obstacles to overcome, wear and tear on the robot, etc. Then, since the robotics staging system has the location of all other robots in the yard, the robotics staging system may be able to identify other robots that are or will be blocking the path of the original robot under consideration. The robotics staging system may then calculate the cost of moving the obstacle robot and the cost of asking the original robot to go around the obstacle robot. The robotics staging system may then assign the relocation staging mission to achieve the lowest total cost for the robot fleet or to optimize against another value.
[0015] The robotics staging system may make similar decisions about whether a robot should receive maintenance and if so, that the robot needs to be moved to a maintenance shop, whether a robot should begin a mission and if so, that the robot needs to be moved to a location, such as a start location for the mission, whether a robot is not needed for any mission or other activity for at least a certain period of time and if so, that the robot should be moved to a storage location, or whether there are other robots blocking the path of a robot that needs to be moved to a location.
[0016] In some implementations, each robot staging station in the robot staging area may include an output device, such as a display, for rendering a fiducial marker. A fiducial marker may be a reference point or identifier used by a mobile robot in the robot staging area to identify a particular robot staging station. Fiducial markers may take a variety of forms. Visual fiducial markers may take the form of, for example, a barcode or a quick review (QR) code. Invisible fiducial markers may include, for example, infrared markers, laser guidance mechanisms, and the like. In various implementations, the fiducial markers may be appropriately altered to indicate different configurations to the robot.
[0017] In various implementations, when a mobile robot is assigned a production mission (i.e., a mission to be performed within a facility as opposed to a staging mission to be performed within a robot staging area), the production mission may include a starting point or location. In some cases, this starting point may be located at a particular mission start robot staging station within the robot staging area. A particular robot, for example robot A, may have a fiducial marker assigned to its mission start point. The robotics staging system may then assign a robot A mission start fiducial to be rendered at a mission start station located within the robot staging area. Robot A may then be assigned a staging mission that directs robot A to scan fiducial markers rendered at multiple robot staging stations within the robot staging area until it identifies a robot A mission start fiducial marker. Robot A may then self-dock or otherwise self-position at the mission start robot staging station where the robot A mission start fiducial marker was rendered. In a similar manner, any robot can be commanded to identify and self-position at any of a number of robot staging stations within a robot staging area, as determined by the robotics staging system.
[0018] In some implementations, a staging mission may be assigned to a robot as a series of fiducial markers, or may cause a single fiducial marker of a robot to be rendered at multiple different robot staging stations, e.g., in an ordered or unordered sequence. The robotics staging system may cause the fiducial marker to be rendered at each applicable robot staging station as needed. For example, a fiducial marker of a robot may be rendered first at an appropriate charging station, and then at an appropriate docking station, or maintenance station, or storage station, as appropriate.
[0019] In some implementations, the robotics staging system may optimize the use of robot staging stations in a robot staging area for a given purpose. For example, the robotics staging system may optimize the use of robot staging stations for charging to ensure that a maximum number of mobile robots are fully charged or a minimum number of robots have less than 50% charge remaining. In this example, the robotics staging system may assign fiducial markers to one or more charging stations and assign staging missions to one or more mobile robots to ensure that the mobile robots reach an optimized charge level. The robotics staging system may additionally or alternatively optimize the number of available robots based on the amount of charge required for a mission at a given time or to meet a known schedule of a production mission, or when battery health concerns indicate that a robot should wait to be charged at a later time.
[0020] The techniques described herein provide greater freedom to optimize the robot fleet while waiting for those robots to be deployed from the robot staging area. As the number of robot missions increases, efficiencies can be achieved in how the robot fleet is managed when not all robots are actively performing production missions within the industrial facility. This allows the robotics staging system to reduce the total number of robots required to service the industrial facility, since the robots are more frequently charged, well-maintained, and ready for deployment. Similarly, the robotics staging system may limit the number of robot staging stations required to service the robot fleet, since each station is used more flexibly and is less likely to be idle / empty. Additionally, the use of fiducial markers may limit the complexity of the staging mission data provided to the robots, for example, allowing each robot to store a more limited set of fiducial markers.
[0021] In some implementations, when production missions are created by or through the robotics management system, the robotics staging system may determine which mobile robots in the robot staging area should be assigned one or more of the production missions. In various implementations, the robotics staging system may make this determination based on information related to the robots in the robot staging area. For example, if a given robot has a low battery level or if the placement of a given robot makes it difficult for the given robot to perform a particular production mission, the robotics staging system may use that information to identify / select a different robot that is best suited for the production mission. The robotics staging system may also use this type of information to provide support to the robotics management system in determining which robots should be assigned which production missions.
[0022] The implementations described herein produce various additional technical merits and advantages. Humans do not need to manage or organize (e.g., store) idle robots that are not currently participating in a mission. By automatically adjusting the storage and placement of robots in real time, more robots can be stored or accessed in less space. Furthermore, by implementing selected aspects of the present disclosure to perform targeted robot maintenance, storage, and charging, the robots are more efficiently and better prepared for when they are called upon to perform a production mission. For example, when a robot is needed to perform a production mission, it will have already been moved to an accessible (e.g., unobstructed) placement and its battery will already be sufficiently charged to perform the production mission.
[0023] In various implementations, the method may be performed using one or more processors and may include determining a state of the mobile robot transitioning from a production mode to a staging mode; determining states of a plurality of robot staging stations, where the plurality of robot staging stations includes at least one charging station and one maintenance station; selecting a robot staging station from the plurality of robot staging stations based at least in part on the determined states of the mobile robot and the plurality of robot staging stations; and assigning a staging mission to the mobile robot, where the staging mission causes the mobile robot to travel to the selected robot staging station.
[0024] In various implementations, the method may include having an output device at a selected robot staging station render a fiducial output, and the staging mission has the mobile robot scan a plurality of robot staging stations to detect the rendered fiducial output and travel to the robot staging station where the rendered fiducial output was detected. In various implementations, the output device may be a display and the rendered fiducial output may be a visual fiducial marker.
[0025] In various implementations, the mobile robot may transition from the production mode to the staging mode when moving from a production area of the industrial facility to a robot staging area of the industrial facility that includes at least some of the multiple robot staging stations. In various implementations, the method further includes determining a state of one or more production missions executable by or assigned to the mobile robot or assignable to one or more other mobile robots in the robot staging area that includes the multiple robot staging stations, where the selecting is further based on the state of the one or more production missions.
[0026] In various implementations, one or more of the production missions may include one or more missions to inspect or service sensors or actuators of process automation components outside the robot staging area. In various implementations, the selected robot staging station is selected based on being an available starting location for a first one of the production missions that is executable by or assigned to the mobile robot. In various implementations, the selecting includes comparing a time interval to a start time of one of the production missions to a threshold value.
[0027] In various implementations, the mobile robot may be a first mobile robot, and the selecting may include selecting a robot staging station further based on a determination that a first production mission of the plurality of production missions is conditionally performed by the first mobile robot in response to a second production mission of the plurality of production missions being performed or to be performed by a second mobile robot. In various implementations, the second production mission may include an inspection of a component of a process automation facility, and the first production mission may include one or more tasks that are conditionally performed based on a result of the inspection of the component.
[0028] In various implementations, the state of the robot may include the robot's available battery power and the configuration of the robot. In various implementations, at least one maintenance station in a robot staging area that includes at least some of the plurality of robot staging stations may include a payload change station configured to change the configuration of the mobile robot.
[0029] In various implementations, the selected robot staging station may be a storage station, and the storage station is selected based on the storage station being outside of a current or future travel trajectory of another mobile robot within a robot staging area that includes at least some of the multiple robot staging stations. In various implementations, the method may include performing a cost / benefit analysis to determine whether to relocate the mobile robot to the storage station or to have the other robot alter its current or future trajectory to avoid the mobile robot.
[0030] In various implementations, the state of the mobile robot may include a first vector embedding and the state of the multiple robot staging stations may include a second vector embedding. In various implementations, the method may include processing the first vector embedding and the second vector embedding based on a reinforcement learning strategy to generate a probability distribution over the staged mission action space, where the selecting is based on the probability distribution.
[0031] In another aspect, a method implemented using one or more processors includes determining states of a plurality of robot staging stations in a robot staging area of an industrial facility, the plurality of robot staging stations including at least one robotic production mission start station and one robot storage station; determining states of one or more production missions executable by or assignable to one or more mobile robots in the staging area; analyzing the determined states of the plurality of robot staging stations and the one or more production missions; and based on the analysis, assigning a staging mission to a mobile robot in the robot staging area that navigates the mobile robot to a robot storage station.
[0032] Additionally, some implementations include one or more processors (e.g., a central processing unit (CPU), a graphics processing unit (GPU), and / or a tensor processing unit (TPU)) of one or more computing devices, the one or more processors operable to execute instructions stored in associated memory, the instructions configured to cause any of the aforementioned methods to be performed. Some implementations also include one or more non-transitory computer-readable storage media that store computer instructions executable by the one or more processors to perform any of the aforementioned methods. Still other implementations include agricultural vehicles, such as robots, with an edge processor configured to perform selected aspects of the disclosure. [Brief description of the drawings]
[0033] [Figure 1] FIG. 1 illustrates an exemplary mobile robot in an industrial facility setting 100. [Diagram 2] FIG. 1 illustrates tasks and components of an operations management system for an industrial facility. [Diagram 3] FIG. 1 illustrates a generalized model of robotics activities within an operations management system. [Figure 4] FIG. 1 illustrates components of a robotics service platform within an operations management system, according to one or more embodiments. [Diagram 5] FIG. 1 illustrates a detailed architecture of a multi-vendor robotics service platform in accordance with one or more embodiments. [Figure 6] FIG. 2 further illustrates a detailed architecture of a multi-vendor robotics service platform and associated components in accordance with one or more embodiments. [Figure 7] FIG. 1 illustrates a subsystem of an operations management system including a multi-vendor robotics service platform, according to one or more embodiments. [Figure 8] FIG. 1 illustrates an example of how a robotics management system and a robotics staging system may work together to organize robots in both a production area and a robot staging area. [Figure 9] FIG. 2 is a schematic diagram illustrating an example of how various mobile robots may operate within a robot staging area, according to various implementations described herein. [Figure 10] FIG. 2 is a schematic diagram illustrating an example of how various mobile robots may operate within a robot staging area, according to various implementations described herein. [Figure 11] FIG. 2 is a schematic diagram illustrating an example of how various mobile robots may operate within a robot staging area, according to various implementations described herein. [Figure 12] FIG. 2 is a schematic diagram illustrating an example of how various mobile robots may operate within a robot staging area, according to various implementations described herein. [Figure 13] FIG. 2 is a schematic diagram illustrating an example of how various mobile robots may operate within a robot staging area, according to various implementations described herein. [Figure 14] FIG. 2 is a schematic diagram illustrating an example of how various mobile robots may operate within a robot staging area, according to various implementations described herein. [Figure 15] FIG. 2 is a schematic diagram illustrating an example of how various mobile robots may operate within a robot staging area, according to various implementations described herein. [Figure 16] FIG. 13 illustrates an example of how the characteristics of an incoming robot may be analyzed along with the characteristics of a robot staging station and other characteristics to generate a staging mission. [Figure 17]1 illustrates an exemplary method for carrying out selected aspects of the present disclosure. [Figure 18] FIG. 1 illustrates generally an example computer architecture in which selected aspects of the present disclosure may be implemented. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0034] Figure 1 illustrates such an example mobile robot 110 within an industrial facility 120 of an industrial facility setting 100. The operation of the industrial facility 120 may be controlled by an operations management system operated by one or more human operators. Figure 2 illustrates the tasks and components of an operations management system 200 for the industrial facility 120.
[0035] The operation of the industrial facility 120 may include tasks and components related to operating the facility, monitoring safety or other conditions within the facility, and maintaining the facility. The overall operation may be managed by an enterprise resource management system 202, which may control tasks such as, for example, production planning 204, production accounting 206, maintenance accounting 220, and planning 222 for both turnaround and long-term maintenance.
[0036] Tasks for operation and maintenance of the industrial facility 120 may be performed in an operating station or central control room (CCR) 234, or on-site 236, such as in a production area of the industrial facility 120 itself.
[0037] Operations related tasks performed within the operations station / CCR 234 may include, for example, production scheduling 208, data reconciliation and production results reporting 210, production operations management and reporting 212, data historian 214, panel operations 216, and process control 218. Maintenance related tasks performed within the operations station / CCR 234 may include, for example, maintenance and reliability management and results reporting 224, annual maintenance planning and scheduling 226, maintenance job management and reporting 228, and third party contractor management 230.
[0038] Driving-related tasks performed in the field 236 may include, for example, human-performed driving tasks 238 and robot-performed driving tasks 240. Maintenance-related tasks performed in the field 236 may include, for example, human-performed maintenance tasks 242 and robot-performed maintenance tasks 244. The robot-performed driving tasks 240 and robot-performed maintenance tasks 244, as well as other robot-performed tasks, may be managed by a robotics management system 232. Example embodiments of one or more such robotics management systems are described in further detail below.
[0039] Robots operating within an operations management system may require additional information and metadata about each of the robots and robotic activities within the system, including robotic management, tracking, and analysis of the robots and their activities. For example, a robot may require information about other robots and their activities when multiple robots work together or when the activities of multiple robots may conflict. Figure 3 shows a generalized model 300 of robotic activities within an operations management system based on the ISA-95 standard for "Enterprise-Control System Integration" (https: / / www.isa.org / standards-and-publications / isa-standards / isa-standards-committees / isa95).
[0040] Management of the robot 110 functioning within the industrial facility 120, including the robot performing operation tasks 240 and the robot performing maintenance tasks 244, may involve activities performed by the robot 110, data related to the robot 110 and the tasks performed, operations performed by the robotics management system 232, and communications between the robotics management system 232 and the robot 110. Such management may be structured according to a model of robot activities 300.
[0041] The data relating to the robots 110 may include, for example, a robot definition 305 for each robot 110, a robot capability 310 for each robot 110, a robot schedule 315 for each robot 110, and robot performance metrics 320 for each robot 110.
[0042] Operations performed by the robotics management system 232 may include, for example, robot resource management 330, robot definition management 350, detailed robot schedule 325, robot dispatching 345, robot execution management 360, robot tracking 335, robot data collection 355, and robot performance analysis 340. In a system utilizing robots provided by multiple robot vendors, these operations may reflect differences between robots provided by different vendors. For example, each robot vendor may make data related to each robot available in a different format specific to that robot or vendor. To address this, the robotics management system 232 may standardize the data by retrieving and interpreting a subset of data that may be relevant to a human operator. For example, two robots from different vendors may each have an error in a mission related to an obstruction, but the robots may format and present the error differently depending on the platform. The robot management system 232 may correctly interpret the different information presented by robots from multiple vendors via adapters, such as the robot-specific adapter 644 described below with respect to FIG. 6.
[0043] In robot resource management 330, the robotics management system 232 may update or reference the robot capability information 310 to maintain information regarding available robot resources and make those resources available for robot-assigned tasks. For example, during the course of performing a mission or task, the capabilities of the robot may change temporarily, such as the robot's battery depleting, one or more tools or sensors attached to the robot being damaged or malfunctioning, one or more tools or sensors attached to the robot being removed or replaced, or other changes to the robot's capabilities. In addition, the robot may be unable to move from its current location due to obstacles, environmental conditions (e.g., heavy rain for a robot not protected from wet conditions), damage to the robot's tracks, legs, or other propulsion means, loss of connectivity with the robotics management system 232 or other plant systems, etc. In addition, a robot operating in extreme heat, such as in a desert environment, may cause the robot's components to overheat. Similarly, a robot operating in extreme cold may affect the operation of joints or other moving parts. Such extreme temperature differences may also reduce the life of the robot's battery. The robotics management system 232 may monitor the status of the robots and maintain robot capability information 310 to reflect such changes and make decisions on how to schedule or reschedule the fleet of robots to best perform. In some embodiments, an operator or technician may be responsible for updating the robot capability information 310 for the robotics management system 232.
[0044] Each robot may also (or alternatively) report capability information, including payload status, to the robotics management system 232 prior to mission execution. If the robotics management system 232 determines that a robot's payload capability is insufficient for the mission, the robotics management system 232 may select a different robot for the mission and update the specific robot capability. The robotics management system 232 may check future scheduled missions against the updated robot capability. If no other capable robot is available at the time the mission is to be executed, the robot payload may be modified, replaced, and / or updated to enable the mission to be executed. Such modification, replacement, or update may affect the availability of the robot at the time the mission was originally intended or scheduled to be executed. The mission may dictate the period during which the mission may be executed, or other recurring circumstances. In such cases, the mission may be rescheduled to execute at a later time under conditions that are suitable for the mission. To avoid rescheduling, the robotics management system 232 may verify the robot status prior to the start of the mission (the time required depends on the facility and personnel). This validation may require a pre-check, which may also include checking the robot's cameras, microphones, sensors, payloads, and / or other capabilities. This may be done for all robots, including those with mutable and immutable sensors.
[0045] During robot definition management 350, the robotics management system 232 may hold robot definition information and transmit robot-specific production rules 365 to the robot 110. For example, in addition to temporary changes in robot capabilities as described above, a particular robot may undergo permanent changes in capabilities and availability, such as removing or attaching sensors or tools, or relocating the robot to another area of a facility such that the robot is available to perform missions or tasks in a different limited portion of the facility. Modifications to a robot may also change other capabilities of the robot, for example, a change in the total weight of the robot may cause a change in battery life, movement speed, or maximum distance the robot will travel. Such changes may be reflected in updated robot definition information. During detailed robot scheduling 325, the robotics management system 232 may determine and update information regarding the entire robot schedule. During robot dispatching 345, the robotics management system 232 may release selected robots 110 to perform robot-assigned tasks. During robot execution management 360, the robotics management system 232 may transmit robot commands 370 to and receive responses 375 from the robot 110. During robot tracking 335, the robotics management system 232 may maintain information regarding robot placement, status, and performance during robot assignment activities or idle periods. During robot data collection 355, the robot management system 232 may receive robot-specific data 380 from the robot 110.
[0046] During robot performance analysis 340, the robotics management system 232 may perform an analysis of the robot's performance as the robot-assigned tasks are completed. This analysis may include updates to information for the robot definition 305 and robot capabilities 310 to improve the performance of the robot-assigned tasks. For example, the time it takes the robot to complete a mission or task, or a portion of a mission or task, such as traveling from one location to another, navigating stairs or a ramp, etc., may be measured. In addition, the accuracy of measurements and data (e.g., photographs, or other data) collected by the robot may be monitored to determine whether the robot generally returns accurate measurements and data. Such information may be taken into account when planning future missions or tasks for the robot or may be used to determine that the robot is in need of maintenance. In addition, the tasks assigned to the robot may be modified after scheduling, during execution, or as a result of execution. Conditions around the mission may change, necessitating such modifications. For example, a change in temperature or air composition may be detected as a result of opening a door, requiring different sensors to provide accurate and actionable feedback about the environment around the mission. As another example, the measured temperature may be lower than expected, requiring a higher torque to open a manual valve than can be applied by the original robot assigned to the task.
[0047] As described above, the operations management system may interact with a robotics management system, such as a robotics service platform (RSP) to manage the robot 110 and robot-assigned tasks. Figure 4 illustrates components of a robotics service platform (RSP) 400 within or otherwise in communication with the operations management system, according to one or more embodiments.
[0048] The activities of the robot 110 in the operations management system 200 may relate to various industrial operations 410 including, for example, pipeline inspection, pressure vessel inspection, supervision, first responder, emissions detection, tank inspection, and subsea platform monitoring. The identified operations 410 are merely exemplary, and the principles of the present disclosure may relate to any facility suitable for specialized services performed by robot fleets in dynamic environments. Such services may be repetitive and / or dangerous for human operators who have previously been placed in such roles that rely on the human's ability to recognize and adjust to dynamic environments. Such dynamic environments may require the robotics service platform to recognize and adjust the activities of individual robots or robot fleets to changing conditions, or to operate while managing fleets of robots with different technical and operating capabilities in environments that may not have been designed for robotic operations. For example, applicable facilities may include chemical and pharmaceutical manufacturing, mining, food and beverage production, water and wastewater treatment, etc.
[0049] To support these operations, RSP 400 may receive commands from an external control system 420, such as the operations management system 200 or an industrial automation (IA) system, and may include, for example, a module for interfacing with the industrial automation system 430, a module for data aggregation and analysis 440, a module for security and safety 460, a module for coordinating operations, collecting data, and controlling robots 470, and a module for robot fleet management 480. Access to these modules may be provided to a human operator using an integrated human-machine interface HMI 450. The industrial automation system interface 430 may provide services for automation of industrial processes, possibly in conjunction with an external industrial automation (IA) system.
[0050] The data aggregation and analysis module 440 may receive data from robot assignment tasks and support data aggregation and analysis. The security and safety module 460 may ensure the safety and security of facility operations and individual robots 110. The coordination-collection-control module 470 may provide overall management of robot assignment activities, coordination or robot assignment activities, and collection of data returned from the robot assignment activities. The robot fleet management module 480 may provide management of fleets of robots 110, including, for example, maintaining information regarding the current status, placement, availability, and performance of individual robots 110, coordinating related or potentially conflicting activities of multiple robots 110, and coordinating required maintenance and / or removal of individual robots 110.
[0051] Managing robotic activities in a large or complex industrial facility may require the coordination of robots provided by multiple vendors, each with different, and potentially incompatible, command and control or data management and communication protocols. Thus, integrating a robot fleet within an industrial facility may increase in complexity as the number of robots and robot assignment tasks grow. Figure 5 shows a detailed architecture 500 of a multi-vendor robotics service platform 510 to address these issues, according to one or more embodiments.
[0052] The multi-vendor robotics service platform 510 may interface with external control systems, such as the operations management (OM) system 200 or the industrial automation (IA) system 505, using an IA system integration application programming interface (API) 515. The multi-vendor robotics service platform 510 may provide humans managing, controlling, or otherwise overseeing the robot fleet with access to end-user applications 530, such as, for example, operations management, which pertains to the overall operation of a facility, maintenance management, which pertains to activities for the maintenance of the facility, site inspection, which pertains to the direct inspection of a portion of a physical facility, and workflow management, which pertains to coordinating the activities of multiple humans and robots in a facility, using an engineering and operations human machine interface (HMI) 525. Instructions for activities from the OM 200 may be work instructions (WIs) that may be directed for assignment to humans. Such instructions may be in a human-readable format. The multi-vendor robotics service platform 510 may translate the WIs into robot commands.
[0053] If there are multiple types of robots from multiple vendors, the translation may be performed differently for each type of robot, as described elsewhere in this disclosure. If the activity is to be performed by a human, the WI may be assigned to an operator in the context of a rotation plan. If the activity is to be assigned to a robot, the robotics service platform 510 may autonomously translate and assign the WI to one or more robots, as described elsewhere in this disclosure. In other embodiments, if an alarm generates a robot mission, such as from an external application, steps may be taken to ensure that a capable robot is available. For example, if the alarm is a critical alarm, the robotics service platform 510 may decide to abort the current mission and handle a critical alarm mission if no robot or human is available. Alternatively, an operator may manually take over the robot and attend to the alarm. An external system may send a request for task execution, and the robotics service platform 510 may reply with robot availability or mission start information. Human and robotic tasks may each include capability requirements for the human or robot assigned to the task, such as a requirement to be able to work at a specified height above ground level or the ability to use a particular tool. In addition, tasks may have requirements related to the operational state of the facility, such as time-of-day restrictions, a requirement that the plant not be operating while the task is being performed, or changes to government or other regulations governing the operation of the facility. The robotics service platform 510 may separate requests received from the OM system 200 or IA system 505 into what may be robot-compatible tasks that may be sent to an associated robot to perform, and what may be robot-incompatible tasks that may be returned to the OM system 200 or IA system 505 to be assigned to a human.
[0054] The robot fleet management module 545 may interact with various robot platforms 560 and sensors 550 (e.g., environmental sensors) that support interactive interaction with the robot 110. The robot platform 560 may include an open source robot operating system 555, such as a robot operating system (ROS), and even a platform for interacting with vendor-specific (non-open source) robots 565. The robot fleet management module 545 may interact directly with the ROS robots 555 and non-ROS robots 565 rather than through the robot platform 560. The interactive interaction between the robot fleet management module 545 and the robot 110 may include, for example, robot commands for mission and task completion based on information from the control and coordination function 540. The interactive interaction between the robot fleet management module 545 and the robot 110 may further include, for example, collection of data and other information from the robot 110 and sensors 550, which may be provided to the data collection and aggregation module 535 for further processing. Such processing may include storing the collected and processed data in a data store 520 and / or providing the collected and processed data to an end user application 530. The data stored in the data store 520 may be further provided to the (IA) system 505 using the IA system integration API 515. The coordination function 540 may translate the end user application functions into robotic system functions. For example, if an end user requests an inspection of a gauge, the coordination function 540 may translate the request into a robotic mission to take a picture of the gauge. For example, the coordination function 540 may determine a robotic mission that includes detailed steps such as navigating from the robot's current location to the location of the gauge, taking an image of the gauge, and returning either an image of the gauge or an analysis of the gauge's reading based on the image. Other requested tasks are translated into other appropriate operations.To support robots from multiple vendors, gage missions can be preconfigured by the robot fleet management module 545 to support multiple robots. For example, detailed operations corresponding to robots from multiple vendors can be pre-determined and stored. This can allow robot missions based on recurring task requests to be quickly dispatched or scheduled on a recurring basis. The coordination function 540 can further coordinate robot tasks with operations being performed by other human and robot operators, such as steps performed by an operator in a control room, automated steps on an IA platform, and field operations. Each of these components operates in strict synchronization to ensure proper operation of the facility. In traditional facilities, much of this synchronization may be done verbally, and in facilities that apply robot fleets, the coordination function 540 can integrate robots and automation systems into this synchronization. In some situations, it may not be possible to fully control the robots at all times, and the robots may be allowed to operate semi-automatically and complete the task using the robot's specific capabilities. When multiple robots are assigned missions, the coordination function 540 can assign appropriate time delays to some missions to avoid collisions between robots operating in the same area.
[0055] In facilities with robots from multiple vendors, robot fleet management, as may be provided by robot fleet management module 545, robot activity control, as may be provided by control and coordination functionality 540, and data analytics, as may be provided by data collection and aggregation module 535, may take advantage of additional vendor-specific and robot type-specific capabilities in the multi-vendor robotics service platform (RSP). Figure 6 further illustrates a detailed architecture 600 of a multi-vendor robotics service platform (RSP) in accordance with one or more embodiments.
[0056] The robot service platform 672 may include, for example, an external system interface 624, a navigation control and data service 626, a fleet manager 628, and a robot interface 630.
[0057] The external system interface 624 may include, for example, a process control server 632, which may receive information of processes and tasks to be completed from the process control client 604 under the direction of a human operations manager or operator 602. For example, the received missions and tasks may include activities to be performed by a human or robot related to the overall operation of the facility, such as facility inspection, data collection, facility control (e.g., changing control settings), etc. The external system interface 624 may further include, for example, a first web server 634, which may provide data reports to the web client 606 for display to the human operator or analyst 608. The external system interface 624 may further include, for example, a second web server 636, which may provide a data feed to the historian data store 612.
[0058] The historian data store 612 may provide data to the report generator 610, which may provide additional reports to the human operator or analyst 608. The historian data store 612 may further provide data to an archive module 618 for storage in a database 620 in the robotic service platform 672. The database 620 may provide data to a machine learning (ML) and artificial intelligence (AI) module 614 for further analysis. Analysis results from the ML and AI module 614 may be stored in the database 620. The database 620 may further provide data to the historian data store 612 for access by the report generator 610. The report generator 610, the historian data store 612, and the ML and AI module 614 may be cloud-based or otherwise operate separately from the robotic service platform 672.
[0059] Navigation control and data services 626 may include robot-specific adapters 644 that may provide, for example, platform-independent command, control, and data services for robots 110A, 110B, and 110C. Robot-specific adapters 644 may include adapters for communicating data collected by robot 110, such as, for example, photos, videos, environmental data, sensor readings, etc., adapters for communicating data about robot 110, such as, for example, robot movement and positioning, robot health and status, robot capabilities, etc., and adapters for communicating data about robot 110, such as, for example, multi-step mission commands, individual driving commands (e.g., navigate to a destination, record video, record audio, take environmental measurements, take temperature measurements of a substance, take temperature measurements of air, take humidity measurements, determine instrument readings, measure the presence or concentration of a gas or chemical, emit light of a particular wavelength, intensity, and / or emission pattern, obtain a particular It may include adapters for communicating command and control information to and from the robot 110, such as emitting a sound of pitch, intensity, and / or radiation pattern, emitting a radio frequency homing beacon, transmitting stored data over a radio frequency or wireless data network, connecting to a power source, connecting to a radio frequency or wireless data network, connecting to a data network port, modifying a valve or other control setting, such as by adjusting the position of a valve, vane, locally controlled pump, or drive, taking a manual product sample, pressing a button, changing a switch position, moving an object, stopping all operations, returning to home, activating a particular sensor, etc. The robot-specific adapter 644 may receive information from the robot 110, including, for example, information regarding task or mission status and completion, non-data task completion information (e.g., mission completed or abandoned, etc.).
[0060] Command / control and data information may generally be maintained within RSP672 in one or more common internal formats. This may allow the internal operation of RSP672, and interfaces and information shared externally to RSP672, such as with other components of the operations management system (OM), to be independent of which robots or robot types are active within the facility. Thus, the complexity of utilizing a diverse fleet of robots within the facility may be reduced. To this end, each adapter may take information from RSP672 in one or more common internal formats, translate that information into specific information appropriate for the particular robot with which it is communicating, and then transmit the translated information to the particular robot. For example, a robot task or mission definition may be translated from a common internal format into a format that conforms to the expected command protocol for an assigned robot. Conversely, data transmitted from the robot may be received by the adapter in a robot-specific format and translated by the adapter into a common internal format used by RSP672 and other components of the operations management system (OM), such as the operations management system (OM) 700 illustrated in FIG. 7. The common internal format for the robot task or mission definition may include a list of measurements or data to be captured within the facility. The adapter 644 may convert this list into robot-specific instructions, which may include, for example, instructions to physically drive to a data capture location and which equipment to use. Vendor-specific robot data may also be parsed by the adapter 644 to find generalized or useful information to display to an operator. For example, data such as battery life may be displayed in different ways (percentage / voltage remaining / time remaining) that may be parsed and standardized.
[0061] Some such adapters 644 are narrowly adapted to communicate with a particular robot depending on the robot type or vendor, while other adapters may be compatible with multiple robot types. The adapters 644 may be considered fleet-specific adapters that are compatible with multiple robots of the same type, allowing them to operate simultaneously or in concert. The adapters 644 may be manually coded based on common internal data formats and information regarding data and command protocols for a particular vendor and robot. Alternatively, such adapters may be automatically generated based on an algorithmic or artificial intelligence process. The adapters may be configured to provide a comparable level of basic control across multiple robot types. This may include, for example, the ability to navigate to specific points, capture data, and report robot metrics. The adapters may further include added functionality depending on the robot vendor-specific software limitations for each robot type. For example, if the robot is not capable of logging metric data, the adapter may log the robot's metric data and maintain compatibility with the standard adapter level of other components of the platform.
[0062] Common features from different robot types may be abstracted into a common internal data format, such as map data, simulation data on a 3D model, etc. The OM system 700 or IA system 505 may assign a work instruction (WI) checklist, which may be a human-readable format, such as a spreadsheet, consisting of instructions for recording information corresponding to various identifiers. The RSP 672 may convert the WI checklist into detailed information, such as absolute or relative position and orientation information, such as GPS coordinates, site-specific visual, electronic, or magnetic identifiers, for execution by the robot. Unstructured data types recorded by the robot, e.g., media formats such as images, audio, or video, may be further processed by the RSP 672 using data processing applications into structured data types, such as text or numeric data, compatible for storage and processing in the OM system 700 or IA system 505.
[0063] The navigation control and data services 626 may further include a fleet management module 638 that receives information for missions and tasks to be completed from the process control server 632, for example. The fleet management module 638 may determine which of the robots 110A, 110B, and 110C should perform each task or mission and provide detailed information about the robot tasks and missions to the robot-specific adapter 644. The fleet management module 638 may also provide information about the progress or completion of the missions and tasks to the process control server 632. The navigation control and data services 626 may further include a data management module 640 that may receive data from the robots 110A, 110B, and 110C by the robot-specific adapter 644, for example. The data management module 640 may further include a machine learning (ML) and artificial intelligence (AI) module 642 that may further analyze the data received from the robots 110A, 110B, and 110C.
[0064] External systems interface 624 and navigation control and data services 626 may provide database 620 with information regarding tasks dispatched to and performed by robots 110A, 110B, and 110C, task results returned by robots 110A, 110B, and 110C, and other information related to the management of robots 110A, 110B, and 110C and the missions performed by robots 110A, 110B, and 110C. For example, records of robot tasks and task results may be stored in log 622 in database 620.
[0065] The fleet manager 628 may manage the fleet of robots 110A, 110B, and 110C in terms of, among other things, scheduling and dispatching missions and tasks to the robots 110A, 110B, and 110C, monitoring the health and maintenance status of the robots 110A, 110B, and 110C and their components, and scheduling maintenance of the robots 110A, 110B, and 110C. The fleet manager 628 may include a vendor-specific fleet management module 646 that may provide management of the robots 110A, 110B, and 110C specific to one or more of the vendors of the robots 110A, 110B, and 110C. A separate vendor-specific fleet management module 646 may be provided for each vendor-specific interface, such as the vendor-specific interfaces 648 and 650. The fleet manager 628 may assign missions and tasks to the robots 110 based on mission requirements and robot capabilities.
[0066] For example, if it is determined that a mission can only be supported by a robot type of type A, the fleet manager 628 may assign the mission to only one robot among the robots 110A, 110B, and 110C of type A. For example, there may be a mission that requires traversing an obstacle, such as a staircase, that can only be traversed by a robot of a particular type. For another mission that can be assigned to a robot of type A or B, the fleet manager 628 may assign the mission to one robot among the robots 110B and 110C of type A or B based on the availability of each robot 110A and 110C. The availability of each robot 110A, 110B, and 110C may be determined by the fleet manager 628 using metrics such as, for example, communication status, battery life, etc. In some embodiments, the operation management system 200 may specify a mission or task to be performed by a particular robot or one robot among a particular group of robots. If a group of robots is specified, the fleet manager 628 may assign the mission to one robot selected from the specified group of robots. Additionally, some attributes of a robot type or robots from a particular vendor have known reliability, and the fleet manager 628 may apply more or less direct monitoring of the robot based on this known reliability.
[0067] The robot interface 630 may include, for example, a first vendor-specific robot interface 648, a second vendor-specific robot interface 650, and a fleet server 660. Each of the first vendor-specific robot interface 648 and the second vendor-specific robot interface 650 may provide an interface to the robot that is specific to the vendor of that robot. For example, the first vendor-specific robot interface 648 may interact with the robot 110A using a robot operating system (ROS) interface, while the second vendor-specific robot interface 650 may interact with the robot 110B using a proprietary remote procedure call (RPC) interface. The number and type of vendor-specific robot interfaces provided by the robot interface 630 are not limited and may depend on the number and type of robots in the fleet of robots managed by the robot service platform 672. To access these robots, traditionally, vendor-specific interfaces are required. That is, robots from each vendor typically have proprietary software and are gated using each vendor's application programming interface (API). For example, if a vendor uses gRPC calls to access their own API to control a robot from that vendor, there may be no other alternative means to communicate with or control the robot.
[0068] The fleet server 660 may interact with the coordinated fleet of robots, such as the robot 110C, via a fleet client 664. The robot interface 630 may further interact with a real-time communication module 662 to provide additional communication streams to the robots 110A, 110B, and 110C, the human operations manager or operator 602, such as through, for example, the process control server 632 or the process control client 604, or other components of the RSP 672. For real-time communication, the robot interface 630 may support multiple types of protocols for streaming data. For example, WebRTC is a streaming protocol for high quality video / sound streaming that may be utilized for such communication. Such streaming may include, for example, receiving data to be displayed to an operator, as well as performing real-time processing of the data using, for example, artificial intelligence (AI) or machine learning (ML) to support functions such as anomaly detection. Real-time communication may be important for fleet management to perform different tasks. Some robots may have the ability to operate for short periods of time even if communication is lost for a short period of time, while others may not. The fleet server 660 may need to communicate frequently with each robot based on the robot's capabilities and keep track of the robots as they perform their missions.
[0069] The vendor-specific fleet manager module 646 and the fleet server 660 may be cloud-based or may otherwise operate separately from the fleet manager 628 and the robot interface 630.
[0070] The robots 110A, 110B, and 110C may be provided by different vendors, may be of multiple types, and may further have different instruments, tools, and sensors available. Each robot, possibly in conjunction with the robot management and fleet management modules of the RSP 672, may maintain information regarding the health and status of the robot 110, including battery or fuel levels, robot capability information 310, positioning, malfunctions, and maintenance requirements, etc.
[0071] Examples of robots 110A, 110B, and 110C may include robots that are fully autonomous, preprogrammed for specific tasks, movements, routes, or activities, or under direct human control. Robots 110A, 110B, and 110C may be stationary or mobile, and mobile robots may be equipped with wheeled, tracked, bipedal, quadrupedal, multi-legged, or other means of propulsion. Robots 110A, 110B, and 110C may be equipped with tools, sensors, or other hardware to complete missions and tasks, such as articulated arms, grips, claws, wrenches, drivers, hammers, crowbars, cameras, microphones, chemical detectors, noise sensors, vibration sensors, etc. Robots 110A, 110B, and 110C may be equipped with digital and physical storage for photos, videos, audio, environmental readings, environmental samples such as soil, chemicals, etc. The robots 110A, 110B, and 110C may be equipped with a variety of communication capabilities, including analog (such as radio and video transmission) and digital (such as Wi-Fi, Bluetooth, other short-range communications, etc.).
[0072] A robotics service platform, such as RSP 672, may interact with and depend on other subsystems of the operations management system. Figure 7 illustrates the subsystems of operations management system 700, as well as a multi-vendor RSP, which may operate as part of, separate from, or in some other way in conjunction with the operations management system 700, according to one or more embodiments.
[0073] The operations management system 700 may include multiple subsystems for supporting the operation and management of an industrial facility. Such subsystems may include, for example, an operations assistance system 702, a tour management system 704, a task management system 706, a process control system 710, and a robotics management system or robot assistance platform (RSP) 672.
[0074] The process control system 710 may provide operational control and monitoring of the facility through control subsystems that may be distributed throughout the facility or located off-site. The process control system 710 may include, for example, a federated information server 722, which may support information sharing between the process control system 710 and other subsystems of the operations management system 700. The process control system 710 may also include a field control system 728, which may control processes within the facility and collect data from those process data via field instruments, and a safety control system 730, which may monitor the safety state of the processes within the facility and ensure that the processes return to a safe state in the event of a deviation. The process control system 710 may coordinate with the operations support system 702, the patrol management system 704, the task management system 706, and the robotics management system or RSP672.
[0075] The operation assistance system 702 may provide services to support the overall operation of the facility. The operation assistance system 702 may include, for example, a collaborative information server 722 that may facilitate information sharing between the operation assistance system 702 and other subsystems of the operation management system 700, a procedure information management module 714 that may store and manage information related to procedures and processes for operating the industrial facility, and a procedure execution management module 716 that may manage the execution of the procedures and processes.
[0076] The tour management system 704 may provide services related to periodic patrol and monitoring of the facility for operations, safety, and security. The tour management system 704 may include, for example, a federated information server 722, which may support information sharing between the tour management system 704 and other subsystems of the operations management system 700. The tour management system 704 may also include a checklist management module 718, which may manage checklists to ensure that all operations, safety, and security protocols are adequately covered, a checklist execution management module 724, which may manage the execution of tasks to satisfy checklist requirements, as may be determined by the checklist management module 718, and a schedule management module 720, which may schedule the completion of checklist tasks. Checklists and associated checklist tasks may be assigned to either human or robotic assets.
[0077] The task management system 706 may provide for the creation, assignment, and monitoring of tasks within the facility. Tasks may be human or robotic assigned. The task management system 706 may include, for example, a collaborative information server 722, which may support information sharing between the operational task management system 706 and other subsystems of the operational management system 700. The task management system 706 may also include a trigger management module 725, which may create new tasks triggered by incoming information, and a task execution management module 726, which may control task assignment and execution.
[0078] The RSP 672 may provide management and operation of a fleet of various types of robots provided by multiple vendors. The RSP 672 may include, for example, a federation information server 722, which may support information sharing between the RSP 672 and other subsystems of the operation management system 700. The RSP 672 may also include a robot fleet management module 628, a robot data management module 640, a robot common interface module such as a robot-specific adapter 644, a database 620, a robot data analysis module such as a data management module 640, and a machine learning (ML) and artificial intelligence (AI) module 642, all of which are described above with respect to FIG. 6. The RSP 672 may further include robot interface modules specific to different types of robots, such as, for example, a robot A interface 742 for interacting with a type A robot 110A, a robot B interface 744 for interacting with a type B robot 110B, and a robot C interface 746 for interacting with a type C robot 110C. The robot interfaces may connect directly to the robot 110, such as shown for Robot B interface 744 and Robot C interface 746, or may connect to the robot 110 through an external robot controller, such as robot control 748, which connects the Robot A interface 742 to the robot 110A. Such an external robot controller may be a cloud-based server or may be connected by various types of computer networks.
[0079] As mentioned above, managing a fleet of robots to perform operations is only part of the challenge. Another challenge is to maintain the fleet of robots as effectively and efficiently as possible so that the robots are ready to perform production missions under minimal disruption and consumption of resources. Accordingly, various techniques are described herein for managing a fleet of mobile robots while the mobile robots are not performing production missions at the site 236, for example, while located within a robot staging area (or "robot yard") where the mobile robots may be managed, serviced, charged, and / or stored.
[0080] 8 illustrates, in schematic form, one example of how the robotics management system 232 (which may also share features with the robot service platforms referred to elsewhere herein, e.g., as shown at 400, 672, etc.) may hand off control of the mobile robots to the robotics staging system 233 so that the robotics staging system 233 may organize the mobile robots within the robot staging area 105. Although the figure depicts a single robot staging area 105, this is not intended to be limiting, and there may be any number of different staging areas, each having one or more robot staging stations. In various implementations, the robotics staging system 233 may be implemented using one or more computing systems, such as by one or more servers of a cloud infrastructure or one or more servers local to an industrial facility.
[0081] As previously described with reference to FIG. 2, the robotics management system 232 may manage robots that perform tasks managed by an operation station / CCR 234 (not depicted in FIG. 8, see FIG. 2) within a production area / production floor 236. The production area / production floor 236 is where the operational components of an industrial facility are deployed and operated to perform various industrial processes, which may include, but are not limited to, petrochemical refining, chemical processing, food and beverage, consumer packaged goods, pharmaceuticals and biopharmaceuticals, etc. In contrast, the robot staging area 105 includes one or more areas (e.g., rooms, spaces, sections, etc.) of the industrial facility 120 designated for use in staging robots.
[0082] As part of the handover from the robotics management system 232 to the robotics staging system 233, the robotics management system 232 may provide a variety of different information to the robotics staging system 233. This information may include, but is not limited to, the state of the robot upon returning to the robot staging area 105 after performing tasks such as field operations 240 and / or field maintenance 242 within a field 236 (e.g., a production area of an industrial facility), the status of tasks assigned to the robot, the quality of the completed tasks (e.g., whether the completed tasks were performed within expected operational performance metrics, such as speed, efficiency, quality, number of retries, etc.), tasks to be performed by the robot when available, a schedule of tasks to be performed, characteristics of the environment in which the robot is operational (e.g., temperature, humidity, or the presence of dust, dirt, mud, sand, ice, and the like), and the like.
[0083] The state of the robot may be determined, for example, by the robotics management system 232 and / or the robotics staging system 233 and may include data such as robot health data (which may indicate whether the robot needs maintenance / repair), battery levels, positioning, robot definition 305, robot capabilities 310, robot schedule 315, robot performance 320, outstanding / available missions that the mobile body is qualified to perform, etc. The robotics staging system 233 may use this information to identify actions that need to be performed to prepare the mobile robot to be ready to immediately perform a subsequent mission. More generally, the robotics staging system 233 may use this information to orchestrate actions for a robot entering the robot staging area 105, already in the robot staging area, or ready to immediately depart from the robot staging area 105. For example, the robotics staging system 233 may orchestrate actions for a robot to transition from a production mode, in which the robot performs a mission / task in the production area 236, to a staging mode, in which the robot performs a staging mission in the robot staging area 105.
[0084] Various robot staging tasks may be performed, for example, by the robotics staging system 233, the robot itself, and / or personnel within the robot staging area 105. In Figure 8, for example, these tasks include robot maintenance / repair 241, robot charging 243, payload change (including tooling and retooling) 245, and robot storage 247. As will be described in more detail with reference to subsequent figures, the robot staging area 103 may be divided into and / or include multiple robot staging stations, each usable for one or more of the robot staging tasks 241, 243, 245, 247 shown in Figure 8.
[0085] Robot maintenance / repair tasks 241 may include any task involved in keeping the robot in an operational state so that it can perform various operational tasks 240, 244 within the site 236. These may include, for example, applying lubricants such as oil to various joints / gears / actuators, maintaining robot tools (e.g., sharpening blades), replacing damaged robot parts, etc. Robot charging tasks 243 include tasks involved in charging the robot's batteries, such as engaging the robot with chargers deployed at a charging robot staging station. These chargers may be wired and / or wireless chargers.
[0086] Payload change tasks 245 may be similar to robot maintenance / repair tasks 241, but payload change tasks may involve configuring or reconfiguring a robot to perform a new task as opposed to repair or routine mission-independent maintenance. For example, robots may be configured with modular payloads that include various tools and / or sensors. Attaching these payloads to the robots may enable them to perform driving tasks 240, 242 that they previously could not perform, or at least were not well suited to perform. Robot storage tasks 247 include tasks for relocating robots to short-term and / or long-term storage locations where the robots are out of the way of other robots and / or other types of robot staging stations, such as charging stations or maintenance / repair stations.
[0087] FIG. 9 illustrates an exemplary industrial facility including a production area 236 (also previously referred to as a "worksite") and a robot staging area 105. In some implementations, including the one illustrated in FIG. 9, the robot staging area 105 is separate or distinct from the production area 236, which is accessible from the robot staging area 105 via one or more transition areas 101. In FIG. 9, for example, the transition area 101 takes the form of an opening in a wall or barrier that allows the robot to pass between the production area 236 and the robot staging area 105. It is not necessary that the robot staging area 105 be physically separated from the production area 236. However, in some implementations, the robot staging area 105 may be separate from the production area 236 because storing, charging, maintaining, or retooling a robot in an area where the robot could potentially interfere with or collide with other mobile robots performing production missions may be detrimental to the robot and / or the operation of the industrial facility.
[0088] The robot staging area 105 includes a number of robot staging stations 111A-H, which may take a variety of forms. For example, the robot staging stations 111C-E take the form of charging stations including chargers 109A-C. The robot staging station 111H takes the form of a maintenance and / or payload change station including various equipment 117 (tools, replacement parts, modular payloads, etc.) for repairing, maintaining, and / or reconfiguring the robot. The robot staging stations 111G and 111F take the form of robot storage stations, where the mobile robots may be stored for various time intervals while not needed. Although the various types of robot staging stations are depicted separately in FIG. 9, this is not intended to be limiting. The robot staging stations may serve multiple purposes. For example, in addition to being a charging station, any of the robot staging stations 111C-E may also serve as a storage station, in particular the robot staging station 111E, which is near the rear of the robot staging area 105 and therefore out of the way of other mobile robots.
[0089] A number of mobile robots 110A-F are depicted in Fig. 9. A first mobile robot 110A takes the form of a UAV. Such a mobile robot 110A may be equipped with various types of sensors, including visual sensors (e.g., RGB, infrared, stereoscopic) and other types of sensors, which allows the mobile robot 110A to quickly and unobtrusively (by being airborne) inspect various aspects of the production area 236.
[0090] The second mobile robot 110B takes the form of a wheeled robot having an on-board robotic arm that can be operated to perform a variety of tasks, such as adjusting, replacing, and / or repairing equipment such as actuators and / or sensors deployed in the production area 236. The second mobile robot 110B is currently located at the maintenance robot staging station 111H of FIG. 9 where, for example, it is being repaired and / or reconfigured to perform a specific task.
[0091] The third mobile robot 110C, the fourth mobile robot 110D, and the fifth mobile robot 110E take the form of a multi-legged robot--in this example, a quadrupedal robot. The third mobile robot 110C is currently (i.e., in FIG. 9) in the storage robot staging station 111G. The fourth mobile robot 110D and the fifth mobile robot 110E are currently in the charging robot staging stations 111C and 111D, respectively.
[0092] Each of these mobile robots 110C-E, as well as other types of mobile robots described herein, may be capable of receiving modular payloads (generally referenced 115) including, for example, different types of sensor packages, actuators, etc. For example, the third mobile robot 110C is equipped with a robot arm 115A. The fourth mobile robot 110D is equipped with an advanced sensor package 115B that may include sensors that are not otherwise natively integrated with the fourth mobile robot 110D. The fifth mobile robot 110E is not equipped with a payload, but may be moved to the maintenance robot staging station 111H for installation of a payload, as shown in the subsequent figures. The sixth mobile robot 110F takes the form of a wheeled robot equipped with visual sensors, but is not currently equipped with actuators or payloads. The sixth mobile robot 110F is currently charging at the charging robot staging station 111E.
[0093] The mobile robots 110A-F may move around within the robot staging area 105 in various manners to facilitate repair, charging, maintenance, storage, and / or storage of the mobile robots, as well as to achieve efficient positioning of the mobile robots 110A-F to minimize the possibility of collisions and / or ensure that each mobile robot 110 is not burdened with performing production missions as they arise. For example, the mobile robots 110A-F may be repositioned to storage robot staging stations 111G-F and / or other robot staging stations while not in use, so that busier robots can perform tasks.
[0094] In some implementations, the mobile robots 110A-F may be configured to orient themselves using various techniques, such as using Global Positioning System (GPS) sensors, wireless triangulation, inertial measurement units (IMUs), or other types of orientation. For example, the robots 110A-F may be configured with a map of the production area 236 and / or staging area 105, including the location of the various robot staging stations 111A-H. However, some of these orientation techniques may not be as effective in industrial plants. Some industrial plants include indoor areas, and GPS may not be as effective in such locations. Furthermore, GPS may not generally have the accuracy required to enable the mobile robots 110A-F to be positioned to a precise location.
[0095] To facilitate relocating the mobile robots 110A-F to the appropriate robot staging stations in the robot staging area 105, in some implementations, each robot staging station 111 may be equipped with an output device 113 that renders a fiducial output. The mobile robots 110A-F may then be equipped with sensors configured to detect this rendered fiducial output. Thus, the output devices 113A-H may be manipulated to effectively summon the mobile robots 110A-F to the desired robot staging station 111. For example, the robotics staging system 233 may first cause the output device 113 of the selected robot staging station 111 to render the fiducial output. The robotics staging system may then assign a staging mission to the mobile robot 110. The staging mission may have the mobile robot scan multiple robot staging stations 111A-H within the robot staging area 105 to detect the rendered fiducial output, and move to the robot staging station 111 where the rendered fiducial output was detected.
[0096] The output devices 113A-H may take a variety of forms. In FIGS. 8-14, the output devices 113A-H take the form of display devices that can be operated to render visual output, including fiducial output. In other implementations, other types of output devices may be deployed. For example, the robot staging stations 111A-H may be equipped with speakers for emitting audible or inaudible beacons that are detected by pressure wave sensors (e.g., microphones) of the mobile robots 110A-F. In other implementations, the output devices 113A-H may take other forms, such as infrared beacons detected by the mobile robots 110A-F. Such infrared beacons may be modulated in various ways to identify which mobile robot 110 is to travel to which robot staging station 111.
[0097] In some implementations in which output devices 113A-H take the form of display devices, each output device 113 may render a visual fiducial marker that identifies the particular mobile robot 110 that is to occupy that robot staging station. These visual fiducial markers may take a variety of forms, such as Quick Review (QR) codes, other types of bar codes, computer-readable text such as Magnetic Ink Character Recognition (MICR) text, other types of text readable by a computing device (e.g., mobile robots 110A-F), etc.
[0098] In some implementations, each mobile robot 110 may be assigned a unique fiducial marker (unique within a fleet or globally unique). To drive that mobile robot 110 to a desired robot staging station 111, the robotics staging system may simply cause the output device 113 located at the desired robot staging station 111 to emit the unique fiducial marker assigned to the mobile robot 110. The mobile robot 110 may then scan the robot staging area 105 for the rendered fiducial marker and drive to the robot staging station 111 where the rendered fiducial marker was detected. In other implementations, fiducial markings may be assigned to robot missions rather than individual mobile robots. Thus, assigning a particular robot mission with a particular fiducial output to a mobile robot may trigger the mobile robot to drive to the robot staging station where the particular fiducial output was rendered.
[0099] It can be advantageous for the mobile robots 110A-F to have discretion over which robot staging stations they travel to and from. Rather than having to micro-manage the mobile robots 110A-F--e.g., configure them with a comprehensive map of the staging area--the mobile robots 110 themselves can handle decisions regarding obstacle avoidance, collision avoidance, efficient trajectory planning, etc. Many vendors already design robots to perform collision avoidance and path planning natively, and leveraging these native capabilities simplifies the design and operation of the robotics staging system 233.
[0100] In FIG. 9, each mobile robot 110 is positioned at a robot staging station 111 where the mobile robot's respective fiducial marker is currently displayed. For simplicity, in FIGS. 9-15, these fiducial markers take the form of the respective mobile robot's reference number, shown in italics. However, as mentioned above, these fiducial markers may be rendered in a form that is easy for the mobile robot to "read", such as a QR code. For example, the first output device 113A currently displays "110A", such that the first mobile robot 110A is currently positioned in the first robot staging station 111A. The second output device 113B currently displays nothing, such that no mobile robot is parked at the second robot staging station 110B. The third output device 113C currently displays "110D", such that the fourth mobile robot 110D is currently positioned in the third robot staging station 111C, and so on.
[0101] In FIG. 10, the output devices 113A-H are operated to render different fiducial markings than in FIG. 9. This may cause or enable at least some of the mobile robots 110A-F to reposition themselves within the robot staging area 105. For example, the first mobile robot 110A travels to the production area 236, for example, to inspect one or more sensors, gauges, actuators, or other attributes of the industrial facility. It may be envisioned that various observations made by the first mobile robot 110A (e.g., detection of anomalies) may trigger responsive actions by one or more of the remaining mobile robots 110B-F. Additionally or alternatively, responsive actions by one or more of the mobile robots may be triggered by other events in the facility, such as schedules of various robotic tasks, or other asset operations, or outputs from sensor systems not associated with the mobile robots.
[0102] For example, the first output device 113A in the first robot staging station 111A is currently displaying "110C." This may cause the third mobile robot 110C to travel to the first robot staging station 110A so that it is in a good position (e.g., unobstructed) to travel to the production area 236 if the first mobile robot 110A detects an anomaly. The second output device 113B in the second robot staging station 111B is currently displaying "110B." This may cause the second mobile robot 110B to travel to the second robot staging station 111B so that it is in a good position to perform a mission in the production area 236, if called upon.
[0103] The result of the rendered fiducial marking of FIG. 10 is shown in FIG. 11, where the third mobile robot 110C has been repositioned to the first robot staging station 111A and the second mobile robot 110B has been repositioned to the second robot staging station 110B. In some scenarios, it may not be strictly necessary for each robot to be assigned a specific robot staging station. For example, even if the new positions of the mobile robots 110C and 110B in FIG. 11 were reversed, they may still be in a sufficiently suitable position to perform a task in the production area 236 if required. However, in the configuration shown in FIG. 10, the second mobile robot 110B has blocked the path of the third mobile robot 110C to the first robot staging station 111A and would have continued to block the path even if the second mobile robot 110B had been repositioned to the first robot staging station 111A. Thus, the robotics staging system 233 would intentionally manipulate the output device 113B of the second robot staging station 111B to summon the second robot 110B, which would then move out of the way of the third mobile robot 110C.
[0104] Assume that a fourth mobile robot 110D equipped with a special sensor package 115B is fully charged but is not likely to be needed for some time. Rather than leaving the fourth mobile robot 110D at the third robot staging station 111C, which would block both robot staging stations 111D and 111E from the production area 236 and block the second robot 110B from various robot staging stations in the robot staging area 105 on the other side of the production area 236, the fourth mobile robot 110D may be moved to another location and cease to be an obstacle to the other robots. For example, in FIG. 11, the output device 113F of the sixth (storage) robot staging station 111F is rendering the fiducial "110D."
[0105] As a result, in FIG. 12, the fourth mobile robot 110D vacates the third robot staging station 111C in favor of the sixth robot staging station 111F. Additionally, in FIG. 12, the output device 113G associated with the seventh robot staging station 111G then renders the fiducial "110B". This may be, for example, because the second mobile robot 110B has been demoted in favor of the fifth mobile robot 110E to respond to the anomaly detected by the first mobile robot 110A. For example, the second mobile robot 110B may have been deployed to the second robot staging station 111B because the fifth mobile robot 110E was not yet fully charged and lacked a suitable payload to respond to the anomaly detected by the first mobile robot 110A.
[0106] Thus, in FIG. 13, the second mobile robot 110B has relocated to the seventh robot staging station 111G. In addition, the output device 113H associated with the eighth robot staging station 111H then renders the fiducial "110E". This may cause the now fully (or at least sufficiently) charged fifth mobile robot 110E to relocate to the eighth robot staging station 111H, as shown in FIG. 14. Meanwhile, in FIG. 13, the sixth mobile robot 110F is fully charged and is now disconnected from the charger 109C. However, since the sixth mobile robot 110F is not yet needed and is already out of the way of the other mobile robots, the sixth mobile robot 110F remains within the fifth robot staging station 111E (now effectively acting as a storage station).
[0107] In FIG. 14, the fifth mobile robot 110E is currently located in the eighth robot staging station 111H and is already equipped with a new payload 115C, i.e., a robot arm. A robot with such a robot arm, including the third mobile robot 110C currently in the first robot staging station 111A, may be the preferred robot configuration for responding to an anomaly detected by the first mobile robot 110A. In either case, the output device 113B associated with the second robot staging station 111B then renders the fiducial "110E". As a result, in FIG. 15, the fifth mobile robot 110E has relocated to the second robot staging station 111B.
[0108] In FIG. 14, the output device 113D associated with the fourth robot staging station 111D renders the fiducial "110A". This may facilitate the first mobile robot 110A to travel from the production area 236 to the robot staging area 105, for example because it has low battery. In FIG. 15, the first mobile robot 110A relocates to the fourth robot staging station 111D and connects to a charger 109B, which may be assumed to be compatible with multiple different types of mobile robots. If this were not the case, the first mobile robot 110A may have been called to another robot staging station. The path to the fourth robot staging station 111D was relatively clear, but since the first mobile robot 110A is an airborne UAV, this may not be an issue. In addition, the fifth mobile robot 110E has relocated to the second robot staging station 111B, for example, to respond to requests from other mobile robots deployed in the production area 236. For example, the third mobile robot 110C has traveled to the production area 236, for example, to respond to an anomaly detected by the first mobile robot 110A, before returning to the fourth robot staging station 111D for recharging. The fifth mobile robot 110E then waits to respond to requests, such as an anomaly detected in the production area 236 by the third mobile robot 110C.
[0109] Returning to FIG. 8, the robotics staging system 233 may assign mobile robots to robot staging stations in the robot staging area 105 in a variety of ways. As described above, the robotics staging system 233 may use any number of heuristics, such as robot charge falling below a threshold, robot performance quality (320 in FIG. 3) not meeting a criterion, time interval until the robot is potentially needed, etc., to efficiently and effectively assign robot staging stations to robots (and vice versa). However, this disclosure is not limited to the use of heuristics for these purposes. In some implementations, various statistical techniques, such as machine learning models, may be used to determine where to assign an incoming robot.
[0110] FIG. 16 illustrates an example of how the robotics management system 232 and the robotics staging system 233 may exchange data to facilitate the organization of the robot staging area 105 by the robotics staging system 233. An incoming robot 110 that transitions into a staging mode, e.g., entering the robot staging area 105, may provide (or the robotics management system 232 may provide via processes 330, 340, 350) various robot state data. Examples of such robot state data may include, for example, the data described with reference to FIG. 3, such as the current robot definition 305, robot capabilities 310, robot schedule 315, and / or robot performance metrics 320. More specifically, the robot state data may include, for example, battery levels, performance quality, various health metrics, configuration data, tool status, and the like. In some implementations, the incoming robot 110 may push this robot state data to the robotics management system 232. In other implementations, the robotics management system 232 may query this data (eg, via processes 330, 350, 350).
[0111] In either case, the robotics management system 232 may include a first feature extractor 1602A that generates a first feature representation 1604A that represents the state of the incoming robot 110. In some implementations, this feature representation 1604A may take the form of a feature vector having multiple dimensions, each corresponding to an attribute or feature of the incoming robot 110. In other implementations, this feature representation 1604A may take the form of a semantically rich vector embedding, which may be continuous or non-continuous. In this latter case, the first feature extractor 1602A may be configured to apply one or more machine learning models, such as at least a portion of an autoencoder neural network model or a transformer model, to the robot state data to generate the vector embedding.
[0112] The first feature representation 1604A may be provided to the robotics staging system 233, and in particular to the inference module 1606. Meanwhile, a second feature extractor 1602B of the robotics staging system 233 may query a database of robot staging station status 1608 to determine the status of multiple robot staging stations (e.g., 111A-H) in the robot staging area 105. Similar to the first feature extractor 1602A, the second feature extractor 1602B may generate a feature representation 1604B of the status of the robot staging stations of the robot staging area 105. As before, the second feature extractor 1602B may or may not utilize one or more machine learning models, and the feature representation 1604B may take the form of a feature vector or vector embedding.
[0113] The inference module 1606 may process the feature representations 1604A-B using one or more machine learning models 1608 to generate an output 1610 indicative of a staged mission to be performed by one or more mobile robots, such as the incoming robot 110 and / or other mobile robots already in the robot staging area 105. The machine learning models 1608 may take various forms. In some implementations, the machine learning models 1608 may include a reinforcement learning machine learning model or “policy” that is trained to process the states of the incoming robot and multiple robot staging stations (and in some cases production missions) to generate a probability distribution over the staged mission action space. The probability distribution may assign probabilities to various staging missions, which may include assigning a particular mobile robot to a particular robot staging station. In various implementations, the reinforcement learning policy may be trained based on short-term rewards (e.g., no immediate collisions) and / or long-term rewards (e.g., one or more robots were able to complete a production mission efficiently and without accidents). Rewards may be determined at each iteration of the reinforcement learning strategy by the robotics staging system 233 and / or the robotics management system 232. The robotics management system 232 may determine rewards from sources such as robot performance analysis 340 or even from components associated with enterprise resource management 202, such as 224 or 228 in FIG.
[0114] Based on these probabilities, one or more staged missions 1610 may be selected and assigned to one or more mobile robots 110 in the robot staging area 105 and / or to an incoming robot 110. In some implementations where multiple robots from different vendors are orchestrated, the robotics staging system 233 may utilize the aforementioned robot-specific adapters 644 (see FIG. 6 ) to communicate mission parameters to the individual robots.
[0115] 17 is a flow chart illustrating an example method 1700 for implementing selected aspects of the disclosure in accordance with implementations disclosed herein. Although the operations of method 1700 are shown in a particular order, this is not meant to be limiting. For convenience, the operations of FIG. 17 are described as being performed by a system, which may include robotics management system 232 and / or robotics staging system 233. One or more operations may be reordered, omitted, or added.
[0116] In block 1702, the system may determine, for example, using robot resource management 330, robot performance analysis 340, and / or robot definition management 350, the state of the mobile robot 110 transitioning from a production mode to a staging mode, e.g., the state when the robot is physically relocated from a production area 236 of the industrial facility to a robot staging area 105 of the industrial facility. For example, the robotics management system 232 may query the incoming mobile robot--or utilize robot resource management 330, robot performance analysis 340, and / or robot definition management 350--for this information and pass it to the robotics staging system 233, or the robotics staging system 233 may itself query the incoming mobile robot. This robot state (e.g., 1604A in FIG. 16) may take a variety of forms, such as multiple data points (e.g., an array or feature vector) related to the robot's health, configuration, battery status, job performance (e.g., as determined using robot performance analysis 340), etc., feature embeddings (which may be continuous or discrete) that represent the same or similar data points in a semantically rich dimensionality reduction manner, etc.
[0117] In block 1704, the system may determine the status of multiple robot staging stations (e.g., 111A-H) in, for example, the robot staging area 105. The multiple robot staging stations may include various types of stations, such as one or more charging stations, one or more maintenance stations, one or more storage stations (e.g., short term or long term), one or more mission start placement stations, retooling stations (if different from the maintenance stations), etc. The status of the individual robot staging stations may vary depending on the type of station. For example, any robot staging station may have a status of occupied, free, reserved, unavailable / closed, etc. A robot staging station having maintenance performed on the robot may include a status of firmware or software upgrade, physical maintenance, cleaning, retooling, maintenance successful, maintenance unsuccessful, additional maintenance needed, etc. A charging robot staging station may additionally have a status of charging, the level to which the current occupant robot is charged, the time until the current occupant robot is charged, the charging rate, charging adapter type (e.g., charger compatibility or capability), etc.
[0118] A maintenance robot staging station may include additional state such as the type of maintenance or repair the station is configured for, the type of mobile robot that can be maintained or repaired at the station, etc. A mission start deployment station may include attributes such as the type of mission that can be launched from the mission start deployment station, the specific missions that can be launched from the mission start deployment station, etc. A retooling robot staging station (if different from the maintenance robot staging station) may include the type of tools available, the type of robot that can be retooled, etc.
[0119] In some implementations, at block 1706, the system may determine the status of one or more production missions (i.e., missions to be performed by a mobile robot in the production area 236), such as robotic missions that are executable by or assigned to the incoming mobile robot, or even all robotic missions that are active or queued for execution. Production missions to be performed by a mobile robot outside of the robot staging area 105 in the production area 236 may be in a variety of different forms. The status of a robotic mission may include various information such as the mission goal, the mission status, the scheduled start or end time, the tools required to complete the mission, the predicted amount of power required to perform the mission (non-robot related or robot specific), the predicted amount of time required to perform the mission (again, non-robot related or robot specific), the mission priority, etc.
[0120] Based at least in part on the determined states of the mobile robot and the multiple robot staging stations, and the state of the production mission, if determined, in block 1708, the system may select a robot staging station from the multiple robot staging stations for the incoming robot and / or another mobile robot in the robot staging area 105. As previously described, this selection may be based on rules / heuristics and / or statistical models, such as a reinforcement learning strategy.
[0121] For example, if there is no production mission available or assigned to the mobile robot, or a production mission is assigned but scheduled for more than a certain time interval in the future, and a storage robot staging station is available, that storage robot staging station may be selected for the incoming robot. In some implementations, the robot staging station may be selected based on a time interval before the start time of one or more production missions that are executable or assigned by the mobile robot that meet a minimum threshold condition. If the next executable or assigned production mission is more than a certain time in the future, it may be beneficial to select a storage robot staging station so that the mobile robot can move out of the way of other busy mobile robots. Or, even if the mobile robot is fully charged and / or properly configured (e.g., equipped with the correct tools or end effectors) to perform the next production mission, if that next production mission is scheduled for more than a certain time in the future, a charging and / or maintenance robot staging station may be selected, for example, to fully charge the mobile robot and / or to perform various routine maintenance during the robot's downtime.
[0122] Storage robot staging stations may also be used to solve more immediate problems. For example, in some implementations, a storage station may be selected based on the storage station being outside of the current or future movement trajectories of one or more other mobile robots in the robot staging area. Additionally or alternatively, in some implementations, when a potential interference between two mobile robots is predicted, a cost / benefit analysis may be performed, for example by the robotics staging system 233, to determine whether to relocate the first mobile robot to the storage station or to have the second mobile robot change its current or future trajectory to avoid the first mobile robot. Such interference may include any impact on one or more capabilities of the mobile robots, such as collisions between the mobile robots, impeding the mobility of the robots, or interfering with communication or sensor systems. The cost / benefit analysis may consider costs, such as power required by each robot for each option, demands on robot storage stations, etc. A cost / benefit analysis may consider benefits such as time gained by temporarily moving a robot out of the way of other robots rather than moving it to a storage station, or by allowing robots to rely on their own native collision avoidance capabilities to avoid each other.
[0123] In various implementations, when there is a particular production mission that can be performed by and / or assigned to a mobile robot, the mission may be ready to be performed now or anytime within a predetermined time interval, or the mobile robot may need to be in position to perform the production mission on demand (e.g., dependent on another robot performing its own task). In either case, a robot staging station that is eligible as a starting placement for the particular production mission may be selected.
[0124] As illustrated by FIGS. 9-15, in some implementations, a robot staging station may be selected based on a determination that a first production mission is to be performed by a first mobile robot conditionally dependent on a second production mission that is or will be performed by a second mobile robot. For example, the second production mission may be an inspection of a component of an industrial facility. In such a scenario, the first production mission may include one or more tasks that are conditionally performed based on the results of the inspection of the component. For example, if the second mobile robot discovers that a pipe or valve is blocked while performing the second production mission, but does not itself have the tools to alleviate the blockage, the first mobile robot may be deployed to take corrective action. To enable the first mobile robot to perform this task as quickly as possible, the first mobile robot may be assigned to a robot staging station that is a qualified starting point for a production mission that includes taking corrective action. To be "eligible" as a starting point for a robot mission, a robot staging station may be located within the robot staging area 105 closer to the production area 236 than at least some other robot staging stations, such that, for example, a mobile robot assigned to that station is less likely to be blocked from entering the production area 236.
[0125] Referring again to FIG. 17, in block 1710, the system may assign a staging mission to the mobile robot. The staging mission (e.g., a digital file, a digital message, one or more commands, etc.) may include data that, when processed by the robot, causes the mobile robot to navigate to a selected robot staging station. To facilitate the mobile robot's navigation to the selected robot staging station, in some implementations, in block 1710, the system may cause an output device at the selected robot staging station to render a fiducial output. For example, in FIGS. 9-15, the output devices 113A-H include displays that render visual fiducials. In such implementations, the staging mission may cause the mobile robot to scan multiple robot staging stations (e.g., 111A-H) in the robot staging area 105 to detect the rendered fiducial output and navigate to the robot staging station where the rendered fiducial output was detected.
[0126] In some cases, a mobile robot may need to be cycled through multiple robot staging stations before performing a production mission, e.g., so that the robot can be maintained, charged, and / or retooled. In some implementations, a single staging mission may cause the mobile robot to travel to a series of robot staging stations, e.g., in a particular order or as the stations become available. Alternatively, a mobile robot may be assigned multiple staging missions, which the mobile robot may be required to perform in a particular order, or may be free to perform in any order, e.g., as robot staging stations become available.
[0127] In any case, before, during, and / or after performing the first staging mission, in various implementations, one or more additional robot staging stations may be selected from the multiple robot staging stations in the robot staging area based on the state of the mobile robot and the multiple robot staging stations, and further based on a given production mission (or the state of the multiple robot missions, if applicable) of the production missions assigned to the mobile robot. If applicable, one or more additional output devices may be operated at the one or more additional robot staging stations to render one or more additional fiducial outputs. The mobile robot may be assigned one or more additional staging missions in addition to the first staging mission. The one or more additional staging missions may cause the mobile robot to scan the multiple robot staging stations in the robot staging area to detect one or more additional fiducial outputs and travel to the one or more robot staging stations where the one or more rendered fiducial outputs were detected before performing the given production mission.
[0128] 18 is a block diagram of an exemplary computing device 1810 that may be optionally utilized to perform one or more aspects of the techniques described herein. The computing system 1810 typically comprises at least one processor 1814 that communicates with a number of peripheral devices via a bus subsystem 1812. These peripheral devices may include, for example, a storage subsystem 1824, including a memory subsystem 1825 and a file storage subsystem 1826, a user interface output device 1820, a user interface input device 1822, and a network interface subsystem 1816. The input and output devices allow a user to interact with the computing device 1810. The network interface subsystem 1816 comprises an interface to an external network and is coupled to corresponding interface devices in other computing devices.
[0129] The user interface input devices 1822 may include a keyboard, a pointing device such as a mouse, a trackball, a touchpad, or a graphics tablet, a scanner, a touch screen integrated into a display, an audio input device such as a voice recognition system, a microphone, and / or other types of input devices. In general, use of the term "input device" is intended to include all possible types of devices and methods for inputting information into the computing device 1810 or over a communications network.
[0130] The user interface output devices 1820 may include a display subsystem, a printer, a fax machine, or a non-visual display such as an audio output device. The display subsystem may include a cathode ray tube (CRT), a flat panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for generating a visible image. The display subsystem may also include a non-visual display, such as via an audio output device. In general, use of the term "output device" is intended to include all possible types of devices and methods for outputting information from the computing device 1810 to a user or to another machine or computing device.
[0131] The memory subsystem 1824 stores programming and data structures that implement the functionality of some or all of the modules described herein. For example, the memory subsystem 1824 may include logic circuitry that performs selected aspects of the method of Figure 17, as well as implementing the various components illustrated in Figures 1-8 and 16.
[0132] These software modules are typically executed by the processor 1814, alone or in combination with other processors. The memory 1825 used in the storage subsystem 1824 can comprise multiple memories including a main random access memory (RAM) 1830 for storing instructions and data during program execution, as well as a read-only memory (ROM) 1832 in which fixed instructions are stored. The file storage subsystem 1826 can comprise persistent storage for program and data files and may include a hard disk drive, a floppy disk drive with associated removable media, a CD-ROM drive, an optical drive, or a removable media cartridge. Modules implementing the functionality of some implementations may be stored by the file storage subsystem 1826, within the storage subsystem 1824, or within other machines accessible by the processor 1814.
[0133] The bus system 1812 provides a mechanism that allows various components and subsystems of the computing device 1810 to communicate with each other in an intended manner. Although the bus system 1812 is illustrated generally as a single bus, alternative implementations of the bus system may use multiple buses.
[0134] The computing device 1810 may be a variety of types of devices, including a workstation, a server, a computing cluster, a blade server, a server farm, or other data processing system or computing device. Because computers and networks are by their nature ever-changing, the description of the computing device 1810 shown in Figure 9 is intended only as a specific example intended to illustrate some implementations. Many other configurations of the computing device 1810 are possible having more or fewer components than the computing device shown in Figure 9.
[0135] Although several implementations have been described and illustrated herein, various other means and / or structures for performing the functions and / or obtaining the results and / or one or more of the advantages described herein may be utilized, and each such variation and / or modification is deemed to be within the scope of the implementations described herein. More generally, it is intended that all parameters, dimensions, materials, and configurations described herein are exemplary, and that the actual parameters, dimensions, materials, and / or configurations will depend on the particular application or applications in which the teachings are used. Those skilled in the art will recognize or be able to ascertain, using no more than routine experimentation, numerous implementations equivalent to the specific implementations described herein. Thus, it will be understood that the implementations described above are presented by way of example only, and that within the scope of the appended claims and their equivalents, the implementations may be practiced otherwise than as specifically described and claimed. Implementations of the present disclosure are directed to each individual feature, system, article, material, kit, and / or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and / or methods is included within the scope of the present disclosure, unless such features, systems, articles, materials, kits, and / or methods are mutually inconsistent. [Explanation of symbols]
[0136] 100 Industrial Facility Settings 101 Transition Area 105 Robot Staging Area 109A~C charger 110 Mobile Robot 110A~C Robot 110A~F Mobile robot 111A~H Robot Staging Station 113A~H Output Device 115A Robot Arm 115B Advanced Sensor Package 117 Equipment 120 Industrial Facilities 200 Operation Management System 202 Enterprise Resource Management System 204 Production Planning 206 Production Accounting 208 Production Scheduling 210 Data collation and production results reporting 212 Production Operations Management and Reporting 214 Data Historian 216 Panel Operation 218 Process Control 220 Maintenance Accounting 222 Plan for both turnaround and long-term maintenance 234 Operation Station or Central Control Room (CCR) 236 On-site 236 Production area / production site 224 Results report 226 Annual Maintenance Planning and Scheduling 228 Maintenance Operations Management and Reporting 230 Third Party Contractor Management 232 Robotics Management System 238 Human-Performed Driving Task 240 Robot performing driving tasks 241 Robot Maintenance / Repair 242 Human-Performed Maintenance Tasks 243 Robot Charging 244 Robot performing maintenance tasks 245 Payload Modifications (including Tooling and Retooling) 247 Robot Storage 300 Generalized Model 305 Robot definition 310 Robot Ability 315 Robot Schedule 320 Robot Performance Metrics 325 Detailed Robot Schedule 330 Robot Resource Management 335 Robot Tracking 340 Robot Performance Analysis 345 Robot Dispatching 350 Robot definition management 355 Robot Data Collection 360 Robot Execution Management 365 Robot-specific production rules 370 Robot Command 375 responses 380 Robot specific data 400 Robotics Service Platform (RSP) 410 Industrial Driving 420 External Control System 430 Module for interfacing with industrial automation systems 440 Data Aggregation and Analysis Module 450 Integrated Human Machine Interface HMI 460 Security and Safety Module 470 Modules for coordinating operations, collecting data, and controlling the robot Module for managing 480 robot fleets 500 Architecture 505 Industrial Automation (IA) Systems 510 Multi-vendor Robotics Service Platform 515 IA System Integration Application Programming Interface (API) 520 Datastore 525 Engineering and Operations Human Machine Interface (HMI) 530 End User Applications 535 Data Collection and Aggregation Module 540 Adjustment function 545 Robot Fleet Management Module 550 Sensor 555 Open Source Robot Operating System 560 Robot Platform 565 Vendor-specific (non-open source) robots 602 Human Operation Manager or Operator 604 Process Control Client 606 Web Client 608 Human Operator or Analyst 610 Report Generator 612 Historian Data Store 614 Machine Learning (ML) and Artificial Intelligence (AI) Module 618 Archive Module 620 Database 622 Log 624 External System Interface 626 Navigation Control and Data Services 628 Fleet Manager 630 Robot Interface 632 Process Control Server 634 The First Web Server 636 Second Web Server 638 Fleet Management Module 640 Robot Data Management Module 642 Machine Learning (ML) and Artificial Intelligence (AI) Module 644 Robot Specific Adapter 646 Vendor-specific Fleet Management Modules 648, 650 Vendor Specific Interfaces 660 Fleet Server 662 Real-time Communication Module 664 Fleet Clients 672 Robot Service Platform 700 Operation Management System 702 Driving Assistance System 704 Patrol Management System 706 Task Management System 710 Process Control Systems 714 Procedure Information Management Module 716 Procedure Execution Management Module 718 Checklist Management Module 722 Collaborative Information Server 724 Checklist Execution Management Module 725 Trigger Management Module 726 Task Execution Management Module 728 On-site Control System 730 Safety Control System 742 Robot A Interface 744 Robot B Interface 746 Robot C Interface 1602A First Feature Extractor 1604A First feature representation 1606 Inference Module 1608 Robot Staging Station Status 1610 Output 1700 methods 1810 Computing Devices 1812 Bus Subsystem 1814 processor 1816 Network Interface Subsystem 1820 User Interface Output Device 1822 User Interface Input Devices 1824 Storage Subsystem 1825 Memory Subsystem 1826 File Storage Subsystem 1830 Main Random Access Memory (RAM) 1832 Read-Only Memory (ROM)
Claims
1. 1. A method implemented using one or more processors, comprising: determining a state of the mobile robot to transition from a production mode to a staging mode; determining a status of a plurality of robot staging stations, the plurality of robot staging stations including at least one charging station and one maintenance station; selecting a robot staging station from the plurality of robot staging stations based at least in part on the determined states of the mobile robot and the plurality of robot staging stations; assigning a staging mission to the mobile robot, the staging mission causing the mobile robot to travel to the selected robot staging station; A method comprising:
2. The method further includes the step of causing an output device at the selected robot staging station to render a fiducial output, the staging mission further comprising causing the mobile robot to: scanning the plurality of robotic staging stations to detect the rendered fiducial output; The method of claim 1 , further comprising running the rendered fiducial output to the robot staging station where it is detected.
3. The method of claim 2 , wherein the output device includes a display and the rendered fiducial output includes a visual fiducial marker.
4. 2. The method of claim 1, wherein the mobile robot transitions from the production mode to the staging mode when the mobile robot moves from a production area of an industrial facility to a robot staging area of the industrial facility that includes at least some of the plurality of robot staging stations.
5. The method comprises: determining a state of one or more production missions executable by or assigned to the mobile robot or assignable to one or more other mobile robots in a robot staging area including the plurality of robot staging stations; Further comprising: The method of claim 4 , wherein the selecting step is further based on the status of one or more of the production missions.
6. 6. The method of claim 5, wherein one or more of the production missions include one or more missions to inspect or service sensors or actuators of process automation components outside of the robot staging area.
7. The method of claim 5 , wherein the selected robot staging station is selected based on being an available starting location of one of the production missions that can be performed by or assigned to the mobile robot.
8. The method of claim 5 , wherein the selecting step includes comparing a time interval to a start time of one of the production missions to a threshold.
9. 6. The method of claim 5, wherein the mobile robot includes a first mobile robot, and the selecting step includes selecting the robot staging station further based on a determination that a first production mission of the plurality of production missions will be conditionally performed by the first mobile robot in response to a second production mission of the plurality of production missions being performed or to be performed by a second mobile robot.
10. 10. The method of claim 9, wherein the second production mission includes an inspection of a component of a process automation facility, and the first production mission includes one or more tasks that are conditionally executed based on a result of the inspection of the component.
11. The method of claim 1 , wherein the state of a robot includes an available battery power of the robot and a configuration of the robot.
12. 12. The method of claim 11, wherein at least one maintenance station in a robot staging area including at least some of the plurality of robot staging stations includes a payload change station configured to change the configuration of the mobile robot.
13. 2. The method of claim 1, wherein the selected robot staging station includes a storage station, the storage station being selected based on the storage station being outside a current or future travel trajectory of another mobile robot within a robot staging area that includes at least some of the plurality of robot staging stations.
14. 14. The method of claim 13, further comprising performing a cost / benefit analysis to determine whether to relocate the mobile robot to the storage station or have the other robot alter the current or future trajectory of the other robot to avoid the mobile robot.
15. The method of claim 1 , wherein the state of the mobile robot comprises a first vector embedding and the state of the plurality of robot staging stations comprises a second vector embedding.
16. 16. The method of claim 15, further comprising processing the first vector embedding and the second vector embedding based on a reinforcement learning strategy to generate a probability distribution over a staging mission action space, wherein the selecting is based on the probability distribution.
17. 1. A robotics staging system comprising one or more processors and a memory storing instructions that, when executed by the one or more processors, cause the one or more processors to: receiving from a robotics management system a state of a mobile robot transitioning from a production area of an industrial facility managed by the robotics management system to a robot staging area of the industrial facility managed by the robotics staging system; determining states of a plurality of robot staging stations within the robot staging area, the plurality of robot staging stations including at least one robot charging station and one robot production mission start point station, the states of the plurality of robot staging stations including one or more robot staging stations that are occupied and one or more robot staging stations that are vacant; selecting a robot staging station from the plurality of robot staging stations based at least in part on the determined states of the mobile robot and the plurality of robot staging stations; A robotics staging system that assigns a staging mission to the mobile robot, the staging mission causing the mobile robot to navigate to the selected robot staging station.
18. the one or more processors; determining a state of one or more production missions that can be executed by or assigned to the mobile robot or that can be assigned to one or more other mobile robots in a staging area; selecting the robot staging station based at least in part on the status of the one or more production missions. The robotics staging system of claim 17 further comprising instructions.
19. The instruction to select is: instructions for determining a time interval until a start time of a given one of the production missions assigned to the mobile robot; instructions for selecting the robot charging station as the selected robot staging station based on the time interval being long enough to at least partially charge the mobile robot prior to the given production mission; 20. The robotics staging system of claim 18, comprising:
20. 1. A method implemented using one or more processors, comprising: determining a state of a plurality of robot staging stations within a robot staging area of an industrial facility, the plurality of robot staging stations including at least one robot production mission start station and one robot storage station; determining a state of one or more production missions executable by or assignable to one or more mobile robots in a staging area; analyzing the determined states of the plurality of robotic staging stations and the one or more production missions; assigning staging missions to mobile robots in the robot staging area based on the analyzing step, the staging missions causing the mobile robots to travel to the robot storage station; A method comprising:
Citation Information
Patent Citations
Autonomous travel device and autonomous travel system
JP2017130045A
Robot procurement device and robot procurement method
JP2019038048A
Mobile robot abnormal state recovery support system
JP2019164410A
Systems and methods for management of a robot fleet
US20220269284A1