Systems and Methods for Joint Design of Actuators and Control for Robots

20250303567 ยท 2025-10-02

Assignee

Inventors

Cpc classification

International classification

Abstract

An engineering system comprises a memory having instructions stored thereon and at least one processor configured to execute the instructions to cause the system to collect a plurality of tasks for a manipulator actuated by a motor. Structural parameters of the motor, a plurality of reference trajectories of the motor for actuating the manipulator to perform the plurality of tasks, and parameters of a feedback control policy for the manipulator are jointly determined to increase overlap between a probability distribution of values of operational data of the motor operating according to different real trajectories from a plurality of real trajectories and an efficiency map of the motor defined in a domain of the operational data of the motor. The structural parameters of the motor, the plurality of reference trajectories, and the feedback control policy are output for performing the plurality of tasks.

Claims

1. An engineering system, comprising: at least one processor; and a memory having instructions stored thereon that, when executed by at least one processor, cause the system to: collect a plurality of tasks for a manipulator actuated by one or multiple actuators including a motor; determine, jointly and in interdependence on each other, structural parameters of the motor, a plurality of reference trajectories of the motor for actuating the manipulator to perform the plurality of tasks, and parameters of a feedback control policy for the manipulator, to increase overlap between a probability distribution of values of operational data of the motor operating according to different real trajectories from a plurality of real trajectories and an efficiency map of the motor defined in a domain of the operational data of the motor; and output the structural parameters of the motor, the feedback control policy, and the plurality of reference trajectories for performing the plurality of tasks.

2. The engineering system of claim 1, wherein the processor is further configured to: generate a design of the motor according to the structural parameters; compute the plurality of reference trajectories for the motor to actuate the manipulator for performing the plurality of tasks; and determine parameters of the feedback control policy which commands the motor such that the manipulator follows the plurality of reference trajectories.

3. The engineering system of claim 1, wherein the domain of the operational data of the motor is a two-dimensional space defined by speed and torque of the motor.

4. The engineering system of claim 1, wherein the structural parameters of the motor define one or a combination of a permanent magnet thickness of the motor, a tooth width of the motor, a tooth height of the motor, and a slot opening of the motor.

5. The engineering system of claim 1, wherein each of the plurality of reference trajectories of the motor is defined by one or a combination of a state of the motor as a function of time, a control command to the motor as a function of time or a state of the manipulator as a function of time.

6. The engineering system of claim 1, wherein the processor is configured to determine the structural parameters of the motor, the parameters of the feedback control policy, and the plurality of reference trajectories of the motor jointly and in interdependence on each other as optimization parameters of an alternative optimization.

7. The engineering system of claim 1, wherein the processor is configured to iteratively determine the structural parameters, the parameters of the feedback control policy, and the plurality of reference trajectories of the motor until a termination condition is met, wherein, to perform a current iteration, the processor is configured to: determine current reference trajectories for the plurality of tasks that optimize a cost function based on an ideal differentiable simulator characterizing the motor and manipulator dynamics, wherein in the current iteration, the motor has values of the structural parameters determined during a previous iteration, and the motor and manipulator dynamic model parameters are updated based on values of the structural parameters determined during the previous iteration; train the feedback control policy to optimize a reward function indicating tracking performance of a manipulator control system during execution of the current reference trajectories, wherein the manipulator control system produces the plurality of real trajectories, and wherein the manipulator control system comprises at least the feedback control policy to be trained, a trajectory tracking controller, and a non-ideal simulator characterizing the motor and manipulator dynamics subject to uncertainties; determine a current probability distribution of values of operational data of the motor operating according to the real trajectories; and update the values of the structural parameters of the motor for the current iteration to increase the overlap of the efficiency map of the motor with the updated values of the structural parameters and the current probability distribution of values of the operational data of the motor.

8. The engineering system of claim 7, wherein the termination condition includes a condition that an error between structural parameters in the current iteration and the structural parameters determined during a previous iteration is below a threshold.

9. The engineering system of claim 8, wherein the threshold is defined as a sum of squares of the error.

10. The engineering system of claim 1, wherein to determine the reference trajectories for the plurality of tasks that optimize a cost function, the processor is configured to solve a motion planning problem using an ideal differentiable simulator where the dynamical models of the motor and manipulator are updated according to the latest structural parameters of the motor.

11. The engineering system of claim 1, wherein the processor determines the efficiency map of the motor according to design parametrization of 2D geometry of the motor and one or more operational constraints of the motor.

12. The engineering system of claim 1, wherein the processor is configured to determine the parameters of the feedback control policy for controlling the motor jointly and interdependently with the structural parameters of the motor to track the plurality of reference trajectories of the motor.

13. The engineering system of claim 12, wherein the feedback control policy includes a combination of a soft-actor-critic neural network and a classic position trajectory controller, wherein parameters of the soft-actor-critic neural network are updated according to the reference trajectories and the real trajectories to optimize a reward function indicating a degree of overlap between the real trajectories and the reference trajectories, and wherein the classic position trajectory controller comprises at least a feedforward controller and a proportional, integral and derivative (PID) controller.

14. The engineering system of claim 12, wherein the parameters of the soft-actor-critic neural network are updated by: fetching a reference trajectory of the plurality of reference trajectories; updating the parameters of the soft-actor-critic neural network by simulating a manipulator control system to track the fetched reference trajectory until the parameters converge; and repeating the fetching and the updating until all reference trajectories have been used to update the parameters of the soft-actor-critic neural network.

15. The engineering system of claim 12, wherein the parameters of the soft-actor-critic neural network are updated by: fetching a reference trajectory of the plurality of reference trajectories; updating the parameters of the soft-actor-critic neural network by simulating a manipulator control system to track the fetched reference trajectory; and repeating the fetching and the updating until the parameters of the soft-actor-critic neural network converge.

16. A computer-implemented method for jointly designing actuators and control for a robotic manipulator, the method comprising: collecting a plurality of tasks for the manipulator actuated by one or multiple actuators including a motor; determining, jointly and in interdependence on each other, structural parameters of the motor, a plurality of reference trajectories of the motor for actuating the manipulator to perform the plurality of tasks and parameters of a feedback control policy for the manipulator, to increase overlap between a probability distribution of values of operational data of the motor operating according to different real trajectories from a plurality of real trajectories and an efficiency map of the motor defined in a domain of the operational data of the motor; and outputting the structural parameters of the motor, the feedback control policy, and the plurality of reference trajectories for performing the plurality of tasks.

17. The method of claim 16, wherein the structural parameters of the motor define one or a combination of a permanent magnet thickness of the motor, a tooth width of the motor, a tooth height of the motor, and a slot opening of the motor.

18. The method of claim 16, wherein each of the plurality of reference trajectories of the motor is defined by one or a combination of a state of the motor as a function of time, a control command to the motor as a function of time, or a state of the manipulator as a function of time.

19. The method of claim 16, wherein the structural parameters of the motor, the parameters of the feedback control policy, and the plurality of reference trajectories of the motor are determined jointly and in interdependence on each other as optimization parameters of an alternative optimization.

20. The method of claim 16, wherein the structural parameters of the motor, the parameters of the feedback control policy, and the plurality of reference trajectories of the motor are determined iteratively until a termination condition is met, wherein a current iteration includes: determining current reference trajectories for the plurality of tasks that optimize a cost function based on an ideal differentiable simulator characterizing the motor and manipulator dynamics, wherein in the current iteration, the motor has values of the structural parameters determined during a previous iteration, and the motor and manipulator dynamic model parameters are updated based on values of the structural parameters determined during the previous iteration; training the feedback control policy to optimize a reward function indicating tracking performance of a manipulator control system during execution of the current reference trajectories, wherein the manipulator control system produces the plurality of real trajectories, and wherein the manipulator control system comprises at least the feedback control policy to be trained, a trajectory tracking controller, and a non-ideal simulator characterizing the motor and manipulator dynamics subject to uncertainties; determining a current probability distribution of values of operational data of the motor operating according to the real trajectories; and updating the values of the structural parameters of the motor for the current iteration to increase the overlap of the efficiency map of the motor with the updated values of the structural parameters and the current probability distribution of values of the operational data of the motor.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

