Monday, 9 February 2009

Machine Cell Operation


The discussion of how the cell operates is divided into two distinct categories of cell-level tasks: steady state operations and periodic operations. Error handling is treated separately in section 4.6.2.
The cell operates in a steady state during a parts run. The parts move through the cell under the guidance of the cell host. Each machine tool and robot runs a CNC parts program or movement program at the command of the cell host, During the parts run the cell host needs little or no correspondence with any factory level management for decisions regarding cell operation. Management data concerning cell status is, as always, available from the cell host.

The temptation to only view the cell as a sequence of part movements and individual operations is strong, but such a view is incomplete. At any time, the cell is working on a variety of parts, each at a different point in the process. To realize the full potential of the cell the actions must occur asynchronously. The cell host must be able to manage the actions of the mill, lathe, robots, and vision system so they function in parallel. This turns out to be a difficult problem, for many of the differing actions are related. Managing a cell so that the machines can function in parallel is a topic of current investigation. One technique for coordinating the different activities is to use a rule based production system. The machine inter-relations within the cell are delineated in the set of rules and their parallel execution is managed by the production system. The production system is somewhat computationally expensive, though. It would also require considerable development work to implement. Other schemes may prove to be appropriate for managing the parallel operations within the cell, but most of the currently available systems are difficult to change and do not clearly describe how the cell, as a system, works. There is no panacea for this problem. Providing a mechanism for managing the parallel execution of machine operations, under the supervision of the cell host, will require an extended development effort.

The tasks associated with changing the cell for a different part family include:
· Down-loading new parts programs to the machine tools.
· Modifying fixtures. If the parts in the new batch are of the same family as the parts from the last batch, little or no modification is needed. On the other hand, if the new parts are substantially different then manual labor may be necessary for the modification.
· Installing different cutting tools. Just as modifications to fixtures are necessary if the part style is significantly different from the previous one, it may also be necessary to install different tools in the machine tool magazines.
· Providing statistical information, such as how long the machines have been running, how many incoming parts were processed and how many parts were rejected, to the factory management system.

The operations required for a cold start (after a power failure, for example) form a special category. A cold start involves substantial manual labor. People will be starting machine tools, down-loading parts programs, and boot-strapping computers.

Steady State
A number of scenarios are developed below to describe the operation of the proposed cell. Each scenario is specific to some locale within the cell, but some of the scenarios may occur simultaneously.

Locating a part when it enters the cell

New parts will arrive at the cell sitting on a pallet that rides on a cart. The parts may be nothing more than lumps of metal bar stock or they may have undergone some preliminary machining, perhaps in another cell. The cart is moved beneath a vision system camera. This camera is equipped with a relatively wide angle lens and has a panoramic view of the parts sitting on the pallet The parts will lie flat on the pallet, thereby reducing the problem of determining their orientation to a two dimensional one; which is something that a vision system is well equipped to handle. The ability of the vision system to determine the position and orientation of an object is embedded in the low level binary image processing algorithms shared by virtually all commercially available systems. The low resolution image of an entire pallet full of raw parts provides sufficient information for the mill-loading robot to grasp the parts one at a time.

In figure 3-2 the robot places the parts upon a linear table. At this point a second camera may be used. The second camera is equipped with a magnifying lens, giving 5 to 10 times the resolution of the wide-angle camera. This magnification can improve the resolution of the image enough to determine the position and orientation of the raw part to within about 2.015 inch. Because the image seen by this camera is magnified, the field of view is reduced to an area on the linear table approximately 6 inches square. This reduction in the field of view prevents the camera from looking at more than one part at a time.
In figures 3-3 and 3-4 the position and orientation of parts can be established by placing the second camera over the parts-cart or by equipping the first camera with a zoom lens so that it can take both panoramic and close-up pictures. In either case, the camera must be able to move to different locations over the cart for the close-up pictures. The equipment required to move the camera to different locations over the parts would be about as expensive and complex as a linear table.

