A CONFIGURABLE ROBOTIC PROCESSING SYSTEM

20220161417 · 2022-05-26

    Inventors

    Cpc classification

    International classification

    Abstract

    Broadly speaking, embodiments of the present techniques provide a configurable robotic processing system in which the sequence of operations performed by the system may vary (in contrast to a conveyor-based system) and may be dynamically-scheduled.

    Claims

    1. A configurable robotic processing system comprising: a plurality of stations operable in parallel, each station performing an operation; at least one robot capable of selectively engaging, disengaging and moving containers to and from the plurality of stations; a communication module to receive a plurality of user requests, each user request indicating at least one operation to be performed, where the user requests are the same or different; a controller comprising at least one processor, coupled to the communication module and the at least one robot, to control the at least one robot to: determine a process schedule for the at least one robot to process the received plurality of user requests; and control, using the determined process schedule, the at least one robot to: collect a first container from at least one container collection area for a first user request; move the first container to a first station of the plurality of stations for a first operation to be performed; and move the first container, responsive to the determined process schedule, to one or more further stations until the first user request is complete.

    2. The system as claimed in claim 1 wherein multiple user requests are processable simultaneously, and wherein the controller is further configured to: collect, while the first operation or a subsequent operation is being performed for the first user request, another container from the container collection area for at least a second user request; move the container to another station of the plurality of stations; and continue moving the first container, second container and any further containers, responsive to the determined process schedule, to one or more further stations until each user request is complete.

    3. The system as claimed in claim 1 wherein the step to determine a process schedule for the at least one robot comprises applying a pre-determined process schedule.

    4. The system as claimed in claim 1 wherein the step to determine a process schedule for the at least one robot comprises dynamically determining the process schedule based on the received plurality of user requests.

    5. The system as claimed in claim 4 wherein dynamically determining the process schedule comprises using at least one of the following: the operations required to complete each of the received user requests, a time taken to complete each of the received user requests, a time taken to complete each operation, an order in which the user requests are received, a number of user requests received in a time period, a status of each station, information on which operations need to be performed before or after other operations for each request, and a delivery time for each received user request.

    6. The system as claimed in claim 1 wherein a time taken to complete the operation at each station is the same or different.

    7. The system as claimed in claim 1 wherein a container remains at a station until the operation performed by the station is complete and until the determined process schedule causes the at least one robot to collect the container.

    8. The system as claimed in claim 1 wherein a time taken to complete the operation at each station is non-deterministic.

    9. The system as claimed claim 1 wherein the at least one robot is any one of: a robotic arm, a cartesian coordinate robot, and a collaborative robot or cobot.

    10. The system as claimed in claim 1 wherein the at least one robot comprises two or more robots.

    11. The system as claimed in claim 10 wherein each robot is assigned to a subset of the plurality of stations.

    12. The system as claimed in claim 1 wherein the plurality of stations, the container collection area and a request collection area are arranged in a cylindrical, part-cylindrical, curved or partly-curved array structure having at least one tier.

    13. The system as claimed in claim 12 wherein the at least one robot is a robotic arm located along, and rotatable about, the cylindrical axis.

    14. The system as claimed in claim 13 wherein the at least one robot comprises a first robotic arm located at a top of the cylindrical array structure that is assigned to a first subset of the plurality of stations, and a second robotic arm located at a bottom of the cylindrical array structure that is assigned to a second subset of the plurality of stations.

    15. The system as claimed in claim 1 wherein the plurality of stations, the container collection area and a request collection area are arranged in a two-dimensional plane.

    16. The system as claimed in claim 15 further comprising: at least one track provided over the plurality of stations, the container collection area and the request collection area; wherein the at least one robot is a cartesian coordinate robot coupled to and arranged to move along the at least one track.

    17. The system as claimed in claim 15 wherein the at least one robot comprises a first cartesian coordinate robot assigned to a first subset of the plurality of stations, and a second cartesian coordinate robot assigned to a second subset of the plurality of stations.

    18. The system as claimed in claim 1 wherein when the robot moves a container to a station, the controller instructs the station to perform the operation based on the received user request.

    19. The system as claimed in claim 1 wherein the step to determine a process schedule for the at least one robot comprises: determining, using the received user request, an order in which a container needs to be moved to the at least one station.

    20. The system as claimed in claim 1 further comprising at least one request collection area, and wherein the controller controls the at least one robot to deposit the first container in the at least one request collection area when the first user request is complete.

    21. The system as claimed in claim 20 wherein the controller controls the communication module to output a message indicating that the first user request is complete.

    22. The system as claimed in claim 1 wherein the system is a food preparation system, or a mechanical parts selection and packaging system.

    23. A method of controlling a configurable robotic processing system comprising a plurality of stations operable in parallel, each station performing an operation, and at least one robot capable of selectively engaging, disengaging and moving containers to and from the plurality of stations, the method comprising: receiving a plurality of user requests, each user request indicating at least one operation to be performed, where the user requests are the same or different; determining a process schedule for the at least one robot to process the received plurality of user requests; and controlling, using the determined process schedule, the at least one robot to: collect a first container from at least one container collection area for a first user request; move the first container to a first station of the plurality of stations for a first operation to be performed; and move the first container, responsive to the determined process schedule, to one or more further stations until the first user request is complete.

    24. The method as claimed in claim 23 wherein the step to determine a process schedule comprises dynamically determining the process schedule based on one or both of: the received plurality of user requests, and the time taken for each operation.

    25. The method as claimed in claim 23 further comprising: determining, using the received user request, an order in which a container needs to be moved to the at least one station, and controlling the at least one robot to move the container to the at least one station in the determined order.

    26. The method as claimed in claim 24 further comprising: determining, for each received user request, the operation to be performed by a station; determining a required position in the container where the operation is to be performed; and controlling the at least one robot to position the container at the station to enable the operation to be performed in the required position in the container.

    27. (canceled)

    Description

    [0043] Implementations of the present techniques will now be described, by way of example only, with reference to the accompanying drawings, in which:

    [0044] FIGS. 1A and 1B respectively show a perspective view and a plan view of an example configurable robotic processing system arranged in a cylindrical array structure;

    [0045] FIG. 2A shows a perspective view of a configurable robotic processing system having a single robotic arm;

    [0046] FIG. 2B shows a perspective view of a configurable robotic processing system having two robotic arms;

    [0047] FIG. 3 shows a perspective view of a configurable robotic processing system having pick-and-place stations;

    [0048] FIGS. 4A and 4B show perspective views of a configurable robotic processing system having pick-and-place stations and dispense stations;

    [0049] FIG. 5A shows a side view of an example configurable robotic processing system arranged in a two-dimensional plane;

    [0050] FIG. 5B shows a side view of the system of FIG. 5A with tracks and two cartesian coordinate robots arranged to move along the tracks;

    [0051] FIG. 6 shows a flowchart of example steps to control at least one robot to process a request received by a robotic processing system; and

    [0052] FIG. 7 shows a flowchart of example steps to control at least one robot to process, in parallel, multiple requests received by a robotic processing system.

    [0053] Broadly speaking, embodiments of the present techniques provide a configurable robotic processing system in which the sequence of operations performed by the system and the timing of those operations may vary (in contrast to a conveyor-based system) and may be dynamically-scheduled.

    [0054] The structure and features/components of the robotic processing system may vary depending on the type of processing being conducted by the system, and where the system may be used/installed. For example, the robotic processing system may need to fit into a restaurant, and therefore the dimensions may be chosen to suit the restaurant and the components may be chosen in accordance with the food that the restaurant produces and the number of orders which may need to be processed during a busy time in the restaurant.

    [0055] To aid understanding of the configurable robotic processing system, two example configurations are shown in FIGS. 1A to 5B. Specifically, FIGS. 1A to 4 show a configurable robotic processing system arranged in a cylindrical array structure, while FIGS. 5A to 5B show a configurable robotic processing system arranged in a two-dimensional plane. However, it will be understood that these are merely illustrative examples and are non-limiting.

    [0056] FIGS. 1A and 1B respectively show a perspective view and a plan view of an example configurable robotic processing system 100 arranged in a cylindrical array structure.

    [0057] The system 100 comprises a plurality of stations which may be operable in parallel, where each station performs a particular operation. The station types may depend on the processing performed by the system 100. For example, a station 100 which is arranged to prepare food (e.g. in a restaurant, for a food delivery service, for airplane meals, etc.) may have stations which perform a food dispensing operation. In this case, a station may be, for example, a: [0058] Weigher/weighing scale/linear weigher—for weighing and dispensing specific quantities of solid food products (e.g. 50 g of shredded lettuce); [0059] Linear counter; [0060] Conveyor; [0061] Retractable conveyor; and [0062] Pick-and-place mechanism—for picking up items (e.g. boiled eggs, slices of beef, pre-packed containers of sauce, etc.) and placing them onto a receptacle (e.g. a plate or food container).

    [0063] A system 100 which is arranged to prepare food may comprise stations which perform a food preparation operation, such as: [0064] Grilling; [0065] Cooking; [0066] Mixing; [0067] Tossing (e.g. tossing salad ingredients); and [0068] Inspection.

    [0069] In a system 100 which is arranged to prepare food, some stations may be used to temporarily hold or store food. Such stations may be temperature controlled. For example, if the system has prepared a hot meal, the completed meal may be placed in a temporary storage station which comprises a heating mechanism to keep the meal hot until it is collected.

    [0070] In another example, the system 100 may be a mechanical parts selection and packaging system. A user may request specific mechanical parts (e.g. nuts, bolts, screws, washers, etc.) for something they are constructing, and the system 100 may provide them with a package containing the requested mechanical parts. The package may comprise multiple compartments into which each type of mechanical part may be placed by the system 100. In this system 100, each station may be arranged to dispense a particular part in a required quantity. The system 100 may comprise additional stations which perform other types of operation, such as: [0071] Inspection; [0072] Sealing the package/tray to enable it to be shipped to or collected by the user; and [0073] Printing and applying a label to the package to indicate the order number, contents, etc.
    It will be understood that these inspection, sealing, collection and label printing and applying stations may be provided in other systems 100, such as food preparation or food delivery systems.

    [0074] Merely to aid understanding of the present techniques, FIGS. 1A to 5B are described by assuming the system is arranged for food preparation. However, it will be understood that food preparation is merely one of many possible uses of the present techniques.

    [0075] Turning back to FIG. 1A, a number of different stations are illustrated, and it will be understood that both the quantity and types of station are exemplary and non-limiting. The stations may be arranged in a cylindrical or part cylindrical or curved array structure. It can be seen in FIGS. 1A and 1B that the system 100 comprises a curved section/edge and a straight section/edge. The stations may be arranged along the curved section/edge. The system 100 may comprise a container collection area 104, which may hold a plurality of containers 106. The container collection area 104 may be located along the straight section/edge of the system 100. The containers 106 are used by the system 100 to fulfil received user requests, and the form of these containers may vary depending on the process being performed by system 100. The term “container” is used herein to generally mean any receptacle suitable for the processing performed by the system 100, such as a tray, a plate, a package, a compartment tray, a vessel, a bottle, a cup or glass, a jar, a drinks or liquid container, a box, a carton, a packet, etc. It will be understood that this is a non-exhaustive list of example containers, and is non-limiting.

    [0076] The containers 106 may be provided by an operator/owner of the system, or may be input into the system by a user making a request. For example, the containers 106 may be: [0077] provided in the system by an owner/operator of the system, and when they have been used to fulfil a user request, the containers can be taken out of the system by the user. For example, if the system is used within a particular restaurant, the restaurant owner may have their own containers that are used to fulfil user requests. The containers which are moved through the system may be takeaway containers that can be given to the users once their requests are fulfilled. This may be useful because a single container is used to collect the items for a user request and to deliver the collected items to the user. In some cases, the containers may be returned to the owner/operator of the system for reuse. For example, if the system is used in a restaurant or is used to provide food for airplane passengers, the containers may be plates, trays or other receptacles that can be collected after a user/passenger has had their meal, and washed and reused. [0078] provided in the system by an owner/operator of the system, and used to fulfil a user request, but the containers cannot be taken out of the system by the user. For example, the containers may be containers that are kept within the system but are used to collect items to fulfil user requests. When a container contains all the items of a particular user request, the contents of the container may be deposited into a further container that can be removed from the system by the user. The further container may be provided by the owner/operator of the system, or may be provided by a user themselves—the latter may be advantageous because it enables and encourages recycling/reuse of containers. In some cases, the further containers may be returned to the owner/operator of the system for reuse, as explained above. [0079] trays provided in the system by any owner/operator of the system, on which further containers that can be taken out of the system are provided. The further containers may be provided by the owner/operator of the system, or may be provided by a user themselves—the latter may be advantageous because it enables and encourages recycling/reuse of containers. In some cases, the further containers may be returned to the owner/operator of the system for reuse, as explained above.

    [0080] Each system 100 may be configured depending on which type of container is moved through the system and which container is provided to the user. Thus, the container collection area 104 may be used to collect containers that remain within the system, and/or may be used to collect containers which have been provided by a user, and/or may be used to collect containers which have been returned and washed for reuse. When a user inputs their own container into the container collection area 104, the system may use a mechanism to associate the user request with the user's container. For example, the user may specify, in their user request, the location of their container within the container collection area 104 to associate the container with their user request.

    [0081] As noted below, each system comprises a request collection area. This is the area in the system 100 from where an operator of the system can collect a completed order/request and provide it to a user, or from where a user can collect their completed order/request themselves.

    [0082] A system 100 may comprise one or more container collection areas 104, and one or more request collection areas.

    [0083] The array structure may have one or more tiers. In FIG. 1A, three tiers A, B and C are shown. Multiple stations may be arranged on the tiers A, B, C. The system 100 may, for example, comprise one or more pick-and-place stations 118, and one or more linear weighers 122. In FIGS. 1A and 1B, the pick-and-place stations 118 are provided on tier A, while the linear weighers 122 are provided on tiers B and C.

    [0084] The system 100 comprises at least one robot 102 capable of selectively engaging, disengaging and moving containers to and from the plurality of stations. In FIG. 1A, a single robot 102 is visible. (FIG. 1B shows part of a second robot 128). The at least one robot 102 may take different forms depending on the process being performed by system 100 and/or the arrangement of the system 100 itself (in particular, the arrangement of the stations). The at least one robot may be, for example, a robotic arm, a cartesian coordinate robot (also known as a three-axis robot), or a collaborative robot (also known as a cobot). It will be understood that this is a non-exhaustive list of example robots and is non-limiting. Where a system 100 comprises more than one robot 102, the robots 102 may be of the same type or different. In FIG. 1A, the robot 102 is a robotic arm which is rotatably mounted at the top of the system 100. The robotic arm 102 is able to collect containers 106 from the container collection area 104, and move the containers 106 between different stations in the system 100. The containers 106 and/or the robotic arm 102 may be designed to or adapted to enable to robotic arm 102 to engage and disengage with the containers 106. In embodiments, the container 106 may be a tray which holds another receptacle, such as a plate or take-away container. This may be useful because the container 106 and/or robotic arm 102 may be adapted to cooperate but no changes need to be made to the receptacle received by a user (e.g. a plate or take-away container for food).

    [0085] The robotic arm 102 may be instructed to begin the processing for a particular received request and may collect a container 106 from the container collection area 104. The collected container 106 is now associated with that particular received request. The system 100 may comprise a request collection area, where containers 106 may be placed once all the required processes for the request associated with the container have been completed. For example, if a received request is for a salad comprising particular components, the container 106 associated with that received request may be placed into the request collection area when all the components of the salad have been added to the container, such that the request has been completed. The request collection area may be located adjacent to, in the vicinity of, or co-located with the container collection area 104. This may make it easier for a human user 108 to add clean containers 106 to the system 100 and to collect completed containers 106 from the system 100. In embodiments, when the robotic arm 102 adds a completed container 106 to the request collection area, an alert may be transmitted to the human user 108, the customer/user who made the request, or some other operator of the system 100, to indicate that the container 106 is ready to be collected. The alert may be for example a visual alert on the system 100 or may be a visual alert or other communication sent via the system 100 to an external device (e.g. to a user's phone or to a display screen).

    [0086] As mentioned above, system 100 may comprise one or more pick-and-place stations 118. A pick-and-place station 118 may, in embodiments, comprise a heated container which is able to keep food items at a required temperature. The system 100 may comprise one or more robot arms 112, 114 that are arranged to perform the pick-and-place operation. Each pick-and-place station 118 may have a dedicated robot arm 112, 114, or a group of pick-and-place stations 118 may share a robot arm 112, 114. In FIG. 1A, four adjacent pick-and-place stations 118 share a robot arm 114 or robot arm 112. The robot arm 112/114 is therefore able to move between the four pick-and-place stations 118 when a container 106 is placed by the robotic arm 102 at a particular one of those pick-and-place stations 118. Each pick-and-place station 118 may have a dedicated gripper 120 which is suitable for picking-up the items at that station. In some systems 100, such as food processing systems, dedicated grippers 120 may be also ensure that cross-contamination does not occur between the stations 118. When a container 106 is placed at a pick-and-place station 118 by robotic arm 102, the robot arm 112/114 may be caused to move to the pick-and-place station 118, to engage with the gripper 120 associated with that station 118, and to pick up one or more items from the station 118. Once the one or more items have been deposited into the container 106, the robot arm 112/114 may disengage from the gripper 120.

    [0087] As mentioned above, the system 100 may comprise one or more linear weighers 122 which are arranged to deposit fixed or variable amounts of particular items. Each linear weigher 122 may be coupled to a hopper, i.e. a storage container used to dispense items via a chute or funnel. The system 100 may comprise one or more computers 124 which may be coupled to and control the linear weighers 122. In embodiments, each linear weigher 122 may be coupled to a dedicated computer 124. In the depicted embodiment, one computer 124 is coupled to and controls four linear weighers 122. The computer 124 may control the amount to be dispensed by the hopper and the dispensing operation itself. The display screen of the computer 124 may be used to communicate data to a human user 110, such as whether the hopper needs to be refilled. It will be understood that display screens and computers 124 may be provided for each station to communicate information to a human user 110. Such information for each station may be used by the system 100 to schedule the processing of received user requests. For example, if a hopper has run out of items to dispense, then the system 100 may schedule the processing of received user requests that don't require those items. Similarly, the information for each station may be used to indicate to human users/operators of the system that more items need to be added to the stations. In a food processing system, this may prompt chefs to cook or prepare items for adding to the stations.

    [0088] The system 100 may comprise, in some cases, temperature controlled areas or stations. For example, the system 100 may comprise stations which are used to dispense hot food items (e.g. cooked meat) or cold food items (e.g. yoghurt), and therefore, the stations dispensing these items may be temperature controlled. For food safety and hygiene purposes, the temperature controlled areas or stations may comprise temperature sensors to routinely, regularly or continuously monitor the temperature of the station. The temperature controlled areas may comprise other sensors to monitor the environmental conditions around the station. For example, a station may be a fridge or fridge-like station that is used to contain cold/chilled food items such as pots of yoghurt or cartons of milk—a temperature sensor may be used to monitor the temperature within the fridge, but an additional sensor may be used to monitor, for example, how long a door of the fridge was open when a food item was being dispensed. This combination of sensors could be useful because it provides context for why a sudden and sharp increase in the internal temperature of the fridge may be detected, and appropriate action can be taken by the system (e.g. to close the door or to dispose of any food items in the station if the temperature has been above a certain safe temperature for too long).

    [0089] The system may monitor the stations at all times while the system is operational, using sensors provided within the stations or within the vicinity of the stations. For food safety and hygiene purposes, food quality purposes, and food waste reduction purposes, the system may monitor how long food items have been within a station. For example, some food items may be kept within a station for no more than 1 hour for quality and/or safety/hygiene purposes, while other food items may be kept within a station for up to 4 hours. Thus, food items may have a ‘use by time’ which specifies the maximum amount of time associated with the food items can be within a station before they have to be discarded. A station may be filled with food items at a certain time, and the system monitors whether any food items remain in the station after the associated maximum amount associated with the food items. If food items still remain at this point in time, then the system may determine that fewer food items are required in the station when the station is next replenished, in order to avoid food waste. Furthermore, if food items still remain at this point in time, the food items are discarded and the station and associated dispensers, containers, etc. may be completely cleaned before the station is replenished with new food items. The stations may be cleaned and replenished/refilled while the system is operational, so that the system can continue to complete user requests. Thus, it may be useful to have multiple stations dispensing the same items, and for the stations to be filled with food items and different times, so that there is always at least one station dispensing a particular food item at any given time.

    [0090] The sensor data and/or the monitoring of each station may be used to determine a status of each station, which may be used to dynamically determine the process schedule to process the plurality of received user requests. The monitoring may be performed using sensors that for example, can sense the quantity or volume of items within a station (e.g. a weight sensor or similar), or using machine vision to visually inspect a station, or using a human operator who manually inspects a station.

    [0091] FIG. 2A shows a perspective view of a configurable robotic processing system 100 having a single robotic arm 102. Other components of the system 100 have been removed from the image to enable the single robotic arm to be seen. In the image, the robotic arm 102 is shown to be collecting a container 106 from the container collection area 104.

    [0092] FIG. 2B shows a perspective view of a configurable robotic processing system having a first robotic arm 102 and a second robotic arm 128. The first robotic arm 102 is mounted to the top of the system 100 and the second robotic arm 128 is mounted to the bottom of the system 100. Both robotic arms 102, 128 may be able to collect containers 106 from the container collection area 104, and to place completed containers 106 into a request collection area. The first robotic arm 102 may collect and deposit containers 106 near the top of the system, and the second robotic arm 128 may collect and deposit containers 106 near the bottom of the system, to avoid collisions between the robotic arms. The first robotic arm 102 may be assigned to a first subset of the plurality of stations, and the second robotic arm 128 may be assigned to a second subset of the plurality of stations. The first subset and second subset of the plurality of stations may at least partly overlap.

    [0093] FIG. 3 shows a perspective view of a configurable robotic processing system 100 having pick-and-place stations 118. Other components of the system 100 have been removed from the image to enable the pick-and-place stations 118 to be seen. One robot arm 114 is also shown. As mentioned above, the pick-and-place stations 118 may be provided on one of the tiers, e.g. tier A, of the system 100 to enable the stations 118 to be reached by the robot arm 114, which may be mounted to the top of the system 100. As explained above, the robot arm 114 may engage with the gripper 120 associated with each station 118 to pick up items from that station.

    [0094] FIGS. 4A and 4B show perspective views of a configurable robotic processing system having pick-and-place stations 118 and dispense stations 122. Other components of the system 100 have been removed from the image to enable the pick-and-place stations 118 and dispense stations 122 to be seen. The pick-and-place stations 118 may be provided on one of the tiers, e.g. tier A, while the dispense stations 122 may be provided on another tier, e.g. tiers B and C. It will be understood that the pick-and-place stations 118 and dispense stations 122 may be provided on any tier and may be provided on the same tier. The computers 124 used to control the dispense stations (hoppers) 122 are also shown.

    [0095] Thus far, a curved arrangement of a robotic processing system has been described. Turning now to FIG. 5A, this shows a side view of an example configurable robotic processing system 200 that is arranged in a two-dimensional plane. Specifically, the plurality of stations, the container collection area and request collection are arranged in a two-dimensional plane. This arrangement may be useful if the system is to be located against a wall, for example. The system 200 may comprise one or more stations. In FIG. 5A, two types of station are shown—hoppers/linear weighers 122 and pick-and-place stations 118. It will be understood that both the quantity and types of station, and their arrangement, are exemplary and non-limiting. The stations 122, 118 may be located in areas A′ and B′. The system 200 may comprise a container collection area 104 containing a plurality of containers 106.

    [0096] FIG. 5B shows a side view of the system 200 of FIG. 5A with the stations and containers removed for clarity. The system 200 may further comprise one or more vertical tracks 202 and/or one or more horizontal tracks 204 provided over the plurality of stations, the container collection area and the request collection area. The system 200 may comprise at least one robot 206, which may be a cartesian coordinate robot (also known as a three-axis robot). In the Figure, two robots 206 are shown. The or each robot 206 may be coupled to and arranged to move along the vertical track(s) 202 and/or horizontal track(s) 204 to enable the robot 206 to move around the system 200 to collect containers 106 and move the containers to different stations.

    [0097] In embodiments, the system 200 may comprise a first cartesian coordinate robot 206 assigned to a first subset of the plurality of stations, and a second cartesian coordinate robot 206 assigned to a second subset of the plurality of stations. For example, the first cartesian coordinate robot 206 may be assigned to at least area A′ of the system, and the second cartesian coordinate robot 206 may be assigned to at least area B′ of the system, to avoid collisions between the robots 206. The first subset and second subset of the plurality of stations may at least partly overlap.

    [0098] FIG. 6 shows a flowchart of example steps to control at least one robot to process a request received by a robotic processing system, where the system may comprise a plurality of stations operable in parallel, each station performing an operation, and at least one robot capable of selectively engaging, disengaging and moving containers to and from the plurality of stations. The method may comprise receiving a plurality of user requests, each user request indicating at least one operation to be performed, where the user requests are the same or different. At step S100, the method may comprise determining a process schedule for the at least one robot to process the received plurality of user requests. The method may then comprise controlling, using the determined process schedule, the at least one robot to: collect a container from a container collection area for a first user request that is to be processed (step S102); move the container to a first station of the plurality of stations for a first operation to be performed for that user request (step S104); and move the container, responsive to the determined process schedule, to one or more further stations until the user request is complete (step S106). At step S108, the method may comprise checking if all required operations have been completed for the user request being processed. If the operations have not been completed, the process returns to step S106. If the operations have been completed, the method may comprise checking if there are any further user requests to be processed in the process schedule (step S110). If yes, the method returns to step S102 but now collects a container for the next user request in the process schedule. In other words, the at least one robot collects containers and processes user requests one-by-one until all of the user requests in the process schedule have been completed. If at step S110 it is determined that all the user requests in the process schedule have been completed, the method returns to step S100 to determine a new process schedule for newly received user requests. This may require waiting for new user requests to be received by the system.

    [0099] FIG. 7 shows a flowchart of example steps to control at least one robot to process, in parallel, multiple requests received by a robotic processing system (such as the robotic processing systems shown in FIGS. 1A to 5B). The method may comprise receiving a plurality of user requests, each user request indicating at least one operation to be performed, where the user requests may be the same or different. At step S200, the method may comprise determining a process schedule for the at least one robot to process the received plurality of user requests. The method may then comprise controlling, using the determined process schedule, the at least one robot to collect a first container from a container collection area for a first user request (step S202) and move the first container to a first station of the plurality of stations for a first operation to be performed (step S204). The method then comprises determining if another container is to be collected (step S206). This may depend on, for example, whether there are any further user requests to process in the process schedule, the capacity of the system at the time, the availability of the required stations for any subsequent user request, whether the first container is ready to be moved to the next station already, etc. If another container is to be collected and there is time for the at least one robot to container to do so, the method comprises instructing the robot to collect another container for another user request in the process schedule (step S208). The method then comprises instructing the robot to move the container to a station as defined in the process schedule for that particular user request (step S210).

    [0100] The method may comprise checking if there are any further requests in the process schedule to be processed (step S214). If yes, the method returns to step S206 to determine if another container can be collected. If at step S214 it is determined that all the user requests in the process schedule have been completed, the method returns to step S200 to determine a new process schedule for newly received user requests. This may require waiting for new user requests to be received by the system.

    [0101] At step S206, if another container is not to be collected (e.g. because no new containers are required or because there is no capacity in the system for a new container), then the method may comprise instructing the at least one robot to move one or more containers in the system to the next station or request collection area according to the determined process schedule and requirements for each container/user request (step S212). After performing one or more moves of existing containers, the method may comprise rechecking if another container is to be collected (step S206). In other words, the method shown in FIG. 7 enables the system to process multiple user requests simultaneously, by moving containers around the system and collecting new containers for new requests.

    [0102] Those skilled in the art will appreciate that while the foregoing has described what is considered to be the best mode and where appropriate other modes of performing present techniques, the present techniques should not be limited to the specific configurations and methods disclosed in this description of the preferred embodiment. Those skilled in the art will recognise that present techniques have a broad range of applications, and that the embodiments may take a wide range of modifications without departing from any inventive concept as defined in the appended claims.