[0020] The presently disclosed embodiments will be further explained with reference to the following drawings. The drawings shown are not necessarily to scale, with emphasis instead generally being placed upon illustrating the principles of the presently disclosed embodiments.

[0021] FIG. 1A illustrates a method for jointly designing actuators and control for a robotic manipulator, according to some embodiments.

[0022] FIG. 1B illustrates schematics of a robotic manipulator, in accordance with some example embodiments;

[0023] FIG. 1C illustrates schematics of a joint assembly of the robotic manipulator of FIG. 1B, in accordance with some example embodiments;

[0024] FIG. 1D illustrates a robotic arm performing a typical task, according to some embodiments;

[0025] FIG. 1E illustrates a robot control system for the manipulator of FIG. 1B to perform a certain positioning task, according to some embodiments;

[0026] FIG. 2A illustrates a flowchart of an exemplar method for joint design of motors, tracking controller, and motion planner for a given application, according to some embodiments;

[0027] FIG. 2B illustrates an algorithm for the method of FIG. 2A for closed loop co-design framework for the robotic manipulator, according to some embodiments;

[0028] FIG. 3 illustrates some contents of differentiable modeling utilized by a robot control system, according to some embodiments;

[0029] FIG. 4A illustrates some steps of a method of motor modeling 305, according to some embodiments;

[0030] FIG. 4B illustrates an embodiment of design parameterization of a motor's 2D geometry, according to some embodiments;

[0031] FIG. 4C illustrates some steps of a method for deriving various losses as a part of efficiency modelling of the motor, according to some embodiments;

[0032] FIG. 5A illustrates some steps of a method for updating robot arm dynamics, according to some embodiments;

[0033] FIGS. 5B-5D jointly illustrate an algorithm for implementing a differentiable simulator, according to some embodiments;

[0034] FIG. 6A illustrates a method of determining reference motion trajectory for each task of an application by solving various motion planning problems, according to some embodiments;

[0035] FIG. 6B illustrates a method for obtaining motion trajectories for all tasks of the application, according to some embodiments;

[0036] FIG. 7A illustrates a method for feedback control policy synthesis, according to some embodiments;

[0037] FIG. 7B illustrates a block diagram of a tracking controller of the robot control system of FIG. 1E, according to some embodiments;

[0038] FIG. 8A illustrates a method for updating motor design, according to some embodiments;

[0039] FIG. 8B illustrates a method for discretization of the motor design optimization problem of FIG. 8A, according to some embodiments;

[0040] FIG. 9 illustrates two plots: one showing operational distribution of a motor on the speed-torque plane and the other showing the discretized counterpart of the operational distribution of the motor on the speed-torque plane, according to some embodiments; and

[0041] FIG. 10 illustrates some components of an engineering system for joint designing of motors, tracking controller, and motion planner for a given application defined as set of tasks, according to some embodiments.

[0042] While the above-identified drawings set forth presently disclosed embodiments, other embodiments are also contemplated, as noted in the discussion. This disclosure presents illustrative embodiments by way of representation and not limitation. Numerous other modifications and embodiments can be devised by those skilled in the art which fall within the scope and spirit of the principles of the presently disclosed embodiments.

DETAILED DESCRIPTION

[0043] The following description provides exemplary embodiments only, and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the following description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing one or more exemplary embodiments. Contemplated are various changes that may be made in the function and arrangement of elements without departing from the spirit and scope of the subject matter disclosed as set forth in the appended claims.

[0044] Specific details are given in the following description to provide a thorough understanding of the embodiments. However, understood by one of ordinary skill in the art can be that the embodiments may be practiced without these specific details. For example, systems, processes, and other elements in the subject matter disclosed may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known processes, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments. Further, like-reference numbers and designations in the various drawings may indicate like elements.

[0045] Also, individual embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process may be terminated when its operations are completed but may have additional steps not discussed or included in a figure. Furthermore, not all operations in any particularly described process may occur in all embodiments. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, the function's termination can correspond to a return of the function to the calling function or the main function.

[0046] Furthermore, embodiments of the subject matter disclosed may be implemented, at least in part, either manually or automatically. Manual or automatic implementations may be executed, or at least assisted, through the use of machines, hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium. A processor(s) may perform the necessary tasks.

[0047] FIG. 1A illustrates a method for jointly designing actuators and control for a robotic manipulator, according to some embodiments. The method comprises collecting 10 a plurality of tasks for the manipulator. The manipulator may be actuated by one or multiple actuators including a motor. Structural parameters of the motor, a plurality of reference trajectories of the motor for actuating the manipulator to perform the plurality of tasks, and parameters of a feedback control policy for the manipulator may be determined 20 jointly and in interdependence on each other. The structural parameters of the motor, the plurality of reference trajectories of the motor, and the parameters of the feedback control policy for the manipulator are jointly determined to increase overlap between a probability distribution of values of operational data of the motor operating according to different real trajectories and an efficiency distribution of the motor defined in a domain of the operational data of the motor. The real trajectories are produced by a manipulator control system. The structural parameters of the motor, the plurality of trajectories, and the feedback control policy determined at step 20 may be output for performing the plurality of tasks. In this regard, the method comprises designing 30 the motor based on the determined structural parameters and driving 40 the designed motor based on the plurality of reference trajectories to actuate the manipulator to perform the plurality of tasks. Towards this end, the reference trajectories may be computationally executed to actuate the manipulator. Also, control commands for the motor are generated as per the parameters of the control policy such that the control commands cause the motor to actuate the manipulator in a manner that the manipulator follows the plurality of reference trajectories.

[0048] Some example embodiments provide systems and methods for jointly designing and control of a class of n degree-of-freedom (DOF) open-chain manipulator such as the manipulator 100 illustrated in FIG. 1B. The manipulator 100 comprises a base 100b, multiple joints, multiple links and an end-effector 10nc where each joint may typically move in one or more directions. The manipulator 100 may be used to perform one or more tasks such as manipulating a payload 107. The specific task may be defined in terms of parameters including, e.g., an initial position and velocity of the payload, a final position and velocity of the payload, acceleration and velocity constraints on the payload, time to accomplish the task, and the like. The manipulator 100 may be electronically coupled to a control system that provided control inputs to execute the task. An interface may be utilized to receive or collect one or more tasks. According to some embodiments, the base 100b may be mountable on a surface such as the floor or a movable platform. The other end of the base 100b is mechanically coupled with a first-axis link 101b through a first-axis joint 101a. The first-axis link 101b is coupled with a second-axis joint 102a, which is connected to a second-axis link 102b. This coupling and connection patterns are repeated until reaching the end-effector 10nc, which is attached on a last-axis link 10nb. The last-axis link 10nb is coupled with a previous link 10(n1)b through a last-axis joint 10na. According to some embodiments, one or more components of the manipulator 100 may be modeled in any suitable manner such as in terms of mathematical equations and a corresponding model of the components may be accessible to the control system of the manipulator 100. Each such model may describe interaction between various variables pertaining to the corresponding component such as control input variables, state variables (for example position, orientation, heading etc.).

[0049] In some embodiments, a joint of the manipulator 100 may be of any suitable type including but not limited to: revolute, prismatic, helical etc. The movements of the joints of the manipulator 100 may be controlled by one or more actuators coupled to the joints such that the manipulator 100 can be moved in accordance with one or more control inputs to effectuate manipulation of the payload 107 along any dimension.