A third possibility is to establish the position and orientation of parts while they are held by the mill- loading robot. The robot grasps a part and holds it directly under the camera for a closer lookIn this case there is no need to move the camera about. However, the scheme will not work unless grippers can be designed which do not obscure the part. It will also be difficult to load parts into precision fixtures on the machine tools if the parts are not precisely seatedin the robot gripper. Merely knowing the position and orientation of the parts may be inadequate (see Loading the mill).

Grasping new parts.
Once the position and orientation of a new part are established to within +.015 or -.015" inches, it can be picked by the 5 or 6 axis mill-loading robot and loaded into a machine tool. In figure 3-2 the mill-loading robot may alternatively reposition the part more precisely on the linear table to accommodate later acquisition by the lathe-loading robot. The mill-loading robot must accurately locate the part in its gripper to do either of these tasks. Basically, we are relying upon the grippers and the fixtures in this cell to improve upon the +.015" or -.015" positional accuracy by more than an order of magnitude.

The gripper will be of the type that tends to center a part as it closes. In this way the uncertainty in the part's position is slightly reduced. If the positional error is too large, the robot will have difficulty placing the part in fixturing on the mill or loading it accurately on the linear table. Several microswitches mounted in the gripper indicate whether the part is sitting squarely in it. If not, the robot releases the piece and grips it again. If this is unsuccessful then the vision system should take another look at the piece or the cell should request assistance. The process of accurately gripping the parts, one by one, and either loading them into the mill or repositioning them on the linear table is not a particularly fast one. For a higher volume cell some alternatives become worthwhile and these are discussed in section 4.7.

Grasping parts in-process

The requirements for grasping parts once they have been machined by one of the tools in the cell are somewhat different than those for new parts. In this case the parts may be sitting on the linear table (figure 3-2) or on the cart (figures 3-3 and 3-4)In either case, the position and orientation of the parts are now well defined because a robot has put them there. Consequently there is no need to use the vision system when picking them up again. At the same time, it is important to grasp the parts in a very precise and repeatable way. Once parts have been turned on the lathe or machined on the mill they becomeprecision parts. They must be handled so as not to loose the precision invested in them.

The goal in grasping these parts is to ensure that the accuracy of the alignment between the part and the robot at least matches the working accuracy of the robot itself. If we know the greatest expected positional error of the parts we are able to design fixtures and program the robot accordingly. The smaller the error is, the easier these tasks will be. A number of micro switches will tell the robot whether a part is adequately positioned in its gripper. If not, the robot puts the part down and tries to grip it again.

Loading the mill

When the sensors on the robot gripper indicate that it has gripped the part the robot proceeds to the mill. The robot guides or locates the part against fixturesso that the part is brought into nearly perfect alignment on the mill. The robot, with its accuracy of + or - 0.008 inch, can only do this if there is some compliance in the mechanical system composed of the robot, the part, the fixturing, and the mill. It is helpful if the compliance is not accompanied by substantial hysterisis and if contact forces between the part and the fixtures produce deflections only in the corresponding directions, with a minimum of side-effects. One way to accomplish this, and thereby reduce the likelihood of jamming or galling parts, is to use a Remote Center Compliance unit mounted just behind the gripper (see clamps and fixtures, section 4.3)The Remote Center Compliance is a passive device, originally developed to assist robots in assembling precision parts. It will soak up small angular and radial errors made by the robot that could otherwise produce high contact forces between a part and the fixture it slides into.

The reason for taking such pains to load parts accurately into fixtures is that unless they are positioned to within + or - 0.0003 inch, there is no way to hold the required tolerances on most of them. The fixturing on the mill may need an expanding collet to hold the very close tolerances with respect to the internal diameters of parts such as the one shown in figure 3-1. It will probably be necessary to equip the clamps and fixtures on the mill with air nozzles. These would help to keep the clamping surfaces clean, and could easily be instrumented to detect the back pressure produced as the clamps pressed against the workpiece. Low back pressure would indicate imperfect contact due to dirt, metal chips, or misalignment of the part. The clamps should also be fitted with automatic brushes or air jets so that they can clean themselves when chips or dirt get in the way. In any event, the process of locating parts against fixtures and clamping them will require some trial and error experimentation before positioning tolerances of +0.0003 inch are achieved.

