Collaborative robot training through user demonstrations

A single ML model trains multiple robots using imitation learning and simulated environments, addressing the inefficiencies of traditional methods by synchronizing interactions and reducing the need for separate training.

JP7809911B2Active Publication Date: 2026-02-03INTEL CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2022004072
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-03-15
Filing Date
2022-01-14
Publication Date
2026-02-03
Estimated Expiration
2042-01-14

AI Technical Summary

Technical Problem

Traditional robot programming and training methodologies are inadequate for training multi-robot systems, as they do not scale well with the number of robots and require separate training for each robot, inefficiently utilizing expert demonstrators and complex simulation environments.

Method used

A single ML model is trained for multiple robots using imitation learning, capturing expert demonstrations through a camera array and markers, generating a simulated environment for validation, and synchronizing interactions between robots.

Benefits of technology

This approach allows simultaneous training of multiple robots with reduced demonstrations, scaling efficiently and requiring fewer resources, while generating a synchronized collaborative task performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007809911000001
    Figure 0007809911000001
  • Figure 0007809911000002
    Figure 0007809911000002
  • Figure 0007809911000003
    Figure 0007809911000003
Patent Text Reader

Abstract

To provide a computing device and a computer program for training multiple robots to perform collaborative tasks.SOLUTION: A machine learning (ML) model training system 400 disclosed herein is configured to train an ML model to control robots in a multi-robot system collaborating to perform a task. For example, trajectories associated with manipulating an object to perform a collaborative task is determined, and an ML model 500 is trained to output control actions for the robots in the multi-robot system to collaborate to complete the task.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates generally to training robots, and more particularly to training multiple robots to perform collaborative tasks. [Background technology]

[0002] Machine learning (ML) is increasingly being used in modern applications, such as manufacturing, retail, and housing. Another technological advancement is the use of multi-robot systems, in which numerous robots work together to perform complex tasks that often involve complex or precise movements that can be performed with low latency. For example, multiple robots may be programmed to work together to collaboratively assemble products in a factory (e.g., electronic devices, vehicles, aircraft, or furniture). As another example, multiple robots may be programmed to work together to collaboratively inspect products (e.g., servers in a data center) or to replenish inventory in a grocery store.

[0003] However, programming (or, in the case of ML, training) multiple robots to cooperate in an efficient, easy, and practical manner so that a given task can be successfully performed is non-trivial. Traditional robot programming methods, such as planning and control-based methods, are not easily scalable. That is, such methods do not scale well as the number of robots collaborating on a task increases. [Brief explanation of the drawings]

[0004] To easily identify any particular element or operation description, the most significant digit(s) in a reference number refers to the figure number in which that element is first introduced.

[0005] [Figure 1] 1 illustrates a multi-robot system 100 in accordance with at least one example of the present disclosure.

[0006] [Figure 2] 1 illustrates a multi-robot training system 200 in accordance with at least one example of the present disclosure.

[0007] [Figure 3] 3 illustrates a data collection and simulation system 300 in accordance with at least one example of the present disclosure.

[0008] [Figure 4] 4 illustrates an ML model training system 400 in accordance with at least one example of the present disclosure.

[0009] [Figure 5] 5 illustrates an ML model 500 in accordance with at least one example of the present disclosure.

[0010] [Figure 6A] 6 shows an image 600a in accordance with at least one example of the present disclosure.

[0011] [Figure 6B] 6 illustrates an image 600b in accordance with at least one example of the present disclosure.

[0012] [Figure 7] 7 illustrates a routine 700 for determining a trajectory of a robot for training purposes, according to at least one example of the present disclosure.

[0013] [Figure 8] 8 illustrates a routine 800 for training a robot for collaborative behavior, according to at least one example of the present disclosure.

[0014] [Figure 9] 9 illustrates a computer-readable storage medium 900 according to an example of the present disclosure.

[0015] [Figure 10] 1 illustrates a computing system according to an example of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0016] As mentioned above, ML and multi-robot systems are increasingly being used in modern times. However, traditional robot programming and training methodologies are inadequate for training multi-robot systems. For example, imitation learning and behavior cloning are techniques that enable robots to learn tasks and behaviors modeled by demonstrators, such as a human demonstrator. However, current approaches have been developed to train robotic tasks involving only a single robot. Applying these traditional learning methodologies to collaborative robot tasks is inefficient because they only allow training of one robot at a time. Furthermore, given the nature of multi-robot tasks (e.g., one robot holds a receptacle and another robot places an object in that receptacle), multiple expert demonstrators are required to separately train each robot according to its individual role in the task, which is inefficient and cumbersome. Thus, traditional approaches to training robots in multi-robot systems do not scale well because each robot requires separate training. Furthermore, this brute force approach to training multiple robots for collaborative tasks is insufficient to capture and synchronize interactions between the cooperating robots.

[0017] Another major challenge to training multiple robots for collaboration is generating complex robot simulation environments and models that can collect expert demonstrations (trajectories) and visually validate trained policies to ensure the task will perform as expected when deployed. Generating these multi-robot simulation models is cumbersome due to the complexity of the tasks, environments, and models involved, and often requires advanced technical knowledge. Due to this, a typical factory worker cannot train or program a robot arm via imitation learning, because this requires ML expertise to work with simulation tools and environment generation. In other words, experts with the demonstration knowledge often lack the knowledge to work with traditional robot training systems. Thus, traditional training of multi-robot systems typically requires additional resources.

[0018] The present disclosure provides apparatus and imitation learning methodologies for effectively and simultaneously training multiple robots for collaborative tasks (e.g., collaborative object handling, collaborative assembly, collaborative maintenance, etc.). These apparatus and imitation learning methods simultaneously obtain expert demonstrations for multiple cooperating robots and simultaneously train multiple robots performing different roles so that the total number of user demonstrations can be reduced. In this manner, the disclosed apparatus and training methodologies can be scaled and require fewer demonstrations than conventional methods as the number of robots being trained increases.

