Aspects described herein generally relate to cobot model generation and, more particularly, to cobot model generation based on a generic robot model having more degrees of freedom than the cobot model.
Collaborative robotics (cobots) is a rapidly expanding sector in Artificial Intelligence (Al) and robotics. Unlike traditional industrial robots, cobots operate in diverse and dynamic environments that are often unpredictable and not predefined by the manufacturer. Additionally, cobots frequently need to be programmed by individuals without specialized robotics expertise. A fundamental challenge in this context is the programming of motion skills where the cobot's end-effector needs to reach a pose accurately within its task space, such as in pick-and-place operations. Currently, this is predominantly achieved through programming by demonstration, which is typically performed one robot at a time. However, this approach is not scalable in environments where multiple robots of various models and manufacturers are present. While inverse kinematics solvers are available, they require precise robot models and expert supervision to ensure the solutions are accurate and meet specific requirements.
Additionally, there are autoencoder-style networks for solving batch inverse kinematics problems using continuous normalizing flows. These networks can quickly find multiple inverse kinematics solutions from given target poses and latent variables sampled from a tractable normal distribution. However, each cobot requires a complex training process from scratch, and inference involves simulating a dynamic system on expensive graphics processing units (GPUs). A generative graphical inverse kinematics solver that is “cobot-agnostic” enables a single model to provide inverse kinematics solutions for various cobots. However, it is limited to cobots with revolute joints, does not consider joint limits or self-collisions, and has relatively low position accuracy. Additionally, it suffers from manifold mismatches and mode collapse, limiting the diversity of solutions and underutilizing the available space for the robot.
This disclosure addresses the inverse kinematics of collaborative robots (cobots) by transferring trajectories from a generic model to a user-specified model using user references and prior task information. Initially, a generic robot model is developed to encompass various end-effectors and redundant degrees of freedom, ensuring coverage across a wide workspace. Subsequently, a neural network is trained to convert solutions from the generic model into the target cobot's configuration, leveraging data obtained during calibration. Finally, an iterative refinement process further enhances the accuracy of the network-generated solution to meet the precise requirements of the defined task.
The disclosed system operates in two stages: calibration and inference.
As detailed in Section II, calibration is conducted offline using user-provided data. Subsequently, various neural networks and analytic models are developed to handle subsequent user queries or requirements.
As described in Section III, after calibration, the system can accept online queries from the user and generate trajectories for the specified cobot using the trained model and refinement algorithms.
Robot kinematics are addressed using user references and prior task information. Initially, a generic robot model 130 is established with multiple end-effectors and redundant degrees of freedom to encompass extensive workspaces, including an inverse kinematics model for the generic robot. Furthermore, a set of analytic and geometric methods based on Conformal Geometric Algebra (CGA) is incorporated to effectively handle various generic robot tasks such as grasping and manipulation.
Before tackling specific programming tasks, the user inputs information about the cobot 110, which may include a dataset of joint angles and end-effector positions or a physical model description. A forward kinematics model of the cobot 110 can then be created based on this user-provided data. Using both the generic robot model 130 and the cobot model 110, the system trains encoder/decoder functions of a neural network 140 to map corresponding configuration spaces during the calibration stage.
Initially, a generic robot model 130 is configured with redundant degrees of freedom, housed in a server or cloud-based processing circuitry. Analytic methods are designed to solve inverse-kinematics across a volumetric space x∈R3, accommodating trajectory behaviors and constraints for any end-effector pose.
A user inputs a Unified Robotics Description Format (URDF) or a similar file outlining cobot 110's geometry, including Denavit-Hartenberg (DH) parameters. Additionally, the user may provide a dataset comprising joint angles and end-effector positions captured from cobot 110, which serves to either train a model or refine forward kinematics equations. Those familiar with robotics can specify kinematic parameters, while those less so can collect dynamic cobot 110 trajectories and end-effector positions, either by manually moving cobot 110 or recording various end-effector placements.
The generic robot model 130 has at least as many redundant degrees of freedom as the cobot model 110.
Leveraging user-provided data and a geometric model constructed from the DH parameters, a dataset is compiled, encompassing joint references for the generic robot 130 and user-specified cobot configurations.
For the joint trajectories provided by the user, a solution (q∈Rm) is calculated for the generic robot 130, using the collected end-effector positions. Using the geometric model of the cobot 110 and the generic robot model 130, joint references are determined for both, including different trajectory behaviors.
Once established, an encoder-decoder neural network model 140 structure is trained using the dataset to map trajectories computed for generic robot model 130 (q∈m) to those for cobot 110 (qcobot∈
n), as depicted in
An objective is to replicate cobot trajectories using neural network model 140, which processes as many trajectories as the number of degrees of freedom of the generic robot. Essentially, the difference 142 between neural network model 140's output and actual cobot model 110 trajectories represents predicted trajectory error, signifying the gap between cobot 110's actual and anticipated paths.
During training, the user may input additional information into neural network model 140 (e.g., desired trajectory behavior) to introduce further features or solution requirements. Upon server introduction of new datasets, a set of pre-trained weights can be acquired, streamlining training processes, such as transfer learning methods.
Once the neural network model 140 has been trained, as described in Section II above, it enters inference mode. The user can submit queries containing one or more target end-effector poses, along with instructions provided in a configuration file or serialized data structure. Tasks are executed on the generic robot 130, and the trained neural network model 140 generates trajectories corresponding to the user's input configuration. These trajectories can be further refined 160 using information gathered during calibration, such as forward kinematics.
The user can input task descriptions, including one or more target end-effector poses, initial configurations, or task constraints in a configuration file (e.g., XML, YAML, etc.). This file may also include task-related objectives like smoothness or safety constraints. Additionally, users can invoke predefined parameterized skills.
The user queries are sent to the server and solved using the generic robot model 130, producing a set of joint references or trajectories (q∈m). The generic robot model 130 possesses at least as many degrees of freedom as cobot model 110.
The trained neural network model 140, with its encoder-decoder structure, maps trajectories generated for the generic robot 130 to the configuration of cobot 110 ({tilde over (q)}cobot∈n). Processing circuitry then generates a movement instruction to cobot 110 based on the joint trajectories mapped to the cobot model 110.
Finally, to ensure trajectory compatibility and minimize end-effector error according to the task requirements, refinement of generated trajectories is conducted using cobot 110's geometric model via an established iterative method. The refined solution (qcobot∈Rn) is provided to the user upon reaching the desired error threshold.
Initially, a dataset is generated with the neural network model 140 aimed at mapping trajectories from the generic robot 130 into the cobot 110's space qcob=model (qgen)). This requires a dataset comprising tuples (qcob, qgen) referencing the same end-effector position on both robots.
To simulate user-provided trajectories on the generic robot 130 and their equivalents, a set of joint trajectories 112, 132 are generated using an inverse kinematic algorithm over a desired end-effector path, such as a circular 3D trajectory resulting in a path of 177 points. At each point of the trajectory, the neural network 140 is intended to map every point of the trajectories from the robot 130 into the behavior of the cobot 110. These trajectories are visualized in
The neural network model 140 is trained following dataset generation, mapping generic robot trajectories 132 (qgen∈5) to cobot trajectories 112 (qcob∈
3), incorporating cobot 110's configuration as an additional input feature.
The robot encoder 134 consists of fully connected layers FC1 and FC2, decoding generic robot 130 configurations into feature sets.
Simultaneously, cobot encoder 114 maps a parametrized version of cobot DH parameters to a feature vector concatenated with the robot encoder's output.
The trajectory decoder 150 then maps robot and cobot features to an output vector generating joint trajectories 112 for cobot 110.
To facilitate training for new cobots, a comprehensive dataset can be generated using multiple cobot configurations. An encoder-decoder architecture with sufficient output neurons is trained, focusing backpropagation solely on neurons with required references. Parametrized DH parameters serve as additional inputs for the neural network model 140, accommodating various configurations with identical degrees of freedom. After training, encoder stage 114 and 134 weights can be retained, with only the trajectory decoder 150 replaced for specific cobot degrees of freedom. During training, only the trajectory decoder 150 undergoes complete retraining.
The system adapts to any cobot manipulator through a calibration process using user-provided data, requiring basic cobot joint data to generate an inverse kinematics solution.
The same generic model is employed to generate solutions for various cobot types and models, requiring only a simplified encoder/decoder for each specific cobot.
Offered as either a cloud service or integrated offline solution tailored to manufacturer-specific products, the system optimizes models and algorithms for the manufacturer's hardware.
The computing device 400 may be identified with a central controller and be implemented as any suitable network infrastructure component, which may be implemented as a cloud/edge network server, controller, computing device, etc. The computing device 400 may serve the cobot 110, the generic robot 130, the neural network model 140, and the refinement 160, in accordance with the various techniques discussed herein. To do so, the computing device 400 may include processor circuitry 410, a transceiver 420, a communication interface 430, and a memory 440. The components shown in
The processor circuitry 410 may be operable as any suitable number and/or type of computer processor that may function to control the computing device 400. The processor circuitry 410 may be identified with one or more processors (or suitable portions thereof) implemented by the computing device 400. The processor circuitry 410 may be identified with one or more processors such as a host processor, a digital signal processor, one or more microprocessors, graphics processors, baseband processors, microcontrollers, an application-specific integrated circuit (ASIC), a portion (or the entirety of) a field-programmable gate array (FPGA), etc.
In any case, the processor circuitry 410 may be operable to execute instructions to perform arithmetic, logic, and/or input/output (I/O) operations and/or to control the operation of one or more components of the computing device 400 to perform various functions as described herein. The processor circuitry 410 may include one or more microprocessor cores, memory registers, buffers, clocks, etc. It may generate electronic control signals associated with the components of the computing device 400 to control and/or modify the operation of those components. The processor circuitry 410 may communicate with and/or control functions associated with the transceiver 420, the communication interface 430, and/or the memory 440. The processor circuitry 410 may additionally perform various operations to control the communications, communications scheduling, and/or operation of other network infrastructure components communicatively coupled to the computing device 400.
The transceiver 420 may be implemented as any suitable number and/or type of components operable to transmit and/or receive data packets and/or wireless signals in accordance with any suitable number and/or type of communication protocols. The transceiver 420 may include any suitable type of components to facilitate this functionality, including components associated with known transceiver, transmitter, and/or receiver operations, configurations, and implementations. Although shown as a transceiver in
The communication interface 430 may be implemented as any suitable number and/or type of components operable to facilitate the transceiver 420 to receive and/or transmit data and/or signals in accordance with one or more communication protocols, as discussed herein. The communication interface 430 may be implemented as any suitable number and/or type of components operable to interface with the transceiver 420, such as analog-to-digital converters (ADCs), digital-to-analog converters, intermediate frequency (IF) amplifiers and/or filters, modulators, demodulators, baseband processors, and the like. The communication interface 430 may thus operate in conjunction with the transceiver 420 and form part of an overall communication circuitry implemented by the computing device 400, which may be implemented via the computing device 400 to transmit commands and/or control signals to perform any of the functions described herein.
The memory 440 is operable to store data and/or instructions such that when the instructions are executed by the processor circuitry 410, they cause the computing device 400 to perform various functions as described herein. The memory 440 may be implemented as any known volatile and/or non-volatile memory, including, for example, read-only memory (ROM), random access memory (RAM), flash memory, a magnetic storage medium, an optical disk, erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), etc. The memory 440 may be non-removable, removable, or a combination of the two. The memory 440 may be implemented as a non-transitory computer-readable medium storing one or more executable instructions such as logic, algorithms, code, etc.
As further discussed below, the instructions, logic, code, etc., stored in the memory 440 are represented by the various modules/engines as shown in
Various aspects described herein may utilize one or more machine learning models for the cobot 110, the generic robot 130, the neural network model 140, and the refinement 160. The term “model,” as used herein, may be understood to mean any type of algorithm that provides output data from input data (e.g., any type of algorithm that generates or calculates output data from input data). A machine learning model can be executed by a computing system to progressively improve the performance of a particular task. In some aspects, the parameters of a machine learning model may be adjusted during a training phase based on training data. A trained machine learning model may be used during an inference phase to make predictions or decisions based on input data. In some aspects, the trained machine learning model may be used to generate additional training data. An additional machine learning model may be tuned during a second training phase based on the generated additional training data. A trained additional machine learning model may be used during an inference phase to make predictions or decisions based on input data.
The machine learning models described herein may take any suitable form or utilize any suitable technique (e.g., for training purposes). For example, each of the machine learning models may utilize supervised learning, semi-supervised learning, unsupervised learning, or reinforcement learning techniques.
In supervised learning, the model may be built using a training set of data that includes both the inputs and the corresponding desired outputs (illustratively, each input may be associated with a desired or expected output for that input). Each training instance may include one or more inputs and a desired output. Training may involve iterating through training instances and using an objective function to teach the model to predict the output for new inputs (illustratively, for inputs not included in the training set). In semi-supervised learning, a portion of the inputs in the training set may lack corresponding desired outputs (e.g., one or more inputs may not be associated with any desired or expected output).
In unsupervised learning, the model may be built from a training set of data that includes only inputs and no desired outputs. The unsupervised model may be used to find structure in the data (e.g., grouping or clustering of data points), for example, by discovering patterns in the data. Techniques that may be implemented in an unsupervised learning model may, for example, self-organizing maps, nearest-neighbor mapping, k-means clustering, and singular value decomposition.
Reinforcement learning models may include positive or negative feedback to improve accuracy. A reinforcement learning model may attempt to maximize one or more goals/rewards. Techniques that may be implemented in a reinforcement learning model may include, for example, Q-learning, temporal difference (TD), and deep adversarial networks.
Various aspects described herein may utilize one or more classification models. In a classification model, outputs may be restricted to a limited set of values (e.g., one or more classes). The classification model may output a class for an input set of one or more input values. An input set may include sensor data, such as image data, radar data, LIDAR (light detection and ranging) data, and the like. A classification model as described herein may, for example, classify certain driving conditions and/or environmental conditions, such as weather conditions, road conditions, and the like. References herein to classification models may contemplate a model that implements, for example, one or more of the following techniques: linear classifiers (e.g., logistic regression or naive Bayes classifier), support vector machines, decision trees, boosted trees, random forest, neural networks, or nearest neighbor.
Various aspects described herein may utilize one or more regression models. A regression model may output a numerical value from a continuous range based on an input set of one or more values (e.g., starting from or using an input set of one or more values). References herein to regression models may contemplate a model that implements, for example, one or more of the following techniques (or other suitable techniques): linear regression, decision trees, random forests, or neural networks.
A machine learning model described herein may be or include a neural network. The neural network may be any type of neural network, such as a convolutional neural network, an autoencoder network, a variational autoencoder network, a sparse autoencoder network, a recurrent neural network, a deconvolutional network, a generative adversarial network, a forward-thinking neural network, a sum-product neural network, and the like. The neural network can have any number of layers. The training of the neural network (e.g., the adaption of the layers of the neural network) may use or be based on any kind of training principle, such as backpropagation (e.g., using the backpropagation algorithm).
The techniques of this disclosure may also be described in the following examples.
Example 1. An apparatus, comprising: an interface operable to receive a target end-effector pose of a cobot; processing circuitry operable to: generate in a generic robot model a joint trajectory based on the target end-effector pose; employ a trained neural network model to map the joint trajectory generated in the generic robot model into a cobot model; and generate a movement instruction to control a movement of the cobot based on the joint trajectory mapped to the cobot model, wherein the generic robot model has a number of degrees of freedom that is equal to or greater than that of the cobot model.
Example 2. The apparatus of example 1, wherein the processing circuitry is further operable to: iteratively refine the joint trajectory in the cobot model based on a geometric model of the cobot until the refined joint trajectory reaches a target error threshold.
Example 3. The apparatus of one or more of examples 1-2, wherein the generic robot model has redundant degrees of freedom at least equal to those of the cobot model.
Example 4. The apparatus of one or more of examples 1-3, wherein the processing circuitry is further operable to: receive joint angles and end-effector positions captured for the cobot; and generate the cobot model based on the joint angles and end-effector positions captured for the cobot.
Example 5. The apparatus of one or more of examples 1-4, wherein the processing circuitry is further operable to train the neural network model using the cobot model and a plurality of target end-effector poses.
Example 6. The apparatus of one or more of examples 1-5, wherein the processing circuitry is further operable to: receive a universal robot model file that includes a physical description of the cobot; and generate the cobot model based on the received universal robot model file.
Example 7. The apparatus of one or more of examples 1-6, wherein the processing circuitry is further operable to train the neural network model using the cobot model and a plurality of target end-effector poses.
Example 8. The apparatus of one or more of examples 1-7, wherein the universal robot model file is a Unified Robotics Description Format (URDF) file.
Example 9. The apparatus of one or more of examples 1-8, wherein the processing circuitry is further operable to: receive universal robot model files that include physical descriptions of a plurality of potential cobots having different configurations, or receive joint angles and end-effector positions captured for the plurality of potential cobots having different configurations; generate a plurality of cobot models based on the received universal robot model files or joint angles and end-effector positions of the plurality of potential cobots; and
Example 10. The apparatus of one or more of examples 1-9, wherein the processing circuitry is located in the cloud.
Example 11. A component of a system, comprising: processing circuitry; and a non-transitory computer-readable storage medium including instructions that, when executed by the processing circuitry, cause the processing circuitry to: generate in a generic robot model a joint trajectory based on a target end-effector pose of a cobot; employ a trained neural network model to map the joint trajectory generated in the generic robot model into a cobot model; and generate a movement instruction to control a movement of the cobot based on the joint trajectory mapped to the cobot model, wherein the generic robot model has a number of degrees of freedom that is equal to or greater than that of the cobot model.
Example 12. The component of example 11, wherein the instructions further cause the processing circuitry is further operable to: iteratively refine the joint trajectory in the cobot model based on a geometric model of the cobot until the refined joint trajectory reaches a target error threshold.
Example 13. The component of one or more of examples 11-12, wherein the generic robot model has redundant degrees of freedom at least equal to those of the cobot.
Example 14. The component of one or more of examples 11-13, wherein the instructions further cause the processing circuitry to: receive joint angles and end-effector positions captured for the cobot; and generate the cobot model based on the joint angles and end-effector positions captured for the cobot.
Example 15. The component of one or more of examples 11-14, wherein the instructions further cause the processing circuitry to train the neural network model using the cobot model and a plurality of target end-effector poses.
Example 16. The component of one or more of examples 11-15, wherein the instructions further cause the processing circuitry to: receive a universal robot model file that includes a physical description of the cobot; and generate the cobot model based on the received universal robot model file.
Example 17. The component of one or more of examples 11-16, wherein the instructions further cause the processing circuitry to train the neural network model using the cobot model and a plurality of target end-effector poses.
Example 18. The component of one or more of examples 11-17, wherein the universal robot model file is a Unified Robotics Description Format (URDF) file.
Example 19. The component of one or more of examples 11-18, wherein the instructions further cause the processing circuitry to: receive universal robot model files that include physical descriptions of a plurality of potential cobots having different configurations, or receive joint angles and end-effector positions captured for the plurality of potential cobots having different configurations; generate a plurality of cobot models based on the received universal robot model files or joint angles and end-effector positions of the plurality of potential cobots; and train the neural network model using the plurality of cobot models and a plurality of target end-effector poses.
Example 20. The component of one or more of examples 11-19, wherein the processing circuitry is located in the cloud.
While the foregoing has been described in conjunction with exemplary aspect, it is understood that the term “exemplary” is merely meant as an example, rather than the best or optimal. Accordingly, the disclosure is intended to cover alternatives, modifications and equivalents, which may be included within the scope of the disclosure.
Although specific aspects have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a variety of alternate and/or equivalent implementations may be substituted for the specific aspects shown and described without departing from the scope of the present application. This application is intended to cover any adaptations or variations of the specific aspects discussed herein.