[0050] According to some embodiments one or more joints such as the first-axis joint 101a may be a revolute type. FIG. 1C illustrates the schematics of the first-axis joint 101a of type revolute for illustration purpose. The base 100b may also be referred to as the link 0. The revolute joint 101a houses an electric motor comprising a stator 101c and a rotor 101d, and a gearbox assembly consisting of two gears 101e and 101f. Particularly, the stator 101c is rigidly attached on link 0 and always moves along with link 0, whereas the rotor 101d, along with the gear 101e, rotates around their axis 101g. The gear 101e drives gear 101f which rotates around its axis 101h. Because the axis 101h is rigidly attached to first-axis link 101b (also referred to as link 1), the link 101b also rotates around the axis 101h at the same angular velocity as the gear 101f. The motion of rotor 101d is driven by a torque arising from the electromagnetic interaction between stator and rotor.

[0051] In some embodiments, the electric motor is of type of surface-mounted permanent magnet synchronous motor (SPMSM), where the electromagnetic interaction between stator and rotor is implemented by supplying certain voltages to the windings of stator, whereas the rotor may comprise multiple permanent magnet pieces.

[0052] According to some embodiments, the manipulator 100 may be a robot arm, which is a combination of joints, links and gearboxes, and multiple motors. Such a robot arm may be configured to move objects or payloads from an initial position to a desired final position. FIG. 1D illustrates an exemplary robot arm for loading/unloading a workpiece onto/from a conveyor, according to some embodiments. As shown in FIG. 1D, the manipulator may be used to load a workpiece 112 onto a convey belt 111a, or unload finished parts off the convey belt, or move a workpiece between convey belts 111a and 111b, or moves the end-effector along a designated path. In some embodiments, the usage of manipulator 100 involves moving a workpiece from one initial position 110a to final position 110b.

[0053] FIG. 1E shows one embodiment of a robot control system for the manipulator 100 to perform a certain positioning task. The positioning task may comprise moving the end-effector of the manipulator 100 from an initial position 110a of FIG. 1D to final position 110b of FIG. 1D. A sensing and perception module 120 senses signals reflecting the operational status 151 of the robot arm 150 (the hardware part of manipulator 100) and state 156 of the environment 155, processes the signals, and outputs 121 to each of a tracking controller 135 and a final position selection module 125. The final position selection module 125 processes the measured signals 121 to determine the final position 110b and sends it to a motion planner 130. The motion planner 130 computes a reference motion trajectory 131 of the robot arm so that while following the reference motion trajectory, the end-effector 10nc shown in FIG. 1B moves from its initial position (or pose) and arrives at the final position (pose). In some embodiments, the initial position is the position of the robot arm before the execution of the motion task. The tracking controller 135 receives measured signals 121 and the reference trajectory 131 and determines one or more control commands 136, which is fed into drives 140. The drive units 140 further generate voltages supplied to motors 145. With the supplied voltages 141, the motors 145 produce electromagnetic torques 146, which move joints and links so that the movement of the end-effector of the robot arm 150 follows the reference trajectory 131 accurately.

[0054] In some embodiments, the final position 110b may be predefined or specified by a user/operator and pre-coded in software, and thus may be independent from sensing and perception module 120 and environment 155. The drive unit 140 may be realized in the form of an inverter-a kind of power electronics which converts a DC power into an AC power according to the command input 136. The motors 145 may be of surface-mounted permanent magnet motor (SPMSM) type where it contains three-phase windings in its stator. The three-phase SPMSM is supplied with three-phase voltages from the drive unit 140.

[0055] In some embodiments, the reference motion trajectory 131 of the robot arm may be represented by the trajectories of angles of all joints.

[0056] In some embodiments, the sensing and perception module 120 measures the currents flowing through motors 145 at all joints, the angles of rotors of all motors 145, etc., and thus signal 121 comprises motor currents and angular positions of motor rotors. The sensing and perception module 120 may also sense the environment by suitable sensors such as but not limited to a camera, LiDAR, or microphone to detect location of static obstacles or movements of dynamic obstacles. Hence, signal 121 may also include locations, sizes, shapes, and bounding boxes of objects in environment which might critically impact the motion generation and/or its execution toward accomplishment of a certain task.

[0057] In some embodiments, the control command 136 provided to the drives 140 may be in the form of reference torques to be produced by the motors 145. In some embodiments, the drive unit 140 determines and outputs the three-phase voltages needed by the motors 145.

[0058] In some embodiments, it may be an objective of the manipulator 100 to complete a task as fast as possible (i.e., within a threshold time period). In some other embodiments, it may be an objective to complete a task within a fixed amount of time while minimizing the energy consumption (i.e., with a threshold energy expenditure). Accordingly, some embodiments are directed towards solutions that jointly design the motors 145, the tracking controller 135, and the motion planner 130 toward accomplishment of one or multiple tasks.

[0059] According to some embodiments, the one or more tasks may constitute a given application that may be specified by operators or other machines coupled to the manipulator 100. In some embodiments, the joint design of motors, tracking controller, and motion planner for a given application may be formulated as a constrained optimization problem and solved efficiently. The constrained optimization problem involves characterizing user specification in a mathematically rigorous way to be absorbed into the optimization problem, modeling and simulation of the manipulator, devising an optimization process, control policy synthesis, and optimization algorithms.

[0060] FIG. 2A illustrates a flowchart of an exemplar method 200 for joint design of motors, tracking controller, and motion planner for a given application, according to some embodiments. The method 200 comprises differentiable modeling 205 of motors and the robot arm to establish the analytical mapping from decision variables (including motor design parameters and motion trajectories of joints or links or robot arm) to the models of motors and robot arm, constraints, and cost functions. The method 200 further comprises developing 210 an ideal differentiable simulator 211 based on differential models 206 as a result of the differentiable modeling 205. Application dataset may be characterized 215 to generate an initial motor design. The method 200 also comprises determining 220 the reference motion trajectories 221 and synthesizing 230 with the given the reference motion trajectories 221, a feedback control policy based on a non-ideal differentiable simulator 225.

[0061] The output 231 from the synthesizing step 230 includes the measured signals 121 of the closed-loop robot control system combining feedback control policy and the non-ideal differentiable simulator 225. The output 231 is used to update 235 the motor design. At 240, if convergence criteria is met, then the optimization process stops and outputs the last motor design 236 updated at step 235, otherwise, the last motor design 236 is fed back into module 220 and the steps of determining 220, synthesizing 230, and updating 235 are repeated. Both the ideal differentiable simulator 210 and the non-ideal differentiable simulator 225 are initialized with the initial motor design but are updated according to the last motor design produced at step 235 in each iteration. FIG. 2B illustrates an algorithm for the method 200 of FIG. 2A for closed loop co-design framework for the robotic manipulator.

[0062] In some embodiments, the convergence criteria typically reflect the differences between latest motor design and previous motor design. For instance, if the motor design is parameterized by a real vector , then the criteria can be defined as the sum of squares of .sub.k.sub.k1, where .sub.k, .sub.k1 denote the latest motor design and previous motor design, respectively.

[0063] Notations used in motor modeling are summarized in Table 1.

Notations Used in the SPMSM Model

TABLE-US-00001 Notation Description rotor speed .sub.m permanent magnet flux i.sub.d, i.sub.q current in d- and q-axis u.sub.d, u.sub.q voltage in d- and q-axis L.sub.d, L.sub.q inductance in d- and q-axis P number of pole pairs R winding resistance J rotor inertia load torque