When the microswitches and pressure readings from the air nozzles indicate the part is properly clamped in place, the milling machine can begin cutting. If the sensors indicate that the part was not correctly loaded and clamped, the robot removes the part, lets the air jets or brushes try again to clean the surfaces, and loads the part again. If a part fails to load correctly after a few tries, the part is discarded. If several parts in succession, or a high percentage of parts over a period of time, fail to load correctly then something is wrong and the cell host requests assistance.

Machining

When a work piece is machined manually the machinist monitors several machining parameters and adjusts the operation accordingly. The monitoring of any particular parameter is not continuous, but is characterized by the collection of discrete samples at a frequency high enough to reveal general trends. The machinist seldom reacts immediately to this information, but strives instead to extrapolate from these trends the actions that must occur in the near future and to perform them before the need becomes critical. Consider, for example, a milling operation in which the machinist is making successive cuts in a work piece at constant spindle speed, feed rate, and depth of cut. The machinist observes that an increasing amount of effort is required to turn the hand crank which translates the tool through the work piece. Based upon this observation, the machinist extrapolates the need to reduce the forces acting on the tool before it fails. At a time determined by estimating the rate of change of this trend and through experience regarding how high these forces may become before the tool fails, the machinist acts to avoid tool failure. This action might be to increase spindle speed, reduce the feed rate, reduce the depth of cut, increase coolant flow, replace the tool with a newer and sharper tool, or some combination thereof. The desired result is to avoid scrapping the part and to eliminate a cause of unscheduled machine down-time.

The same monitoring and adjustment of machining parameters can, in a very limited way, be incorporated into a semi-autonomous, sensor-intensive machining cell. The key phrase here is sensor-intensive; what the machinist does with eyes and ears and touch, we emulate with sensors. To use the previously cited example, several techniques exist for measuring the gross forces experienced by the tool. Some techniques consist of instrumenting a part of the machine tool or the work-holding fixture with strain gages or piezoelectric force transducers. A less accurate approach is to monitor the (filtered) armature current of the machine tool motor.
Other sensor/machining-parameter combinations may be used in emulating the monitoring activities performed by a machinist but they are beyond the scope of a near-term cell. Sensors, with their related support equipment (amplifiers, filters, analogue-to-digital converters, additional processor capacity, etc), are expensive. Furthermore, every sensor added to a machining cell adds to the complexity of the system.

We have not yet discussed how machining-parameter adjustments would be made in response to the various monitoring activities. It must be possible to make appropriate adjustments under computer control. If such variables as spindle speed, feed rate, and depth of cut are not software selectable, there is little point in monitoring indicators such as force, vibration, and temperature. Amachinist does not bother to gather information that cannot be used and neither should our automated machine tools. An additional problem lies in deciding what is an "appropriate adjustment". The machining programs will have to use a mixture of empirical and simple analytic formulae. To date, very little software has been developed in this field.
Eventually it should be possible to monitor and respond to changes in a variety of machining parameters so as to optimize the unmanned operation of a machine tool. The most promising possibilities are discussed in section 4.7. A realistic approach is to begin by ignoring most of these parameters and assuming, for example, that a new tool will last some fixed number of parts. The goal is to automate the actions of our hypothetical machinist incrementally, as the cell evolves and matures.

Unloading the mill

After a workpiece has been machined it is removed by the robot attending the mill. If the part requires further machining on the lathe then the robot in figure3-2 places the part onto the linear table. In figures 3-3 and 3-4 the robot may take the part directly to the lathe or, more often, will place it upon the cart, waiting for the lathe to become available. The accuracy required for unloading the mill is not high but the robot should nonetheless be programmed to grasp the part and to set it down as accurately as possible. This is because we wish to preserve the accurate orientation of the part that we worked so hard to achieve earlier. Whether part proceeds to the lathe or to another cell, it will have to be picked up by another piece of automated equipment and loaded into another machine for precision processing. The better the orientation of the piece is known, the easier this task will be.