[0019] Generally, the present disclosure allows a single ML model to be trained for all of the cooperating robots. In contrast, conventional methods train different ML models for each individual robot in a group. Additionally, the present disclosure enables generating a training and visualization environment using visual analysis and image learning algorithms. For example, the present disclosure provides for collecting expert demonstrations via a camera array and markers attached to an expert demonstrator (e.g., the demonstrator's hand or the like) and the object being manipulated. The markers tracked by the camera array are used to simultaneously acquire reference trajectories for training multiple separate robot arms performing different roles in a collaborative task, such as the collaborative assembly of parts. Different from the above, the present disclosure provides for simultaneously acquiring all reference trajectories for all cooperating robots (e.g., in as few demonstration sessions as possible) and training a single policy ML model that is trained to output actions for all cooperating robots in the system.

[0020] Additionally, the present disclosure provides for generating a simulated environment based on images captured by a camera array. For example, the images can be processed to identify the layout of the environment in which the collaborative task is to be performed and to identify objects to be manipulated as part of the collaborative task. Furthermore, the images can be processed to identify the number of robots and their starting positions. In some examples, the simulated environment can be used to validate an ML model and / or provide feedback during training of the ML model.

[0021] Thus, the present disclosure can provide training for a multi-robot system to perform a collaborative task "once." An expert demonstrator wears a marker and performs the task in a real-world (e.g., factory) setting. The system provides for identifying a trajectory associated with the demonstration, generating a simulated environment, and training a single ML model to learn a policy and control all robots in the multi-robot system based on the trajectory and the simulated environment.

[0022] FIG. 1 illustrates a multi-robot system 100 according to a non-limiting example of the present disclosure. The multi-robot system 100 is provided for illustrative purposes only and is not intended to be limiting. However, assuming the present disclosure provides for training of the multi-robot system, an example of the multi-robot system 100 is shown. The multi-robot system 100 includes a robot 102, a robot 104, and an object 106. Generally, the robots 102 and 104 are arranged to manipulate the object 106. As envisioned in the present disclosure, the robots 102 and 104 may be any type of robot, such as a robot arm (e.g., as shown) having an articulated joint 108 and a gripper 110. The robots 102 and 104 may be fixed or movable. Furthermore, the gripper 110 may be any of a variety of grippers, such as, for example, a hand, pincher, or magnet. The present disclosure provides an apparatus and methodology for training ML models for use in controlling the robots 102 and 104. In general, multi-robot system 100 may be implemented in any of a variety of applications, such as industrial, retail, manufacturing, security, or residential applications, for example. Objects 106 manipulated by robots 102 and 104 may be any type of object, and examples are not provided given the comprehensive nature of these possible examples.

[0023] 2 illustrates a multi-robot training system 200 according to a non-limiting example of the present disclosure. The multi-robot training system 200 includes a data collection and simulation system 300 and an ML model training system 400. The individual subsystems of the data collection and simulation system 300 and the ML model training system 400 are described in more detail below. Generally, however, the multi-robot training system 200 is arranged to provide policy learning for multiple robots simultaneously using a single ML model. For example, the multi-robot training system 200 may be provided to train an ML model (see FIG. 5 ) for use in controlling the robots 102 and 104 of the multi-robot system 100 that are cooperating to manipulate the object 106.

[0024] The data collection and simulation system 300 provides for in situ collection of trajectories for the collaborative task for which the robot is being trained. Additionally, the data collection and simulation system 300 is provided with predictive state estimation constraints that, when combined with an imitation learning algorithm (e.g., implemented by the ML model training system 400), allow the policy to be learned with reduced trajectories required for training relative to traditional learning methodologies.

[0025] Additionally, the data collection and simulation system 300 provides multi-robot simulation for specific tasks and robot configurations. Specifically, the data collection and simulation system 300 provides a computer vision system that is configured to generate a multi-robot simulation model based on trajectories obtained from demonstrations.

[0026] The ML model training system 400 provides training for an ML model (e.g., ML model 500) based on trajectories collected via the data collection and simulation system 300 and a simulation environment generated by the data collection and simulation system 300.

[0027] 3 illustrates a data collection and simulation system 300 according to a non-limiting example of the present disclosure. Generally, the data collection and simulation system 300 is a system for capturing images of robot states and / or actions from an expert demonstrator (e.g., a human demonstrator) during a demonstration. The data collection and simulation system 300 includes a computing device 302, a camera array 312, and markers 314.

[0028] Generally, the markers 314 can be any of a variety of markers used to identify a trajectory during demonstration. For example, the markers 314 can be OpenCV ArUco markers. Specifically, the expert demonstrator can wear a marker 314 on each hand. Each marker 314 can have a unique identifier (ID) to which an individual robot in a collaborative robot system (e.g., multi-robot system 100) can be mapped. Alternatively, the markers 314 can have a marker ID 320 that can be mapped to a robot ID 322. In some examples, the robot ID 322 is assigned the marker ID 320 prior to demonstration. Note that the markers can be attached to multiple locations. Specifically, the markers 314 can be attached to multiple parts of the expert demonstrator (e.g., the right hand, left hand, arm, right foot, left foot, or fingers, etc.). Similarly, the markers 314 can be attached to fixed locations or reference points and to manipulated objects. For example, markers 314 attached to fixed locations can be used to translate and combine marker positions obtained from different cameras of camera array 312 recorded during a demonstration.

[0029] In general, the markers 314 may be attached to the expert demonstrator in a number of ways. As one example, the markers 314 may be stickers arranged for quick attachment to parts of the expert demonstrator (e.g., hands, fingers, wrists, or arms, etc.). As another example, the markers 314 may be implemented as gloves having graphical markers (e.g., AcUco markers or the like) or electronic markers (e.g., radio frequency identification (RFID) emitters or infrared (IR) emitters, etc.). Additionally, the gloves may be equipped with sensors (e.g., pressure sensors or temperature sensors, etc.). Furthermore, the markers 314 may be attached to objects manipulated by the expert demonstrator and to fixed objects (or reference points) in the environment.

[0030] The camera array 312 may include any of a variety of cameras (e.g., video cameras, still cameras, IR cameras, ArUco reader cameras, RFID reader cameras, etc.), provided that the cameras of the camera array 312 are positioned to read, scan, or otherwise image the markers 314. The cameras in the camera array 312 may be positioned in the real-world environment in which the demonstration will be performed. Furthermore, the placement of the cameras in the camera array 312 may be based on the task being demonstrated. For example, in a task in which the robots in a collaborative robot system are close to each other while collaborating, more cameras may be used, and the cameras may be placed in different positions and orientations around the environment to mitigate any occlusions that may occur during the expert demonstration.

[0031] Generally, computing device 302 is coupled to camera array 312 and is arranged to receive information data or images 318 from camera array 312 and to generate imitation training dataset 324 on which an ML model (e.g., ML model 500 or the like) can be trained. Computing device 302 includes processor 304, memory 306, input and / or output (I / O) devices 308, and network interface 310.

[0032] The processor 304 may include circuitry or processor logic, such as, for example, any of various commercially available processors. In some examples, the processor 304 may include multiple processors, a multithreaded processor, a multi-core processor (whether multiple cores coexist on the same or separate die), and / or some other variety of multi-processor architectures in which multiple physically separate processors are linked in some manner. Additionally, in some examples, the processor 304 may include a graphics processing unit, dedicated memory, multithreaded processing, and / or some other parallel processing capability. In some examples, the processor 304 may be an application-specific integrated circuit (ASIC) or a field-programmable integrated circuit (FPGA).

[0033] Memory 306 may include logic, a portion of which includes an array of integrated circuits forming non-volatile memory or a combination of non-volatile and volatile memory for persistently storing data. It will be appreciated that memory 306 may be based on any of a variety of technologies. In particular, the array of integrated circuits included in memory 120 may be arranged to form one or more types of memory, such as, for example, dynamic random access memory (DRAM), NAND memory, or NOR memory.

[0034] The I / O devices 308 may be any of a variety of devices for receiving input and / or providing output. For example, the I / O devices 308 may include a keyboard, a mouse, a joystick, foot pedals, a display, a touch-enabled display, a haptic feedback device, or an LED, etc.

[0035] The network interface 310 may include logic and / or functionality to support a communication interface. For example, the network interface 310 may include one or more interfaces operating according to various communication protocols or standards for communicating over a direct link or a network communication link. Direct communication may occur through the use of communication protocols or standards (including successors and variations) described in one or more industry standards. For example, the network interface 310 may facilitate communication over a bus such as, for example, a Peripheral Component Interconnect Express (PCIe), Non-Volatile Memory Express (NVMe), Universal Serial Bus (USB), System Management Bus (SMBus), SAS (e.g., a Serial Attached Small Computer System Interface (SCSI)) interface, or a Serial ATA Attachment (SATA) interface. Additionally, the network interface 310 may include logic and / or functionality to enable communication over various wired or wireless network standards (e.g., the 802.11 communication standard). For example, the network interface 310 may be arranged to support a wired communication protocol or standard, such as Ethernet or the like. As another example, the network interface 310 may be arranged to support a wireless communication protocol or standard, such as Wi-Fi, Bluetooth, Zigbee, LTE, or 5G.

[0036] The memory 306 may include instructions 316, images 318, marker IDs 320, robot IDs 322, imitation training datasets 324, robot simulation datasets 332, predicted object states 338, and ML models 500.

[0037] The imitation training dataset 324 includes trajectories 326, object states 328, and robot parameters 330, while the robot simulation dataset 332 includes environment layouts 334 and object layouts 336.

[0038] During operation, the processor 304 can execute instructions 316 to receive images 318 from the camera array 312. Further, the processor 304 can execute instructions 316 to process the images 318 to detect markers 314 in the images 318 and determine the positions of the markers relative to the environment, fixed points or objects, etc. For example, the instructions 316 can include a ROS node (e.g., based on the OpenCV library or the like) that, when executed by the processor 304, can publish a marker ID 320 and a calculated position from each of the images 318. The calculated positions can be stored as a trajectory 326. Similarly, the marker 314 can be attached to an object to be manipulated (e.g., object 106 or the like), and an object state or position can be derived as shown above. The calculated object state can be stored as an object state 328.

[0039] Additionally, processor 304 can execute instructions 316 to apply image recognition techniques to image 318. As a specific example, processor 304 can execute instructions 316 to detect facial features (e.g., blinking, opening the mouth, smiling or responding, etc.) and associate the detected facial expressions with the expert demonstrator based on markers 314. In some examples, facial expressions can be used to provide indications of various robot parameters (e.g., grip actuators or the like). In another example, I / O device 308 can be used to provide indications of actions associated with the demonstration. For example, pressure applied by the expert demonstrator to an object being manipulated can be captured (e.g., based on sensors in a glove or the expert demonstrator's facial expression, etc.). Processor 304 can execute instructions 316 to store the identified actions as robot parameters 330.

[0040] Accordingly, a data collection and simulation system 300 is described, in which a task-related trajectory for a collaborative robot can be captured. For example, if a first expert demonstrator raises his arm upward, the same movement is reflected by trajectory 326. Trajectory 326 is used to train an ML model to control the first robot to perform a corresponding action or movement.

[0041] The data collection and simulation system 300 additionally utilizes visual perception to generate a simulated environment to simulate the robots performing a task collaboratively for use in providing feedback throughout the training process. Alternatively, the processor 304 can execute instructions 316 to generate an intermediate task simulation environment with required objects and as many robots as necessary before the expert demonstrator begins demonstrating the collaborative task.

[0042] The processor 304 can execute the instructions 316 to determine an environment layout 334 (e.g., tables, objects, number of robot arms, initial robot positions, etc.). In some examples, the processor 304 can execute the instructions 316 to determine the number of robot arms needed to accomplish a task based on the number of markers 314. Additionally, the processor 304 can execute the instructions 316 to determine an initial pose of the robot, for example, based on the initial orientation of the markers 314.

[0043] The processor 304 further executes instructions 316 to identify an object layout 336 including the types and poses of objects to be manipulated by the robots (e.g., robots 102 and 104). In some examples, the markers 314 may include a subset of markers or multiple different types of markers. For example, one type of marker 314 may be used to mark the robot, while another type of marker 314 may be used to mark the object, and yet another type of marker 314 may be used to mark a fixed reference position.

[0044] 4 illustrates an ML model training system 400 according to a non-limiting example of the present disclosure. In some examples, the ML model training system 400 may be implemented by a computing device, such as the computing device 302. For example, the ML model training system 400 may be implemented by instructions 316 executable by the processor 304. Generally, the ML model training system 400 may be arranged to train an ML model 500 based on an imitation learning dataset 324 and a robot simulation dataset 332.

[0045] The ML model training system 400 may include an ML training instruction set 402 and a robot simulation instruction set 404. The ML training instruction set 402 may utilize one or more ML model training algorithms (e.g., backpropagation, convolutional, or adversarial, etc.) to train the ML model 500 from the imitation learning dataset 324 and the robot simulation dataset 332. Training the ML model 500 is often an iterative process in which weights and connections within the ML model 500 are adjusted to converge to a satisfactory level of inference for the ML model 500 (e.g., outputting a robot action, or the like). It should be noted that a variety of ML model training algorithms may be provided in accordance with this disclosure. However, one exemplary training methodology is described below with reference to the ML model 500 and FIG. 5 .

[0046] The robot simulation instruction set 404 provides a simulation of the robot being trained. For example, the ML model 500 may be configured to output control actions (e.g., motion control actions or gripper status control actions, etc.), and the robot simulation instruction set 404 may be provided to simulate a predicted object state 338 based on these outputs. The predicted object state 338 along with the imitation learning dataset 324 and the robot simulation dataset 332 may be used to train and / or test the ML model 500.

[0047] FIG. 5 illustrates an ML model 500 according to a non-limiting example of the present disclosure. The ML model 500 is shown as a multi-layer neural network. However, in practice, the ML model 500 may be any of a variety of ML models, such as, for example, a neural network (as shown), a convolutional neural network, a fuzzy logic network, or a decision tree network. The example is not limiting in this context. The ML model 500 includes an input layer 502, a hidden layer 504, and an output layer 506. Generally, the multi-robot training system 200 may be configured to train the ML model 500. More specifically, the ML training instruction set 402 may be configured to train the ML model 500 based on data (e.g., trajectories or the like) captured by the data collection and simulation system 300.

[0048] The input layer 502 includes inputs for input states 508a, 508b, 508c, and 508d. Generally, the input states 508a, 508b, 508c, and 508d may be states (or inputs) associated with the robots in the system (e.g., robots 102 and 104, etc.), the states of the objects or features (e.g., object 106 or the like) manipulated by the robots, and inputs associated with the objective of the multi-robot system 100 that the ML model 500 is trained to control. The hidden layer 504 includes multiple neurons. In practice, each layer of neurons in the hidden input layer 502 may have many neurons (e.g., 64, 128, 256, etc.). However, for simplicity of illustration, hidden neurons 510a, 510b, 510c, 510d, 512a, 512b, 512c, and 512d are shown. In general, the neurons in the hidden layer 504 may be fully connected (e.g., as shown) or not. Furthermore, the neurons in the hidden layer 504 may have any of a variety of activation functions. In a specific example, the neurons in the hidden layer 504 may have a rectified linear unit (ReLu) activation function. The output layer 506 includes output neurons 514a, 514b, 514c, and 514d and output states 516a, 516b, 516c, and 516d. The output neurons may have the same or a different activation function (e.g., hyperbolic tangent (Tanh) or the like) as the neurons in the hidden layer. The output states 516a, 516b, 516c, and 516d may correspond to actions of the robot (e.g., robots 102 and 104, etc.) and predicted future states of the manipulated object (e.g., object 106 or the like).

[0049] As a specific example, the input states may correspond to robot actions (e.g., gripper displacement, actuation, etc.) between successive time steps. In some examples, data corresponding to robot states and object states is collected (discussed in more detail below). The input data corresponding to the robot states and / or object states may be normalized. Such input data may be normalized via various techniques, such as, for example, sample mean or variance. The normalized input data is concatenated and used as input to the neural network.

[0050] The ML model 500 is trained using a weighted combination of trajectory, gripper actuation, and estimation loss. For example, the trajectory loss (Trajector_MSE) may be derived as the mean squared error (MSE) between the predicted gripper state and the actual gripper state performed at that stage during expert demonstration. In particular, the training loss used during training of the ML model 500 may be Loss = Trajectory_MSE + α × Actuation_MSE + β × State_estimation_MSE. The gripper actuation loss (Actuation_MSE) may be the MSE between the predicted gripper force and its demonstration. Similarly, the state estimation loss (State_estimation_MSE) may be the loss between the predicted future object state and the object state observed during the task demonstration. The variables alpha (α) and beta (β) are scalars that may be tuned as hyperparameters during training or may be left constant. Note that in some examples, the state estimation output is used in the training phase of the learning process, and the associated loss behavior is used as an auxiliary cost function that allows the ML model 500 to train using a smaller number of expert trajectories.

[0051] As mentioned, the data collection and simulation system 300 includes a camera array 312 positioned to capture images from multiple angles or viewpoints during an expert demonstration. FIGS. 6A and 6B show images 600a and 600b, respectively. These images may correspond to image 318 captured by camera array 312 during a demonstration. Images 600a and 600b show markers 602a, 602b, and 602c from different angles. Note that multiple viewpoints or angles are captured to create redundancy. Redundancy improves the accuracy of the position estimate from which trajectory 326 (e.g., as described above) is calculated and is particularly useful when some markers (e.g., marker 314 or the like) may disappear from one image due to occlusion. For example, marker 602c from image 600b is less clear or visible than in image 600a. In some demonstrations, the expert demonstrator or an object may occlude marker 314 from the field of view of one or more of the cameras in camera array 312.

[0052] The processor 304 can execute instructions 316 to process frames or images from the camera array in parallel to generate an imitation training dataset 324. For example, a trajectory 326 can be determined based on the positions of markers 602a and 602b relative to fixed marker 602c. Similarly, robot parameters 330 can be determined based on facial recognition or other received input. For example, a microphone can be active and record verbal commands (e.g., open gripper, close gripper, light touch, firm grip, etc.). These commands are stored as robot parameters 330. Frames of images 318 captured prior to demonstration can similarly be processed in parallel to determine the environment layout 334 and object layout 336 described above.

[0053] Further, the processor 304 can execute instructions 316 to generate a simulated environment (e.g., as reflected by a robot simulation dataset 332 or the like). The simulated environment is used for both data collection (e.g., determining a trajectory 326 or the like) and for identifying the robots 102 and 104 for use in completing the collaborative task. For example, the processor 304 can execute instructions 316 to generate a task simulation environment with the required objects and number of robots before the expert begins demonstrating the collaborative task. Environmental parameters associated with the simulated environment can be extracted using the task image layout (e.g., the number of tables, objects, robot arms, or their positions, etc.) and stored in the environment layout 334 and / or the object layout 336. In some examples, an initial operation can be to determine the number of robot arms needed to accomplish the task. For example, the processor 304 can execute instructions 316 to determine the required number of robot arms based on the number of markers 314 worn by the expert demonstrator as reflected in the image 318. Additionally, the processor 304 may execute instructions 316 to determine an initial pose for the robot within the simulation.

[0054] The processor 304 can then execute instructions 316 to recognize the type and pose of the manipulated object (e.g., object 106 or the like). For example, the processor 304 can execute instructions 316 to identify the type of object based on an object recognition package such as YOLOv3, which may be trained on a predefined library of standards (e.g., cubes or cylinders, etc.). Additionally, the processor 304 can execute instructions 316 to identify the pose of the object based on markers 314 present on the object. As described above, markers 314 of different types (e.g., colors or patterns, etc.) can be used to distinguish between expert demonstrators and objects.

[0055] 7 illustrates a routine 700 according to a non-limiting example of the present disclosure. Generally, the routine 700 may be implemented by a computing device, such as the computing device 302. The routine 700 relates to solving technical problems related to training robots, and specifically, to training multiple robots to cooperate in performing a task. The routine 700 may begin at blocks 702, 722, and 730. At block 702, "Simulated Robot Pivot Position," pivot positions (e.g., poses or updated poses, etc.) of the robots 102 and 104 are determined. Similarly, at block 722, "Identify Markers and Their Positions," the markers 314 and their respective positions are determined. Additionally, at block 730, "Robot Operational State," the operational states of the robots 102 and 104 (e.g., gripper states, open / closed, or the like) are determined. For example, processor 304 may execute instructions 316 to process image 318 and identify markers 314 and "clues" (e.g., facial features or the like) to determine a simulated robot position, initial marker positions, and robot actuation states.

[0056] Block 722 is followed by blocks 724, 726, and 728. In block 724, "Demonstrator Marker Location," the location of the marker associated with the demonstrator is determined, while in block 728, "Fixed Marker Location," the location of the fixed marker is determined. Further, in block 726, "Map Marker to Robot," the identified marker is mapped to a particular robot, for example, based on a marker ID associated with a teaching robot or the like. For example, processor 304 can execute instructions 316 to determine the mapping between the marker and a particular robot and to determine the location of both the fixed and attached markers to the demonstrator.

[0057] From blocks 702, 724, and 728, the position of the robot arm (e.g., gripper 110 or the like) may be determined, and in block 704, the position may be transformed and / or scaled. Routine 700 continues at blocks 706 and 732. In block 706, "Set Robot Gripper Position in Simulator," and block 732, "Set Robot Actuation State in Simulator," the positions and states of the grippers 110 of the robots 102 and 104 may be set in the simulator. Continuing to block 708, "Derive Robot Action," actions for the robots 102 and 104 are derived from the positions and states of the grippers 110. For example, processor 304 can execute instructions 316 to derive actions for the robots 102 and 104 based on the determined positions and states of the grippers 110.

[0058] From block 708, subroutine block 710 "Multi-Robot Environmental Simulator" determines the state of the environment based on the derived robot actions. For example, processor 304 can execute instructions 316 to determine the state of the environment (e.g., environment layout 334, object layout 336, or predicted object state 338, etc.) based on the derived robot actions.

[0059] Continuing to blocks 712 "Get Environmental State" and 714 "Get Task Completion Status," the current environmental state and the completion status of the task may be identified from the determined state of the environment. At decision block 716, "Task Executed?" is determined based on the environmental state and task completion status determined at blocks 712 and 714. From decision block 716, the routine 700 is complete, and at block 718 "Save Trajectory," trajectory 326 is saved based on the robot action determined at block 708, or the robot action determined at block 708 is saved as a trajectory, and the routine 700 continues to determine additional trajectories.

[0060] 8 illustrates a routine 800 according to a non-limiting example of the present disclosure. Generally, the routine 800 may be implemented by a computing device, such as the computing device 302. The routine 800 relates to solving a technical problem related to training robots, and specifically, to training multiple robots to collaborate in performing a task. The routine 800 may begin at block 802. At block 802, "Receive, at a computer, images captured by an array of cameras disposed in an environment in which at least two expert demonstrators demonstrate a collaborative task involving an object," images captured during the experts' demonstration of the collaborative task may be received. For example, the processor 304 of the computing device 302 may execute instructions 316 to receive images 318 from the camera array 312.

[0061] Continuing to block 804, "Identify number of markers from image," markers within the image may be identified. For example, the processor 304 of the computing device 302 may execute the instructions 316 to identify the markers 314 from the image 318 received in block 802. For example, the processor 304 may execute the instructions 316 to identify the markers 314 from the image 318 via image recognition techniques or via another method (e.g., RFID or IR sensing techniques, etc.).

[0062] Continuing to block 806, "Identify initial state of object based on image and number of markers," an initial state of the object to be manipulated by the expert during the expert demonstration may be identified. For example, the processor 304 of the computing device 302 may execute the instructions 316 to identify an initial state of the object to be manipulated (e.g., object 106 or the like). In some examples, the initial state of object 106 may be identified based on markers 314 attached to the object and markers 314 attached to fixed reference points or the environment layout 334.

[0063] Continuing to block 808, "Determine number of trajectories associated with collaborative task from image and number of markers," a trajectory associated with the collaborative task (e.g., manipulation of an object, or the like) is determined. For example, the processor 304 of the computing device 302 may execute the instructions 316 to determine a trajectory 326 associated with a collaborative task, such as manipulation of the object 106 by an expert demonstrator.

[0064] Continuing to block 810 "Train an ML model to output control states for multiple robots to cooperate to perform a collaborative task involving an object based on a trajectory and an initial object state," the ML model can be trained to output control states for robots in a multi-robot system to perform a collaborative task. For example, the processor 304 of the computing device 302 can execute the instructions 316 to train the ML model 500 to output control states for the robots 102 and 104 to cooperatively manipulate the object 106 based on the trajectory 326 and the object state 328, including the initial object state and the predicted object state 338.

[0065] FIG. 9 illustrates a computer-readable storage medium 900. The computer-readable storage medium 900 may include any non-transitory computer-readable or machine-readable storage medium, such as an optical, magnetic, or semiconductor storage medium. In various embodiments, the computer-readable storage medium 900 may include an article of manufacture. In some embodiments, the computer-readable storage medium 900 may store computer-executable instructions 902 that a circuit (e.g., processor 304 or the like) can execute. For example, the computer-executable instructions 902 may include instructions for implementing the operations described in connection with instructions 316, routine 700, and / or routine 800. Examples of the computer-readable storage medium 900 or machine-readable storage medium may include any tangible medium capable of storing electronic data, including volatile or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or rewritable memory, etc. Examples of computer-executable instructions 902 may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, object-oriented code, and visual code.

[0066] FIG. 10 illustrates an embodiment of system 1000. System 1000 is a computer system having multiple processor cores, such as a distributed computing system, a supercomputer, a high-performance computing system, a computing cluster, a mainframe computer, a minicomputer, a client-server system, a personal computer (PC), a workstation, a server, a portable computer, a laptop computer, a tablet computer, a handheld device such as a personal digital assistant (PDA), or other device for processing, displaying, or transmitting information. Similar embodiments may include entertainment devices, such as, for example, a portable music or video player, a smartphone or other mobile phone, a telephone, a digital video camera, a digital still camera, or an external storage device. Further embodiments implement larger server configurations. In other embodiments, system 1000 may have a single processor including one core, or more than one processor. Note that the term “processor” may refer to a processor with a single core or a processor package with multiple processor cores. In at least one embodiment, computing system 1000 represents a component of multi-robot training system 200. As a specific example, system 1000 represents components of computing device 302. More generally, computing system 1000 is configured to implement all of the logic, systems, logic flows, methods, apparatus, and functionality described herein with reference to Figures 1 through 9.

[0067] As used herein, the terms “system,” “component,” and “module” are intended to refer to a computer-related entity that is either hardware, a combination of hardware and software, software, or software in execution, an example of which is provided by exemplary system 1000. For example, a component may be, but is not limited to, a process running on a processor, a processor, a hard disk drive, multiple storage drives (optical and / or magnetic), an object, an executable file, a thread of execution, a program, and / or a computer. By way of example, both an application running on a server and the server may be a component. One or more components may reside within a process and / or thread of execution, and a component may be localized on one computer and / or distributed between two or more computers. Furthermore, components may be communicatively coupled to each other by various types of communication media to coordinate operations. This coordination may involve unidirectional or bidirectional exchange of information. For example, components may communicate information in the form of signals transmitted across a communication medium. Information may be implemented as signals assigned to various signal lines. In such assignments, each message is a signal. However, further embodiments may alternatively use data messages. Such data messages may be transmitted across a variety of connections. Exemplary connections include parallel interfaces, serial interfaces, and bus interfaces.

[0068] As shown in this figure, system 1000 includes a motherboard or system-on-chip (SoC) 1002 for mounting platform components. Motherboard or system-on-chip (SoC) 1002 is a point-to-point (P2P) interconnect platform including a first processor 1004 and a second processor 1006 coupled via a point-to-point interconnect 1070, such as an Ultra Path Interconnect (UPI). In other embodiments, system 1000 may have another bus architecture, such as a multi-drop bus. Furthermore, each of processor 1004 and processor 1006 may be a processor package having multiple processor cores, including core 1008 and core 1010, respectively, and multiple registers, such as register 1012 and register 1014, memory, or cache. System 1000 is an example of a two-socket (2S) platform, although other embodiments may include more than two sockets or only one socket. For example, some embodiments may include a four-socket (4S) platform or an eight-socket (8S) platform. Each socket is a mount for a processor and may have a socket identifier. Note that the term platform refers to a motherboard with certain components mounted thereon, such as the processor 1004 and chipset 1032. Some platforms may include additional components, and some platforms may only include sockets for mounting the processor and / or chipset. Furthermore, some platforms may not have a socket (e.g., an SoC or the like).

[0069] Processor 1004 and processor 1006 may be any of a variety of commercially available processors, including, but not limited to, Intel® Celeron®, Core®, Core(2) Duo®, Itanium®, Pentium®, Xeon®, and XScale® processors, AMD® Athlon®, Duron®, and Opteron® processors, ARM® applications, embedded, and secure processors, IBM® and Motorola® DragonBall® and PowerPC® processors, IBM and Sony® Cell processors, and similar processors. Dual microprocessors, multi-core processors, and other multiprocessor architectures may also be used as processor 1004 and / or processor 1006. Additionally, processor 1004 need not be identical to processor 1006.

[0070] Processor 1004 includes an integrated memory controller (IMC) 1020 and point-to-point (P2P) interfaces 1024 and 1028. Similarly, processor 1006 includes an IMC 1022 and P2P interfaces 1026 and 1030. IMC 1020 and IMC 1022 couple processors, processor 1004 and processor 1006, respectively, to respective memories (e.g., memories 1016 and 1018). Memory 1016 and memory 1018 may be portions of main memory (e.g., dynamic random access memory (DRAM)) for the platform, such as double data rate type 3 (DDR3) or type 4 (DDR4) synchronous DRAM (SDRAM). In this embodiment, memory, memory 1016 and memory 1018, is locally attached to the respective processors (i.e., processor 1004 and processor 1006). In other embodiments, the main memory may be coupled to the processor via a bus and a shared memory hub.

[0071] System 1000 includes a chipset 1032 coupled to processor 1004 and processor 1006. Further, chipset 1032 may be coupled to storage device 1050, for example, via interface (I / F) 1038. I / F 1038 may be, for example, a Peripheral Component Interconnect Enhanced (PCI-e). Storage device 1050 may store instructions executable by circuitry of system 1000 (e.g., processor 1004, processor 1006, GPU 1048, ML accelerator 1054, or vision processing unit 1056, etc.). For example, storage device 1050 may store computer-readable storage medium 900, specifically instructions 316, and / or instructions for routine 800, etc.

[0072] Processor 1004 couples to chipset 1032 via P2P interfaces 1028 and 1034, while processor 1006 couples to chipset 1032 via P2P interfaces 1030 and 1036. Direct Media Interface (DMI) 1076 and DMI 1078 may couple to P2P interfaces 1028 and 1034 and P2P interfaces 1030 and 1036, respectively. DMI 1076 and DMI 1078 may be interconnects such as DMI 3.0, facilitating transfer speeds of, for example, 8 gigabits per second (GT / s). In other embodiments, processor 1004 and processor 1006 may be interconnected via a bus.

[0073] Chipset 1032 may include a controller hub, such as a platform controller hub (PCH). Chipset 1032 may include a system clock for performing clocking functions and may include interfaces for I / O buses to facilitate connection of peripheral devices on the platform. These interfaces include, for example, Universal Serial Bus (USB), Peripheral Component Interconnect (PCI), Serial Peripheral Interconnect (SPI), and Integrated Interconnect (I2C). In other embodiments, chipset 1032 may include more than one controller hub, such as a chipset having a memory controller hub, a graphics controller hub, and an input / output (I / O) controller hub.

[0074] In the illustrated example, chipset 1032 couples via I / F 1042 to a trusted platform module (TPM) 1044 and a UEFI, BIOS, and flash circuitry 1046. TPM 1044 is a dedicated microcontroller designed to secure hardware by integrating cryptographic keys into the device. UEFI, BIOS, and flash circuitry 1046 may provide pre-boot code.

[0075] Additionally, chipset 1032 includes a graphics processing circuit or I / F 1038 for coupling chipset 1032 to a high-performance graphics engine, such as a graphics processing unit (GPU) 1048. In other embodiments, system 1000 may include a flexible display interface (FDI) (not shown) between processor 1004 and / or processor 1006 and chipset 1032. The FDI interconnects graphics processor cores in one or both of processor 1004 and / or processor 1006 with chipset 1032.

[0076] Additionally, an ML accelerator 1054 and / or a visual processing unit 1056 may be coupled to the chipset 1032 via the I / F 1038. The ML accelerator 1054 may be circuitry arranged to perform ML-related operations (e.g., training, inference, etc.) for ML models. Similarly, the visual processing unit 1056 may be circuitry arranged to perform specific or related operations of visual processing. In particular, the ML accelerator 1054 and / or the visual processing unit 1056 may be arranged to perform mathematical operations and / or operands useful for machine learning, neural network processing, artificial intelligence, visual processing, etc.

[0077] Various I / O devices 1060 and display 1052 couple to bus 1072 along with bus bridge 1058, which couples bus 1072 to a second bus 1074 and I / F 1040, which connects bus 1072 to chipset 1032. In one embodiment, second bus 1074 may be a low pin count (LPC) bus. Various devices may couple to second bus 1074 including, for example, keyboard 1062, mouse 1064, and communication device 1066.

[0078] Additionally, an audio I / O 1068 may couple to a second bus 1074. Many of the I / O devices 1060 and communication devices 1066 may reside on the motherboard or system on a chip (SoC) 1002, although the keyboard 1062 and mouse 1064 may be add-on peripherals. In other embodiments, some or all of the I / O devices 1060 and communication devices 1066 are add-on peripherals and are not present on the motherboard or system on a chip (SoC) 1002.

[0079] The following examples relate to further embodiments, from which numerous variations and configurations will become apparent.

[0080] (Example 1) 1. A computing device comprising: a processor; Memory that stores instructions and Equipped with The instructions, when executed by the processor, receiving an indication of a plurality of images, the plurality of images being captured by an array of cameras positioned within an environment in which at least two expert demonstrators are demonstrating a collaborative task involving at least one object; identifying a plurality of markers from the plurality of images; identifying an initial state of the object from the plurality of images and the plurality of markers; determining a plurality of trajectories associated with the collaborative task from the plurality of images and the plurality of markers; training a machine learning (ML) model to output control states for at least two robots to cooperate to perform the collaborative task involving the object based on the trajectory and the initial state of the object; configuring the device to perform Computing equipment.

[0081] (Example 2) 2. The computing device of Example 1, wherein the instructions, when executed by the processor, further configure the device to: determine initial states of the at least two expert demonstrators based on the markers identified from the plurality of images and the plurality of markers.

[0082] (Example 3) The instructions, when executed by the processor, identifying at least one fixed marker from the plurality of images; determining the plurality of trajectories based on positions of the plurality of markers relative to the fixed marker; 2. The computing device of Example 1, further configured to execute:

[0083] (Example 4) The instructions, when executed by the processor, identifying a first mapping between at least a first of the plurality of markers and a first robot; identifying a second mapping between at least a second of the plurality of markers and a second robot; training the ML model based on the trajectory, the initial state of the object, the first mapping, and the second mapping; 2. The computing device of Example 1, further configured to execute:

[0084] (Example 5) 5. The computing device of Example 4, wherein the instructions, when executed by the processor, further configure the device to identify a layout of the environment from the plurality of images.

[0085] (Example 6) 6. The computing device of Example 5, wherein the instructions, when executed by the processor, further configure the device to train the ML model based on the trajectory, the initial state of the object, the first mapping, the second mapping, and the layout.

[0086] (Example 7) The instructions, when executed by the processor, simulating an updated object state from the initial object state, the layout, and the control states of the at least two robots; training the ML model based on the trajectory, the initial state of the object, the first mapping, the second mapping, the layout, and the updated object state; 7. The computing device of Example 6, further configured to execute:

[0087] (Example 8) A non-transitory computer-readable storage medium containing instructions that, when executed by a computer, receiving, at a computer, a plurality of images, the plurality of images being captured by an array of cameras positioned within an environment in which at least two expert demonstrators are demonstrating a collaborative task involving at least one object; identifying a plurality of markers from the plurality of images; identifying an initial state of the object from the plurality of images and the plurality of markers; determining a plurality of trajectories associated with the collaborative task from the plurality of images and the plurality of markers; training a machine learning (ML) model to output control states for at least two robots to cooperate to perform the collaborative task involving the object based on the trajectory and the initial state of the object; causing the computer to execute A computer-readable storage medium.

[0088] (Example 9) 9. The computer-readable storage medium of Example 8, wherein the instructions further cause the computer to perform a procedure of determining initial states of the at least two expert demonstrators based on the markers identified from the plurality of images and the plurality of markers.

[0089] (Example 10) The instruction: identifying at least one fixed marker from the plurality of images; determining the plurality of trajectories based on positions of the plurality of markers relative to the fixed marker; The computer-readable storage medium of Example 8, further causing the computer to execute the following:

[0090] (Example 11) The instruction: identifying a first mapping between at least a first of the plurality of markers and a first robot; identifying a second mapping between at least a second of the plurality of markers and a second robot; training the ML model based on the trajectory, the initial state of the object, the first mapping, and the second mapping; The computer-readable storage medium of Example 8, further causing the computer to execute the following:

[0091] (Example 12) 12. The computer-readable storage medium of Example 11, wherein the instructions further cause the computer to perform, with the processing circuitry of the computer, identifying a layout of the environment from the plurality of images.

[0092] (Example 13) 13. The non-transitory computer-readable storage medium of Example 12, wherein the instructions further cause the computer to perform a procedure of training the ML model based on the trajectory, the initial state of the object, the first mapping, the second mapping, and the layout.

[0093] (Example 14) The instructions include a procedure for simulating, by the processing circuitry of the computer, an updated object state from the initial object state, the layout, and the control states of the at least two robots; training the ML model based on the trajectory, the initial state of the object, the first mapping, the second mapping, the layout, and the updated object state; 14. The computer-readable storage medium of Example 13, further causing the computer to execute:

[0094] (Example 15) receiving at a computer a plurality of images, the plurality of images being captured by an array of cameras positioned within an environment in which at least two expert demonstrators are demonstrating a collaborative task involving at least one object; identifying a plurality of markers from the plurality of images by processing circuitry of the computer; identifying an initial state of the object from the plurality of images and the plurality of markers by the processing circuitry of the computer; determining, by the processing circuitry of the computer, a plurality of trajectories associated with the collaborative task from the plurality of images and the plurality of markers; training a machine learning (ML) model to output control states for at least two robots to cooperate to perform the collaborative task involving the object based on the trajectory and the initial state of the object; 1. A method for training a robot for collaborative behavior, comprising:

[0095] (Example 16) 16. The method for training a robot of Example 15, comprising determining, by the processing circuitry of the computer, initial states of the at least two expert demonstrators based on the identified markers from the plurality of images and the plurality of markers.

[0096] (Example 17) identifying, by the processing circuitry of the computer, at least one fixed marker from the plurality of images; determining the plurality of trajectories based on positions of the plurality of markers relative to the fixed marker; 16. A method for training a robot according to Example 15, comprising:

[0097] (Example 18) identifying a first mapping between at least a first of the plurality of markers and a first robot; identifying a second mapping between at least a second of the plurality of markers and a second robot; training the ML model based on the trajectory, the initial state of the object, the first mapping, and the second mapping; 16. A method for training a robot according to Example 15, comprising:

[0098] (Example 19) 20. The method for training a robot of Example 18, comprising identifying, by the processing circuitry of the computer, a layout of the environment from the plurality of images.

[0099] (Example 20) 20. The method for training a robot of Example 19, comprising: training the ML model based on the trajectory, the initial state of the object, the first mapping, the second mapping, and the layout.

[0100] (Example 21) simulating, by the processing circuitry of the computer, an updated object state from the initial object state, the layout, and the control states of the at least two robots; training the ML model based on the trajectory, the initial state of the object, the first mapping, the second mapping, the layout, and the updated object state; 21. A method for training a robot according to Example 20, comprising:

[0101] (Example 22) 22. An apparatus comprising means arranged to implement the functionality of any one of Examples 15 to 21.

[0102] Other technical features may be readily apparent to those skilled in the art from the following figures, descriptions and claims.

[0103] Additionally, in the foregoing figures, description, and claims, various features are grouped together in a single example to streamline the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed examples require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed example. Accordingly, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate example. In the appended claims, the terms "including" and "in which" are used as the plain-English equivalents of the respective terms "comprising" and "wherein." Furthermore, the use of terms such as "first," "second," and "third" are used as labels only and are not intended to impose numerical requirements on their objects.

[0104] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

[0105] A data processing system suitable for storing and / or executing program code includes at least one processor coupled directly to memory elements or indirectly through a system bus. The memory elements may include local memory used during the actual execution of the program code, mass storage devices, and cache memories that provide temporary storage of at least some program code to reduce the number of times the code is retrieved from mass storage devices during execution. The term "code" encompasses a wide range of software components and constructs, including applications, drivers, processes, routines, methods, modules, firmware, microcode, and subprograms. Thus, the term "code" may be used to refer to any collection of instructions that, when executed by a processing system, performs one or more desired operations.

[0106] The logic circuits, devices, and interfaces described herein may perform functions implemented in hardware and functions implemented using code running on one or more processors. Logic circuitry refers to hardware or hardware and code that implements one or more logical functions. Circuitry is hardware and may refer to one or more circuits. Each circuit may perform a specific function. A circuit within an overall circuit may include individual electrical components, integrated circuits, chip packages, chipsets, or memories interconnected with one or more conductors. Integrated circuits include circuits fabricated on substrates such as silicon wafers and may include components. Additionally, integrated circuits, processor packages, chip packages, and chipsets may include one or more processors.

[0107] A processor may receive signals, such as instructions and / or data, at inputs and process the signals to generate at least one output. During execution of code, the code changes the physical states and characteristics of transistors that make up the processor pipeline. The physical states of the transistors are converted into logical bits of 1 and 0 that are stored in registers within the processor. The processor can transfer the physical states of the transistors to the registers and can transfer the physical states of the transistors to another storage medium.

[0108] A processor may include circuitry for performing one or more sub-functions implemented to perform the overall function of the processor. One example of a processor is a state machine or application specific integrated circuit (ASIC) that includes at least one input and at least one output. A state machine may operate on at least one input to generate at least one output by performing a predetermined series of sequential and / or parallel operations or transformations on the at least one input.

[0109] The logic described above may be part of the design of an integrated circuit chip. The chip design is generated in a graphical computer programming language and stored on a computer or data storage medium (e.g., a disk, tape, physical hard drive, or virtual hard drive such as one in a storage access network). If the designer does not manufacture the chip or the photolithography masks used to manufacture the chip, the designer transmits the resulting design directly or indirectly to such an entity by physical means (e.g., by providing a copy of the storage medium storing the design) or electronically (e.g., over the Internet). The stored design is then converted into an appropriate format for manufacturing (e.g., GDSII).

[0110] The resulting integrated circuit chips may be sold by the manufacturer in raw wafer form as bare die (i.e., as a single wafer with multiple unpackaged chips), or in packaged form. In the latter case, the chips are mounted in a single-chip package (such as a plastic carrier with leads attached to a motherboard or other higher-level carrier) or a multi-chip package (such as a ceramic carrier with either surface interconnects or buried interconnects, or both). In either case, the chips are then integrated with other chips, discrete circuit elements, and / or other signal processing devices as part of either (a) an intermediate product such as a processor board, server platform, or motherboard, or (b) a final product.

[0111] The foregoing description of exemplary embodiments has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. Many modifications and variations are possible in light of this disclosure. It is intended that the scope of the disclosure be limited not by this detailed description, but rather by the claims appended hereto. Future applications claiming priority to this application may claim the disclosed subject matter differently and may generally include any set of one or more limitations variously disclosed or otherwise set forth herein. [Other possible items] (Item 1) 1. A computing device comprising: a processor; Memory that stores instructions and Equipped with The instructions, when executed by the processor, receiving an indication of a plurality of images, the plurality of images being captured by an array of cameras positioned within an environment in which at least two expert demonstrators are demonstrating a collaborative task involving at least one object; identifying a plurality of markers from the plurality of images; identifying an initial state of the at least one object from the plurality of images and the plurality of markers; determining a plurality of trajectories associated with the collaborative task from the plurality of images and the plurality of markers; training a machine learning (ML) model to output control states for at least two robots to cooperatively perform the collaborative task involving the at least one object based on the plurality of trajectories and the initial state of the at least one object; configuring the device to perform Computing equipment. (Item 2) 2. The computing device of claim 1, wherein the instructions, when executed by the processor, further configure the device to: determine initial states of the at least two expert demonstrators based on the identified markers from the images and the markers. (Item 3) The instructions, when executed by the processor, identifying at least one fixed marker from the plurality of images; determining the plurality of trajectories based on positions of the plurality of markers relative to the fixed marker; Item 10. The computing device of item 1, further configured to execute the (Item 4) The instructions, when executed by the processor, identifying a first mapping between at least a first of the plurality of markers and a first robot; identifying a second mapping between at least a second of the plurality of markers and a second robot; training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, and the second mapping; Item 10. The computing device of item 1, further configured to execute the (Item 5) 5. The computing device of claim 4, wherein the instructions, when executed by the processor, further configure the device to identify a layout of the environment from the plurality of images. (Item 6) 6. The computing device of claim 5, wherein the instructions, when executed by the processor, further configure the device to train the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, and the layout. (Item 7) The instructions, when executed by the processor, simulating an updated object state from the initial object state, the layout, and the control states of the at least two robots; training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, the layout, and the updated object state; 7. The computing device of claim 6, further configured to execute: (Item 8) A non-transitory computer-readable storage medium containing instructions that, when executed by a computer, receiving, at a computer, a plurality of images, the plurality of images being captured by an array of cameras positioned within an environment in which at least two expert demonstrators are demonstrating a collaborative task involving at least one object; identifying a plurality of markers from the plurality of images; identifying an initial state of the at least one object from the plurality of images and the plurality of markers; determining a plurality of trajectories associated with the collaborative task from the plurality of images and the plurality of markers; training a machine learning (ML) model to output control states for at least two robots to cooperate to perform the collaborative task involving the at least one object based on the plurality of trajectories and the initial state of the at least one object; causing the computer to execute A computer-readable storage medium. (Item 9) 9. The computer-readable storage medium of claim 8, wherein the instructions further cause the computer to perform a procedure of determining initial states of the at least two expert demonstrators based on the identified markers from the images and the markers. (Item 10) The instruction: identifying at least one fixed marker from the plurality of images; determining the plurality of trajectories based on positions of the plurality of markers relative to the fixed marker; 9. The computer-readable storage medium of item 8, further causing the computer to execute the following: (Item 11) The instruction: identifying a first mapping between at least a first of the plurality of markers and a first robot; identifying a second mapping between at least a second of the plurality of markers and a second robot; training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, and the second mapping; 9. The computer-readable storage medium of item 8, further causing the computer to execute the following: (Item 12) Item 12. The computer-readable storage medium of item 11, wherein the instructions further cause the computer to perform, by the processing circuitry of the computer, a procedure of identifying a layout of the environment from the plurality of images. (Item 13) Item 13. The non-transitory computer-readable storage medium of item 12, wherein the instructions further cause the computer to perform a procedure of training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, and the layout. (Item 14) The instructions include a procedure for simulating, by the processing circuitry of the computer, an updated object state from the initial object state, the layout, and the control states of the at least two robots; training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, the layout, and the updated object state; Item 14. The computer-readable storage medium of item 13, further causing the computer to execute the following: (Item 15) means for receiving, at a computer, a plurality of images, the plurality of images being captured by an array of cameras positioned within an environment in which at least two expert demonstrators are demonstrating a collaborative task involving at least one object; means for identifying a plurality of markers from the plurality of images by processing circuitry of the computer; means for identifying, by the processing circuitry of the computer, an initial state of the at least one object from the plurality of images and the plurality of markers; means for determining, by the processing circuitry of the computer, a plurality of trajectories associated with the collaborative task from the plurality of images and the plurality of markers; means for training a machine learning (ML) model to output control states for at least two robots to cooperate to perform the collaborative task involving the at least one object based on the plurality of trajectories and the initial state of the at least one object; 1. An apparatus for training a robot, comprising: (Item 16) Item 16. The apparatus for training a robot according to item 15, further comprising means for determining, by the processing circuitry of the computer, initial states of the at least two expert demonstrators based on the identified markers from the images and the markers. (Item 17) means for identifying, by the processing circuitry of the computer, at least one fixed marker from the plurality of images; means for determining the plurality of trajectories based on the positions of the plurality of markers relative to the fixed marker; Item 16. An apparatus for training a robot according to item 15, comprising: (Item 18) means for identifying a first mapping between at least a first of the plurality of markers and a first robot; means for identifying a second mapping between at least a second of the plurality of markers and a second robot; means for training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, and the second mapping; Item 16. An apparatus for training a robot according to item 15, comprising: (Item 19) 20. The apparatus for training a robot according to claim 18, comprising means for identifying a layout of the environment from the plurality of images by the processing circuitry of the computer. (Item 20) 20. The apparatus for training a robot according to claim 19, comprising means for training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, and the layout. (Item 21) means for simulating, by the processing circuitry of the computer, an updated object state from the initial object state, the layout, and the control states of the at least two robots; means for training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, the layout, and the updated object state; 21. An apparatus for training a robot according to item 20, comprising:

Claims

1. 1. A computing device comprising: a processor; Memory that stores instructions and Equipped with The instructions, when executed by the processor, receiving an indication of a plurality of images, the plurality of images being captured by an array of cameras positioned within an environment in which at least two expert demonstrators are demonstrating a collaborative task involving at least one object; identifying a plurality of markers from the plurality of images; identifying an initial state of the at least one object from the plurality of images and the plurality of markers; determining a plurality of trajectories associated with the collaborative task from the plurality of images and the plurality of markers; training a machine learning (ML) model to output control states for at least two robots to cooperatively perform the collaborative task involving the at least one object based on the plurality of trajectories and the initial state of the at least one object; configuring the computing device to execute Computing equipment.

2. 2. The computing device of claim 1, wherein the instructions, when executed by the processor, further configure the computing device to: determine initial states of the at least two expert demonstrators based on the identified markers from the images and the markers.

3. The instructions, when executed by the processor, identifying at least one fixed marker from the plurality of images; determining the plurality of trajectories based on positions of the plurality of markers relative to the fixed marker; 3. The computing device of claim 1, further configured to execute:

4. The instructions, when executed by the processor, identifying a first mapping between at least a first of the plurality of markers and a first robot; identifying a second mapping between at least a second of the plurality of markers and a second robot; training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, and the second mapping; The computing device of claim 1 , further configured to execute:

5. 5. The computing device of claim 4, wherein the instructions, when executed by the processor, further configure the computing device to train the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, and a layout.

6. The instructions, when executed by the processor, simulating an updated object state from the initial state, a layout, and the control states of the at least two robots; training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, the layout, and the updated object state; 6. The computing device of claim 4 or 5, further configured to execute:

7. The computing device of claim 1 , wherein the instructions, when executed by the processor, further configure the computing device to identify a layout of the environment from the plurality of images.

8. receiving, at a computer, a plurality of images, the plurality of images being captured by an array of cameras positioned within an environment in which at least two expert demonstrators are demonstrating a collaborative task involving at least one object; identifying a plurality of markers from the plurality of images; identifying an initial state of the at least one object from the plurality of images and the plurality of markers; determining a plurality of trajectories associated with the collaborative task from the plurality of images and the plurality of markers; training a machine learning (ML) model to output control states for at least two robots to cooperatively perform the collaborative task involving the at least one object based on the plurality of trajectories and the initial state of the at least one object; A computer program that causes a computer to execute the following.

9. 9. The computer program product of claim 8, further causing the computer to perform the step of: determining initial states of the at least two expert demonstrators based on the identified markers from the images and the markers.

10. identifying at least one fixed marker from the plurality of images; determining the plurality of trajectories based on positions of the plurality of markers relative to the fixed marker; The computer program according to claim 8 or 9, further causing the computer to execute the following:

11. identifying a first mapping between at least a first of the plurality of markers and a first robot; identifying a second mapping between at least a second of the plurality of markers and a second robot; training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, and the second mapping; The computer program according to claim 8 , further comprising:

12. The computer program product of claim 11 , further causing the computer to perform the step of: identifying, with processing circuitry of the computer, a layout of the environment from the plurality of images.

13. simulating, by a processing circuit of the computer, an updated object state from the initial state, the layout of the environment, and the control states of the at least two robots; training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, the layout, and the updated object state; The computer program according to claim 11 or 12, further causing the computer to execute the following:

14. 14. The computer program of claim 11, further causing the computer to perform the procedure of training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, and a layout of the environment.

15. means for receiving, at a computer, a plurality of images, the plurality of images being captured by an array of cameras positioned within an environment in which at least two expert demonstrators are demonstrating a collaborative task involving at least one object; means for identifying a plurality of markers from the plurality of images by processing circuitry of the computer; means for identifying, by the processing circuitry of the computer, an initial state of the at least one object from the plurality of images and the plurality of markers; means for determining, by the processing circuitry of the computer, a plurality of trajectories associated with the collaborative task from the plurality of images and the plurality of markers; means for training a machine learning (ML) model to output control states for at least two robots to cooperate to perform the collaborative task involving the at least one object based on the plurality of trajectories and the initial state of the at least one object; 1. An apparatus for training a robot, comprising:

16. 16. The apparatus for training a robot of claim 15, further comprising means for determining, by the processing circuitry of the computer, initial states of the at least two expert demonstrators based on the identified markers from the images and the markers.

17. means for identifying, by the processing circuitry of the computer, at least one fixed marker from the plurality of images; means for determining the plurality of trajectories based on the positions of the plurality of markers relative to the fixed marker; 17. An apparatus for training a robot according to claim 15 or 16, comprising:

18. means for identifying a first mapping between at least a first of the plurality of markers and a first robot; means for identifying a second mapping between at least a second of the plurality of markers and a second robot; means for training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, and the second mapping; 18. An apparatus for training a robot according to any one of claims 15 to 17, comprising:

19. 20. The apparatus for training a robot of claim 18, further comprising means for identifying a layout of the environment from the plurality of images by the processing circuitry of the computer.

20. means for simulating, by the processing circuitry of the computer, an updated object state from the initial state, the layout, and the control states of the at least two robots; means for training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, the layout, and the updated object state; 20. The apparatus for training a robot of claim 19, comprising:

21. 21. The apparatus for training a robot of claim 18, comprising means for training the ML model based on the plurality of trajectories, the initial state of the at least one object, the first mapping, the second mapping, and a layout of the environment.

Citation Information

Patent Citations

  • Robot system, teaching data generation system, and teaching data generation method

    JP2018015863A

  • Methods and apparatus to train interdependent autonomous machines

    US20190047149A1