[0064] Some embodiments are directed towards differentiable modeling for both motors and robot arm to analytically capture the relationship between decision variables and all equations and cost functions involved in the determination of reference motion trajectories 220, the synthesis of feedback control policy 230, and the update of motor design 235. FIG. 3 shows one embodiment of the differentiable modeling 205, which contains motor modeling 305 and robot arm dynamics modeling 310.

[0065] FIG. 4A discloses some steps of a method of motor modeling 305. The design parameterization 405 of the motor 2D geometry may be performed. Given the design parameterization 406 as , both motor design constraint modeling 410 and magnetic equivalent circuit modeling 415 may be conducted where the former outputs the design constraints as a set of nonlinear algebraic equations 411 and the latter outputs a dynamic model 416 of the motor with electrical circuit parameters .sub.motor=[L, .sub.m, R].sup.T. Given the motor dynamic model 416 and operation point 418, the motor operational constraints 417 can be derived and the efficiency modeling 420 can be performed to obtain the efficiency model of the motor 421.

[0066] FIG. 4B illustrates one embodiment of the design parameterization 405 of the motor 2D geometry. The design parameters 406 are denoted by =[L, r.sub.ro, r.sub.so, h.sub.m, h.sub.sy, w.sub.tooth, b.sub.0].sup.T. Particularly, L is the axial length of core, r.sub.ro the outer radius of rotor, r.sub.so the outer radius of stator, h.sub.m the height of magnet, h.sub.sy the stator yoke, w.sub.tooth the width of tooth, and b.sub.0 the slot opening. According to some embodiments, the other design parameters (not shown in FIG. 4B) may be kept constant, particularly: [0067] Number of pole pairs P=4 [0068] Number of slots Q=12 [0069] Height of tooth tip h.sub.tip=2 mm [0070] Width of air gap =0.5 mm [0071] Number of winding turns per tooth n.sub.s=50 [0072] Number of coils connected in parallel C=1 [0073] Remanent flux density of the magnet B.sub.r=1.38 T [0074] Relative recoil permeability of the magnet .sub.r=1.05 [0075] Filling factor f.sub.f=0.55 [0076] Maximum limitation for flux density B.sub.max=1.5 T [0077] Magnet width in electric angle .sub.m=

[0078] In some embodiments, the motor may be assumed with zero skewness, which yields a slot/pole ratio of 12/8 and a winding factor of k.sub.w1=0.866. Table 2 lists an example of the nominal values, units, and bounds of variables in .

Motor geometry design variables .

TABLE-US-00002 Parameter Nominal Value Unit Bounds [.sub.lb, .sub.ub] L 20 mm [20, 100] R.sub.ro 18 mm [10, 100] R.sub.so 30 mm [10, 100] h.sub.m 3 mm [1, 5] h.sub.sy 5 mm [5, 10] w.sub.tooth 7 mm [5, 20] b.sub.0 2 mm [1, 10]

[0079] Referring back to FIG. 4A, in some embodiments, motor design constraint modeling 410 reflects the restrictions on material cost, motor weight limit, and geometry compatibility. Given design parameters 406, the cylindrical rotor weight can be calculated as m.sub.rotor=.sub.ironR.sub.ro.sup.2L. Assuming a rectangular tooth cross-sectional area, the slot width is

[00002] b s s = A slot h s s

where:

[00003] A s l o t = ( ( R s o - h s y ) 2 - ( R r o + + h t i p ) 2 ) Q - w tooth h ss , [0080] and h.sub.ss=R.sub.soh.sub.syR.sub.roh.sub.tip is the slot height. Given filling factor f.sub.f, the copper area can be calculated as A.sub.cu=A.sub.slotf.sub.f. For a concentrated winding type and assuming that one winding is a complete turn around a tooth, a single coil area is

[00004] A coil = A c u 2 n s .

The stator weight is thus given by:

[00005] m s t a t o r = i r o n L ( ( R s o 2 - R r o 2 ) - A c u Q ) + c u A coil L coil n s Q .

[0081] In some embodiments, the motor design constraint modeling 410 leads to the following design constraints 411 on material cost and compatibility of dimension:

[00006] l b u b ( 1 ) w tooth + b 0 ( R ro + ) 2 Q h s s > 0 m stator + m rotor m u b A coil A coil , ub k p m w t ooth L B max , 1 3 k p m h s y L B max , [0082] where m.sub.ub and A.sub.coil,ub are certain positive constants and k.sub.p=sin(P/Q). The second inequality in (1) restricts the maximum tooth width and slot opening. The last inequalities in (1) caps the magnetic fluxes in both tooth and stator yoke.

[0083] According to some embodiments, magnetic equivalent circuit modeling 415 is performed as follows, based on the design parameters 406. The resistance of phase winding may be calculated as

[00007] R = q 1 C 2 R 1 ,

where

[00008] q 1 = Q m

is the slots per phase (in this work m=3),

[00009] R 1 = n s 2 e L coil A slot f f

is the resistance per tooth and L.sub.coil is the coil length. We know L.sub.coil=2 (L+L.sub.end,av), where

[00010] L end , av = 1 2 ( w tooth ( 2 - 2 ) + s 2 )

is the average length of the end-winding of the coil and

[00011] s = 2 ( R r o + ) Q

is the arc span per slot.

[0084] Given Carter's coefficient

[00012] k C = t pitch t p itch -

where

[00013] = ( b 0 / ) 2 5 + b 0 / and t pitch = 2 R r o Q ,

the magnetic flux density across the air-gap may be expressed as

[00014] B g = B r h m / r h m / r + k C .

[0085] The flux density of the first harmonics is B.sub.g,1=4B.sub.g/ and the flux per tooth per single turn is

[00015] 1 = B g , 1 2 R r o Q L .

Without skewness, the flux linkage is given by

[00016] m = k w q 1 c n s 1 ,

where k.sub.w=k.sub.pk.sub.d is the winding factor with

[00017] k d = sin ( / 6 ) q p m sin ( / ( 6 q p m ) ) .Math. q p m = q 1 gcd ( q 1 , 2 P )

is the slots per pole per phase and gcd() means the great common divisor.

[0086] The inductance is given by

[00018] L d = q 1 c 2 n s 2 L turn ,

where L.sub.turn=p.sub.g+3p.sub.so+3p.sub.tt is the inductance per turn and per tooth. Here p.sub.g and p.sub.so, and p.sub.tt, denoting the permeance of the magnetic path across the air gap and the slot opening, and the permeance of the curved magnetic path from tip to tip, respectively, are given by:

[00019] p g = 2 R ro 0 L ( + h m r ) Q , p so = 0 h tip L b 0 , p tt = 0 ( + h m ) L 2 ( + h m ) .

[0087] In some embodiments, the magnetic equivalent circuit modeling 415 based on design parameters 406 leads to the motor dynamic model 416 as follows:

[00020] i d = - 1 L d ( R i d - P L q i q - u d ) ( 2 ) i q = - 1 L q ( R i q + P ( L d i d + m ) - u q ) J = e - , [0088] where i.sub.d and i.sub.q are the motor currents in d- and q-axis, respectively, u.sub.d and u.sub.q are the voltages in d- and q-axis, respectively, w is the motor's mechanical speed, .sub.m is the permanent magnetic flux, J is the rotor inertia, .sub.e is the electric torque produced by the motor and is given by

[00021] e = 1 . 5 P ( m i q + ( L d - L q ) i d i q ) , [0089] is the load torque exerted on the rotor shaft, R is the stator winding resistance, L.sub.d, L.sub.q are the inductance in d- and q-axis, respectively, and P is the number of pole pairs. For SPMSM, L.sub.d=L.sub.d, and thus the electric torque is rewritten as .sub.e=1.5.sub.mi.sub.q.

[0090] The differentiable modeling 305 illustrated in FIG. 4A allows to establish the motor dynamic model parameters .sub.motor to be represented as analytical functions of motor design parameters . That is .sub.motor().