Loading the lathe.

For the cell arrangements shown in figures 3-3 and 3-4 the 5 or 6 axis mill-loading robot is also used to load the lathe. In this case the mechanics of loading a part into the lathe are essentially the same as those described earlier for the mill.

For the cell arrangement given in figure 3-2 things are different. When parts are ready to be turned on the lathe, the linear table slides over to a position beneath the lathe-loading robot. The lathe-loading robot is only able to pick parts from one position. This means that the linear table must index to present sequential rows of parts to it. It also means that when parts of a new style are loaded they must be placed so that their center lines match those of the previous parts. The alternative is to manually reset the fixed reach of the robot.
The lathe loading robot uses sensors to verify that it has gripped a part correctly. Like the mill loading robot, it needs to grip the part accurately. Next, the robot arm retracts, and the carriage travels to a position above the lathe chuck. The amount of carriage travel is programmable, and can be automatically changed to suit different part lengths. The arm extends, stopping when the centerline of the part and chuck coincide. The arm extension is not programmable and therefore, if the robot is to load different parts without manual readjustment, the gripper must grip different cross sections without producing offsets. The need for such a gripper has been met in other applications with a couple of simple designs. The robot carriage travels a short distance until the part bottoms out in the chuck on the lathe. The jaws of the chuck then close upon the part. As the above discussion reveals, the lathe-loading robot while inexpensive and rugged, is less suited to flexible operation than the mill-loading robot.

Loading the lathe with raw bar stock does not require extreme accuracy since the bar stock is oversize. Much more difficult tasks are: Reversing a part in the chuck of the lathe and loading a part that has already had some precision milling done on it. In either of these cases the accuracy of the finished part is a direct function of the position of the part in the lathe. As with the fixtures on the mill, it becomes vital that the jaws all meet the surface of the part squarely and that no chips or dirt get between the mating surfaces. Again as on the mill, it is useful to detect misalignment by monitoring the back-pressure of air jets at the clamping surfaces.
Reversing a part in the lathe poses a special problem for items such as the part shown in figure 3-1These items arc too short to be gripped from the side and must be held by one end or the other. For the arrangements in figures 3-3 and3-4 this means that the parts must be removed from the lathe, set into some holding fixture, re-gripped from the other side and loaded back into the lathe. For the arrangement in figure 3-2, one arm of the lathe-loading robot can remove the part from the chuck, swivel 180 deg. and present the part to the second arm of the robot which grips the part from the other end. The second arm then loads the part back into the lathe chuck. This is one advantage to the lathe-loading robot. Whichever cell arrangement is used, the part is either gripped or clamped three times in this process and it will be very difficult to maintain orientation.

Transferring a part between the lathe and the mill

In figure 3-2 parts travel between the lathe and the mill on a linear table carrying a pallet. The pallet will have some very simple locating fixtures to help the robots put parts down in a repeatable way. The linear table is a simple, but precise. device that travels in a straight line (see section 4.3). We take advantage of its precision, indexing it so that sequential rows of parts on the pallet are placed directly beneath the lathe-loading robot. The mill loading robot is more sophisticated and could be programmed to pick up parts from different rows on the pallet, but it is simpler and more precise to let the linear table do the indexing. Mechanical or optical switches indicate the position of the linear table, unless it has a continuous linear readout of position. Additional optical switches are placed where they will detect the presence or absence of parts on the linear table. These switches are a safety measure, verifying that a part really is present when it is presumed to be present and that an ostensibly vacant spot on the pallet really is vacant.
In figures 3-3 and 3-4 the mill-loading robot is responsible for transferring parts between the mill and the lathe. In figure 3-3 the robot rides on linear track. Ideally, the track should be treated as an extra axis for the robot, and equipped with a continuous linear readout of position.

Inspection of the completed part.

