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 six criterions:
- Time period for the grasp
Description: We abort the simulation prematurely if the mechanism cannot touch an object or the contact is lost. This criterion is used to separate unsuccessful designs based on the idea that longer contact with the object is better. All the mechanisms that successfully secure an object in place receive a score of 1.
- The fraction of phalanxes contacting with the object
Description: The idea is to reward the design for effective use of the phalanxes and prevent the growth of unnecessary components. Equals 1 if the body is in contact with the object.
- Dispersion of the contact forces
Description: The effective gripper should apply similar forces to the object. The grasp that rely on applying much force on specific point could damage an object or a corresponding element of the gripper, while the weak contact cannot withstand the external force
- Distance between object center and the geometric center of the contact points
Description: The small distance reduce inertia effects during the gripping process and helps to achieve a stable grip
- Grasp time
Description: The time required to fix an object in place. The faster designs get higher rewards
- The ability to withstand external forces
Description: In simulation, in a few time steps after the grasp event we apply gradually increasing force to the object for several seconds. If the object lose the contact with the mechanism the hold is considered as failed and the design get the 0 reward. The designs that managed to hold an object get a reward that is calculated based on the object shift from the grasp position
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