[0091] In some embodiments, a motor is subject to the following operational constraints 417 on currents and voltages:

[00022] i d 2 + i q 2 i u b 2 ( 3 ) u d 2 + u q 2 u u b 2 . [0092] where subscript ub stands for upper bound, i.sub.ub and u.sub.ub are certain positive constants.

[0093] In some embodiments, the operation point 418 of a motor may be represented by (, .sub.e, u.sub.ub, i.sub.ub). Referring to FIG. 4A, some embodiments utilize efficiency modeling 420 which derives the efficiency (equivalently power loss) model in the form of an analytical function of electric parameters .sub.motor=(L, .sub.m, R) in the motor dynamic model 416, geometry design , for any given operation point 418. In some embodiments, the efficiency modeling is based on the efficiency formula given by:

[00023] = P mech P mech + P cu + P hyst + P eddy , ( 4 ) [0094] where P.sub.mech is mechanical power, P.sub.cu=R(i.sub.d.sup.2+i.sub.q.sup.2) copper losses, P.sub.hyst eddy current losses and P.sub.eddy hysteresis losses. The eddy current and hysteresis losses are referred to as iron losses. If the operation point is feasible, the mechanical power is P.sub.mech=.sub.e, otherwise, P.sub.mech=0.

[0095] FIG. 4C illustrates some steps of a method for deriving the copper losses P.sub.cu=R(i.sub.d.sup.2+i.sub.q.sup.2), eddy current losses P.sub.hyst and hysteresis losses P.sub.eddy for any given operation point 418, as a part of the efficiency modelling 420, according to some embodiments. The losses may be derived for any operation point 418 based on the motor dynamic model 416, and by assuming that the motor operates at steady state. The copper losses depend on winding resistance R which changes according to the motor temperature. At first, torque control strategy is applied to derive 460 steady-state motor currents (i.sub.d*, i.sub.q*) 461 as a function of operation point 418 and dynamic model parameters 416 .sub.motor. Based on motor dynamic model parameters .sub.motor, the iron loss coefficients 466 are determined 465 as iron loss coefficients, which, combined with operation data 418, are employed to derive 470 iron loss models as functions of motor dynamic model parameters .sub.motor and operation data 418. On the other hand, given the steady-state motor currents 461, an approximate motor power 476, denoted as P.sub.in,ap, is obtained at step 475 based on iron losses model 471 and an approximate motor copper loss model induced by winding resistance under ambient temperature. The approximate motor power 476 is used to approximate motor temperature 480. The motor temperature 481 is used to determine 485 an approximate motor winding resistance 486. The copper loss model 491 may be derived 490 from the approximate motor winding resistance 486. The approximate motor resistance 486 is used to determine the copper losses P.sub.copper as functions of motor dynamic model parameters .sub.motor and operation data 418. The copper loss model 491, the iron losses model 471, and the mechanical power model are consolidated 492 to derive 495 the efficiency model 496 according to the formula (4) where the efficiency model 496 is as an analytical function of operation point 418 and design .sub.motor.

[0096] In some embodiments, the analytical formulas of P.sub.mech, P.sub.cu, P.sub.hyst, P.sub.eddy may be derived as follows. A max voltage V.sub.emf,max which is available to overcome back electromagnetic force (back-EMF) is first derived as V.sub.emf,max=u.sub.ubR.sub.maxi.sub.ub, where R.sub.maxi.sub.ub is the max voltage drop induced by the max resistance and max current of the phase winding. In some embodiments, the max resistance 486 is approximated 485 by

[00024] R max = R 0 ( 1 + ( T max - T 0 ) ) , ( 5 ) [0097] where T.sub.max and T.sub.0 are the max temperature and the ambient temperature, respectively, R.sub.0 is the resistance at the ambient temperature, and is a constant coefficient related to material. Given the motor dynamic model (2), the back-EMF is given by:

[00025] V emf = P ( L q i q ) 2 + ( m + L d i d ) 2 .

[0098] Given operation point 418, the current minimization control strategy is applied to 460 determine steady-state motor currents 461 by solving the following problem:

[00026] min i d , i q ( i d 2 + i q 2 ) subject to i d 2 + i d 2 i ub 2 , V emf V emf , max 1.5 P m i q = e , [0099] which admits an analytical solution. The detailed derivation of analytical formulas of steady-state currents of motor as a function of operation point 418 is straightforward for those skilled in the art and can be derived in accordance with known methods.

[0100] In some embodiments, the hysteresis and eddy losses for a given motor design is derived as part of step 470 as

[00027] P hyst = k hyst .Math. "\[LeftBracketingBar]" .Math. "\[RightBracketingBar]" B max st 2 V iron ( 6 ) P eddy = 8 R r o k eddy P w tooth 2 ( 2 ) 2 B max 2 V iron , [0101] where k.sub.hyst and k.sub.eddy are the coefficients, .sub.st=1.8 is the Steinmetz constant, and V.sub.iron is the volume of iron. The coefficients k.sub.hyst and k.sub.eddy are dependent on motor design. According to some embodiments, a method to determine 465 the iron losses coefficients may be executed by scaling the coefficients of nominal design .sub.0 for the coefficients of design . That is:

[00028] k hyst , k hyst , 0 m , m , 0 , k eddy , k eddy , 0 m , m , 0 , ( 7 ) [0102] where quantities with subscripts and .sub.0 are associated with design and nominal design .sub.0, respectively. Here k.sub.hyst,.sub.0 and k.sub.eddy,.sub.0 are pre-calculated positive constants for the nominal design .sub.0.

[0103] Given iron losses (6), mechanical power P.sub.mech, and the approximate copper losses P.sub.cu,ap=R.sub.0((i.sub.d*).sup.2+(i.sub.q*).sup.2) where (i.sub.d*, i.sub.q*) are steady-state motor currents 461, the approximate input power 476 is calculated as P.sub.in,ap=P.sub.hyst+P.sub.eddy+P.sub.mech+P.sub.cu,ap.

[0104] Next, P.sub.in,ap is used to 485 determine the temperature-dependent winding resistance as R=R.sub.0(1+(TT.sub.0)) with

[00029] T = T max P in , ap P rated + T 0

where P.sub.rated is the rated power of motor. Finally, the copper loss model is derived as P.sub.cu=R(i.sub.d*).sup.2+(i.sub.q*).sup.2).

[0105] The dynamic model of an n-degree of freedom (DoF) manipulator 100 can be written as follows:

[00030] M ( ) .Math. + C ( , ) + G ( ) = L , ( 8 ) [0106] where =[.sub.L.sub.1 . . . .sub.L.sub.k . . . .sub.L.sub.n].sup.Tcustom-character, {dot over ()}, and {umlaut over ()} are the angles, velocities, accelerations of links, with the units of rad, rad/s, rad/s.sup.2, respectively; subscript L.sub.k represents the link at the kth axis; .sub.L=[.sub.L.sub.1, . . . , .sub.L.sub.n].sup.T is the vector of torques applied on all links; M, C and G are the link inertia matrix, Coriolis forces, and gravitational force, respectively. Constraints on the angle and velocity of the kth link are:

[00031] L k , l b L k L k , ub .Math. L k , l b .Math. L k .Math. L k , ub , ( 9 ) [0107] where subscript lb stands for lower bound. Angles are referred to as configuration of the robot manipulator.

[0108] In some embodiments, the gearbox at the k+1.sup.th axis has a transmission ratio Z.sub.k+1. At the k.sup.th axis, the motor velocity .sub.k is proportional to the link velocity {dot over ()}.sub.L.sub.k, i.e., .sub.k={dot over ()}.sub.L.sub.k. For an ideal differentiable simulator, no friction in gearbox and motor bearing is assumed, which implies .sub.L.sub.k=Z.sub.k.sub.k, where .sub.k is the load torque applied on the rotor shaft of the k.sup.th-axis motor.

