Technology used to build the robot's controller
The robot model is constructed through a data-driven model generator, and the basis functions that do not describe physical properties are disabled, solving the problems of complexity of kinematic equation systems and hidden physical structures in the robot controller design, realizing accurate controller generation.
Patent Information
- Application Number
- CN202080069811.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-06-03
- Filing Date
- 2020-10-20
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2040-10-20
AI Technical Summary
In robot controller design, determining the kinematic equation system is complex and may be inaccurate, resulting in inaccurate Jacobian matrix, which in turn prevents the controller from accurately controlling the robot, especially when the robot's physical structure is hidden, it cannot be analyzed. Generate a valid controller.
Using a data-driven model generator, the robot model is constructed by generating basis functions and corresponding coefficients that describe the physical properties of the robot, and the basis functions that do not describe the physical properties are disabled. It is used to generate the controller to avoid inaccurate modeling assumptions, and in the Generate controllers without understanding the physical structure of the robot.
The generation of an accurate robot controller is realized without determining kinematic equations, avoiding inaccurate modeling assumptions, and enabling the generation of controllers when the robot physical structure cannot be observed and analyzed.
Smart Images

Figure CN114502338B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to U.S. Provisional Patent Application Serial No. 62 / 924,051, filed on October 21, 2019, entitled “Creating Robot Controllers Based on Sparse Learning for Robot Modeling and Control,” and claims priority to U.S. Patent Application Serial No. 16 / 892,216, filed on June 3, 2020, entitled “Techniques for Generating Controllers for Robots.” The subject matter of these related applications is hereby incorporated herein by reference. Background of the Invention Technical Field
[0003] Various embodiments relate generally to control theory and robotics, and more specifically to techniques for generating controllers for robots.
[0004] Related technical notes
[0005] In a typical robot controller design process, the designer analyzes the physical structure of the robot in order to determine a set of kinematic equations associated with the robot. The set of kinematic equations generally describes the physical properties of the robot, including various static and / or dynamic properties of one or more joints and / or linkages included in the robot. For example, a given kinematic equation may describe the position of an end effector included in the robot as a function of the joint angles associated with the robot.
[0006] The designer then determines a Jacobian matrix for the robot by calculating the time-based derivatives of the various kinematic equations. The Jacobian matrix generally relates one or more angular velocities associated with the robot's joints to one or more linear and / or angular velocities associated with different parts of the robot, including the robot's end effector. The Jacobian matrix can then be used to generate a controller for the robot that maps a target position of the end effector to one or more changes in the robot's joint angles. When implemented in the robot, the controller is capable of directing the end effector toward a target position in response to various inputs.
[0007] One disadvantage of the above approach is that determining the set of kinematic equations associated with the robot is a complex manual process that is often simplified via one or more modeling approximations that may be somewhat inaccurate. For example, when determining the kinematic equations for a given linkage associated with the robot, the designer may make rounding assumptions that result in somewhat inaccurate approximations of the moments of inertia of the linkage. These types of inaccurate modeling approximations can cause the Jacobian matrix upon which the robot's controller is based to be inaccurate, which can prevent the controller from accurately controlling the robot.
[0008] Another disadvantage of the above approach is that some or all of the physical structure of the robot may be hidden from the designer. For example, a given robot may be manufactured with specific joints and / or linkages enclosed within a housing, preventing the designer from examining those joints and / or linkages. If the designer cannot analyze the physical structure of the robot, then the designer cannot determine the corresponding kinematic equations for the robot or the Jacobian matrix for the robot, thus preventing the designer from generating a controller for the robot.
[0009] As the foregoing illustrates, there is a need in the art for more efficient techniques for generating controllers for robots. Summary of the invention
[0010] Various embodiments include a computer-implemented method for controlling a robot, the computer-implemented method comprising: determining a first set of outputs generated by the robot in response to a first set of inputs; generating a first set of basis functions based on the first set of inputs and the first set of outputs, wherein the first set of basis functions describes one or more physical properties of a first robot; and causing the robot to perform a first action based on the first set of basis functions.
[0011] At least one technical advantage of the disclosed technology over the prior art is that the disclosed technology is able to generate an accurate robot controller without determining any kinematic equations. Thus, situations in which inaccurate modeling assumptions lead to inaccurate robot controllers can be avoided. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] In order that the manner in which the above-mentioned features of various embodiments may be understood in detail, the inventive concept briefly summarized above may be described in more detail with reference to various embodiments, some of which are illustrated in the accompanying drawings. It should be noted, however, that the drawings illustrate only typical embodiments of the inventive concept and are therefore not to be considered limiting of the scope in any way and that there are other equally effective embodiments.
[0013] Figure 1A-1B illustrates a system configured to implement one or more aspects of various embodiments;
[0014] Figure 2 According to various embodiments Figure 1A-1B A more detailed graphical description of the model generator;
[0015] Figure 3 is a flow chart of method steps for generating a robot model for controlling a robot according to various embodiments;
[0016] Figure 4 According to various embodiments Figure 1A-1B A more detailed diagram of the robot controller; and
[0017] Figure 5 is a flow chart of method steps for controlling a robot according to various embodiments. DETAILED DESCRIPTION
[0018] In the following description, numerous specific details are set forth to provide a more thorough understanding of various embodiments. However, it will be apparent to one skilled in the art that the inventive concept may be practiced without one or more of these specific details.
[0019] As described above, when generating a robot controller, the designer first determines the set of kinematic equations that describe the robot, and then generates a Jacobian matrix that can be used to map the target position of the end effector to the change in the joint angle that moves the end effector toward the target position. However, determining the set of kinematic equations associated with the robot is a complex manual process that is usually simplified via one or more modeling approximations that may be inaccurate. These inaccurate modeling approximations often result in inaccurate Jacobian matrices, which in turn prevent the controller from accurately controlling the robot. In addition, in some cases, part or all of the physical structure of the robot may be hidden from the designer, thereby preventing the designer from analyzing the physical structure of the robot. In the case where the physical structure of the robot cannot be analyzed, the designer cannot determine the corresponding set of kinematic equations or cannot generate a Jacobian matrix for the robot, and therefore cannot generate a controller that can control the robot.
[0020] To address these issues, various embodiments include a model generator that implements a data-driven approach to generating a robot model. The robot model can be used within a robot controller to generate commands for controlling the robot. The model generator generates a set of basis functions that generally describe various physical properties of a wide range of systems. The model generator then generates a set of coefficients corresponding to the set of basis functions based on one or more commands issued to the robot and one or more corresponding end effector positions. In one embodiment, the model generator may perform sparse constraints on the set of coefficients so as to disable at least some of the basis functions. The model generator generates the robot model by combining the set of basis functions with the set of coefficients. In doing so, the model generator disables specific basis functions that do not describe physical properties associated with the robot.
[0021] The robot controller implements an iterative control loop to move the end effector of the robot from a current position associated with a current set of joint angles to a target position using a robot model. When implementing the iterative control loop, the robot controller calculates the error between the current position of the end effector and the target position. If the error exceeds a threshold, the robot controller calculates a set of joint angular velocities based on the error value. The robot controller then calculates a set of end effector velocities based on the set of joint angular velocities, the current set of joint angles, and the robot model. Based on the current position of the end effector and the set of end effector velocities, the robot controller updates the end effector position and recalculates the error value. When the error value drops below the threshold, the iterative control loop is complete.
[0022] At least one technical advantage of the disclosed technology over the prior art is that the disclosed technology is able to generate an accurate robot controller without determining any kinematic equations. Thus, situations where inaccurate modeling assumptions lead to inaccurate robot controllers can be avoided. Another technical advantage is that the disclosed technology can be used to generate a controller for a robot without any knowledge of the physical structure of the robot. Thus, the disclosed technology can be implemented in situations where some or all of the robot structure cannot be observed and / or analyzed. These technical advantages represent one or more technical advances over prior art methods.
[0023] System Overview
[0024] Figure 1A-1B The diagram illustrates a system configured to implement one or more aspects of various embodiments. Figure 1A, the system 100 includes a computing device 110 coupled to a robotic environment 130. The computing device 110 may be any technically feasible type of computer system, including a desktop computer, a laptop computer, a mobile device, a virtualized instance of a computing device, a distributed and / or cloud-based computer system, etc. The robotic environment 130 may be any technically feasible environment configured to include one or more robots, such as a robotic cell, etc.
[0025] As further shown, computing device 110 includes a processor 112, input / output (I / O) devices 114, and memory 116 coupled together. Processor 112 includes any technically feasible set of hardware units configured to process data and execute software applications. For example, processor 112 may include one or more central processing units (CPUs). I / O devices 114 include any technically feasible set of devices configured to perform input and / or output operations, including, for example, a display device, a keyboard, and a touch screen.
[0026] The memory 116 includes any technically feasible storage medium configured to store data and software applications, such as, for example, a hard disk, a random access memory (RAM) module, and a read-only memory (ROM). The memory 116 includes a model generator 120 and a robot controller 128. The model generator 120 and the robot controller 128 are configured to interoperate to control a robot 140 residing in the robot environment 130. The robot 140 includes a multi-jointed arm 142 and an end effector 144. In operation, the model generator 120 and the robot controller 128 are configured to interoperate to generate a model of the robot 140 and use the model to control the position of the end effector 144, as described below in conjunction with Figure 1B Described in more detail.
[0027] Reference now Figure 1B As shown, the model generator 120 includes robot commands 122 and end effector positions 124. The robot commands 122 specify joint angular velocities that, when transmitted to the robot 140, cause the robot 140 to implement joint angle changes a1 and a2. In response to these joint angle changes, the end effector 144 moves from position p1 to position p2 along a trajectory t1. The end effector position 124 indicates the positions p1, p2, and / or the trajectory t1. Also as shown, the robot controller 128 includes a robot model 126. The robot model 126 is a data-driven mapping that relates joint angles and / or joint angular velocities associated with the robot 140 to changes in the position of the end effector 144.
[0028] In operation, the model generator 120 generates robot commands 122 and transmits those commands to the robot 140, thereby causing the robot 140 to modify the position of the end effector 144. The model generator 120 then generates end effector positions 124 to indicate how the position of the end effector 144 changes in response to those commands. Thus, the robot commands 122 and the end effector positions 124 represent a set of inputs provided to the robot 140 and a corresponding set of outputs generated by the robot 140 in response to those inputs. In one embodiment, the model generator 120 may generate a plurality of robot commands 122 that cause the end effector 144 to occupy some or all possible positions within the robot environment 130. In another embodiment, the robot environment 130 may include sensors configured to detect the position of the end effector 144 within the robot environment 140 immediately after moving in response to a given robot command 122.
[0029] Based on the robot commands 122 and the end effector positions 124 (and other data), the model generator 120 generates a robot model 126 as described below in conjunction with Figure 2-Figure 3 Subsequently, the robot controller 128 is configured to use the robot model 126 to implement an iterative control loop to move the end effector 144 from the current position to the target position, as described below in conjunction with Figure 4-Figure 5 Described in more detail.
[0030] Generally speaking, reference Figure 1A-1B , via the disclosed techniques, the model generator 120 is configured to model the physical properties of the robot 140 without first determining the kinematic equations corresponding to the robot 140. Instead, the model generator 120 implements a data-driven approach based on the inputs provided to the robot 140 and the corresponding outputs. Thus, the disclosed techniques help avoid inaccuracies that may be caused by incorrect modeling assumptions, as discovered using prior art techniques. Furthermore, the disclosed techniques may be implemented even when the physical structure of the robot 140 is unavailable or otherwise unknown. In one embodiment, the model generator 120 may generate a robot model 126 to describe the physical properties of flexible portions of the robot 140 or other portions of the robot 140 that cannot be easily modeled using conventional techniques. In general, any of the techniques described above may be applied to any technically feasible type of robot. Those skilled in the art will appreciate that, in conjunction with Figure 1A-Figure 5 The specific types of robots described are presented for illustration purposes and are not meant to limit the scope of the various embodiments.
[0031] Model Builder
[0032] Figure 2 According to various embodiments Figure 1A-1BMore detailed illustration of the model generator of . As shown, the model generator 120 includes a function generator 200 and a coefficient generator 210.
[0033] The function generator 200 is a software module configured to analyze the system parameters 202 to generate the basis functions 204. The system parameters 202 may include any technically feasible data describing any attribute of the robot 140. For example, the system parameters 202 may indicate a robot type associated with the robot 140, a type of motion performed by the robot 140, one or more structural attributes of the robot 140, one or more functional characteristics of the robot 140, etc. In one embodiment, the function generator 210 may implement a machine learning model and / or a neural network to map the system parameters 202 to the basis functions 204. In another embodiment, the system parameters 202 may be omitted, and the function generator 200 may instead select a default set of basis functions 204, or alternatively, receive a set of basis functions 202 from a user.
[0034] The basis functions 204 include a series of different functions that describe various types of physical motion. For example, a given basis function may include a combination of trigonometric functions (e.g., sines, cosines, etc.) in order to describe an oscillatory motion associated with one or more parts of the robot 140. Each basis function 204 may be expressed as a differential equation, a partial differential equation, or any other type of mathematical expression. In general, the basis functions 204 may include a combination of any technically feasible mathematical terms capable of describing any type of physical motion.
[0035] The coefficient generator 210 is configured to analyze the basis functions 204 in conjunction with the robot command 122 and the end effector position 124 to generate coefficients 214. Each coefficient corresponds to a different basis function 204 and indicates the degree to which the corresponding basis function 204 describes one or more physical properties of the robot 140. In one embodiment, each coefficient 214 may be a decimal value providing a weight for each basis function 204. In another embodiment, each coefficient 214 is a binary value indicating whether the corresponding basis function 204 is valid or invalid.
[0036] In one embodiment, the coefficient generator 210 may generate the coefficients 214 by implementing a least squares identification algorithm or other optimization algorithm based on the robot commands 122 and the end effector position 124 to determine the coefficients 214 that, when applied to the basis functions 204, cause those basis functions to predict the end effector position 124 based on the robot commands 122. In doing so, the coefficient generator 210 may apply a sparse constraint 212 via a sparse learning process to reduce and / or minimize the number of non-zero coefficient values. In another embodiment, the coefficient generator 210 implements a machine learning model and / or a neural network to generate the coefficients 214. The machine learning model and / or neural network may be trained, for example, based on a manually curated set of basis functions developed during analysis of a range of different types of robots. When generating the coefficients 214, the coefficient generator 210 may generate an initial set of coefficients and then update those coefficients using any of the techniques described above.
[0037] The function generator 200 and the coefficient generator 210 combine the basis functions 204 with the coefficients 214 to generate a set of weighted basis functions 220 that are included in the robot model 126. Each weighted basis function 220 models the physical properties of one or more parts of the robot 140 to a given degree. In one embodiment, the weighted basis functions 220 only include a subset of the basis functions 204 for which non-zero coefficients 214 were generated.
[0038] Because the robot model 126 is generated based on the robot commands 122 and the end effector position 124, there is no need to generate kinematic equations to describe the behavior of the robot 140 and no need to calculate the Jacobian matrix to generate a controller for the robot. Figure 4-Figure 5 A technique for implementing a controller for a robot 140 is described. Figure 2 The techniques described below will be combined Figure 3 Describe in more detail.
[0039] Figure 3 is a flow chart of method steps for generating a robot model for controlling a robot according to various embodiments. Figure 1A-Figure 2 Although the method steps are described in detail with reference to a system, those skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the embodiments of the present invention.
[0040] As shown, the method 300 begins at step 302, where the function generator 200 within the model generator 120 generates a set of basis functions 204 based on one or more system parameters 202. In various embodiments, the system parameters 202 may be omitted and the function generator 200 may select a default set of basis functions 204 or receive a set of basis functions 204 from a user. The basis functions 204 include a series of different functions that describe various types of physical motion. For example, a given basis function may include a partial differential equation defined with respect to one or more joint angles and / or angular rates associated with the robot 140.
[0041] At step 304, the coefficient generator 210 within the model generator 120 generates a set of coefficients 214 based on the basis functions 204. Each coefficient 214 corresponds to a different basis function 204. The coefficient generator 210 may generate an initial set of coefficients and subsequently update the initial set of coefficients.
[0042] At step 306, the coefficient generator 210 updates a set of basis function coefficients based on the one or more robot commands 122, the one or more corresponding end effector positions 124, and the sparse constraints 214. Once updated, each coefficient 214 indicates the degree to which the corresponding basis function 204 describes one or more physical properties of the robot 140. In one embodiment, the coefficient generator 210 may generate the coefficients 214 by implementing a least squares identification algorithm or other optimization algorithm based on the robot commands 122 and the end effector positions 124 to determine the coefficients 214 that, when applied to the basis functions 204, cause those basis functions to predict the end effector positions 124 based on the robot commands 122.
[0043] At step 308, the coefficient generator 200 and the function generator 210 interact to combine the set of basis functions with the updated set of coefficients to generate the weighted basis functions 220 within the robot model 126. The robot model 126 is a data-driven model that can be used to determine the position change of the end effector 144 in response to the joint angles and / or joint angle changes of the robot 140. In one embodiment, one or more basis functions within the weighted basis functions 220 may be assigned a weight of zero and thus disabled.
[0044] At step 310, the robot controller 128 implements the robot model 126 to cause the robot 140 to perform one or more actions. In one embodiment, the model generator 120 may generate the robot controller 128 based on the robot model 126. The robot controller 128 is configured to implement the robot model 126 so as to combine the following Figure 4-Figure 5 The robot 140 is controlled in the manner described.
[0045] Robot Controller
[0046] Figure 4 According to various embodiments Figure 1A-1B 1. As shown, the robotic controller 128 includes an error evaluator 400, a joint angle controller 410, and an end effector position controller 420. In operation, the various modules shown implement an iterative control loop to move the end effector 144 from a current end effector position 402 to a target end effector position 404.
[0047] Specifically, the error evaluator 400 receives a current end effector position 402 and a target end effector position 404 and calculates an error 406. Each of the current end effector position 402 and the target end effector position 404 includes a set of three-dimensional (3D) Cartesian coordinates. Therefore, the error 406 can be a 3D vector originating from the current end effector position 402 and terminating at the target end effector position 404. The error evaluator 400 evaluates the magnitude of the error 406 and determines whether the magnitude exceeds a threshold. If the threshold is not exceeded, the error evaluator 400 does not initiate an iterative control loop. Otherwise, the error evaluator 400 transmits the error 406 to the joint angle controller 410.
[0048] The joint angle controller 410 generates a set of angular velocities 412 based on the error 406 and based on one or more gain matrices. In one embodiment, the joint angle controller 410 implements a proportional-integral-derivative (PID) control algorithm using a set of positive definite gain matrices to generate the angular velocities 412. The joint angle controller 410 may further generate robot commands 122 based on the angular velocities 412 and output those commands to the robot 140. The joint angle controller 410 determines the joint angle 414 currently occupied by the robot 140 and transmits the angular velocity 412 and the joint angle 414 to the end effector position controller 420. The joint angle controller 410 then updates the joint angle 414 based on the angular velocity 412.
[0049] The end effector position controller 410 generates the end effector velocity 422 based on the angular velocity 412 and the joint angle 414 using the robot model 126. Figure 2-Figure 3 As discussed, the robot model 126 is configured to map angular velocities and joint angles associated with the robot 140 to specific changes in the position of the end effector 422. The end effector position controller 420 then processes the end effector velocity 422 to generate an updated end effector position 424. In doing so, the end effector position controller 420 can roughly estimate how the position of the end effector 144 changes over a time interval when subjected to the end effector velocity 422.
[0050] The end effector position controller 420 transmits the updated end effector position 424 to the error evaluator 400 to initiate a subsequent control process iteration. The error evaluator 400 then compares the updated end effector position 424 with the target end effector position 404 and updates the error 406, and if the magnitude of the error 406 exceeds a threshold, the iterative control loop repeats.
[0051] In the manner described, the robot controller 128 uses the robot model 126 to iteratively adjust the position of the end effector 144 until the position is sufficiently similar to the target end effector position 404. Unlike conventional controllers, the robot controller 128 is configured to operate without the use of a Jacobian matrix and thus can avoid inaccuracies and other inefficiencies caused by the Jacobian matrix. Figure 4 The techniques described below will be combined Figure 5 Describe in more detail.
[0052] Figure 5 is a flow chart of method steps for causing a robot to perform an action according to various embodiments. Figure 1A-1B as well as Figure 4 Although the method steps are described in detail with reference to a system, those skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the embodiments of the present invention.
[0053] As shown, the method 500 begins at step 502, where the error evaluator 400 within the robotic controller 128 receives a current end effector position 402 and a target end effector position 404. The current end effector position 402 may be a predetermined initial position associated with the end effector 144, or alternatively, the position of the end effector 144 is determined via one or more previous iterations of the robotic controller 128. The current end effector position 402 and the target end effector position 404 are generally expressed as 3D Cartesian coordinates within a given reference frame, but those skilled in the art will appreciate that any technically feasible method of representing the positions may also be implemented.
[0054] At step 504, the error evaluator 400 calculates an error 406 based on the current end effector position 402 and the target end effector position 404. The error 406 may be a 3D vector originating from the current end effector position 402 and terminating at the target end effector position 404. The error evaluator 400 evaluates the magnitude of the error value to determine whether the end effector 144 needs to move toward the target end effector position 404.
[0055] Specifically, at step 506, the error evaluator 400 compares the magnitude of the error 406 to a threshold value. If the magnitude of the error 406 does not exceed the threshold value, the method 500 returns to step 502 and waits to receive another target end effector position. Otherwise, if the magnitude of the error 406 exceeds the threshold value, the method 500 proceeds to step 508.
[0056] At step 508, the joint angle controller 410 within the robot controller 128 calculates the angular velocity 412 based on the error 406. In doing so, the joint angle controller 410 may implement a PID control algorithm using a set of positive definite gain matrices to generate the angular velocity 412. The joint angle controller 410 may further generate robot commands 122 based on the angular velocity 412 and output those commands to the robot 140. The joint angle controller 410 determines the joint angle 414 currently occupied by the robot 140 and transmits the angular velocity 412 and the joint angle 414 to the end effector position controller 420.
[0057] At step 510, the end effector position controller 420 calculates the end effector velocity 422 based on the robot model 126, the joint angles 414, and the joint angular velocities 412. As previously discussed, the robot model 126 provides a mapping between angular velocities and joint angles associated with the robot 140 and specific changes in the position of the end effector 144. This mapping reflects one or more physical properties associated with the robot 140 that are further specified in the basis functions 204.
[0058] At step 512, the end effector position controller 420 processes the end effector velocity 422 to generate an updated end effector position 424. In doing so, the end effector position controller 420 may roughly estimate how the position of the end effector 144 changes over a time interval when subject to the end effector velocity 422. The updated end effector position 424 may be used during subsequent iterations of the robotic controller 128 to move the end effector 144 toward a new target position or to refine the position of the end effector 144.
[0059] At step 514, the error evaluator 400 updates the error 406 based on the updated end effector position 424 and the target end effector position 404. In doing so, the error evaluator 400 compares the updated end effector position 424 to the target end effector position 404 using operations similar to those described above in connection with step 502.
[0060] At step 506, the joint angle controller 410 updates the joint angle 414 based on the angular velocity 412 in preparation for a subsequent iteration of the robotic controller 128. In various embodiments, step 506 may occur after step 508. The method 500 then returns to step 502 and repeats in the manner described above.
[0061] In summary, a model generator implements a data-driven method for generating a robot model that describes one or more physical properties of a robot. The model generator generates a set of basis functions that generally describe a range of physical properties of a wide range of systems. The model generator then generates a set of coefficients corresponding to the set of basis functions based on one or more commands issued to the robot, one or more corresponding end effector positions implemented by the robot, and sparse constraints. The model generator generates the robot model by combining the set of basis functions with the set of coefficients. In doing so, the model generator disables specific basis functions that do not describe physical properties associated with the robot. The robot model can then be used within a robot controller to generate commands for controlling the robot.
[0062] At least one technical advantage of the disclosed technology over the prior art is that the disclosed technology is able to generate an accurate robot controller without determining any kinematic equations. Thus, situations where inaccurate modeling assumptions lead to inaccurate robot controllers can be avoided. Another technical advantage is that the disclosed technology can be used to generate a controller for a robot without any knowledge of the physical structure of the robot. Thus, the disclosed technology can be implemented in situations where some or all of the robot structure cannot be observed and / or analyzed. These technical advantages represent one or more technical advances over prior art methods.
[0063] 1. Some embodiments include a computer-implemented method for controlling a robot, the method comprising: determining a first set of outputs generated by the robot in response to a first set of inputs; generating a first set of basis functions based on the first set of inputs and the first set of outputs, wherein the first set of basis functions describes one or more physical properties of a first robot; and causing the robot to perform a first action based on the first set of basis functions.
[0064] 2. A computer-implemented method according to claim 1, wherein the first set of inputs includes one or more angular velocity commands, which are transmitted to the robot to control one or more joints included in the robot.
[0065] 3. A computer-implemented method according to any of clauses 1-2, wherein the first set of outputs includes one or more three-dimensional positions traversed by an end effector of the robot.
[0066] 4. A computer-implemented method according to any of clauses 1-3, wherein determining the first set of outputs includes: transmitting the first set of inputs to the robot; and determining a first set of positions traversed by the robot in response to the first set of inputs.
[0067] 5. A computer-implemented method according to any of clauses 1-4, wherein generating the first set of basis functions includes: generating a plurality of coefficients based on a plurality of basis functions, wherein each coefficient contained in the plurality of coefficients corresponds to a different basis function contained in the plurality of basis functions; determining a first set of coefficients having non-zero values contained in the plurality of coefficients; and determining one or more basis functions contained in the plurality of basis functions corresponding to the first set of coefficients.
[0068] 6. A computer-implemented method as described in any of clauses 1-5, wherein determining the first set of coefficients includes applying a sparsity constraint to the plurality of coefficients.
[0069] 7. The computer-implemented method of any of clauses 1-6, wherein each basis function included in the first set of basis functions corresponds to a different physical property of the robot.
[0070] 8. Some embodiments include a non-transitory computer-readable medium storing program instructions, which, when executed by a processor, cause the processor to control a robot by performing the following steps: determining a first set of outputs generated by the robot in response to a first set of inputs; generating a first set of basis functions based on the first set of inputs and the first set of outputs, wherein the first set of basis functions describes one or more physical properties of a first robot; and causing the robot to perform a first action based on the first set of basis functions.
[0071] 9. A non-transitory computer-readable medium according to claim 8, wherein the first set of inputs includes one or more angular velocity commands, which are transmitted to the robot to control one or more joints included in the robot.
[0072] 10. A non-transitory computer-readable medium as described in any of clauses 8-9, wherein the first set of outputs includes one or more three-dimensional positions traversed by the end effector of the robot, and wherein the step of determining the first set of outputs includes: transmitting the first set of inputs to the robot; and determining the first set of positions traversed by the robot in response to the first set of inputs.
[0073] 11. The non-transitory computer-readable medium of any of clauses 8-10, wherein the step of generating the first set of basis functions comprises: eliminating any basis functions from a plurality of basis functions that do not correspond to physical properties of the robot.
[0074] 12. A non-temporary computer-readable medium according to any of clauses 8-11, wherein the step of causing the robot to perform a first action includes: causing the robot to move the end effector of the robot from a current position to a second position toward a target position; and determining an error value based on the second position and the target position.
[0075] 13. A non-transitory computer-readable medium according to any of clauses 8-12, wherein the step of causing the robot to perform the first action also includes: determining that the error value exceeds a threshold; and modifying the second position based on the first set of basis functions to reduce the error value.
[0076] 14. A non-transitory computer-readable medium according to any of clauses 8-13, wherein causing the robot to perform the first action also includes: calculating a first set of angular velocities based on the error value; causing the end effector to move toward the target position to the second position based on the first set of angular velocities; calculating a first set of end effector velocities based on the first set of basis functions and the first set of angular velocities; and updating the current position based on the first set of end effector velocities.
[0077] 15. Some embodiments include a computer-implemented method for generating a controller for a robot, the method comprising: generating a first set of basis functions based on one or more system parameters associated with the robot; generating a first set of coefficients based on the first set of basis functions and a sparse constraint, wherein the sparse constraint causes a subset of the first set of coefficients to have a zero value; and generating the controller based on the first set of basis functions and the first set of coefficients, wherein the controller causes the robot to perform a first action.
[0078] 16. A computer-implemented method according to clause 15, wherein generating the controller includes: combining the first set of basis functions with the first set of coefficients to generate a model of the robot; and implementing an iterative control loop based on the model of the robot to generate the controller.
[0079] 17. A computer-implemented method according to any of clauses 15-16, wherein the first set of basis functions is combined with the first set of coefficients such that a subset of the set of basis functions corresponding to the subset of the set of coefficients is disabled.
[0080] 18. A computer-implemented method according to any of clauses 15-17, wherein the controller causes the robot to perform the first action by: causing the robot to move the end effector of the robot from a current position to a second position toward a target position; determining an error value based on the second position and the target position; determining that the error value exceeds a threshold; and modifying the second position based on the first set of basis functions to reduce the error value.
[0081] 19. A computer-implemented method according to any of clauses 15-18, wherein each coefficient contained in the subset of the first set of coefficients corresponds to a basis function contained in the first set of basis functions that does not correspond to a physical property of the robot.
[0082] 20. The computer-implemented method of any of clauses 15-19, wherein a first system parameter included in the one or more system parameters corresponds to a robot type associated with the robot.
[0083] Any and all combinations of any of the claim elements set forth in any of the claims and / or any of the elements described in the present application in any manner fall within the scope of the embodiments and protection of the present invention.
[0084] The description of the various embodiments has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments.
[0085] Aspects of embodiments of the present invention may be embodied as systems, methods, or computer program products. Therefore, aspects of the present disclosure may take the form of full hardware embodiments, full software embodiments (including firmware, resident software, microcode, etc.), or embodiments combining software and hardware aspects, which may all be generally referred to herein as "modules," "systems," or "computers." In addition, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable media having computer-readable program codes embodied thereon.
[0086] Any combination of one or more computer-readable media may be utilized. A computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or any suitable combination of the foregoing. A more specific example (non-exhaustive list) of a computer-readable storage medium will include the following: an electrical connection with one or more wires, a portable computer floppy disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or apparatus.
[0087] Aspects of the present disclosure are described above with reference to the flowchart illustrations and / or block diagrams of the methods, devices (systems) and computer program products according to the embodiments of the present disclosure. It will be understood that each frame in the flowchart illustration and / or block diagram and the combination of each frame in the flowchart illustration and / or block diagram can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer or other programmable data processing device to generate a machine. When executed by a processor of a computer or other programmable data processing device, the instructions enable the implementation of the functions / actions specified in one or more frames of the flowchart and / or block diagram. Such processors can be, but are not limited to, general-purpose processors, special-purpose processors, application-specific processors or field programmable gate arrays.
[0088] The flowcharts and block diagrams in each figure illustrate the architecture, functionality and operation of the possible implementation of the system, method and computer program product according to various embodiments of the present disclosure. In this regard, each frame in the flowchart or block diagram may represent a code module, code segment or code portion including one or more executable instructions for implementing one or more specified logical functions. It should also be noted that in some alternative implementations, the functions mentioned in the frame may not appear in the order mentioned in the figures. For example, two frames shown in a continuous manner can actually be executed substantially simultaneously, or each frame can sometimes be executed in reverse order, depending on the functionality involved. It should also be noted that each frame in the block diagram and / or the flowchart illustration and the combination of each frame in the block diagram and / or the flowchart illustration can be implemented by a system based on dedicated hardware or a combination of dedicated hardware and computer instructions that performs the specified function or action.
[0089] While the foregoing is directed to embodiments of the present disclosure, other and further embodiments of the present disclosure may be devised without departing from the basic scope of the present disclosure, and the scope of the present disclosure is determined by the claims that follow.
Claims
1. A computer-implemented method for controlling a robot, the method comprising: determining a first set of outputs generated by the robot in response to a first set of inputs; generating a plurality of basis functions based on the first set of inputs and the first set of outputs; generating a plurality of coefficients for the plurality of basis functions based at least on a robot command and an end effector position, wherein each coefficient included in the plurality of coefficients corresponds to a different basis function included in the plurality of basis functions and indicates the extent to which the corresponding basis function describes a physical property of the robot; and The robot is caused to perform a first action based on a first group of basis functions included in the plurality of basis functions and the plurality of coefficients.
2. The computer-implemented method of claim 1, wherein the first set of inputs comprises one or more angular velocity commands that are transmitted to the robot to control one or more joints included in the robot. 3 . The computer-implemented method of claim 1 , wherein the first set of outputs comprises one or more three-dimensional positions traversed by an end effector of the robot.
4. The computer-implemented method of claim 1 , wherein determining the first set of outputs comprises: transmitting the first set of inputs to the robot; as well as A first set of locations traversed by the robot is determined in response to the first set of inputs.
5. The computer-implemented method of claim 1 , further comprising: The first set of basis functions is generated, comprising: determining a first set of coefficients having non-zero values included in the plurality of coefficients; and One or more basis functions included in the plurality of basis functions corresponding to the first set of coefficients are determined. 6 . The computer-implemented method of claim 5 , wherein determining the first set of coefficients comprises applying a sparsity constraint to the plurality of coefficients.
7. The computer-implemented method of claim 1, wherein each basis function included in the first set of basis functions corresponds to a different physical property of the robot.
8. A non-transitory computer readable medium storing program instructions which, when executed by a processor, cause the processor to control a robot by performing the following steps: determining a first set of outputs generated by the robot in response to a first set of inputs; generating a plurality of basis functions based on the first set of inputs and the first set of outputs; generating a plurality of coefficients for the plurality of basis functions based at least on a robot command and an end effector position, wherein each coefficient included in the plurality of coefficients corresponds to a different basis function included in the plurality of basis functions and indicates the extent to which the corresponding basis function describes a physical property of the robot; and The robot is caused to perform a first action based on a first group of basis functions included in the plurality of basis functions and the plurality of coefficients.
9. The non-transitory computer-readable medium of claim 8, wherein the first set of inputs comprises one or more angular velocity commands that are transmitted to the robot to control one or more joints included in the robot.
10. The non-transitory computer readable medium of claim 8, wherein the first set of outputs comprises one or more three-dimensional positions traversed by an end effector of the robot, and wherein determining the first set of outputs comprises: transmitting the first set of inputs to the robot; as well as A first set of locations traversed by the robot is determined in response to the first set of inputs.
11. The non-transitory computer-readable medium of claim 8, further comprising: The step of generating the first set of basis functions comprises eliminating any basis functions from the plurality of basis functions that do not describe the physics of the robot.
12. The non-transitory computer readable medium of claim 8, wherein causing the robot to perform a first action comprises: causing the robot to move an end effector of the robot from a current position toward a target position to a second position; as well as An error value is determined based on the second position and the target position.
13. The non-transitory computer-readable medium of claim 12, wherein the step of causing the robot to perform the first action further comprises: Determining that the error value exceeds a threshold; as well as The second position is modified based on the first set of basis functions to reduce the error value.
14. The non-transitory computer-readable medium of claim 12, wherein causing the robot to perform the first action further comprises: calculating a first set of angular velocities based on the error values; causing the end effector to move toward the target position to the second position based on the first set of angular velocities; calculating a first set of end effector velocities based on the first set of basis functions and the first set of angular velocities; as well as The current position is updated based on the first set of end effector velocities.
15. A computer-implemented method for generating a controller for a robot, the method comprising: generating a first set of basis functions based on one or more system parameters associated with the robot; generating a first set of coefficients based on the first set of basis functions, robot commands, end effector positions, and sparse constraints, wherein each coefficient included in the first set of coefficients corresponds to a different basis function included in the first set of basis functions and indicates the extent to which the corresponding basis function describes the physical properties of the robot; and The controller is generated based on the first set of basis functions and the first set of coefficients, wherein the controller causes the robot to perform a first action.
16. The computer-implemented method of claim 15, wherein generating the controller comprises: combining the first set of basis functions with the first set of coefficients to generate a model of the robot; as well as An iterative control loop is implemented based on the model of the robot to generate the controller.
17. The computer-implemented method of claim 16, wherein the first set of basis functions is combined with the first set of coefficients such that a given basis function included in the first set of basis functions corresponding to a given coefficient included in the first set of coefficients is disabled.
18. The computer-implemented method of claim 15, wherein the controller causes the robot to perform the first action by: causing the robot to move an end effector of the robot from a current position toward a target position to a second position; determining an error value based on the second position and the target position; Determining that the error value exceeds a threshold; as well as The second position is modified based on the first set of basis functions to reduce the error value.
19. The computer-implemented method of claim 15, wherein a first system parameter included in the one or more system parameters corresponds to a robot type associated with the robot.
Citation Information
Patent Citations
Methods for refining original robot command signals
US4763276A
Adaptive robust control device
US5959861A
