The various embodiments relate generally to computer science and robotics, and, more specifically, to generative design techniques for soft robot manipulators.
Robots are oftentimes employed for tasks that require high repetition, can be dangerous to humans, and/or require high-precision. For example, robots are frequently implemented in manufacturing applications and environments that are hazardous to humans. As a general matter, robots are machines that are automated or semi-automated, programmable, and capable of complex planar or three-dimensional movements. Many conventional robots are implemented with rigid components (e.g., actuators, manipulators, and end effectors), but, for improved dexterity, flexibility, and adaptability, continuum robots (also referred to as “soft robots”) have been developed.
Continuum robots typically include one or more joints that can bend continuously along a finite length. The design and functionality of these continuously flexible joints are inspired by serpentine animal appendages, such as elephant trunks and octopus tentacles. The additional flexibility afforded by the continuously flexible joints makes continuum robots ideal for working in cluttered environments and enables continuum robots to be more adaptable in interacting with their surroundings relative to more traditional rigid robots. For example, in operation, a continuum robot can reach around nearby objects or otherwise modify its configuration to avoid collisions.
One drawback of continuum robots is that developing suitable robot designs for particular operating scenarios is quite difficult and can take weeks to complete due the multitude of design parameters, performance requirements, and constraints associated with any given operating scenario. For example, for each joint of a continuum robot, a length and minimum required bending radius has to be determined that allows the end effector of the continuum robot to perform a targeted trajectory and/or reach certain regions of a targeted workspace. In addition, one or more performance requirements of the continuum robot may be considered, such as dexterity (e.g., whether the continuum robot can reach a target with multiple orientations), manipulability (e.g., ability to reach multiple points as a function of robot configuration), and/or power/torque required to operate the continuum robot. Further, a continuum robot design is typically optimized with respect to one or more objective criteria (such as the length, weight, and/or number of joints of the continuum robot) in order to finalize the design, a procedure that involves multiple iterations of the overall design process.
Another drawback of continuum robots is that conventional design processes, even extensive ones, oftentimes fail to produce optimal design solutions for given operating scenarios. For example, a final robot design generated via a conventional design process may meet certain minimum performance objectives, such as not exceeding a maximum allowable robot arm length or weight; however, because a typical robot design is generated via a relatively small number of design process iterations, the overarching design space usually cannot be explored with a reasonable level of granularity. As a result, many better-performing design solutions may not be considered when designing continuum robots using conventional design approaches.
As the foregoing illustrates, what is needed in the art are more effective techniques for generating designs for continuum robots.
A computer-implemented method for generating a design for a continuum robot includes: generating a first plurality of candidate designs for the continuum robot, wherein each candidate design included in the first plurality of candidate designs is based on a first set of values for a set of design parameters; determining a first performance value for each candidate design included in the first plurality of candidate designs; based at least in part on the first performance values, selecting a subset of candidate designs from the first plurality of candidate designs; and based on the subset of candidate designs, generating a second plurality of candidate designs for the continuum robot, wherein each candidate design included in the second plurality of candidate designs is based on a second set of values for the set of design parameters.
At least one technical advantage of the disclosed techniques relative to the prior art is that, with the disclosed techniques, one or more designs for a continuum robot can be automatically generated without extensive kinematic analyses being performed by a robotics expert. Another advantage is that a final design generated using the disclosed techniques is based on a wide range of values for the different design parameters associated with a given operating scenario. Accordingly, the disclosed techniques enable the overall design space to be explored more comprehensively relative to conventional design processes. Consequently, the disclosed techniques substantially increase the likelihood of generating better-performing design solutions for continuum robots relative to conventional design processes. These technical advantages provide one or more technological advancements over prior art approaches.
So that the manner in which the above recited features of the various embodiments can be understood in detail, a more particular description of the inventive concepts, briefly summarized above, may be had by reference to various embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of the inventive concepts and are therefore not to be considered limiting of scope in any way, and that there are other equally effective embodiments.
For clarity, identical reference numbers have been used, where applicable, to designate identical elements that are common between figures. It is contemplated that features of one embodiment may be incorporated in other embodiments without further recitation.
In the following description, numerous specific details are set forth to provide a more thorough understanding of the various embodiments. However, it will be apparent to one of skill in the art that the inventive concepts may be practiced without one or more of these specific details.
Each design parameter included in design inputs 101 can be varied to generate a different potential design. In the case of a continuum robot design, the design parameters included in design inputs 101 indicate specific features of a continuum robot that can be varied to produce a different instance of a continuum robot design. For example, in some embodiments such design parameters may include the total number of continuum joints included in the continuum robot design, a minimum available bending radius for each continuum joint included in the continuum robot design, a straightened length for each continuum joint included in the candidate design, etc.
Continuum robot 200 includes one or more continuum joints, each of which is a “soft” or flexible joint that is configured to change shape during operation. Therefore, each continuum joint generally does not remain rigid and have the same shape at all times during operation. Instead, each continuum joint included in continuum robot 200 is configured to deform to a particular target bending radius in a particular target direction to cause a targeted motion and orientation of a rigid top portion of the continuum joint to occur relative to a rigid base portion of the continuum joint.
In the embodiment illustrated in
In some embodiments, spine 212 is configured to bend to a target bending radius 212R, and thereby modify the position and orientation of top portion 213 relative to base portion 211. In some embodiments, spine 212 is configured so that target bending radius 212R can vary from a minimum bending radius to a maximum bending radius of infinity, i.e., where spine 212 is configured as a straight segment. Generally, a value of the minimum bending radius in a particular configuration of continuum robot 200 is based on details of the mechanical design of spine 212, such as material properties of the various components of spine 212 and/or the morphology and physical dimensions of the various components of spine 212. Similarly, in some embodiments, spine 222 is configured to bend to a target bending radius 222R, and thereby modify the position and orientation of top portion 223 relative to base portion 221, and spine 232 is configured to bend to a target bending radius 232R, and thereby modify the position and orientation of top portion 233 relative to base portion 231. By selective bending of spine 212, spine 222, and/or spine 232, end effector 240 can be positioned at a target position in a three-dimensional space based on continuum robot 200 and oriented with a target orientation in the three-dimensional space. As a result, the continuum robot can access some or all portions of a workspace (not shown) that is located in the three-dimensional space proximate the continuum robot.
In some embodiments, the selective bending of spine 212, spine 222, and/or spine 232, is enabled, for example, via pneumatic actuation of pneumatic cells arranged along a core element. Thus, in the embodiment illustrated in
In the embodiment illustrated in
In some embodiments, design parameters associated with continuum robot 200 include one or more of a number of continuum joints included in the candidate design and a length 201 for the rigid portion(s) of each continuum joint included in the candidate design. In the embodiment illustrated in
As noted above, for a particular design problem, design inputs 101 of
In some embodiments, one or more design constraints included in design inputs 101 are associated with a workspace that is reachable by a candidate continuum robot design. An example of such design constraint is shown in
The ability for continuum robot 600 to access some or all of workspace 601 is generally a function of the configuration of continuum robot 600, including the size, number, and minimum bending radius of each continuum joint of continuum robot 600. The ability for continuum robot 600 to access some or all of workspace 601 is also a function of the shape of workspace 601 and relative positioning of workspace 601 and base location 602. Thus, in some embodiments, design constraints associated with workspace 601 include the shape of workspace 601 and the relative positioning of workspace 601 and base location 602.
As noted above, for a particular design problem, design inputs 101 of
In some embodiments, one or more objective criteria included in design inputs 101 include one or more of a maximum total arm length of a candidate design, a torque factor for the candidate design, a weight of the candidate design, and a number of continuum joints included in the candidate design. In such embodiments, the reduction of some or all of the above objective criteria generally results in candidate designs that not only meet the specified design goals for a particular operating scenario, but are also higher quality designs, i.e., smaller, subject to lower torque, lighter, and/or having fewer continuum joints. Consequently, performing minimization of an objective function based on such objective criteria enables selection of design parameter values for a new iteration of candidate designs that are higher quality than previous iterations of candidate designs.
An example of a maximum total arm length 501 of a candidate continuum robot design is illustrated by maximum total arm length 501 in
As noted above, for a particular design problem, design inputs 101 of
In some embodiments, a reachability factor for continuum robot 700 is based on how much of workspace 701 can be reached or otherwise accessed by continuum robot 700. In such embodiments, the reachability factor can be a percentage value indicating how much of workspace 701 continuum robot 700 can reach, for example with an end effector. Thus, when continuum robot 700 cannot reach all locations within workspace 701, continuum robot 700 has a reachability factor that is less than 1.0. In the embodiment illustrated in
In some embodiments, a trajectory factor for continuum robot 800 is based on how closely continuum robot 800 can follow end effector trajectory 801 and/or any associated velocity/acceleration profile. In other embodiments, a trajectory factor for continuum robot 800 is a binary factor indicating whether continuum robot 800 can follow end effector trajectory 801.
Returning to
Candidate design generator 110 is configured to generate one or more candidate designs 102 of a continuum robot for each iteration of continuum robot design and evaluation performed by generative design system 100. Generally, candidate design generator 110 generates candidate designs 102 based on design inputs 101. Specifically, for each candidate design 102, candidate design generator 110 determines a different set of values for the design parameters included in design inputs 101.
In some embodiments, candidate design generator 110 generates candidate designs 102 for one iteration based on values for the design parameters of the candidate designs of a previous iteration. In such embodiments, candidate design generator 110 generates a first set of values for the design parameters of candidate designs 102 based on a second set of values, i.e., the values for the design parameters of the candidate designs of a selected subset 104 of candidate designs that have been selected by ranking and selection module 130. In some embodiments, the values included in the first set of values are selected by minimizing an objective function that is based on objective criteria included in design inputs 101.
In some embodiments, the values included in the first set of values are selected from probability distributions generated based on the second set of values. For example, for a particular design parameter (e.g., length of a particular continuum joint), a probability distribution is generated from the values for that particular design parameter in the selected subset 104 of candidate designs. In such embodiments, the probability distribution may include an average value for that particular design parameter and a standard deviation of the values for that particular design parameter. Thus, candidate design generator 110 selects values for the particular design parameter in a new iteration of candidate designs 102 that are close in value to the average value in the probability distribution. In other embodiments, candidate design generator 110 bases the values included in the first set of values on the second set of values using any other suitable probability model of the values included in the first set of values.
Evaluation engine 120 is configured to generate one or more performance values 103 for each candidate design 102 generated by candidate design generator 110. Generally, evaluation engine 120 generates the performance values 103 based on one or more performance criteria included in design inputs 101, such as a reachability factor, a trajectory factor, and/or any other suitable performance criterion.
In some embodiments, evaluation engine 120 includes a kinematics solver 121 that is configured to analyze the kinematics of candidate designs 102. In such embodiments, based on the values of the design parameters for a particular candidate design 102, kinematics solver 121 determines which locations within a workspace are reachable by the particular candidate design 102. In some embodiments, kinematics solver 121 determines such locations via an inverse kinematics process or calculation for the particular candidate design 102. Inverse kinematics solvers are well-known in the art, and any suitable kinematics solver algorithm can be employed by kinematics solver 121.
Alternatively, in some embodiments, kinematics solver 121 determines the locations that are reachable by the particular candidate design 102 via a statistical, forward-kinematics approach. In such embodiments, a random sample of a large number of configurations of the particular candidate design 102 are selected, and the location reached by each random sample is determined via a simple forward kinematics calculation. For example, for each continuum joint included in the particular candidate design 102, a range of different deflection angles is selected. Each possible permutation of the different possible selected deflection angles for the continuum joints is then employed as one of the random samples. It is noted that a single forward kinematics calculation for one random sample requires much fewer computational resources than a single inverse kinematics calculation for one particular location. As a result, a very large number (e.g., a million or more) of such randomly sampled “reachable” locations within a given workspace can be calculated more quickly than performing an inverse kinematics calculation for each location within the given workspace.
Alternatively, in some embodiments, kinematics solver 121 determines the locations that are reachable by the particular candidate design 102 via a hybrid approach, in which a combination of the above-described statistical approach and an inverse-kinematics approach is employed. Therefore, in such embodiments, the hybrid approach is a novel combination of conventional methods for determining reachability for a continuum robot. In such embodiments, the locations reached by randomly sampled configurations of the particular candidate design 102 are determined via forward kinematics calculations. Further, when the portion of the locations in the workspace that are confirmed to be reachable via such random sampling exceeds a threshold value, for example 95%, the remaining locations in the workspace that have not yet been confirmed to be reachable are analyzed via an inverse kinematics process. Thus, when a candidate design 102 appears likely to reach most or all locations in a workspace, the reachability of the small number of remaining locations is directly determined via the inverse kinematics process.
In some embodiments, kinematics solver 121 determines whether a particular end effector trajectory included in design inputs 101 can be implemented. For example, in some embodiments, kinematics solver 121 determines whether an end effector trajectory can be performed by the candidate design 102 without any singularities. Additionally or alternatively, in some embodiments, kinematics solver 121 determines whether the candidate design 102 can follow an end effector trajectory 801 and/or implement a velocity or acceleration profile associated with end effector trajectory 801.
Ranking and selection module 130 is configured to determine the best-performing candidate designs 102 based on one or more performance values 103. Ranking and selection module 130 is further configured to generate selected subset 104 of candidate designs, where selected subset 104 of candidate designs includes the best-performing candidate designs 102 of the current iteration of candidate designs generated by generative design system 100. For example, in some embodiments, the best-performing half or third of candidate designs 102 are included in selected subset 104 of candidate designs. In some embodiments, ranking and selection module 130 selects the best-performing candidate designs 102 based on a single performance value 103. In other embodiments, ranking and selection module 130 selects the best-performing candidate designs 102 based on a combination of multiple performance values 103, for example via a weighted sum of the multiple performance values 103.
As shown, a computer-implemented method 900 begins at step 901, where generative design system 100 receives a particular set of design inputs 101 for a continuum robot. As noted, design inputs 101 may include a plurality of design parameters, one or more objective criteria, one or more design constraints, and/or one or more performance criteria.
In step 902, generative design system 100 generates a set of candidate designs 102 for the continuum robot, for example via candidate design generator 110. In an initial iteration of steps 902-905, candidate design generator 110 generates the set of candidate designs 102 based on design inputs 101, for example using random values for each design parameter included in design inputs 101. In subsequent iterations of step 902-905, candidate design generator 110 may generate the set of candidate designs 102 based on the values for the design parameters of the candidate designs of a selected subset 104 of candidate designs. Additionally or alternatively, in subsequent iterations of step 902-905, candidate design generator 110 may generate the set of candidate designs 102 based on the values determined by minimizing an objective function that is based on objective criteria included in design inputs 101.
In step 903, generative design system 100 evaluates the performance of each candidate design 102, for example, via evaluation engine 120. In some embodiments, evaluation engine determines one or more performance values 103 for each candidate design 102. In some embodiments, to determine a performance value 103 associated with reachability, a hybrid approach as described herein is employed by kinematics solver 121 to determine locations that are reachable by a particular candidate design 102.
In step 904, generative design system 100 determines whether a termination criterion has been met. If yes, computer-implemented method 900 proceeds to step 910 and terminates; if no, computer-implemented method 900 proceeds to step 905. In some embodiments, the termination criterion can be a threshold value of the performance values 103 for one or more candidate designs 102 or a threshold value for a change in such performance values 103 compared to a previous value of performance values 103. In some embodiments, the termination criterion can be a number of iterations of steps 902-905 that have been performed for a particular continuum robot. In some embodiments, the termination criterion can be a threshold time interval during which iterations of steps 902-905 have been performed for a particular continuum robot.
In step 905, generative design system 100 selects a subset 104 of candidate designs, for example via ranking and selection module 130. In some embodiments, ranking and selection module 130 determines selected subset 104 of candidate designs based on the performance values 103 for each candidate design 102. Computer-implemented method 900 then returns to step 902, in which generative design system 100 generates a new set of candidate designs 102 for the continuum robot, for example via candidate design generator 110. Generally, candidate design generator 110 generates the new set of candidate designs based on selected subset 104.
In step 910, generative design system 100 terminates computer-implemented method 900. In some embodiments, generative design system 100 displays, stores, or otherwise provides continuum robot output designs 105 to a user in step 910.
As shown, computing device 1000 includes, without limitation, an interconnect (bus) 1040 that connects a processing unit 1050, an input/output (I/O) device interface 1060 coupled to input/output (I/O) devices 1080, memory 1010, a storage 1030, and a network interface 1070. Processing unit 1050 may be any suitable processor implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), any other type of processing unit, or a combination of different processing units, such as a CPU configured to operate in conjunction with a GPU. In general, processing unit 1050 may be any technically feasible hardware unit capable of processing data and/or executing software applications, including generative design system 100, candidate design generator 110, evaluation engine 120, ranking and selection module 130, and/or computer-implemented method 900. Further, in the context of this disclosure, the computing elements shown in computing device 1000 may correspond to a physical computing system (e.g., a system in a data center) or may be a virtual computing instance executing within a computing cloud.
I/O devices 1080 may include devices capable of providing input, such as a keyboard, a mouse, a touch-sensitive screen, and so forth, as well as devices capable of providing output, such as a display device 1081. Additionally, I/O devices 1080 may include devices capable of both receiving input and providing output, such as a touchscreen, a universal serial bus (USB) port, and so forth. I/O devices 1080 may be configured to receive various types of input from an end-user of computing device 1000, and to also provide various types of output to the end-user of computing device 1000, such as one or more graphical user interfaces (GUI), displayed digital images, and/or digital videos. In some embodiments, one or more of I/O devices 1080 are configured to couple computing device 1000 to a network 1005.
Memory 1010 may include a random access memory (RAM) module, a flash memory unit, or any other type of memory unit or combination thereof. Processing unit 1050, I/O device interface 1060, and network interface 1070 are configured to read data from and write data to memory 1010. Memory 1010 includes various software programs that can be executed by processor 1050 and application data associated with said software programs, including generative design system 100, candidate design generator 110, evaluation engine 120, ranking and selection module 130, and/or computer-implemented method 900.
In sum, the various embodiments described herein provide techniques for the generating one or more designs for a continuum robot. In the embodiments, candidate designs are generated and, using a kinematics solver, performance of each candidate design is evaluated. A subsequent set of candidate designs is then generated based on the values of design parameters of the best-performing candidate designs.
At least one technical advantage of the disclosed techniques relative to the prior art is that, with the disclosed techniques, one or more designs for a continuum robot can be automatically generated without extensive kinematic analyses being performed by a robotics expert. Another advantage is that a final design generated using the disclosed techniques is based on a wide range of values for the different design parameters associated with a given operating scenario. Accordingly, the disclosed techniques enable the overall design space to be explored more comprehensively relative to conventional design processes. Consequently, the disclosed techniques substantially increase the likelihood of generating better-performing design solutions for continuum robots relative to conventional design processes. These technical advantages provide one or more technological advancements over prior art approaches.
1. In some embodiments, a computer-implemented method for generating a design for a continuum robot includes: generating a first plurality of candidate designs for the continuum robot, wherein each candidate design included in the first plurality of candidate designs is based on a first set of values for a set of design parameters; determining a first performance value for each candidate design included in the first plurality of candidate designs; based at least in part on the first performance values, selecting a subset of candidate designs from the first plurality of candidate designs; and based on the subset of candidate designs, generating a second plurality of candidate designs for the continuum robot, wherein each candidate design included in the second plurality of candidate designs is based on a second set of values for the set of design parameters.
2. The computer-implemented method of clause 1, wherein the set of design parameters includes at least one of a number of continuum joints included in a candidate design, a minimum bending radius for each continuum joint included in the candidate design, a length for a rigid portion associated with each continuum joint included in the candidate design, or a straightened length for each continuum joint included in the candidate design.
3. The computer-implemented method of clauses 1 or 2, wherein the first performance value is based on at least one of an objective criterion associated with the continuum robot, a performance criterion associated with the continuum robot, a region of a workspace that is reachable by the candidate design included in the first plurality of candidate designs, or a trajectory within the workspace that can be performed by the candidate design included in the first plurality of candidate designs.
4. The computer-implemented method of any of clauses 1-3, wherein the objective criterion associated with the continuum robot includes at least one of a total arm length, a torque factor, a total weight, or a number of continuum joints included in the continuum robot.
5. The computer-implemented method of any of clauses 1-4, wherein the performance criterion associated with the continuum robot includes at least one of a reachability factor or a trajectory factor.
6. The computer-implemented method of any of clauses 1-5, wherein determining the first performance value comprises performing a hybrid approach that includes determining reachability for a first portion of the region of the workspace via forward kinematics and reachability for a second portion of the region of the workspace via inverse kinematics.
7. The computer-implemented method of any of clauses 1-6, wherein generating the first plurality of candidate designs comprises computing values for the first set of values that conform to the at least one design parameter constraint.
8. The computer-implemented method of any of clauses 1-7, wherein the at least one design parameter constraint includes at least one of a maximum number of continuum joints included in the continuum robot, a minimum number of continuum joints included in the continuum robot, a required number of continuum joints included in the continuum robot, a maximum total arm length of the continuum robot, a relative position between the continuum robot and a workspace, or a shape of the workspace.
9. The computer-implemented method of any of clauses 1-8, wherein generating the first plurality of candidate designs comprises computing, for each candidate design included in the first plurality of candidate designs, the first set of values based on a global optimization process.
10. The computer-implemented method of any of clauses 1-9, wherein the global optimization process includes an objective function that is based on a plurality of objective criteria associated with the continuum robot.
11. A non-transitory computer readable medium storing instructions that, when executed by a processor, cause the processor to perform the steps of: generating a first plurality of candidate designs for the continuum robot, wherein each candidate design included in the first plurality of candidate designs is based on a first set of values for a set of design parameters; determining a first performance value for each candidate design included in the first plurality of candidate designs; based at least in part on the first performance values, selecting a subset of candidate designs from the first plurality of candidate designs; and based on the subset of candidate designs, generating a second plurality of candidate designs for the continuum robot, wherein each candidate design included in the second plurality of candidate designs is based on a second set of values for the set of design parameters.
12. The non-transitory computer readable medium of clause 11, wherein determining the first performance value for each candidate design included in the first plurality of candidate designs comprises performing one or more operations to evaluate each candidate design with respect to a kinematics model for a robot that includes at least one continuum joint.
13. The non-transitory computer readable medium of clauses 11 or 12, wherein the first set of values for the set of design parameters includes multiple values for at least one design parameter included in the set of design parameters and the second set of values for the set of design parameters includes multiple values for at least one design parameter included in the set of design parameters.
14. The non-transitory computer readable medium of any of clauses 11-13, wherein the set of design parameters includes at least one of a number of continuum joints included in a candidate design, a minimum bending radius for each continuum joint included in the candidate design, a length for a rigid portion associated with each continuum joint included in the candidate design, or a straightened length for each continuum joint included in the candidate design.
15. The non-transitory computer readable medium of any of clauses 11-14, wherein the first performance value is based on at least one of an objective criterion associated with the continuum robot, a performance criterion associated with the continuum robot, a region of a workspace that is reachable by the candidate design included in the first plurality of candidate designs, or a trajectory within the workspace that can be performed by the candidate design included in the first plurality of candidate designs.
16. The non-transitory computer readable medium of any of clauses 11-15, wherein the objective criterion associated with the continuum robot includes at least one of a total arm length, a torque factor, a total weight, or a number of continuum joints included in the continuum robot.
17. The non-transitory computer readable medium of any of clauses 11-16, wherein the performance criterion associated with the continuum robot includes at least one of a reachability factor or a trajectory factor.
18. The non-transitory computer readable medium of any of clauses 11-17, wherein each candidate design included in the first plurality of candidate designs is further based on at least one design parameter constraint.
19. The non-transitory computer readable medium of any of clauses 11-18, wherein generating the first plurality of candidate designs comprises computing values for the first set of values that conform to the at least one design parameter constraint.
20. A system, comprising: a memory that stores instructions; and a processor that is communicatively coupled to the memory and is configured to, when executing the instructions, perform the steps of: generating a first plurality of candidate designs for the continuum robot, wherein each candidate design included in the first plurality of candidate designs is based on a first set of values for a set of design parameters; determining a first performance value for each candidate design included in the first plurality of candidate designs; based at least in part on the first performance values, selecting a subset of candidate designs from the first plurality of candidate designs; and based on the subset of candidate designs, generating a second plurality of candidate designs for the continuum robot, wherein each candidate design included in the second plurality of candidate designs is based on a second set of values for the set of design parameters
Any and all combinations of any of the claim elements recited in any of the claims and/or any elements described in this application, in any fashion, fall within the contemplated scope of the present invention and protection.
The descriptions of the various embodiments have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments.
Aspects of the present embodiments may be embodied as a system, method or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “module,” a “system,” or a “computer.” In addition, any hardware and/or software technique, process, function, component, engine, module, or system described in the present disclosure may be implemented as a circuit or set of circuits. Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The 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, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, 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 can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Aspects of the present disclosure are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus. The instructions, when executed via the processor of the computer or other programmable data processing apparatus, enable the implementation of the functions/acts specified in the flowchart and/or block diagram block or blocks. Such processors may be, without limitation, general purpose processors, special-purpose processors, application-specific processors, or field-programmable gate arrays.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
While the preceding is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
This application claims priority benefit of the U.S. Provisional Patent Application titled, “GENERATIVE DESIGN OF SOFT ROBOTIC ARMS,” filed on Oct. 5, 2020 and having Ser. No. 63/087,840. The subject matter of this related application is hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63087840 | Oct 2020 | US |