[0109] In some embodiments, the design parameters of the motor at the k.sup.th axis is denoted as &k, and the design parameters of all motors are denoted as =[.sub.1.sup., . . . , .sub.n.sup.].sup.. Let i.sub.d,k, i.sub.q,k, .sub.k, u.sub.d,k, u.sub.q,k be quantities associated with the motor at the kth axis (interchangeably, the kth motor). Denote the vectors of currents and control inputs of the k th motor as i.sub.k=[i.sub.d,k, i.sub.q,k].sup. and u.sub.K=[u.sub.d,k, u.sub.q,k].sup., respectively. Let i=[i.sub.1.sup., . . . , i.sub.n.sup.].sup. and u=[u.sub.1.sup., . . . , u.sub.n.sup.].sup. encapsulate the currents and control inputs of all motors, respectively. The state of the system including motors and robot manipulator is given by x=[i.sup., .sup., {dot over ()}.sup.].sup..

[0110] FIG. 5A illustrates some steps of a method for updating robot arm dynamics (8), as a part of robot arm dynamics modeling 310, according to motor design 406, which, equivalently, is reduced to explicitly express M, C, G are analytical matrix functions of motor design . Given design 406, the inertia matrices of rotor and stator of motors are expressed 505 as analytical functions of E. The inertia of the rotor of a motor in its principal 506 axes are

[00032] I xx = 1 2 iron R ro 4 L and I yy = I zz = 1 12 iron R ro 2 L ( 3 R ro 2 + L 2 )

The inertia of the stator of the motor can be similarly derived, which is straightforward to those skilled in the art and thus omitted. The functions of inertia matrices 506 are used to update 510 robot link inertia matrices as analytical functions of design . Particularly, the inertia matrix function of stator of the motor at the ith-axis is incorporated into the inertia matrix function of the ith-axis link. With the updated inertia matrix functions of all links 511, inertia matrix functions of rotors and stators of all motors 506, and the motor dynamic model 416, an ideal differentiable simulator 210 can be implemented 515 by the algorithm 550 jointly illustrated in FIGS. 5B-5D.

[0111] The ideal differentiable simulator 210 implements the forward dynamics of manipulator 100 including all motor dynamic models 416 and the forward dynamics of the robot arm, which is expressed as an analytical function of design parameters . In the algorithm 550, p, A, M, G, F.sub.tip, and V represent the biased force, screw axis, homogeneous transformation matrix, spatial inertia matrix, wrench at the tip, and twist, respectively. Other notations follow the description provided by the book MODERN ROBOTICS MECHANICS, PLANNING, AND CONTROL authored by Kevin M. Lynch and Frank C. Park, the contents of which are incorporated in entirety.

[0112] The forward dynamics of a robot arm is essentially a state space representation of a system dynamics (8): {dot over (x)}.sub.robot=f (x.sub.robot, u.sub.robot) with x.sub.robot=[.sup., {dot over ()}.sup.].sup. being state of the robot arm and u.sub.robot=.sub.L being control input of the robot arm. The notation of forward dynamics is well-understood for those skilled in the art and can be derived suitably in accordance with known methods.

[0113] In some embodiments, a non-ideal differentiable simulator 225 may implement the algorithm 550 of FIG. 5B except that the non-ideal differentiable simulator 225 contains an additional torque term .sub.f.sub.k to .sub.L.sub.k for 1kn in order to characterize unmodelled dynamics such as friction.

[0114] In some embodiments, given differentiable models, any software tool supporting auto-differentiation, e.g., CasADi, may be employed to implement differentiable simulators to expedite computationally efficient optimization algorithms.

[0115] In some embodiments, the k.sup.th link inertia G.sub.L.sub.k encompasses the stator of the (k+1).sup.th motor. The motor rotor and gearbox are treated as distinct rigid bodies, with the inertia being denoted as G.sub.R.sub.k, and all associated kinematic and dynamic quantities are updated independently. The spatial vector for gravitational acceleration is denoted as g=[0,0,0,0,0,9.81].sup..

[0116] In some embodiments, an application of interest to customers/operators may be characterized by a set of n.sub.t tasks 215a: custom-charactercustom-character{custom-character.sub.1, custom-character.sub.2, . . . , custom-character.sub.n.sub.t}. A task custom-character.sub.i is distinctively described by a tuple (.sub.0, .sub.f, M.sub.p), where .sub.0, .sub.f, and M.sub.p are the initial configuration, the final configuration, and the inertia matrix of the payload, respectively. Initial velocity {dot over ()}(0) and final velocity {grave over ()}(t.sub.f) are typically zero. For the motor currents in d-axis and q-axis corresponding to .sub.0 and .sub.f, from {dot over ()}(0)={dot over ()}(t.sub.f)=0, we choose d-axis current being 0: i.sub.d(0)=i.sub.d(t.sub.f)=0. However, q-axis currents, i.sub.q(0) and i.sub.q(t.sub.f), which reflect the necessary torques to maintain balance at the corresponding configurations, might not be zero. The necessary torques may be determined based on inverse dynamics of the manipulator 100, which further imply i.sub.q by solving the nonlinear algebraic equations induced by setting the right-hand side of the motor dynamic model 416 to 0. Hence, from configurations .sub.0 and .sub.f, the initial state x.sub.0 and final state x.sub.f may be readily obtained. The application of inverse dynamics of a robot arm are straightforward for those skilled in the art and thus omitted in this description.

[0117] In some embodiments, the initial position 110a and final position 110b for a given task (application data) 215a are represented by .sub.0 and .sub.f respectively, which can be used to infer the initial state and final state. In another embodiment, the initial position 110a and final position 110b for a given task 215a are represented by initial state x.sub.0 and final state x.sub.f of system, respectively.

[0118] In some embodiments, the initial position 110a and final position 110b for a given task 215a are represented by the initial pose and final pose of the end-effector. The construction of initial configuration .sub.0 and final configuration .sub.f can be inferred by solving inverse kinematics problem, which is straightforward to those skilled in the art.

[0119] FIG. 6A discloses a method for obtaining 220 reference motion trajectory for each task in a given set of tasks custom-character 215a where the design of all motors might be specified as an initial motor design 215b or an updated motor design 236. First, motor design 215b or 236 is passed into 605 to update the ideal differentiable simulator 210. The reference motion trajectories 611 for all tasks are obtained 610 based on the set of tasks 215a and the ideal differentiable simulator 210. In some embodiments, reference motion trajectories 611 for all n.sub.t tasks are given by ({circumflex over (x)}.sub.1*, . . . , {circumflex over (x)}.sub.n.sub.t*), or (.sub.1*, . . . , .sub.n.sub.t*), where {circumflex over (x)}.sub.i* or .sub.i* are the reference motion trajectory for the ith task. Without causing confusion from the context, {circumflex over (x)}* or * is referred to as the reference motion trajectory of a generic task while leaving out the subscript i.

[0120] FIG. 6B illustrates a method for obtaining 610 reference motion trajectories for all tasks, according to some embodiments. One task data 621 is first fetched 620 from the set of tasks 215a. Then the reference motion trajectory 626 for the task data 621 is determined 625, using the ideal differentiable simulator 210, by solving 625 motion planning problem. The steps of fetching 620 and the determining 625 for each task are repeated until all tasks are processed. All reference motion trajectories 626 are aggregated together to produce 611, given by ({circumflex over (x)}.sub.1*, . . . , {circumflex over (x)}.sub.n.sub.t*), or (.sub.1*, . . . , .sub.n.sub.t*).

