【正文】
ed attributes and option attributes, or sensory attributes and CADmodeldriven attributes. The attributes are represented by global variables used in different layers. Action_i Robots’ actions, which is the basic sensormotion. Many actions are defined in the system, such as Move_Worktable, Move_Probes, Rotation_Worktable, Rotation_Probes, Touch, Insert, Screw, Grasp, etc. For one skill, there is only one Action. Due to the limited space, the details of actions will not be discussed in this paper. Start_i The start state of Action_i, which is measured by sensor values. End_i The end state of Action_i, which is measured by sensor values. Condition_i The condition under which Action_i is executed. From the above definitions, we may find that skill primitives in the paper are robot motions with start state and end state, and that they are executed under specific conditions. Assembly planning in the paper is to generate a sequence of robot actions and to assign values to attributes of these actions. Skill deposition Some approaches have been proposed for skill deposition. This paper presents a novel approach to guide the skill deposition. As discussed above, in the present paper, a task is to assemble the Assembly_Part with the Base_Part. We define the process from the state that Assembly_Part is at a free state to the state that it is fixed with the Base_Part as the assembly lifecycle of the Assembly_Part. In its assembly lifecycle, the Assembly_Part may be at different assembly shows a shaft’s states shown as blocks and associated workflows of an insertion task. A workflow consisting of a group of skills pushes forward the Assembly_Part from one state to another state. A workflow is associated with a specific skill generator that is in charge of generating skills. For different assembly tasks, the same workflows may be used, though specific skills generated for different tasks may be different. The system provides default task templates, in which default states are defined. These templates are imported into the system and instantiated after they are associated with the corresponding Assembly_Part. In some cases, some states defined by the default template may be not needed. For example, if the shaft has been placed into the workspace with accurate position, for example, determined by the fixture, then the Free and In_WS states can be removed from the shaft’s assembly lifecycle. The system provides a tool for users to modify these templates or generate their own templates. The tool’s user interface is displayed in. For a workflow, the start state is measured by sensory values, while the target state is calculated based on the CAD model and sensory attributes. According to the start state and the target state, the generator generates a series of skills. Here, we use the Move workflow in as an example to show how skills are generated. After the assembly task (assembly lifecycle) is initiated, the template is read into the Coordinator. For the workflow Move, its start state is Grasped, which implies that the Assembly_Part is grasped by the robot’s endeffector and, obviously, the position of the Assembly_Part is also obtained. Its target state is Adjusted, which is the state immediately before it is to be fixed with the Base_Part. At the Adjusted state, the orientation of the Assembly_Part is determined by the mating direction, while the position is determined by the Safe Length. These values have been calculated in the task planning layer and are stored in a database. When the task template is imported, these values are read into the memory at Coordinate and transformed into the coordinates of the workspace. There is an important and necessary step that has to be performed in the skill deposition phase—the generation of a collisionfree path. Here, we use a straightline path, which is simple and easy calculated. Assume that P3 is the position of the Assembly_Part at the Adjusted state and P0 is the position at the Grasped state. The following approach is applied to generate the path: 1. Based on the orientation of the Assembly_Part and mating direction, select skills (Rotate_Table or Rotate_Probes) to adjust the orientation of the part and assign values to the attributes of these skills. 2. Based on the Obstacle Box, mating direction, real position/orientation of the Assembly_Part, the intermediate positions P1 and P2 need to be calculated. 3. For each segment path, verify whether the Move_Table skill (for a large range) or the Move_Probe skill (for a small range) should be used. 4. Generate skill lists for each segment and assign values to these skills. Execution of skills After a group of skills which can promote the part to a specific state are generated, these skills are transferred to the Skill Management model. The system promotesone or several skills into the On Work Skill list and simultaneously dispatches them to the micromanipulator. Once the skill has been pleted by the robot, the system removes it from the OnWork Task list and places it into the Completed Task list. After all of these skills have been pleted, the state of the part is updated. For some states, skill execution and skill generation can be conducted in parallel. For example, for the Insertion lifecycle, if the part39。x axis and 177。 Operation ∈ {Insertion_T, screw_T, align_T,...}. The structure of microparts is usually unplicated, and they can be modeled by the constructive solid geometry (CSG) method. Currently, many mercial CAD software packages can support 3D CSG modeling. The assembly model is represented as an object that consists of two parts with certain assembly relations that define how the parts are to be assembled. In the CAD model, the relations are defined by geometric constraints. The geometric information cannot be used directly to guide the assembly