Algorithms Description¶
The basis for proposed co-design algorithms is the graph representation of generated mechanisms. The graph nodes are the representations of linkage parts. The graph made of such nodes unambiguously determines the physical properties of the mechanism. A graph can be generated from the starting point using a set of rules that guarantee that any final state is physically possible.
Search for grasping mechanism with open kinematic chain¶
The framework generates planar mechanisms for industrial grippers to grasp objects defined by a user. A graph is generated by a set of rules which can be modified by a user. The graphs constructed by the set of rules form the space of possible solutions and the algorithm searches that space to obtain the best design. Currently, the rules are set to generate the open kinematic chain mechanisms.
- The ability of the generated mechanism/graph to grasp the object is simulated with the physical engine Pychrono. The simulation of the physical properties of the grasping process results in the scalar reward that is calculated using the four criterions:
- Criterion of isotropy of contact forces
Description: list cont contains mean values of contact force for each body element. If sum of cont is equal zero (no body is in contact), then criterion f1 = 0. Otherwise, delta_u (standard deviation of contact forces) is calculated. We want to minimize deviation.
- Criterion of number of contact surfaces
Description: f2 is equal the ratio of mean value of contact surfaces (during simulation) to the overall potential number of contact surfaces.
- Criterion of mean values of distance between each of fingers
Description: algorithm has to minimize mean values of the distance for each finger.
- Criterion of simulation time
Description: algorithm has to maximize simulation time
In addition to the design of the parts, the second essential part of the mechanism is the optimal trajectories of the actuators. For each design we optimize these trajectories. The optimization is based on the same reward. Final reward for a design is calculated with the optimized trajectories and is used to search for the most effective design. The graph generating rules are fed to the searching algorithm to get the list of available actions at each step of the generation. Currently we use Monte Carlo Tree Search algorithm to explore the space of the possible designs. Therefore, at any step the algorithm gradually grow several designs and calculate their rewards in order to make a step in generation.
The input data should include two different parts:
The specification of the details for the mechanism:
sizes of links, size of the palm and sizes of the fingertips
amount of fingers (left and right) and possible angles in respect to the palm
The shape of the object to grasp
The output is the designed mechanism, in the graph form, the information about actuator trajectories and the obtained reward The output can be used to start and visualize the simulation of the final design The history of the exploration of the design space is saved within log file