[0121] In some embodiments, determining reference motion trajectory for each task 625 by solving motion planning is achieved by solving for the solution of an optimal control problem (OCP). A fixed-final-time open-loop OCP can be formulated as follows. Given dynamic models and constraints (1), (2), (3), (8), (9), initial state x.sub.0, final state x.sub.f, and final time t.sub.f, determine the optimal control u* which minimizes a certain cost function J(x, u)=.sub.0.sup.t.sup.fcustom-character(x, u)dt. In one embodiment, the cost can be written as follows:

[00033] J = t o t f u T Ru dt , ( 10 ) [0122] where R is a positive definite matrix, and t.sub.0 and t.sub.f denote the initial and final time, respectively.

[0123] According to some embodiments, one approach to the open-loop OCP is by transcribing it into a non-linear optimization problem (NLP) by discretizing the open-loop OCP over the given time interval [0, t.sub.f]. The corresponding nonlinear optimization problem is formulated as follows:

[00034] min X , U .Math. k = 0 N - 1 ( X k , U k ) subject to X k + 1 = f ( X k , U k ) , 0 k N - 1 c I ( X k , U k ) 0 , 0 k N - 1 c e ( X k , U k ) = 0 , 0 k N - 1 X 0 = x 0 , X N = x f , ( 11 ) [0124] where X=[x.sup.(t.sub.0), . . . , x.sup.(t.sub.N)].sup. and U=[u.sup.(t.sub.0), . . . , u.sup.(t.sub.N-1)].sup., with t.sub.0, . . . , t.sub.N being obtained by discretizing the time interval [0, t.sub.f] uniformly into N steps, and X.sub.k=x(t.sub.k), U.sub.k=u(t.sub.k); J.sub.d=.sub.k=0.sup.N-1custom-character(X.sub.k, U.sub.k) is the discretized counterpart of J(x, u); f(,) is the discretized state dynamics induced from (2) and (8); c.sub.I(,) and c.sub.e(,) are discretized constraints induced from (3) and (9). The non-linear optimization problem can be solved by established numerical optimization algorithms, for instance interior-point optimization algorithm. The formulation of open-loop OCP and the transcription of the corresponding nonlinear optimization problem, given a task characterized by its initial state x.sub.0, final state x.sub.f and a load M.sub.p, may be carried out through known technique in the art.

[0125] FIG. 7A illustrates a method for feedback control policy synthesis 230. Motor design parameters , either from initial design 215b or updated motor design 236, is passed into non-ideal differentiable simulator 225. A reference motion trajectory 706 is fetched 705 from the reference motion trajectories 611, which is treated as a reference trajectory 131 and submitted to the closed-loop robot control system of FIG. 1E, where the non-ideal differentiable simulator implements the forward dynamics of motors 145 and robot arm 150 and the tracking controller 135 implements an initial control policy. Simulating 710 the closed-loop robot control system gives a closed-loop motion trajectory 711 (also called the real trajectory), which is used to update control policy 715. If the convergence criteria at 720 is not met, then the updated control policy 716 is submitted to tracking controller module 135, and the simulating 710 and updating 715 steps are repeated until the convergence criteria at 720 is met; otherwise, the control policy synthesis for one reference motion trajectory 706 is completed and the control of steps move on to perform the control policy synthesis using another reference motion trajectory 706 out of 611, until all reference motion trajectories 611 have been used to synthesize control policy. With a newly fetched reference motion trajectory 706, the tracking controller module 135 is implemented with the latest synthesized control policy.

[0126] FIG. 7B illustrates a block diagram of the tracking controller 135, according to some example embodiments. A reference motion trajectory 706, used as reference trajectory 131 to the closed-loop robot control system of FIG. 1E, is first pre-processed 730 to produce auxiliary signals 731. These auxiliary signals 731 are exploited to train a learning-based controller 735. According to some embodiments, the auxiliary signals include: the reference trajectory 131, the derivative of the reference trajectory 131, an error trajectory between 131 and 121, the derivative of the error trajectory between 131 and 121. The learning-based controller outputs a correction 736 to the reference motion trajectory 131, which is combined 737 with reference trajectory 131 to obtain a virtual reference trajectory 738. The virtual reference trajectory 738 is used in feedforward control 745 to produce feedforward control torque 746. Also, the virtual reference trajectory 737 is compared 739 against the measured (real) motion trajectory 121 to yield an error motion trajectory, which is used in proportional, integral and derivative (PID) control 740 to produce a feedback control torque 741. The summation 743 of torques 746 and 741 is the torque command 136 passed to drive module 140.

[0127] In some embodiments, the measured signal 121 comprise the motor current, speed, the angles of all links. The reference trajectory 131 comprises the angle trajectories of all links of the robot arm. The pre-processing 730 outputs auxiliary signals consisting of: reference trajectory 131, the derivative of the reference trajectory 131, an error trajectory between 131 and 121, the derivative of the error trajectory between 131 and 121.

[0128] In some embodiment, the convergence criteria in 720 includes a condition that the errors of parameters in the latest control policy 716 and the control policy synthesized in the previous iteration are below a certain threshold. The threshold may be defined by a user-defined parameter such that the time required for the training/iterations is inversely proportional to the threshold. Alternatively, the convergence criteria in 720 is that the errors of reward (reward prediction error) of the latest control policy 716 and the reward of the control policy synthesized in the previous iteration is below a certain threshold.

[0129] In some embodiments, reinforcement learning (RL) framework may be exploited to train the learning-based controller 735 towards convergence. The RL conundrum centers on an agent that actively engages with its environment, monitoring states to determine actions that yield higher rewards. The RL agent interacts with the environment which is implemented in simulation as the non-ideal differentiable simulator 225. The learning-based policy 735 is denoted as . The RL algorithm tries to learn policy by evaluating the observation/measured data (auxiliary signal 731) against a certain reward function. The observation data are given by:


x=[*,{dot over ()}*,e*,*], [0130] where * and {dot over ()}* are the reference motion trajectory 131 and its time derivative, respectively, e*=* with is the error between the reference and measured trajectories of angles of all links, and * is the derivative of e*. In some embodiments, the RL goal may be to train a control policy that can track any reference trajectory under bounded disturbances, the reward function R may be designed as follow:

[00035] R = - ( w 1 .Math. e .Math. + w 2 .Math. e .Math. .Math. + w 3 .Math. .Math. ) ( 12 ) [0131] where w.sub.1, w.sub.2, w.sub.3 are weighting parameters, and is 736.

[0132] FIG. 8A illustrates a method for updating 235 motor design, according to some embodiments. Given the measured motion trajectory 711 (or equivalently measured signals 121), a probability distribution 806 of operation data is constructed 805 for each motor. A motor design optimization problem is formulated 810 based on all n probability distributions 806 of operation data, efficiency models 496 of the motors, operation constraints 417 of the motors, and design constraints 411 of all motors. The motor design optimization problem 811, defined over a 2-dimensional (2D) speed-torque plane, is discretized 815 over the speed-torque plane to yield a discretized motor design optimization problem 816, which is solved 820 to produce an update of motor design 236.

