Int J Adv Manuf Technol (2008) 38:741–756 DOI 10.1007/s00170-007-1118-5
ORIGINAL ARTICLE
A resource-oriented tolerance representation scheme for the planning of robotic machine tending operations in automated manufacturing systems Jay W. Steele & Richard A. Wysk & Joao C. E. Ferreira
Received: 31 May 2006 / Accepted: 29 May 2007 / Published online: 20 July 2007 # Springer-Verlag London Limited 2007
Abstract In this paper, we define a representation for tolerances associated with robotic machine tending operations. The intent of the representation and analysis presented in the paper is to assess whether a robotic material handler is capable of holding the accuracies required for loading and unloading a machine. This representation and analysis, therefore, provides the basis of a process planning system for robotic operations. This representation is critical for flexible and automated manufacturing because it enables automatic planning of unload and load operations from and to machining centers that are required for discrete part manufacturing. Planners can use this representation along with the specified tolerance criteria to conservatively assess if a given robot resource is capable of using a specific gripper to unload or load a given part from a given fixture on a machining center. For a new part, this assessment allows an automatic material handling operations planner to determine if reconfiguration or procurement of resources is required for the material handing of the new part or if simple reprogramming of the robot and machine resources is sufficient. Also, this J. C. E. Ferreira (*) Universidade Federal de Santa Catarina, Florianopolis, SC, Brazil e-mail:
[email protected] J. W. Steele AMHS Pathfinding and Development, Components Automation Systems, Technology & Manufacturing Engineering, Intel Corporation, Chandler, AZ 85226, USA R. A. Wysk Department of Industrial and Manufacturing Engineering, Pennsylvania State University, 222 Leonhard Building, University Park, PA 16802, USA
representation helps providing flexibility to the manufacturing system control software in the case of the addition of a new machine to the manufacturing system. In this case, the new resource data would be input into the resource model, and the decision on the machine tending operations (loading or unloading) would be carried out in the same manner. This representation was tested successfully using an automatic operations planner at The Pennsylvania State University’s Factory for Advanced Manufacturing Education (FAME) lab. Keywords Robotic machine tending . Process planning . Tolerances . Resource model . Automated manufacturing systems . Fixtures
1 Introduction Flexible automated manufacturing consists of creating batches of different types of parts with a given set of machines driven by information that models the demands of customers. Flexible manufacturing systems include machines to change the material state of a discrete part as well as machines to store parts, machines to move parts, and machines to load and unload parts. Currently, machines exist with the physical and programmable capability to perform these functions in the form of computer numerically controlled machine tools (CNCs), automatic storage and retrieval systems (AS/RSs), automatically guided vehicles (AGVs), and robots. An important requirement for flexible manufacturing is that a quick assessment can be made to determine if a given facility containing a set of such resources is physically capable of making a new part. An operations planner can make this assessment by mapping the machines capabilities, which we store as part of a resource model to a manufacturing part model and generating an operations plan if
DO01118; No of Pages
742
it is feasible. If the resource set is determined to be capable of manufacturing the part, then the operations planner should also generate an operations plan and instruction sets for individual machine operations. Otherwise, the operations planner should indicate whatever necessary reconfigurations of the resources are required to make the part. These reconfigurations may consist of adding additional tooling, designing new fixtures, and potentially changing the layout of the equipment. This assessment must be made before other considerations, such as developing the shop production plan, creating the production schedule, and executing the production steps are undertaken. Efforts in the literature to solve this process planning problem have resulted in algorithms and models for subsets of the general problem. These include machining process planning, machining fixture planning, robot grasp planning, and robot trajectory planning. A significant void for flexible and automated manufacturing is how to plan the required coordination between different resources. One of the most difficult coordination problems is the part exchange between robotic grippers and buffer fixtures. Currently, a common industrial practice (even in flexible manufacturing systems) consists of manually tending CNC machines because the planning of automated material handling is a difficult activity. Despite the availability of sophisticated robot kinematic simulation software and calibration techniques, most tasks carried out by today’s robots are planned by people. The first problem is that robotic kinematic simulation software is typically descriptive rather than prescriptive. A more significant problem is that realistic models to integrate information describing locations, accuracy, and tolerances of robots, grippers, part features, fixtures, and machine part buffers in a work cell do not exist. Finally, these programs should be made accessible to the manufacturing community, and this will require code that is compatible with existing CAD design systems. Such models could integrate the different engineering efforts that collectively determine if a product can be handled by a given set of resources to satisfy manufacturing requirements. To address these issues, this paper presents a unified representation and introduces standard terminology for tolerances associated with automatic tending of machine part buffers. These include the tolerances of the locations for machines in the facility layout, the tolerances of part fixtures in machine buffers, the tolerances of part features, the tolerances of part location within fixtures and grippers, and the tolerance of the placement accuracy of robots. First, this article identifies a set of resource classes along with their attributes for flexible manufacturing. Next, material handling operations for loading and unloading machine buffers using these resources are defined. Next, schemas for the critical tolerances associated with these operations are identified. Lastly, these schemas are illustrated by an example unload operation and an assessment of its validity.
Int J Adv Manuf Technol (2008) 38:741–756
2 Literature review A significant amount of flexible manufacturing research applications from the robotics community have assumed that manufacturing environments can be structured using part fixtures so that errors will be small enough to be ignored. Thus, most researchers have focused on on-line control of robots with sensors and ignored the interaction between robots and part fixtures in an effort to emulate human performance [1]. However, Goldberg et al. [2] correctly assert that offline algorithms for part design and factory layout may soon be more important than intelligent on-line control. Highly intelligent online control for robot machine tenders is not critical for discrete part manufacturing because machining processes require that parts are typically located in fixtures. On the other hand, flexible automation requires the rapid assessment of the usage of existing fixtures for new parts and off-line reconfiguration and reprogramming of machines to handle these parts using realistic and accurate models of machines. Chang et al. [3] define manufacturing fixtures as entities that locate three features of parts (primary, secondary, and tertiary) within specific tolerances under anticipated stresses on the part. This definition conforms to standard industrial practice. To integrate industrial fixture designers with manufacturing planning software, this standard fixture model must be incorporated into manufacturing planning models. This is critical when considering tolerances associated with robot pick and place operations. For instance, a part is not located by a pose (position and orientation), but some of its surfaces are located within tolerances by locator pins. To unload a part from this tolerance, a robot must place its gripper in a position based on the location of these part surfaces. If we model the robot gripper as a fixture that locates the same part surfaces, then the robot must place its gripper fixture in a pose such that the gripper is capable of locating each required part feature before closing. If the features that the gripper fixture locates do not coincide with the features in the buffer fixture, then the tolerance between features must be considered. Roy and Fang [4] present a tolerance representation for an object-oriented part model. In this model, parts own manufacturing feature objects whose locations are specified within tolerances to each other. Fraticelli et al. [5] presented a compact representation of tolerances specification and capability for manufacturing features. This tolerance representation is useful for illustrating tolerances between manufacturing datums. It has been reported that a company that manufactures precision mechanical components for the aerospace, defense, medical, and electronics industries relies heavily on machine-tending robots as a vital portion of its close tolerance machining process [6]. According to that article,
Int J Adv Manuf Technol (2008) 38:741–756
before using the robots, the machine operators in that company were spending more time loading and unloading machines than they were in producing and inspecting finished parts. Now, batches varying from 200 to 50,000 parts are run, and their productivity has increased dramatically. However, we believe that the method proposed in this paper could contribute to increase their flexibility, without reducing their productivity, since the different robot grippers and fixtures would be stored in the resource model, and their availability and capability could be quickly assessed when planning the tending operations.
3 Approach This paper presents a tolerance representation scheme for the material handling of parts in order to satisfy the requirements of planning for automated flexible manufacturing operations. This representation considers the influence of the tolerances on robotic machine tending operations, from the facility all the way down to the part and equipment fixture. This representation is part of a general resource model for manufacturing operations planning that is extensively described in Steele et al. [7]. The part (product) and resource model are standard objects used in manufacturing modeling. Using these models make the work described in the paper generic for a broad set of material handling activities. The resource model is a result of a research work carried out together with the National Institute of Standards and Technology (NIST) aiming at contributing toward the process specification language (PSL) standard [8]. PSL provides a means of representing the results from the operations planning function in addition to the output from production planners and schedulers. Thus, PSL will represent resources required for each process step for production planning, temporal precedence action sequences for scheduling, and the state transitions for each process step for shop floor control. Along the same lines, the ideal production system must be designed in such a way that it may be driven by a production operations plan for a given product without reprogramming. It should be mentioned the importance of this effort towards standardization, due to the ever increasing amount of resource suppliers, and different ways to perform manufacturing integration. Also, this representation helps providing flexibility to the manufacturing system control software in the case of the addition of a new machine to the manufacturing system. In this case, the new resource data is input into the resource model, and the decision on the machine tending operations (loading or unloading) can be carried out in the same manner. This general resource model is derived from a high level formulation from Wysk et al. [9] that defines classes of manufacturing resources. These classes include the follow-
743
ing: material processors (MP) that transform the material state of a part, material handlers (MH) that may unload or load parts from buffers, material transporters (MT) that move the part between locations in the same fixture, and buffer storage entities (BS) that hold the part. Additional resource classes include fixtures (F), tools (T), and ports (P). In this formulation, robot machine tending operations planning consist of planning material handling load and unload operations using gripper fixtures to and from fixtures located in ports in MP, MT, or BS resources based on manufacturing requirements. The manufacturing requirements for the operations planner are based on a part model that defines manufacturing features to be added to a raw material blank and defines raw material and finished part buffers. Material processing operations add goal features to the part and determine part location requirements in specific fixtures in MP resources. Material handling operations unload parts from ports and load parts into fixtures in MP ports for processing. From an enterprise perspective, material handling planning consists of the following steps: – – – –
Specify part location fixturing in MP, MT, or BS resource based on manufacturing requirements Specify robot fixturing requirements (grasp location planning) Check robot accuracy and reachability versus operation requirements Plan robot trajectory for load or unload operation
Our model for tolerance representation integrates these steps by providing a framework for part feature location and tolerances, robot grasp location and tolerances, fixture location and tolerances in buffer, machine layout tolerances, and robot accuracy. Tolerances are specified and stacked using worst case or min/max values [10], which enables a conservative assessment of the robot accuracy to perform the specified material handling operation. If the operation is within the robot’s kinematic reach and the robot has sufficient accuracy to reach the target locations, then a path planning algorithm may be applied to check if collision free trajectories exist to perform the operation using nominal location values. The generation of collision-free robot trajectories is outside the scope of this paper. In our tolerance representation model for load and unload operations, we use the tolerance specification and capability defined by Fraticelli et al. [5]. This model explicitly represents the tolerance criteria for successful load and unloads operations. Lastly, this tolerance representation and criteria are illustrated using an example setup of an unload operation from a machining center with a robot machine tender. This representation was tested by an implementation in a resource-oriented operations planner described in Steele et al. [7].
744
4 Part and resource models 4.1 Part model The part model for operations planning requires information that is necessary to define part related constraints for the planner. For material handling planning, the geometric model of the part and the location tolerances of existing features are used to determine if automated material handlers are capable of moving parts between different fixtures. Each part owns features that belong to the Feat set. These features are either cylindrical holes or flat surfaces that belong to subsets Holes and FlatSurfaces. The relation between a feature whose location is specified with respect to another feature is expressed in this domain by the predicate, specifies. In general, for elements datum and feature, specifies (datum, feature) is true if element datum specifies the location of element feature. In this model, only datum features that are elements of the FlatSurfaces set may specify other features that belong to the FlatSurfaces or Holes subsets. Specifications that use flat surfaces as datums represent dimension vectors that are perpendicular to the datum surface. The function specifies_dist (datum, feature) returns the nominal distance of this specification. The function specifies_tol (datum, feature) returns the tolerance limit of this specification. The ternary functions, specifies_tolX (Facility, datum, feature), specifies_tolY (Facility, datum, feature), and specifies_tolZ (Facility, datum, feature) return the components of the specification tolerance vector along the coordinate axes of the Facility element that represents the manufacturing facility. In general, vector components of datum tolerance vectors that are computed to be 0 are set to infinity (∞) because the location of the datum along that vector component is not determined. 4.2 Facility model The resource model specifies what resources belong to a facility and where they are located in the layout. These resources are grouped into work centers and are classified according to function. Each class of resources is described using different information that is specific to its function. A manufacturing facility may be described as a list of assets owned by a Facility element. This Facility element also owns a set of parts Parts that the facility is capable of manufacturing. Each Facility element owns a set of machine resources in addition to a set of tools T and set of fixtures F available to the facility. The parts that the facility can manufacture are elements of the Parts set. The Facility element also owns a set of buffer ports called Ports. Part movement within the facility can be specified
Int J Adv Manuf Technol (2008) 38:741–756
with ports. A port represents a unique internal buffer belonging to a machine that owns one or more fixed physical locations for part storage. Each of these ports may belong to one or more equipment assets. An equipment asset that is fixed on the facility floor owns one port. Individual equipment resources that are in the facility belong to the equipment set E. These equipment resources represent entities in the facility that are independently capable of some action with the part. Thus, equipment resources belong to a diverse set of entities that may include robots, CNC machines, human workers, and passive part buffers. Some of these equipment assets are defined to have fixed locations on the factory floor with tolerances relative to the facility’s coordinate frame. Other equipment assets such as AGVs move around between stations. Each of the fixed equipment assets owns a port element Port where parts may be located. The following functions return the tolerances of the locations of these ports for each coordinate axis of the Facility element: tol_posX (Facility, Port), tol_posY (Facility, Port), tol_posZ (Facility, Port). Each equipment asset also has a coordinate reference frame that is fixed to the equipment. Since these entities can be categorized by function, the equipment set includes the subsets MP, MH, MT, and BS that subdivide the equipment resources of the facility. The MP set represents material processors in the facility, the MH set represents material handlers, the MT set represents material transporters, and the BS set represents passive or active buffer storage devices. Fixture assets in the F set may be available for any equipment asset. 4.3 Fixture model In this planning architecture, parts are always located in fixtures somewhere in the facility. Thus, a fixture model is required for planning of all manufacturing tasks in this architecture. This model defines the information that is required from fixture designers and vendors in order to characterize fixtures. Fixtures in a manufacturing facility are members of the F set that locate and hold parts to a position and an orientation relative to the coordinate frame of some element of the MP, MH, MT, or BS sets. For instance, a fixture might be a pneumatic clamp that locates datums of the workpiece and holds it rigidly to a pose in the work area of a milling machine. Another fixture is an electro-mechanical robotic gripper that holds a part fixed relative to the coordinate frame of the robot arm’s end effector coordinate frame. Other fixtures include part bins with a lesser constraint on position and slots on a conveyor belt that are built-in constraints of pose. Fixture entities are defined by their capabilities to locate features of specific part types with respect to the fixture’s reference frame. These
Int J Adv Manuf Technol (2008) 38:741–756
capabilities may be expressed as the fixture designer’s intention to locate part datums with respect to the fixture’s reference frame. The designer may design the fixture to hold the same part in different orientations. These different orientations are defined as different fixture intentions. For instance, given a symmetrical part, one fixture intention may be defined to locate features 1, 2, 3 while another fixture intention may be defined to locate features 4, 5, 6. The locators for the primary, secondary, and tertiary datums remain the same on the fixture for different fixture intentions while the fixture intention defines which datums are located by these locators. A single point on the fixture and a vector from that point to the datum defines each locator. This model is an approximation of the traditional fixture model that uses three locator pins for the primary datum, two locator pins for the secondary datum, and one locator pin for the tertiary datum [3]. Since the fixture may be controlled to move from an open state to a closed state and vice versa, the locators may also move. Thus, the points and vectors that define the locators have one value for the opened fixture state and another for the closed fixture state. Each of these vectors is stored as a unit vector, a nominal vector length and a tolerance. Figure 1 illustrates these geometrical concepts for the primary and secondary locators of a fixture and a part. Explicit holding requirements for these fixtures are ignored in this model. This model implicitly assumes that the fixture designer incorporated holding requirements for different fixture applications. For instance, the locating ability for a fixture holding a part during machining processes is significantly different from the locating ability for a gripper fixture holding a part during robotic movement. For flat surface datums, a location is specified using a starting point on the fixture and a vector that is perpendicular to the datum. The relation between a fixture fixt that locates a feature feat with an intent I using its locator locator is expressed in this domain by the predicate locates (fixt, feat, I, L). Thus, locates (fixt, feat, I, L) is true if element fixt locates element feat with intent I using
745
locator L. Certain fixtures are controllable so that they may grasp a part. For a given fixture element fixt, the predicate controllable (fixt) is true if fixt can be controlled in this manner. If a fixture is controllable, the tolerance of the location of features may be different for the closed state versus the open state of the fixture. The function close_tol (a, b) returns the bilateral tolerance limit of this location for feature b if fixture a is closed and if the part was loaded correctly. A part is considered to be loaded correctly into fixtures if the locatable features of the part are placed within tolerance relative to the fixture. For a fixture a and feature b, this tolerance is given by the function open_tol (a, b). This tolerance is also the tolerance of the part’s datums when the part is ready to be unloaded from the fixture. For fixtures that are not controllable and thus cannot be opened or closed, the open_tol function returns the tolerance of the part’s location to be dropped into the passive fixture. The close_tol function returns the tolerance of the part’s location after it is released by the loading fixture. For a given fixture Fixt, and a feature Feat, if controllable (Fixt) is not true, then open_tol (Fixt, Feat) = close_tol (Fixt, Feat) unless a passive force such as gravity affects the part’s position after the part is released by the loading gripper fixture. For instance, a part may be dropped into a passive fixture, and gravity will constrain the part’s position along the vertical axis to the bottom of the passive fixture. Because fixtures are always used with equipment entities, functions are defined that return the vector components of these tolerances along the coordinate axes of an equipment entity. For an equipment entity E, which owns a fixture entity fixt that locates a feature element datum, the following functions are defined that return the open and close tolerance vector components along the coordinate axes of E: – – – – – –
close_tolX (E, fixt, datum), close_tolY (E, fixt, datum), close_tolZ (E, fixt, datum), open_tolX (E, fixt, datum), open_tolY (E, fixt, datum), open_tolZ (E, fixt, datum).
The open and close tolerances along the coordinate axes of the Facility element are given by the following functions:
Fig. 1 Fixture locators, points, and vectors
– – – – – –
close_tolX (Facility, E, fixt, datum), close_tolY (Facility, E, fixt, datum), close_tolZ (Facility, E, fixt, datum), open_tolX (Facility, E, fixt, datum), open_tolY (Facility, E, fixt, datum), open_tolZ (Facility, E, fixt, datum).
746
4.4 Material processor model The material processors are the equipment that add value to a product by transforming its material state closer to the desired final state. These equipment entities are capable of using tools that they own to create features in parts. The model of material processors defines the information that is critical for operations planning that involves material processor equipment. This information includes ownership relationships with tools and fixtures in addition to the accuracy with which the material processor locates these secondary resources. 4.5 Material handler model The material handlers are equipment that load and unload products to and from equipment for processing, storage, and transportation while material transporters move products between stations. Material handlers have the kinematic flexibility to change the orientation and position of the part to remove parts from equipment fixturing or insert parts into equipment fixturing. The model of material handlers defines the information that is required to plan material handling operations for manufacturing. Thus, material handlers are modeled as assets whose placement in the shop floor layout determines which buffers, machines and ports they may access. Other information specifies the capability of material handlers to use gripper fixtures to grasp parts and move them. The material handling assets in a facility belong to the MH set. For each material handler asset, when it has possession of a part, the part is considered to be in a buffer that is represented by the material handler’s home port element. The coordinate frame of this port coincides with the equipment frame of the material handler. Sets of loadable ports LoadPortsi and unloadable ports UnloadPortsi describe the intention of the placement of each MH element Ei to load parts from its home port to other equipment resources, and unload parts from other equipment resources to its home port. The predicate unloadable (Part, robot, Port, fixt) is true for elements Part, robot, Port, and fixt if element robot is capable of unloading element Part from element fixt located at element Port. Similarly, the predicate loadable (Part, robot, Port, fixt) is true for elements Part, robot, Port, and fixt if element robot is capable of loading element Part to element fixt located at element Port. Necessary conditions for unloadable (Part, Ei, Port, fixt) are that the Port element is an element of Ei’s set of unloadable ports UnloadPortsi, and that Ei owns a fixture that is capable of locating at least one datum of the part element Part. Similarly, necessary conditions for entity Ei to load a part element Part to a port element Port are that Port is a member of Ei’s set of
Int J Adv Manuf Technol (2008) 38:741–756
loadable ports LoadPortsi, and that Ei owns a fixture that is capable of locating at least one datum of Part. Formally, artificial intelligence notation will be used (see for instance [11]) in which symbols and definitions are as follows: ∀ ∃ {a, b, c, . . .} | ∈ ⇒ ⇔ ∧ ∨
For all, or the universal quantifier There exists, or the existential quantifier Set of all individual elements a, b, c, . . . Such that Element of Only if, or material implication If and only if, or material equivalence AND, or conjunction OR inclusive, or disjunction
The assumptions may be expressed as follows: ∀ Ei, UnloadPortsi = {port | isaport (port) ∧ isahandler (Ei) ∧ unloadable (port, Ei)} ∀E, ∀Part, ∀port, ∀fixt (isahandler (E) ∧ isapart (Part) ∧ isaport (port) ∧ isafixture (fixt) ∧ unloadable (Part, E, port, fixt) ⇒ ∃gripper, ∀feat, ∀Ig, ∀Lg, ∃Buff, ∀datum, ∀If, ∀Lf (isafixture (gripper) ∧ isafeature (feat) ∧ isafixtureintent (Ig) ∧ isafixturelocator (Lg) ∧ (isaprocessor (Buff) ∨ isabuffer (Buff) ∨ isatransporter (Buff)) ∧ owns (Part, feat) ∧ locates (gripper, feat, Ig, Lg) ∧ owns (E, gripper) ∧ owns (Buff, port) ∧ owns (Buff, fixt) ∧ locates (fixt, datum, If, Lf) ∧ specifies (datum, feat)))
∀ Ei, LoadPortsi = {port | isaport (port) ∧ isahandler (Ei) ∧ loadable (port, Ei)} ∀E, ∀Part, ∀port, ∀fixt (isahandler (E) ∧ isapart (Part) ∧ isaport (port) ∧ isafixture (fixt) ∧ loadable (Part, E, port, fixt) ⇒ ∃gripper, ∀feat, ∃Buff, ∀datum, ∀If, ∀Lf, ∀Ig, ∀Lg (isafixture (gripper) ∧ isafeature (feat) ∧ (isaprocessor (Buff) ∨ isabuffer (Buff) ∨ isatransporter (Buff)) ∧ isafeature (datum) ∧ isafixtureintent (If) ∧ isafixturelocator (Lf) ∧ isafixtureintent (Ig) ∧ isafixturelocator (Lg) ∧ owns (Ei, gripper) ∧ owns (Part, feat) ∧ locates (gripper, feat, Ig, Lg) ∧ owns (Buff, port) ∧ owns (Buff, fixt) ∧ locates (fixt, datum, If, Lf) ∧ specifies (datum, feat)))
4.6 Resource model classes Using an object-oriented classification, manufacturing resource classes include a facility class that may own instances of the work center class. Each work center class may own instances of the manufacturing equipment class E. Equipment objects may own objects of the fixture class. Subclasses of class E include the material processor, material handler, material transporter, and buffer storage classes. Material processor objects may own objects of the tool class. In this model, the tool class has a HoleTool subclass which is further subdivided into three subclasses that represent twist drills, reamers, and bores. These classes and some of their attributes
Int J Adv Manuf Technol (2008) 38:741–756
747
Fig. 2 The resource model classes in this work (UML format)
are illustrated in Fig. 2. These attributes include information that models the capability of resources to change the state of parts. Additional attributes, such as cost and status, enable the integration between the resource model and engineering functions such as design for manufacturability assessment and production scheduling. Using the Unified Modeling Language (UML) symbology defined by Eriksson and Penker [12], class ownership is denoted by the “owns” association while a superclass and its subclass have an inheritance relationship. This class structure representing resources is used to minimize the duplication of data attribute fields among classes. Some attributes, such as the lists of loadable and unloadable ports in the Material Handler class, correspond to functions that can be verified as follows: if
Fig. 3 Relationship diagram of the resource model database
object E ∈ MH and object port ∈ Ports, the function loadable(E, port) is true if the port is in the list of loadable ports, which is an attribute of the object that represents equipment E. The design of the other classes also follows this strategy. Figure 3 illustrates some of the tabular relationships of the relational database that reflects the resource classification shown in Fig. 2.
5 Unload and load tolerance representation Figures 4 and 5 illustrate the tolerances associated with unload and load operations. Material handlers have errors in
748
Int J Adv Manuf Technol (2008) 38:741–756
Fig. 4 Tolerances associated with material handling unload operation along one facility axis
position control of their end effector mounting surfaces that are illustrated by the robot position accuracy labels in Figs. 4 and 5. The position error bounds for all three of the material handler E element’s coordinate axes are modeled by the following functions: accuracyX (E), accuracyY (E), and accuracyZ (E). These same position errors along the coordinate axes of the Facility’s coordinate frame are returned by the following functions: accuracyX (Facility, E), accuracyY (Facility, E), and accuracyZ (Facility, E). Fixtures that are owned by material handler elements represent grippers attached to the end effector mounting surfaces of robotic material handlers. For each robotic material handler E, when it is at its home position, its gripper fixture is located at a transformation returned by the function home_trans (E). Thus, the gripper fixture frame is transformed by home_trans (E) with respect to the port frame of the robot. Just like fixtures for material processors,
Fig. 5 Tolerances associated with material handling load operation along one facility axis
gripper fixtures locate datums of parts within given tolerances. One significant difference between material processor fixtures and robotic gripper fixtures is that holding requirements are different. In this model, a gripper fixture may locate multiple surfaces with only two parallel points of contact because it is assumed that the gripped part will not rotate during movement. Positional errors in the attachment of the gripper fixtures to the end of robotic material handlers are illustrated along one coordinate axis by the gripper position tolerance labels in Figs. 4 and 5. For a given gripper fixture fixt and a robot home port Port, the components of these tolerances along the coordinate axes of the robot’s home port frame are modeled by the following functions: – – –
fixture_pos_tolX (Port, fixt), fixture_pos_tolY (Port, fixt), fixture_pos_tolZ (Port, fixt).
Int J Adv Manuf Technol (2008) 38:741–756
These same positional errors along the coordinate axes of the Facility’s frame are modeled by the following functions: – – –
fixture_pos_tolX (Facility, Port, fixt), fixture_pos_tolY (Facility, Port, fixt), fixture_pos_tolZ (Facility, Port, fixt).
5.1 Unload operation For the unload operation, the gripper fixture owned by the material handler must have sufficient open tolerance to match the cumulative errors in the placement of the gripper fixture and the fixture holding the part. Figure 4 illustrates the tolerances associated with an unload operation along one axis. Thus, a set of necessary conditions for an unload operation are that a set of equations derived from a tolerance equation are true for all datums datumf intended to be located by the equipment fixture that gets unloaded, for all datums datumg intended to be located by the gripper fixture, and for each x, y, and z coordinate axis of the factory floor. Assuming that the worst case tolerances can be stacked along an axis, the sum of all the tolerances that represent the placement error of a material handler’s placement of its gripper fixture must be less than the required tolerance of the part’s position relative to the gripper fixture along each x, y, and z axis. The eight datums for a material handling unload operation are illustrated in Fig. 6a. The unload task that is displayed in Fig. 6a is valid if Tol (C7,6) ≥ Tol (M6,7), shown in Fig. 6b, for each feature located by the gripper fixture and along each x, y, and z
Fig. 6 (a) Datums for MH unload task; (b) Tolerance loop for MH unload task
749
axis. Since tolerances along the same axis can be stacked, the tolerances of manufacturing capabilities from datum #5 to datum #6 may be added and compared to the manufacturing specification. Thus, as illustrated in Fig. 6b, the following equation must be true for the operation to be valid: Tol C7;6 Tol M6;7 ¼ Tol M6;4 þ Tol M4;3 þ Tol M3;2 þ Tol M2;1 þ Tol M1;8 þ Tol M8;5 þ Tol M5;7 : where: – – – – – – – –
C7, 6 = open gripper fixture specification of feature datumg located by gripper fixture M6, 4 = part feature datumg (located by gripper fixture) specification of other part feature datumf (located by buffer fixture) M4, 3 = closed fixture specification of feature datumf located by buffer fixture M3, 2 = buffer fixture position in equipment port M2, 1 = equipment port position in facility M1, 8 = robot base port position in facility M8, 5 = robot placement of end effector mounting plate M5, 7 = gripper fixture position relative to end effector mounting plate
Interpreting this equation, the sums of the errors associated with the actual datum location plus the part feature error plus the equipment fixture location error plus the equipment location error plus the robot error plus the gripper fixture error must be less than the opening of the
750
Int J Adv Manuf Technol (2008) 38:741–756
gripper fingers. This expression suggests that at some time all maximal errors will stack to produce this upper bound. It is interesting to note that on average the errors will sum to zero. Unfortunately, the average has no instance specific interpretation. Thus, the set of necessary conditions due to accuracy constraints for an unload operation are that a set of equations derived from the following equation are true for all datums datumg that are intended to be located by the gripper fixture and for each x, y, and z coordinate axis of the factory floor. open gripper datumg tolerance specification tolerance; from datumg to datumf þ closed buffer fixture datumf tolerance þ buffer fixture position tolerance þ buffer port position tolerance þ robot home port position tolerance þ robot position accuracy þ gripper position tolerance The formal functions that model these accuracies and tolerances along the x axis are mapped to the labels in Fig. 4 for all datums datumg that are intended to be located by the gripper fixture and for each x, y, and z coordinate axis of the factory floor, as follows: – – – –
open_tolX (Facility, E, gripper, datumg) = open gripper fixture specification of part feature located by gripper fixture. specifies_tolX (Facility, datumg, datumf) = specification tolerance from datumg to datumf close_tolX (Facility, Buff, fixture, datumf) = closed fixture datumf tolerance fixture_pos_tolX (Facility, portb, fixt) = fixture position tolerance
Fig. 7 (a) Datums for MH load task; (b) Tolerance loop for MH load task
– – – –
tol_posX (Facility, portb) = buffer port position tolerance tol_posX (Facility, portr) = robot home port position tolerance accuracyX (Facility, E) = robot position accuracy fixture_pos_tolX (Facility, portr, gripper) = gripper position tolerance
Using these defined functions, one can express the tolerance equation formally as follows for the x axis. open tolX Facility; E; gripper; datumg specifies tolX Facility; datumg ; datumf þ close tolX ðFacility; Buff ; fixture; datumf Þ þ fixture pos tolX ðFacility; portb ; fixtÞ þ tol posX ðFacility; portb Þ þ tol posX ðFacility; portr Þ þ accuracyX ðFacility; Ei Þ þ fixture pos tolX ðFacility; portr ; gripperÞ The manufacturing tolerance capability condition for an unload operation is met if the tolerance loop equation is true for all datums datumg that are intended to be located by the gripper fixture and for each x, y, and z coordinate axis of the factory floor. Thus, for a gripper fixture that locates three feature-datums, there are nine tolerance equations that must be true. Finally, all of these necessary conditions for an unload operation may be formally expressed as described by statement #1 in the Appendix, which was elaborated manually based on the above considerations. 5.2 Load operation Figure 5 illustrates the tolerances associated with the load operation. The procedure to obtain the expressions for the load operation is analogous to that for the unload operation.
Int J Adv Manuf Technol (2008) 38:741–756
As illustrated in Fig. 7b, the following equation must be true for the operation to be valid: Tol C3;4 Tol M4;3 ¼ Tol M4;6 þ Tol M6;7 þ Tol M7;5 þ Tol M5;8 þ Tol M8;1 þ Tol M1;2 þ Tol M2;3 : where: – – – – – – – –
C3, 4 = open gripper fixture specification of part feature datumf located by buffer fixture. M4, 6 = part feature datumf (located by buffer fixture) specification of other feature datumg (located by gripper fixture) M6, 7 = closed fixture specification of feature datumg located by gripper fixture M7, 5 = gripper fixture position relative to end effector mounting plate M5, 8 = robot placement of end effector mounting plate M8, 1 = robot base port position in facility M1, 2 = equipment port position in facility M2, 3 = buffer fixture position in equipment port
Thus, the set of necessary conditions due to accuracy considerations for a load operation are that a set of equations derived from the following equation are true for all datums datumf that are intended to be located by the buffer fixture and for each x, y, and z coordinate axis of the factory floor: open fixture datumf tolerance specification tolerance from datumf to datumg þ close gripper datumg tolerance þ gripper position tolerance þ robot position accuracy þ robot home port position tolerance þ buffer port position tolerance þ buffer fixture position tolerance The formal functions that model these accuracies and tolerances along the x axis are mapped to the labels in Fig. 5 for all datums datumf that are intended to be located by the buffer fixture, as follows: – – – – – –
open_tolX (Facility, Buff, fixture, datumf) = open buffer fixture datumf tolerance specifies_tolX (Facility, datumf, datumg) = specification tolerance from datumf to datumg close_tolX (Facility, Buff, gripper, datumg) = closed gripper datumg tolerance fixture_pos_tolX (Facility, Portr, gripper) = gripper position tolerance accuracyX (Facility, E) = robot position accuracy tol_posX (Facility, Portr) = robot home port position tolerance
751
– –
tol_posX (Facility, Portb) = buffer port position tolerance fixture_pos_tolX (Facility, Portb, fixt) = fixture position tolerance
Using these defined functions, one can express the tolerance equation formally as follows for the x axis: open tolX ðFacility; E; fixture; datumf Þ specifies tolX Facility; datumf ; datumg þ close tolX Facility; Buff ; gripper; datumg þ fixture pos tolX ðFacility; portr ; gripperÞ þ accuracyX ðFacility; Ei Þ þ tol posX ðFacility; portr Þ þ tol posX ðFacility; portb Þ þ fixture pos tolX ðFacility; portb ; fixtÞ The necessary conditions for a load operation may be formally expressed as described by statement #2 in the Appendix, which was also elaborated manually.
6 Illustration In order to illustrate this tolerance representation scheme for robotic machine tending, an example work-station is presented that contains a robot (E2), a machining center (E1), and a simple part (Part1). The part is illustrated in Fig. 8. The formal specification of the resource model is given. Next, details of the equipment in this facility are given. In order to illustrate the information that defines operations plans, an example operation consisting of robot E2 unloading a part from machining center E1 is specified and its validity is demonstrated. 6.1 Resource model A part element, Part1, represents the physical part represented by Fig. 8. The part is defined to have six surface features: Feat1, Feat2, Feat3, Feat4, Feat5, and Feat6. The facility has two fixtures whose design intent is to locate this part. The resource E1 owns fixture F1, which is designed to
Fig. 8 Example part
752
locate features Feat2, Feat3, and Feat5 of Part1 with intention #1. E1 also owns Port1. E2 owns fixture F2, which is designed to locate features Feat2, Feat6, and Feat5 of Part1 with intention #1. The home port of E2 is Port2. Formally, this resource model is defined in Table 1. 6.2 Unload operation illustration Coordinate frames and tolerance information for some of the equipment and fixtures in the example facility are illustrated in Figs. 9 and 10. Figure 9 describes the setup for the machining center E1. Note that since XE1 coincides with XFacility and YE1 coincides with YFacility, the tolerances along the Facility coordinate axes are equal to the tolerances along the E1 coordinate axes. All coordinate frames in this example have Z axes that are in the vertical direction. With regard to the robotic material handler E2 in Fig. 10, note that since XE2 coincides with XFacility and YE2 coincides with YFacility, the tolerances along the Facility element’s coordinate axes are equal to the tolerances along the E2 coordinate axes. A part of type Part1 may be unloaded from fixture Fixt1 and Port1 by the robot E2 if the predicate unloadable (Part1, Port1, E2, Fixt1) is true. Given the preceding tolerances for
Int J Adv Manuf Technol (2008) 38:741–756 Table 1 Formal specification of resource model for illustration F = {Fixt1, Fixt2}, Ports = {Port1, Port2}, Parts = {Part1}, E = {E1, E2}, MP = {E1}, MH = {E2} owns (E1, Port1}, owns (E2, Port2), owns (E1, Fixt1), owns (E2, Fixt2), controllable (Fixt2), controllable (Fixt2) UnloadPorts2 = {Port1}, LoadPorts2 = {Port1} Parts = {Part1}, Feat = {Feat1, Feat2, Feat3, Feat4, Feat5, Feat6} specifies (Feat1, Feat5), specifies (Feat2, Feat4), specifies (Feat3, Feat6) locates (Fixt1, Feat2, 1, 1), locates (Fixt1, Feat3, 1, 2), locates (Fixt1, Feat5, 1, 3) locates (Fixt2, Feat2, 1, 1), locates (Fixt2, Feat6, 1, 2), locates (Fixt2, Feat5, 1, 3) locates (Fixt3, Feat2, 1, 1), locates (Fixt3, Feat3, 1, 2), locates (Fixt3, Feat5, 1, 3) locates (Fixt4, Feat2, 1, 1), locates (Fixt4, Feat6, 1, 2), locates (Fixt4, Feat5, 1, 3) locates (Fixt5, Feat2, 1, 1, locates (Fixt3, Feat3, 1, 2), locates (Fixt3, Feat5, 1, 3) locates (Fixt6, Feat3, 1, 1) locates (Fixt3, Feat3, 1, 2), locates (Fixt3, Feat5, 1, 3)
the machining center E1 and the robot E2, this predicate unloadable (Part1, Port1, E2, Fixt1) is proved automatically using statement #1. First, from the specification of the resource model it is known that:
Port1 2 UnloadPorts2 ; Feat2 2 Feat; Feat3 2 Feat; Feat5 2 Feat; Feat6 2 Feat; ownsðPart1 ; Feat2 Þ; ownsðPart1 ; Feat3 Þ; ownsðPart1 ; Feat5 Þ; ownsðPart1 ; Feat6 Þ; ownsðE1 ; Fixt1 Þ; locatesðFixt1 ; Feat2 ; 1; 1Þ; locatesðFixt1 ; Feat3 ; 1; 2Þ; locatesðFixt1 ; Feat5 ; 1; 3Þ; ownsðE2 ; Fixt2 Þ; locatesðFixt2 ; Feat2 ; 1; 1Þ; locatesðFixt2 ; Feat6 ; 1; 2Þ; locatesðFixt2 ; Feat5 ; 1; 3Þ; and specifiesðFeat3 ; Feat6 Þ:
This leaves nine mathematical expressions to be proven true because the robot must be capable of locating three datums of the part within the gripper’s open tolerances along the Facility’s x, y, and z coordinate axes. These expressions and their equivalent values are true, and the three non-infinite comparisons are listed below. For each
expression, datumg is the feature located by the gripper and datumf is the feature located by the fixture. First, the tolerance loop for datumg = Feat2 and datumf = Feat2 along the Facility’s y axis is checked. In this case, the gripper and fixture specify the location of Feat2 along the y axis with a finite value. Furthermore, the fixture specifies the location of Feat2 sufficiently for the E2 robot to locate it:
datumg ¼ Feat2 ; datumf ¼ Feat2 : open tolY ðFacility; E2 ; Fixt2 ; Feat2 Þ tol posY ðFacility; Port2 Þ þaccuracyY ðFacility; E2Þ þ fixture pos tolY ðFacility; Port2 ; Fixt2 Þ þtol posY ðFacility; Port1 Þ þ fixture pos tolY ðFacility; Port1 ; Fixt1 Þ þclose tolY ðFacility; E1 ; Fixt1 ; Feat2 Þ , 0:08 0:01 þ 0:001 þ 0:001 þ 0:01 þ 0:001 þ 0:03 , 0:08 0:053
Next, the tolerance loop for datumg = Feat6 and datumf = Feat3 along the Facility’s x axis is checked. In this case, the robot and the fixture specify the location of Feat3 and Feat6
along the x axis with a finite value. Furthermore, the fixture specifies the location of Feat3 sufficiently for the E2 robot to locate Feat6.
Int J Adv Manuf Technol (2008) 38:741–756
753
Fig. 9 Tolerances associated with machining center E1, Fixt1, and Part1
datumg ¼ Feat6 ; datumf ¼ Feat3 : open tolX ðFacility; E2 ; Fixt2 ; Feat6 Þ tol posX ðFacility; Port2 Þ þaccuracyX ðFacility; E2 Þ þ fixture pos tolX ðFacility; Port2 ; Fixt2 Þ þ tol posX ðFacility; Port1 Þ þfixture pos tolX ðFacility; Port1 ; Fixt1 Þ þ close tolX ðFacility; E1 ; Fixt1 ; Feat3 Þ þspecifies tolX ðFacility; Feat3 ; Feat6 Þ, 0:08 0:01 þ 0:001 þ 0:001 þ 0:01 þ 0:001 þ 0:03 þ 0:001 , 0:08 0:054
Lastly, the tolerance loop for datumg = Feat5 and datumf = Feat5 along the Facility’s z axis is checked. In this case, the gripper and fixture specify the location of Feat5 along the z
axis with a finite value. Furthermore, the fixture specifies the location of Feat5 sufficiently for the E2 robot to locate Feat5.
datumg ¼ Feat5 ; datumf ¼ Feat5 : open tolZ ðFacility; E2 ; Fixt2 ; Feat5 Þ tol posZ ðFacility; Port2 Þ þaccuracyZ ðFacility; E2Þ þ fixture pos tolZ ðFacility; Port2 ; Fixt2 Þ þ tol posZ ðFacility; Port1 Þ þfixture pos tolZ ðFacility; Port1 ; Fixt1 Þ þclose tolZ ðFacility; E1 ; Fixt1 ; Feat5 Þ, 0:08 0:01 þ 0:001 þ 0:001 þ 0:01 þ 0:001 þ 0:03 , 0:08 0:053
Fig. 10 Tolerances associated with E2, Fixt2, and Part1 for open gripper fixture
754
Fig. 11 A hexagon-shaped part
On the other hand, there could be a situation in which the part could not be unloaded from fixture Fixt1 and Port1 by robot E2. One example of such a situation would be if tol_posY(Facility, Port1) = 0.02, and close_tolY(Facility, E1, Fixt1, Feat2) = 0.05. In this case, the equation concerning the unloading along the y axis would yield 0.08 ≥ 0.083, which is false. Therefore, in this case, the existing resources cannot meet the tolerance requirements. 6.3 Flexibility of the proposed method If the problem were the loading or unloading of a hexagonshaped part (see Fig. 11) instead of the box-shaped part shown in Fig. 8, the part in Fig. 11 would be considered in a similar manner as the box. Basically, the proposed method would initially identify through the resource model the features in the part that could be located by a given fixture (e.g., Feat3, Feat7, and Feat6 in the hexagon-shaped part with intention #1), and a table similar to Table 1 would be built. After that the loadability/unloadability decisions could be made, which would be carried out similarly to the procedure described in Sect. 6.2.
7 Conclusions A representation for tolerances associated with robotic machine tending has been presented. This representation establishes tolerance criteria for valid load and unload operations that was tested successfully using an automatic operations planner at Pennsylvania State University’s Factory for Advanced Manufacturing Education (FAME) lab. The application of the proposed tolerance scheme together with the resource model provides an important feedback for robot tending operations planning, since it enables the verification whether a robot gripper can or cannot load/unload a part on/from a fixture. The representation provides flexibility for the robotic machine tending operations, even after a new resource is
Int J Adv Manuf Technol (2008) 38:741–756
added to the manufacturing system. The new resource data would be input into the resource model in such a way that the decision on the machine tending operations would be carried out based on the same expressions. The model also provides a framework for storing tolerance information in manufacturing facilities that planners can utilize for off-line assessment of the manufacturability of new product designs. This assessment enables automatic planners to determine if existing resources need to be reconfigured or simply reprogrammed to handle new part designs. The proposed method considers that the information about the fixture (e.g., fixture intention, direction, tolerances, ownership) is already available in the resource model. Then, the verification of the loadability/unloadability operation is carried out. In the case of a new fixture, its related information should be input into the resource model. Since the data about each new robot gripper and fixture are added to the resource model, such information can be used when a part is not loadable/unloadable to/from a fixture, and the resource model could be searched for a more adequate gripper/fixture pair for the specific operation. The method could be applied in a reverse manner, i.e., the dimension chain could be built assuming that the part can be loaded or unloaded, and then the required tolerances for the robot gripper or the machine fixture could be calculated, and such values could be used to help retrieve an appropriate gripper and/or fixture from the resource model, or in the design of new ones.
Int J Adv Manuf Technol (2008) 38:741–756
Appendix Statement #1:
#2: Statement 1Statement #2:
755
756
References 1. Whitney D (1986) Real Robots don’t need Jigs. IEEE International Conference on Robotics and Automation, San Francisco, CA, USA 2. Goldberg K, Mason M, Requicha A (1992) Geometric uncertainty in motion planning: summary report and bibliography, IRIS TR #297. Institute for Robotics and Intelligent Systems, University of Southern California, Los Angeles, CA, USA, August 3. Chang T, Wysk R, Wang H (1998) Computer-aided manufacturing. Prentice Hall, Inc., New York, USA 4. Roy U, Fang Y (1996) Tolerance representation scheme for a three-dimensional product in an object-oriented programming environment. IIE Trans 28:809–819 5. Fraticelli BMP, Lehtihet EA, Cavalier TM (1997) Sequential tolerance control in discrete parts manufacturing. Int J Prod Res 35(5):1305–1319
Int J Adv Manuf Technol (2008) 38:741–756 6. Manufacturing Center (2005) Machine-tending robots increase flexibility, morale, http://www.manufacturingcenter.com/man/articles/ 0904/0904machine_tending_bots.asp, last accessed in July 2005 7. Steele J, Son Y, Wysk R (2001) Resource modeling for the integration of the manufacturing enterprise. J Manuf Syst 19 (6):407–427 8. NIST (2004) National Institute of Standards and Technology, Process Specification Language (PSL), http://www.mel.nist.gov/ psl, last accessed in April 2004 9. Wysk R, Peters B, Smith J (1995) A formal process planning schema for shop floor control. Eng Design Auto 1(1):3–19 10. Chase K (2004) Basic tools for tolerance analysis of mechanical assemblies. In: Geng H (ed) Manufacturing engineering handbook, Chapter 7. McGraw-Hill 11. Nilsson NJ (1998) Artificial intelligence: a new synthesis. Morgan Kaufmann Publishers, USA 12. Eriksson H, Penker M (1998) UML toolkit. Wiley, New York, USA