Upon completion of the machining a part, it is necessary to measure the machined dimensions to ensure that none fall outside some acceptable range for assembly into a finished product. In a typical job or batch production environment this is accomplished through manual inspection of the work piece by an individual using such measurement tools as micrometers, calipers, height gages, and so on. In our pursuit of an autonomous machining cell we would like to automate as much of this process as possible.
In addition to determining the fitness of a particular work piece for inclusion in a final product, the inspection of parts can be used to diagnose the state of the manufacturing process. Some clues are provided by the sensors located within the machining cell. Even a great many sensors, however, cannot monitor all of the variables that might cause failures. It is therefore ideal to extend the inspection of the finished part to the detection of symptoms of manufacturing failures. An example of this can be seen in the way a worn end mill in the milling machine produces a final dimension that is larger than the same dimension on an earlier work piece machined when the tool was not worn. If the cell host has been storing the dimensional data measured from previous workpieces, it not only knows that a particular dimension is oversize on the current workpiece, but also that previous work pieces have been exhibiting a trend towards this state and the tool may therefore be wearing out.

As mentioned earlier in section 4.1final part inspection within this cell is restricted to automated visual inspection of those features which can be discerned from a profile view of the work piece. It is possible to compare these features with a previously developed data base which describes the desired or theoretical appearance of the object.

In section 3.3 it was pointed out that the resolution, or fineness of detail which can be discerned by a vision system is dependent upon the pixel density of the imaging element in the video camera. In addition, the system's resolution will be affected by magnification and by the presence of any aberrations or constructional defects in the optics used with the video camera. The resolution of the vision system is particularly important when one is attempting to use it to make dimensional measurements. The +.015" or -.015"resolution of the second camera described in Locating a part when it enters the cell is clearly too coarse for inspecting the machined dimensions on precision parts. A camera with a higher magnification would have a finer resolution but with a corresponding reduction in the field of view.

Between Part Runs
In the ideal flexible cell, the only task between part runs would be to load new programs into the machine controllers and cell host: and this would happen automatically. In a practical cell there are also a few manual tasks. The less flexible the cell, the longer they take. For the cell we describe, the tasks are as follows:
· Modify the cell fixturing to align and clamp the new part shape. If the new parts are very similar to the parts in the last batch then the fixturing is not modified at all. On the other hand, if the new parts are quite different, people will have to readjust or reconfigure all the fixtures. In the extreme case, new grippers will be bolted to all the robots and new clamps and fixtures placed on the machine tools.
· Run a few parts through the cell, step by step, with people watching the process and inspecting the parts. This precaution is most important when the parts in the new batch are not very similar to those of the last batch. Running a few parts through, slowly, allows us to verify that the programs are all good, and that the readjusted fixturing performs successfully. If the cell were more sophisticated, it could be asked to run a few trial parts by itself and could rely on its sensors and inspection equipment to check that all went well.

Transfer of parts programs form the host to the controllers

The cell host will provide the controllers with their programs. The cell host won’t store those programs, but will receive them from the a higher level computer. The heaviest traffic in machine program transfers (whether CNC part programs or robot movement programs) will occur between batch runs. Most of the controllers are capable of storing several programs at one time, so they will not need to be refreshed during the parts run.
The machine controllers will be able to support file transfers between themselves and the host. They will be able to do this without operator intervention. When the time comes for a changeover of controller programs, the cell host will tell each controller to accept the new program and then the host will ship the program. As is the case with file transfer protocols between full-fledged computers, the transfer software will guard against transmission errors. If an error is detected the two processors, host and controller, will correspond and reship the parts program.

The ensemble of programs that the controllers in the cell require is defined by the particular part being machined. A computer at the manufacturing system level will be responsible for maintaining the database of programs and for relating parts to the programs required to make them.