[0133] FIG. 8B illustrates a method for discretization 815 of the motor design optimization problem 811 of FIG. 8A, according to some embodiments. The discretization 815 is conducted for all motors. For illustration purposes, FIG. 8B entails a method of discretization related to one motor. However, it may be contemplated that similarly the method may be extended to all the motors. Given the measured motion trajectory 711 or equivalently measured signals 121, the measured motion trajectory related to the particular motor, denoted as 831, is fetched 830. The measured motion trajectory 831 may be used to infer the real motor velocity and torque along the trajectory, which implies a bounded region of the speed-torque plane where the motor operates. The bounded region of the speed-torque plane is discretized 835 into a plurality of meshes 836. For each mesh 840, the probability 846 of that the motor operates within the mesh 840 is determined 845. Meanwhile, the efficiency model for the mesh 840 (when the motor operates over the mesh) can be derived as 496 with the speed and torque (portion of operation point) being specified by some vertices of the mesh 840. Both the efficiency model over mesh 840 and the probability of operation data for mesh 840 are used to derive 850 the mesh-cost function 851 for the mesh 840. Repeating the aforementioned steps of 830, 835, 840, 845, 850, and 855 to obtain the mesh-cost functions for all meshes and for all motors and summing 870 all mesh-cost functions to get the cost function 871 for all motors. Meanwhile, design and operation constraints should be imposed for each mesh, and design and operation constraints for all meshes and all motors are aggregated 865 and 875 to give aggregated design constraint 866 and aggregated operation constraints 876. The discretized motor design optimization problem 816 is well-defined as a combination of aggregated cost function 871, aggregated operational constraints 865, and aggregated design constraints 876.

[0134] According to some embodiments, for k.sup.th motor, its operational distribution S.sub.k(, .sub.e) over the speed-torque plane based on measured motion trajectories 711 or 121 (u.sub.1, . . . , u.sub.n.sub.t) or (x.sub.1, . . . , x.sub.n.sub.t) is constructed 805 as follows. It is known that u.sub.i is represented by a sequence of u.sub.i(t.sub.w), with 0wN1, and at every time step, u.sub.i(t.sub.w) uniquely defines the operational point of each motor on the speed-torque plane. Hence from .sub.i, S.sub.k(, .sub.e) for 1kn, where S.sub.k(, .sub.e)=1 may be constructed at the N operational points and 0 otherwise. The plot (a) of FIG. 9 shows an example of S.sub.k(, .sub.e) from u.sub.i as 806. Given all motions (u.sub.1, . . . , u.sub.n.sub.t), one can obtain the operational distribution S.sub.k(, .sub.e) comprising Nn.sub.t points on the speed-torque plane, where N is the number of time steps that the discretization of time period [0, t.sub.f] yields.

[0135] Given the distributions S.sub.k(, .sub.e) for 1kn, the motor design is updated by maximizing the overlaps between the distributions S.sub.k(, .sub.e) and the efficiency map of motor for all 1kn. This is achieved by solving the following optimization problem 811:

[00036] min J motor ( , u 1 , .Math. , u n t ) ( 13 ) [0136] subject to (1), (3) [0137] where J.sub.motor(, u.sub.1, . . . , u.sub.n.sub.t)=.sub.k=1.sup.ncustom-characterS.sub.k(, .sub.e) (1.sub.k(, .sub.e, .sub.k))d.sub.ed, .sub.k, admitting the formula (4), represents the efficiency of the k.sup.th motor, and custom-character.sub.k is the support of S.sub.k(, .sub.e) in the speed-torque plane. Note that for the k.sup.th motor, design and operational constraints, (3) and (1), are imposed on every operation point over custom-character.sub.k, which induces an infinite number of constraints and thus impractical.

[0138] The motor design optimization problem (13), or 811 in FIG. 8A, involves the integration of S.sub.k(, .sub.e) (1.sub.k(, .sub.e, .sub.k)) over the 2D speed-torque plane.

[0139] One embodiment of discretization 815 of the motor design problem 811 is given as follows. The domain custom-characterk is discretized into a mesh with custom-charactercustom-character where the ijth mesh covers the region custom-character.sub.k.sub.ij: [.sub.j, .sub.j+1][.sub.i, .sub.i+1]. Then the probability that the k.sup.th motor operates within custom-character.sub.k.sub.ij is given by

[00037] k ij S k ( , e ) d e d , [0140] which can be approximated 845 as

[00038] S k ij = N k ij / ( Nn t )

with

[00039] N k ij

being the number of operational points in custom-character.sub.k.sub.ij. The plot (b) labeled as 846 in FIG. 9 visualizes the discretized counterpart of S.sub.k(, .sub.e) in plot (a) of FIG. 9 with custom-character=20.

[0141] The efficiency model .sub.k(, .sub.e, .sub.k) for the mesh custom-character is defined 855 as

[00040] k ij = k ( j + 1 , i + 1 , k ) .

Hence the mesh-cost function 851 is derived as follows:

[00041] k ij S k ( , e ) d e d S k ij ( 1 - k ij ) .

[0142] The summation of all mesh-cost functions for all meshes and motors, equivalently the discretized counterpart of cost function in (13), can be written as follows:

[00042] .Math. k = 1 n k S k ( , e ) ( 1 - k ( , e , k ) ) d e d .Math. k = 1 n .Math. i = 1 N k .Math. j = 1 N k S k ij ( 1 - k ij ) . ( 14 )

[0143] Note that in (14),

[00043] S k ij

is a numerical value whereas

[00044] k ij

is a differentiable function w.r.t. .sub.x for a given operational point (, .sub.e).

[0144] In some embodiments, the motor design problem tries to determine the motor design by minimizing

[00045] J motor ( , u 1 , .Math. , u n t ) = .Math. k = 1 n k S k ( , e ) P i n ( 1 - k ( , e , k ) ) d e d , [0145] which means to find the optimal motor design giving the least energy consumption for the applications characterized by the set of all tasks custom-character.

[0146] FIG. 10 illustrates some components of an engineering system 1000 for joint designing of motors, tracking controller, and motion planner for a given application defined as set of tasks, according to some embodiments. The engineering system 1000 comprises communication interfaces such as a transceiver 1016, an inertial measurement unit (IMU) 1010, output interfaces such as a display 1018, one or more sensors such as a camera 1006, computational circuitry realized through one or more processors 1012 and memory 1014. One or more connection buses 1008 may couple the components of the engineering system 1000 with each other. According to some embodiments, the engineering system 1000 may also be coupled with an articulated vehicle 1001. The vehicle 1001 comprises suitable processing circuitry realized through processors 1002 and memory that stores a path and motion planning module 1004.

[0147] According to some embodiments, the modules described with reference to FIGS. 2A-9 may be executed by the processing/computation circuitry of the engineering system 1000 to jointly designing actuators and control for robotic manipulators in accordance with various embodiments described herein.

[0148] The above description provides exemplary embodiments only, and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the above description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing one or more exemplary embodiments. Contemplated are various changes that may be made in the function and arrangement of elements without departing from the spirit and scope of the subject matter disclosed as set forth in the appended claims.

[0149] Specific details are given in the above description to provide a thorough understanding of the embodiments. However, understood by one of ordinary skill in the art can be that the embodiments may be practiced without these specific details. For example, systems, processes, and other elements in the subject matter disclosed may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known processes, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments. Further, like reference numbers and designations in the various drawings indicated like elements.

[0150] Also, individual embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process may be terminated when its operations are completed but may have additional steps not discussed or included in a figure. Furthermore, not all operations in any particularly described process may occur in all embodiments. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, the function's termination can correspond to a return of the function to the calling function or the main function.

[0151] Furthermore, embodiments of the subject matter disclosed may be implemented, at least in part, either manually or automatically. Manual or automatic implementations may be executed, or at least assisted, through the use of machines, hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium. A processor(s) may perform the necessary tasks.

[0152] Various methods or processes outlined herein may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and/or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.

[0153] Embodiments of the present disclosure may be embodied as a method, of which an example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts concurrently, even though shown as sequential acts in illustrative embodiments. Although the present disclosure has been described with reference to certain preferred embodiments, it is to be understood that various other adaptations and modifications can be made within the spirit and scope of the present disclosure. Therefore, it is the aspect of the append claims to cover all such variations and modifications as come within the true spirit and scope of the present disclosure.