Replacement of tools. ,
An automated cell should treat cutting tools much like parts. New tools will be automatically loaded between part runs and tools that are worn, or that will not be used for the next part run, will be removed. To some extent, the vision system will be able to identify and locate new tools in the same way that it does for parts. The utility of the vision system will be limited, however, because cutting tools do not lend themselves to two dimensional visual locations as easily as parts like the one shown in figure 3-1Another problem is that the robot grippers will have been carefully designed to handle a limited family of precision parts, and not tools. A way to get around this problem is to mount the tools in adaptors so that the robots can handle them. It would be easy enough to design the adaptors to also help the vision system locate the incoming tools.

Tools loaded into the mill will probably be inserted into a loading position on the tool changer. At this point it will clearly be necessary for the tool adaptor to release the tool. One simple solution is for the tool adaptor to be spring loaded. Similarly, tools for the lathe will be loaded into the turret. For the arrangement in figure 3-2 this requires positioning the turret so that one tool holder location is on the same centerline as the chuck. 

Otherwise the lathe loading robot would have to be manually readjusted. Here again, we see that the choice of a dedicated lathe-loading robot results in a less flexible system. In any event, it may be easiest to resort to manual tool replacement while the cell is in its earliest stages.
If a tool fails during a part run (and if there are no spares in the tool changer) we have a less tractable problem. It is difficult to introduce a new tool while the machines in the cell and the area beneath the vision system are full of parts. In this case it is easiest to inform the cell host that a new cutting tool will be manually introduced. The cell host halts the cell equipment, if it has not already done so, and waits for a signal that the tool exchange is complete.

Creation of new parts programs.
Modification and testing of parts programs will typically occur between part runs. The cell is not responsible for creating or storing parts programs, but it is useful to establish the programming requirements for the machines in this cell and to look at the tasks involved in testing new programs. A variety of commercial packages are available to generate parts programs but program generation represents only a portion of the required effort. The verification of new CNC programs is currently done on the actual machine tools and the time spent testing programs is lost production time. Generally, the techniques for program creation and verification differ for each tool, depending on the complexity of the controller. For the tools discussed in section 4.3 the procedures are listed below:
· For the CNC machine tools.
A large number of software tools are available to create parts programs fromsome user input The parts programs can then be down-loaded to the machine controllers. The systems that create parts programs vary in complexity from full blown CAD systems to simple, stand-alone programming aids. Even the latter are worthwhile in terms of parts programmer productivity. The generation of parts programs for CNC machine tools is a straightforward problem since most CNC machine tools are programmed in a derivative of the APT language. The structure of APT programs is simple and very amenable to automatic creation. The verification of newly created MT-like programs is not as well defined as their creation. Some sophisticated geometric modeling techniques exist for checking tool paths and such, but the final program is still checked on the machine tool.
· For the multi-axis robot.
The state of the art in program generation and verification in robots is more primitive than that for CNC machine tools. As above, machine time will be lost during verification of a new program, but more time will be lost during the creation of the program. The current method for creating robot programs is to manually teach them the motions desired in their work space. The programs can be tested only on the same robot. Some work is being done on the problem of robot program generation, but the efforts are still largely in the research arena. For the near-term cell we must anticipate cell down-time when new robot programs are being written, de-bugged, and tested.
· For the transportation device in figure 3-2.
The linear table in figure 3-2 will probably be controlled by a commercially available programmable controller (PC ). The programs for such devices are simple ladder diagrams input through something typically called a "program loader." The program loader is a terminal paired with software to convert the user input into machine language. The program loader is designed to send its machine code directly to the programmable controller but the output can also be re- directed to some storage device and later down-loaded to the linear table controller. The general issue of programming the linear table is not critical in the same way as that for the milling machine, lathe, or mill-loading robot. The programmable table will take its orders from the cell host. Those orders will be commands to move to some pre-defined location. The program residing in the programmable controller is. therefore, a simple program that interprets the host’s command into proper signal levels and times for the UC servo motors that drive the table. There will be no pre-programmed sequence of motions in the table controller. Those sequences must come from the cell host.
· For the lathe-loading robot
The controller for the MANCA lathe-loading robot mentioned above (see section 4.3) has the same general capabilities as the linear table controller. The specifics of the program ladder diagram will differ, but the basic technology is the same.