Advanced Manufacturing Laboratory Good Ship– Final Report May 1, 2003 Contents 1.0 Abstract p.4 2.0 Product Design 2.1 Components 2.2 Critical Design Parameters p.4 p.4 p.7 3.0 Process Tooling Design 3.1 Hinge die 3.2 Molds 3.2.1 Nozzle Mold 3.2.2 Cabin Mold 3.3 Abrasive Water Jet 3.4 Feeders 3.5 Vacuum Forming 3.6 Packaging p.8 p.8 p.8 p.9 p.9 p.10 p.11 p.12 4.0 Production Plan, Schedule and Resources 4.1 Flow Analysis 4.1.1 Tray 4.1.2 SCARA end effector 4.1.3 Thermal press end effector 4.2 Robotic code 4.3 Resources p.13 p.13 p.13 p.13 p.14 p.16 p.16 5.0 Budget and Schedule 5.1 Budget 5.2 Schedule p.16 p.17 6.0 Conclusions and Recommendations p.18 7.0 Appendix p.20 BLAST CAT http://www.rpi.edu/dept/aml/course/02-03/boat/teamb/www/Index.html Company Members Will Barnes President Eric Ascenzi Secretary Ken Hoffman Rich Marsh Mohamad Khaldi Chester Bull Edgar Sandoval Chris Ogunade Bill Lauer Brendan Hathaway Mauricio O’ Connell Jason Baniak 1.0 Abstract: The purpose of this document is to describe how Good Ship will manufacture a toy boat as sponsored by RPI-AML, and several external vendors including Arcadia, Kimberly Clark, and BASF. The proposed boat will be a double keeled hydrofoil featuring balloon powered locomotion, intended for use as a desktop ornament and functional toy. The overall dimensions are approximately 8” x 5” x 2”. The hull will be thermoformed and ultrasonically welded to a plastic injection molded nozzle. This nozzle will be connected to an anodized aluminum deck featuring the logos of the sponsors through heat stake attached hinges. A plastic injection molded cabin will also fasten to the deck through heat stakes. The resulting cavity will enclose the balloon, and provide storage space for desktop items. Thus far, approximately 500 dollars have been spent for materials and parts. The rest of the budget paid for packaging, tumbling, and machining costs. All parts have been made and the assembly process is going on as of this date. 2.0 Product Design: The function of the toy boat being produced by Good Ship will be a functional toy boat as well as a desktop ornament. The internal cavity serves a dual purpose. As a toy, it will accommodate the balloon used for locomotion and as a desk organizer it will provide an attractive and convenient place to keep writing utensils, staples, erasers, spare change or any number or useful items. 2.1 Components: The proposed design consists of five components (see figure F for complete layout). 1) The hull of the boat is a thermoformed ABS plastic double keeled hydrofoil. This configuration offers a stable base both in and out of the water. Figure A 2) The deck of the boat is cut from aluminum sheet stock. They will feature the logos of the company sponsors. The deck was chosen to be metal to help company members experience a more robust array of manufacturing procedures. Figure B 3) The boat cabin is constructed from injection molded ABS plastic. Although it’s only function is to be visually pleasing to the consumer, it is certainly important to the team members; it features the RPI bullet. It will attach to the deck via heat staking. Figure C 4) The nozzle is also formed from injection molded ABS plastic, but it is an essential piece of the design. The nozzle will be ultrasonically welded to the hull and hinged to the deck via heat staking. The nozzle also provides a means of propulsion for the boat, by attaching a balloon to the interior protrusion. Filling the balloon with air from the exterior spout will cause the deck of the boat to rise, while air escaping from the same spout will push the boat forward. Figure D 5) Lastly, the polymer hinge strip material will be purchased. A special die will simultaneously punch the stake holes and cut the material to the proper dimensions. As mentioned before, the hinge will connect the nozzle and the deck. Figure E Figure: F (Exploded View) 2.2 Critical Design Parameters: Plastics All plastic parts must be constructed from the same material for two main reasons. First, if everything is constructed from the same substance, material ordering becomes a trivial matter. Second, ultrasonic welding works best when the two materials being joined are the same. Deck The deck raises several concerns including fit, finish, and safety. It must be specifically dimensioned such that it perfectly covers the hull otherwise the aesthetic value will be compromised. Since it offers the most surface area, it will serve as the location for company sponsor logos. These will be scribed in with the abrasive water jet cutting machine. These methods will also be used to cut the decks from the sheet stock. Abrasive water jet cutting creates significant burring around the edges. Since the product is required to be “child-safe”, the decks will be subjected to a course of tumbling and/or smooth sharp edges and corners. 3.0 Process Tooling Design: 3.1 Hinge die: A special die will be constructed to prepare the hinges for use with the boat design. First, a pre-stressing die featuring a 45 degree ‘V’ shaped slot will be constructed. The hinge strip material will fed through this die using the strip stock feeder until a sufficient level of pre-stressing has been achieved. Second, another die will be constructed which will simultaneously punch the holes and trim the stock into one inch lengths. The movable half of the die will have 4 pins which punch the holes, while opposing shear blocks act like a scissors to clip the individual hinges to length. When the die separates, a stripper plate will comb the hinges off the pins so they can be collected. The extreme set-up time for manufacturing this die was the major inhibiting factor at this point. Four punch pin holes must be drilled and reamed into the existing scissor block die. The holes could not be drilled into the top and bottom halves of the die simultaneously because there would be no accurate way to locate the die to the hydraulic press locator plates. The solution was to drill the holes in the top of the die, then use the CMM to arbitrary measure the coordinates of these holes in relation to a locator pin. Using these measurements, the top half of the die was recreated with SolidWorks. Measurements were taken from the SolidWorks model and mapped onto the lower half of the die in reference to a locator pin. Finally, the bottom half of the die was clamped onto the table of the milling machine. Using a dial indicator the locator pin was set as the origin, and the other four holes were drilled and reamed to size. Work left to be done includes milling a channel so the punched circular waste material can be removed, and cutting the punch pins to length. 3.2 Molds: The design of the plastic injection molds is based on the CAD developed for the parts. Changes had to be made to the CAD before the molds could be made. It was decided at the end of the semester that the deck of the ship would consist of two parts. A piece of sheet would make the flat portion of the deck while the cabin or raised area would be plastic injection molded. It was found that since the heat steak tabs on the cabin had to be longer to compensate for the decrease diameter in the sheet deck. For uniformity these changes were made for the nozzle as well. The new heat steak tabs had been designed so that they can mushroom enough to hold all the parts together. After the CAD was reworked the EdgeCAM was the next step. The molds were of such a size that permitted two nozzles to fit on each mold. This will half the time necessary to manufacture all the nozzles. The cabin however is larger than the nozzle and therefore will have to be made one at a time on one single mold. The runners are 1/8” diameter for both the molds and there is one set of runners going opposite directions from the sprue to supply material for both the nozzles. 3.2.1 Nozzle Mold : It was discovered that in order to inject the nozzle molds there had to be draft angles on all the major features. Therefore the moving side of the mold has a 7 degree draft angle on it while the stationary side has a 2 degree. The reason for this difference in draft angle amounts is because the moving side had deeper features than the stationary, therefore in order for the parts to look relatively straight they should meet on both sides of the mold. This arose another question, should the bottom of the pocket retain the dimension or the top. I decided that the top dimension would be compromised because the bottom dimensions were more critical to the design. Due to our constraint in time and mistakes made, the nozzle mold had a problem with one of the two nozzles in the mold. This has caused us to go to a backup of making one nozzle at a time which doubled our production time. 3.2.2 Cabin Mold: The EdgeCAM for the cabin mold is complete and the mold is currently being machined. A few changes were made to the cabin mold as described in the last report. The parting line of the mold was shifted so that the cavities that form the back and side tabs of the mold are located completely on the moving side of the mold. This allows for easier machining. A seven degree draft has been added to the cabin body to facilitate removal from the mold. Finally the lettering has been resized to allow it to be machined with a 1/16 inch endmill, and the orientation of the lettering has been reversed so that it appears right-side-up when the boat is packaged. Some additional hand machining was performed to the moving side of the mold to drill and ream for the ejector pins. The plastic for the cabin parts is natural ABS with red colorant added. Red colorant consistent with the RPI logo has been ordered through BASF. The cycle time for producing plastic parts is about one minute per part when the automatic operation of the Hunkar PIM is used. The only problem that arose when producing the cabin was it had no runners, which gave us a problem of the plastics sticking to the mold. This was avoided by using a specific chemical spray on the mold during production to stop the plastic from sticking to the mold. 3.3 Deck: The Abrasive Water Jet (AWJ) was used for cutting the perimeter and scribing the sponsor’s logos for the decks. 640 decks were produced. In order to properly accomplish both procedures, that is, cutting and scribing on a single piece, two AWJ programs had to be designed. The first program scribes the deck board detail into the aluminum sheet. Light Scribing is achieved by assuming the aluminum sheet is 1/32” thick then running the scribe option on the AWJ. The scribing process only uses water. There is no abrasive being used while scribing the sponsor’s logos. The second program cuts out the profile and the holes assuming the aluminum sheet is 1/16” and using the regular setting. As mentioned before, two different files were needed to manufacture and produce the deck appropriately. The first file was used for the scribing option from AWJ software package. This file was in charge of writing out the sponsor’s names. The second file is the profile option in the software which will be in charge of cutting the perimeter of the deck and the holes. The finished cut maintains a tolerance that is approximately 0.001” and a Center Line Average (CLA) that is suitable for our purposes in producing the toy boat. Due to several problems that took place with the software package (Flowpath), we were not able to start mass production of the decks until March 24th. Decks were cut from 2ft. x 2ft. 1/16in thick aluminum sheets. This allowed making 12 decks from each sheet. To be able to create the 12 decks from each sheet, a cutting pattern needed to be done in the software. The software only allows you to pattern the decks one by one, taking a great amount of time. Another problem with Flowpath is that it does not allow you to save the pattern after it is finished. You need to export this pattern to a different package called Flowcut. Flowcut was the software package that actually realized the cutting and scribing, and the pattern can be saved in this software program. But if a mistake was made on the pattern you need to change the whole pattern from Flowpath, you can not change anything in Flowcut. This problem occurred the week before spring break, and it was required a whole new pattern when returning from the break. The second major problem was that the default options in the software were changed by a previous user, who did not set the options back to default. It took a lot of time with trial and error to fix these settings. Aren Paster helped us by fixing the settings and he also built a holder that helped us cut several decks at the same time. Another problem that was encountered, was the aluminum that was donated from Arcadia was from a different series than the ones we had used during our trials. This small change in the material properties gave problems with the scribing, and several trials were needed with the new material to obtain the appropriate results. After all the problems were debugged, the production of the decks went pretty smoothly. The manufacturing process started by scribing 3 sheets one by one, then stacking them on top of each other and cutting the 3 sheets at the same time. The results were very good, but this process was taking a great amount of time. Because of this reason, the process was changed to scribing 5 sheets one by one, and then stacking them and cutting the five sheets at once. This change did not affect the quality of the decks and increased our speed manufacturing process considerately. After cutting the perimeter of the decks, their outside became rough, so the initial decision was to tumble the decks. After cutting the first 180 decks, this batch was tumbled. The team did not like the results. The decks surfaces were very smooth, but they had a lot of scratches. Due to this reason the team decided to stop this process and buy a tool bit for the perimeter cutter. The tool bit allowed us to sand the roughness of the other 460 decks and avoids the scratches being made by the tumble machine making the decks look and feel great. The cost for using the AWJ to produce the 640 decks was the following: The scribing cost was $85.60; the cutting cost was $128.52; giving us a total of $214.12. As a recommendation for the following years, the software packages for the AWJ need to be changed for a newer and more user friendly program 3.4 Feeders: The automated assembly for the toy boat required several feeders to properly position the five separate parts of the boat. Part positioning is critical in automated assembly. Each part must be consistently placed in the same location due to the constraints of the robots. If the placement is just slightly incorrect it is possible that either the robot will miss picking up the part or it will be positioned incorrectly in the next step of the assembly. So to accomplish this goal, five different feeders were designed. The first three feeders are rudimentary gravity feeders. These gravity feeders are used for the hull, cabin and nozzle of the boat. The three feeders are designed similarly to one another except for size and shape of the track. Gravity feeders were used for these parts due to their complex geometries. The gravity feeders use inclined planes that the parts are stacked side by side on. The end of the planes has a barrier that the part will rest against. This is the final position of the part. From this position the robotic end effector extracts the part. Gravity then positions the next part. The feeders are able to hold between ten and twenty parts at a time. They have to be manually reloaded. Parts that have a smooth surface profile have many more options for feeders that are more space efficient. So the last two feeders are escarpment feeders. The first feeder is used to position the deck. Since the deck is flat 1/8” aluminum with no surface features, it is easily stackable and can slide against another deck without complications. Therefore, we vertically stacked the decks and the bottom deck is pushed out into position by a pneumatic piston. The bottom deck is then positioned in a void that is in the shape of the deck. This way the position is fixed so it can be consistently extracted by the robot. When the deck is removed the piston retracts and another deck falls into the depression. The hinge feeder is identical to the deck feeder with some obvious differences. Since the hinge is plastic it is light and slightly bowed so we are applying weight to the top stack to make sure the bottom hinge falls into the void. We have also placed some alignment studs in the void to help fix the final position of the hinge. All feeders were completely built ahead of schedule. The feeders have been built so they can be easily modified to account for bugs in the assembly process. The feeders are built almost entirely of aluminum. They are bolted together instead of welding to allow for ease of modification. There has been no cost associated with building the feeders. The AML lab has had all the scrap material we needed to complete all the feeders. There was some hold ups for building the feeders. The first road block was that there was the possibility of parts changing dimensions. We also don’t have a prototype of the hinge. This causes problems in designing the feeder. At this point we are still not sure how well the hinge feeder is going to work in the assembly process. We have not been able to test it yet. The contingence plan is to attach the hinges to the nozzle by hand. This also helps to eliminate the problem of the nozzle stud diameters being too large. All other feeders have been tested and prove to work well. 3.5 Vacuum Forming: The hull of the boat was created by vacuum forming plastic sheets over a mold of the hull. We started by making a rapid prototype of the mold and mounting it to a piece of plywood and formed plastic over it. We used the formed plastic to cast four urethane molds that were mounted together on plywood. After smoothing the casts and making some small modifications to improve their shape, we added locator pins to aid in the process of cutting the hulls out. We then found it necessary to drill very small holes through the plywood of our mold, which allowed the air to be pulled through the plywood, but the holes were small enough that the plastic didn’t get pulled into them. This gave us much better results when we vacuum formed the sheets. The only problem we ended up with during the vacuum forming process was the material stretching too thin. The curved area near the front of the hull was stretched very thin and we found no way to really fix this problem. By changing some of the settings and adding some holes to the mold, we could make this area thicker, but decided the only way to completely solve the problem was either use thicker plastic sheets, or change the design of the hull so it wouldn’t stretch as far. After forming some of our sheets, a frame was built from aluminum bars to hold the sheets while they were cut apart with the abrasive water jet (AWJ). Using the locator pins that we had put into the mold, we build a frame that supported the plastic sheets and used those pins for alignment. During the process of cutting the sheets, we found that the sheets moved around too much from the pressure of the AWJ and the water bubbling up from the reservoir below for our original design. We tried solving this problem by increasing the dimensions of the hull so that we weren’t trying to follow the edge of the hull as closely. This allowed us to cut the hulls out without putting holes through the bottom and cutting off the sides, but the hulls were still shifting between cuts, so every few cuts some realignment was necessary. A heavier holder with a better method of holding the sheets probably would have helped the hulls come out better, but unfortunately we didn’t have the time to attempt this idea so we tried to work with what we had already built. After all the hulls had been cut out, the edge of each hull was very rough with small plastic bits hanging off. We decided to use some 100-grit sanding screen to manually sand the sides of each hull to smooth them out and make them look nicer. 3.6 Packaging The packaging for the toy boat is more likely going to consist of several different methods of packaging. All method are going to use a “9 x 6 ½ x 2 ¾” box. 650 boxes were purchased from ULINE Company for $0.35 each. The boxes differ in that they look and shape of the logo, the cuts made on the boat for design purposes and other added incentives to make the presentation of the product. Figure G Due to cost of material and budget, we have found ways that we will be able to get 200 stickers of the highest quality, and making the rest from printing on sticky paper. We also allotted the use of a laser cutter to cut the box in a shape appeasing to the team and customers. The rest of the packaging has all the customers, school and team names and logos on it and also other things that make packages unique from each other. All this ends up costing $500. An prototype can be seen on the below. Figure H 4.0 Production Plan: 4.1 Flow Analysis The entire assembly process will take place at the Scara Robot. Located at this station are the feeders for the cab, the steel deck, the nozzle, the hinge, the thermal press, and sonic welder. The Scara robot will place these items in the order mentioned onto an assembly tray. The tray will hold all the items in place to be thermal pressed. All 10 stakes will be pressed at the same time. The pallet will be ejected from the thermal press and the Scara robot will move the pallet onto slider for the sonic welder. The scar will place the hull onto the tray. Because there are two points to be welded the slider will go in once and hit the first stop, then it will slide back out. The first stop will be removed and it will slide back in and hit the second stop so the second point can be welded Tray The assembly tray will be machined from polyethylene and will hold all the pieces of the boat together during the thermal press stage and the sonic welding. Because the tray is only a ½ thick feet were placed in each corner to create enough clearance for the cabin. Two locator plates were machined to match the feet of the assembly tray. One plate will be mounted on the slider for the thermal press and the other plate will be used on the slider for the sonic welder. Scara End Effector The end effector had to be capable of picking up the small items such as the hinge, but also the bulky items such s the tray. It accomplishes this by having one branch with matching 10 mm suction cups and a 15 mm suction cup, and another branch with 20 mm suction cups. The branch with the 10 mm suction cups will be able to grab and lift the hinges. The branch with the larger suction cups will be able to lift the cab, deck, and nozzle. Utilizing both branches, each grabbing a side of the pallet, the end effector will be able to lift the pallet and move it from station to station. Thermal Press End Effector In order to press all 10 stakes four heating elements had to be utilized. Two of the heating elements will press the singles stakes on the front of the cab, and the other two stakes will press the 8 stakes of the hinges. In order to press 8 stakes with two heating elements each heating element will have a 1 in.^2 brass block. This will allow four stakes to be pressed by one heating element. Cooling must also be supplied to each heating element. A plastic manifold will supply cool air to the four heating elements. A drawing can be found in the appendix. Scara places cab onto tray Scare places deck on tray Scara places rear deck/nozzle onto tray Scara places hinges onto tray Thermal Press all ten stakes Scara places tray onto sonic welder slider Sonic weld tabs Cycle time will be 1:15 seconds (Figure I) 4.2 Robotics Code (Actual code in the appendix) The process of writing the robotics code went very smoothly. First pseudo-code was written to get a general idea of the order that everything needed to occur. We then used an example code from the AML Manual that gave us the structure of the program and we were able to use a function that was designed to lift a blade, but we are using it to lift all of our parts from their feeders. For some of the other processes such as thermal pressing and ultrasonic welding, we made a step by step list of instructions to perform these tasks, then filled in the necessary lines to perform each of these steps. Finally we wrote a main function that called each of these sub-functions in the proper order to follow the pseudo-code. We programmed some random points into the robot to be sure the code was written properly and performed the tasks correctly. After testing, we found a few small grammatical errors in the code that were quickly fixed and the program seemed to work correctly. We are now in the process of programming the real points so the robot will lift the parts from the feeders and carry them to their proper destinations. We have programmed a few of the points into the system and plan to finish them next time we have access to the robot. The only things that still need to be finished in the code are adding the proper input and output ports for the ultrasonic welder and thermal press to activate them and check their ready status, and controls for the pneumatic activators for feeders that have pneumatic parts. Both of these are very simple to add and our only delay is waiting until the system is setup and we find which ports everything will be connected to. 4.3 Resources: In our current plan, we should have all the resources necessary to complete the tasks required to create the 600 boats. The machines used in the AML will be the plastic injection-molding machine, the rapid prototype machine (depending on the results of cheaper alternatives), the hydraulic press, the SCARA and Staubli robots, and the waterjet. We will also need some additional resources from other locations such as the MDL where we will need to use the vacuum-forming machine. There are also many other resources to consider which we will be using. Some of the most important is the time and effort of all our group members, a $3000 operating budget which we will need in order to buy supplies such as the plastic for vacuum forming, and machining time which will allow us to have others do the creation of the molds which will save us time. 5.0 Budget and Schedule: 5.1 Budget: (To be revised) Highlited entries are estimates. Hull Price Per Unit $0.45 Deck Total Price Price Per Unit $271.80 $0.79 Molds $135. 00 $135. 00 N/A $95.00 N/A $0.00 $0.00 In-House Expenses Total Price Cabin Price Per Unit Materials Machining Notes Total No AWJ cut time known for separating hulls. $0.25 $150.00 $2.16 $1,200.00 $0.00 $556. 80 $1,29 5.00 May have to build with nonscavenged mold plates. Total Price $20.00 $0.00 $0.00 Nozzle Price Per Unit $0.00 $0.00 $0.00 Hinge Strip Total Price Price Per Unit $20.00 $0.10 $0.00 N/A $0.00 $0.00 Total Price $60.00 N/A $0.00 Price Per Unit N/A N/A $0.00 Total Price $50.00 N/A $0.00 Feeders $20.0 0 May have to build with nonscavenged mold plates. $20.0 0 $60.0 0 May have to build with nonscavenged materials. $50.0 0 Highlited entries are estimates. Materials Molds N/A N/A $16.67 Total Price Price Per Batch N/A N/A $100.00 N/A N/A $2.00 Total Price N/A N/A $1,200.00 External Expenses Price Per Tumbling Batch Anodizing Balloons Price Per Unit Total Price Packaging Price Per Unit Total Price Pins / Sleeves Price Per Unit Total Price Machining $0.38 N/A N/A $230.00 N/A N/A $0.39 N/A N/A $234.20 N/A N/A N/A N/A N/A N/A Variant $79.18 Total Expenses Total Upper Bound Estimate by Science Center Employee. $100. 00 Upper Bound Estimate by Science Center Employee. $600. 00 Balloons printed with company logo, not necessary. $230. 00 Cost is for box method, subject to change. $234. 00 11 Assorted ejector pins, 2 Sleeves. $79.1 8 $3,24 4.98 5.2 Schedule Week 1: - Completed Become acclimated with team members and staff Assign leadership positions Establish group contract Exchange schedules of members Week 3: - Completed Presentations of researched areas/ alternate methods o Modify AML I’s design plan Assign permanent areas of responsibility based on interest & schedules Identify supplies necessary Week 2: - Completed Review AML I’s design plan o Identify gaps o Assign areas for further research Week 4: - Completed Present final mold designs o Obtain approval Present financial projections o Obtain approval Begin to Identify and create customized machine settings (i.e., specialized robot Contact suppliers & mold makers Obtain price estimates Week 5: Fabricate hull mold Submit mold designs to makers Obtain necessary supplies Tweak hinge stamping settings Week 7: Hinge manufacturing Fabricate hull mold Week 9: Cabin-Deck manufacturing Tweak nozzle plastic injection mold settings Week 11: Rear Deck manufacturing Tweak rear deck plastic injection mold settings Hull manufacturing Cabin-Deck manufacturing Week 13: Rear Deck manufacturing Nozzle manufacturing Robotics programming Week 15: Assembly manipulators) Week 6: Tweak hull vacuum forming settings Tweak hinge stamping settings Week 8: Fabricate hull mold Hinge manufacturing Week 10: Cabin-Deck manufacturing Tweak nozzle plastic injection mold settings Week 12: Rear deck manufacturing Hull manufacturing Cabin-Deck manufacturing Robotics programming Week 14: Nozzle manufacturing Fine-tune robotics programming Week 16: Assembly 6.0 Conclusion: The molds have been designed, CAD has been written and all the problems have been ironed out. All parts of the boat have been manufactured and all assembly parts have been made. The teaching of the assembly points is what is left to be finished, and the assembly itself. 640 decks were scribed and cut. One logo per each sponsor was scribed in the AWJ. The final cost for the use of this equipment was $214.12. The logos were scribed with just water and no use of the abrasive. The perimeters were cut with the normal setting for 1/16” thick aluminum. The procedure had 2 different parts. First 5 sheets were scribed, and then the 5 sheets were stack on top of each other for the cutting process. This process was extremely effective and fast. After the decks were cut with the AWJ, a perimeter cutter was used to take the roughness from the perimeter of the decks. As a final recommendation for teams to follow, we believe that the AWJ software should be updated to a newer and more user friendly package. Our original plan incorporated the transport system and the Staubli. After the cabin, deck, nozzle, and hinges were heat staked the Scare was going to place the assembly tray onto the transport system which brought it to the Staubli station. The Staubli was going to take care of the sonic welding operation by placing the hull on top of the already assembled pieces. However, after further investigation it was easier to have the Scara robot perform all the duties. It cut down on cycle time and simplified the assembly process. One problem we encountered was being able to lift the assembly tray with the Scara end effector. Given that the vacuum had a suction pressure of 80 kPa the formula F=PA was utilized to size the suction cups. In conclusion, on one branch there are two 10 mm suction cups (used to lift the hinges also) and one 15 suction cup, on the other branch there is one 20 mm suction cup. Using all at the same time provided enough force to lift and move the assembly tray. The feeders are being built almost entirely of aluminum. They are being bolted together instead of welding to allow for ease of modification. At this point there has been no cost associated with building the feeders. It appears that the AML lab has all the scrap material we need to complete all the feeders. So the contingence plan for the hinge feeder is to simply stack them on top of each other and have the robot programmed to increment its height position as each hinge is removed. At this point we are in the gray in finishing everything before schedule. We have caught up and can possibly have everything done by the day of our sponsors scheduled presentation. APPENDIX: Robotics Code ##BOAT ASSEMBLY ## ## DEFINE ALL NECESSARY POINTS SAFE: NEW PT( -228.65, 400.32, 0.00, 0.00); GCABIN: NEW PT( 524.25, -152.44, 0.00, -1.37); PCABIN: NEW PT ( 75.93, 794.75, -143.12, -1.39); GNOZZLE: NEW PT( 466.36, -2.66, -187.50, 160.50); PNOZZLE: NEW PT( 75.93, 794.75, -143.12, -1.39); GDECK: NEW PT( 669.01, -125.42, -190.55, 160.50); PDECK: NEW PT( 83.50, 793.04, -143.12, -1.39); GHINGE: NEW PT( 406.43, 673.70, -143.12, -1.39); PHINGE1: NEW PT( 160.80, 774.76, -143.12, -1.39); PHINGE2: NEW PT( 160.80, 774.76, -143.12, -1.39); GHULL: NEW PT( -450.99, 478.98, -143.12, -1.39); PHULL: NEW PT( 62.30, 797.49, -143.12, -1.39); GTRAY1: NEW PT( 97.61, 793.68, -143.12, -1.39); GTRAY2: NEW PT( -401.06, 692.11, -143.12, -1.39); GTRAY3: NEW PT( -401.06, 692.11, -143.12, -1.39); ## LASTPT(); ## ## DEFINE PORT LOCATIONS ## MAIN_AIR: NEW 48; ## DEFINE SUCTION PORTS SUCTION1:NEW 27; SUCTION2:NEW 31; SUCTION3:NEW 33; ## THERMAL_AIR:NEW 28; SONIC_AIR:NEW 29; OPENED:NEW 1; CLOSED:NEW 0; SONIC_READY:NEW 56; SONIC_ACTIVATE:NEW 83; THERMAL_READY:NEW 56; THERMAL_ACTIVATE:NEW 83; END_PROG:NEW 0; ## SUBROUTINE TO END THE PROGRAM STOP_PROG:SUBR(); END_PROG=1; PLED(5,1); END; GETCABIN:SUBR(); ## SUBROUTINE TO PICK UP CABIN PDISPLAY(33,'Getting Cabin'); ## SET SPEED SPEED=.2; ## MOVE ABOVE CABIN FEEDER MOVE(XYR,GCABIN(XYR)); ## SLOW SPEED SPEED=.1; ## MOVE DOWN TO CABIN HEIGHT ZMOVE(GCABIN(Z)); ## TURN ON SUCTION CUPS WRITEO(SUCTION2, ON); ## WAIT FOR SUCTION TO ACTIVATE DELAY(1); ## REDEFINE SPEED SPEED=.1; ## LIFT CABIN TO SAFE HEIGHT ZMOVE(SAFE(Z)); ## END SUBROUTINE END; PUTCABIN:SUBR(); ## SUBROUTINE TO PLACE CABIN NEAR THERMAL PRESS PDISPLAY(33,'Placing Cabin'); SPEED=.2; MOVE(XYR,PCABIN(XYR)); SPEED=.1; ZMOVE(PCABIN(Z)); WRITEO(SUCTION2, OFF); DELAY(1); SPEED=.2; ZMOVE(SAFE(Z)); END; GETNOZZLE:SUBR(); ## SUBROUTINE TO PICK UP A NOZZLE PDISPLAY(33,'Getting Nozzle'); SPEED=.2; MOVE(XYR,GNOZZLE(XYR)); SPEED=.1; ZMOVE(GNOZZLE(Z)); WRITEO(SUCTION1, ON); DELAY(1); SPEED=.1; ZMOVE(SAFE(Z)); END; PUTNOZZLE:SUBR(); ## SUBROUTINE TO PLACE NOZZLE NEAR THERMAL PRESS PDISPLAY(33,'Placing Nozzle'); SPEED=.2; MOVE(XYR,PNOZZLE(XYR)); SPEED=.1; ZMOVE(PNOZZLE(Z)); WRITEO(SUCTION1, OFF); DELAY(1); SPEED=.2; ZMOVE(SAFE(Z)); END; GETDECK:SUBR(); ## SUBROUTINE TO PICK UP DECK FROM FEEDER PDISPLAY(33,'Getting Deck'); SPEED=.2; MOVE(XYR,GDECK(XYR)); SPEED=.1; ZMOVE(GDECK(Z)); WRITEO(SUCTION1, ON); WRITEO(SUCTION2, ON); DELAY(1); SPEED=.1; ZMOVE(SAFE(Z)); END; PUTDECK:SUBR(); ## SUBROUTINE TO PLACE DECK NEAR THERMAL PRESS PDISPLAY(33,'Placing Deck'); SPEED=.2; MOVE(XYR,PDECK(XYR)); SPEED=.1; ZMOVE(PDECK(Z)); WRITEO(SUCTION1, OFF); WRITEO(SUCTION2, OFF); DELAY(1); SPEED=.2; ZMOVE(SAFE(Z)); END; GETHINGE:SUBR(); ## SUBROUTINE TO PICK UP A HINGE FROM THE FEEDER PDISPLAY(33,'Getting Hinge'); SPEED=.2; MOVE(XYR,GHINGE(XYR)); SPEED=.1; ZMOVE(GHINGE(Z)); WRITEO(SUCTION3, ON); DELAY(1); SPEED=.1; ZMOVE(SAFE(Z)); END; PUTHINGE1:SUBR(); ## SUBROUTINE TO PLACE A HINGE ON HINGE POINT 1 PDISPLAY(33,'Placing Hinge'); SPEED=.1; MOVE(XYR,PHINGE1(XYR)); SPEED=.1; ZMOVE(PHINGE1(Z)); WRITEO(SUCTION3, OFF); DELAY(1); SPEED=.2; ZMOVE(SAFE(Z)); END; PUTHINGE2:SUBR(); ## SUBROUTINE TO PLACE A HINGE ON HINGE POINT 2 PDISPLAY(33,'Placing Hinge2'); SPEED=.1; MOVE(XYR,PHINGE2(XYR)); SPEED=.1; ZMOVE(PHINGE2(Z)); WRITEO(SUCTION3, OFF); DELAY(1); SPEED=.2; ZMOVE(SAFE(Z)); END; GETHULL:SUBR(); ## SUBROUTINE TO GET A HULL FROM THE FEEDER PDISPLAY(33,'Getting Hull'); SPEED=.2; MOVE(XYR,GHULL(XYR)); SPEED=.1; ZMOVE(GHULL(Z)); WRITEO(SUCTION1, ON); WRITEO(SUCTION2, ON); DELAY(1); SPEED=.1; ZMOVE(SAFE(Z)); END; PUTHULL:SUBR(); ## SUBROUTINE TO PLACE A HULL NEAR THE ULTRASONIC WELDER PDISPLAY(33,'Placing Hull'); SPEED=.1; MOVE(XYR,PHULL(XYR)); SPEED=.1; ZMOVE(PHULL(Z)); WRITEO(SUCTION1, OFF); WRITEO(SUCTION2, OFF); DELAY(1); SPEED=.2; ZMOVE(SAFE(Z)); END; MOVE_TRAY1:SUBR(); ## SUBROUTINE TO MOVE THE TRAY FROM THE THERMAL PRESS TO THE ULTRASON PDISPLAY(33,'Getting Tray'); SPEED=.2; MOVE(XYR,GTRAY1(XYR)); SPEED=.1; ZMOVE(GTRAY1(Z)); WRITEO(SUCTION1, ON); WRITEO(SUCTION2, ON); WRITEO(SUCTION3, ON); DELAY(1); SPEED=.1; ZMOVE(SAFE(Z)); MOVE(XYR,GTRAY2(XYR)); ZMOVE(GTRAY2(Z)); WRITEO(SUCTION1, OFF); WRITEO(SUCTION2, OFF); WRITEO(SUCTION3, OFF); DELAY(1); SPEED=.1; ZMOVE(SAFE(Z)); END; MOVE_TRAY2:SUBR(); ## SUBROUTINE TO MOVE THE TRAY FROM THE ULTRASONIC WELDER TO THE ULTR PDISPLAY(33,'Getting Tray'); SPEED=.2; MOVE(XYR,GTRAY2(XYR)); SPEED=.1; ZMOVE(GTRAY2(Z)); WRITEO(SUCTION1, ON); WRITEO(SUCTION2, ON); WRITEO(SUCTION3, ON); DELAY(1); SPEED=.1; ZMOVE(SAFE(Z)); MOVE(XYR,GTRAY3(XYR)); ZMOVE(GTRAY3(Z)); WRITEO(SUCTION1, OFF); WRITEO(SUCTION2, OFF); WRITEO(SUCTION3, OFF); DELAY(1); SPEED=.1; ZMOVE(SAFE(Z)); END; MOVE_TRAY3:SUBR(); ## SUBROUTINE TO MOVE THE TRAY FROM THE ULTRASONIC WELDER BACK TO THE PDISPLAY(33,'Getting Tray'); SPEED=.2; MOVE(XYR,GTRAY3(XYR)); SPEED=.1; ZMOVE(GTRAY3(Z)); WRITEO(SUCTION1, ON); WRITEO(SUCTION2, ON); WRITEO(SUCTION3, ON); DELAY(1); SPEED=.1; ZMOVE(SAFE(Z)); MOVE(XYR,GTRAY1(XYR)); ZMOVE(GTRAY1(Z)); WRITEO(SUCTION1, OFF); WRITEO(SUCTION2, OFF); WRITEO(SUCTION3, OFF); DELAY(1); SPEED=.1; ZMOVE(SAFE(Z)); END; STAKE:SUBR(); ## SUBROUTINE TO ACTIVATE THE HEAT STAKING MACHINE PDISPLAY(33,'PREPARING HEAT STAKE'); ##WAITI(THERMAL_READY,1); ## CHECK THERMAL PRESS IS READY WRITEO(THERMAL_AIR,OPENED); ## PUSH TRAY INTO THERMAL PRESS DELAY(1); ## WAIT FOR TRAY TO GET IN WRITEO(THERMAL_ACTIVATE,1); ## ACTIVATE THERMAL PRESS DELAY(1); ## WAIT FOR THERMAL PRESS TO START WRITEO(THERMAL_ACTIVATE,0); ## TURN THERMAL PRESS BACK OFF ##WAITI(THERMAL_READY,1); ## WAIT UNTIL THERMAL PRESS IS READY AGAIN WRITEO(THERMAL_AIR,CLOSED); ## REMOVE TRAY DELAY(1); ## WAIT END; UWELD:SUBR(); ## SUBROUTINE TO ACTIVATE THE ULTRASONIC WELDER PDISPLAY(33,'PREPARING Welding'); ##WAITI(SONIC_READY,1); ## CHECK ULTRASONIC WELDER IS READY WRITEO(SONIC_AIR,OPENED); ## PUSH TRAY INTO ULTRASONIC WELDER DELAY(1); ## WAIT FOR TRAY TO GET IN WRITEO(SONIC_ACTIVATE,1); ## ACTIVATE ULTRASONIC WELDER DELAY(1); ## WAIT FOR ULTRASONIC WELDER TO START WRITEO(SONIC_ACTIVATE,0); ## TURN ULTRASONIC WELDER BACK OFF ##WAITI(SONIC_READY,1); ## WAIT UNTIL ULTRASONIC WELDER IS READY AGAIN WRITEO(SONIC_AIR,CLOSED); ## REMOVE TRAY DELAY(1); ## WAIT END; BOATCODE:SUBR(); ## MAIN PROGRAM MONITOR(1005,1,STOP_PROG); ## MONITOR EMERGENCY STOP BUTTON END_PROG=0; ## VARIABLE TO STOP PROGRAM, SET WRITEO(MAIN_AIR, ON); ## ACTIVATE MAIN AIR WRITEO(SUCTION1,OFF); WRITEO(SUCTION2,OFF); WRITEO(SUCTION3,OFF); ## TURN OFF SUCTION CUPS WRITEO(THERMAL_AIR,CLOSED); WRITEO(SONIC_AIR,CLOSED); ## BE SURE SONIC WELDER AND THER REPEAT ## LOOP THESE FUNCTIONS { SPEED=.2; ## SET INITIAL MOVING SPEED PMOVE(SAFE); ## MOVE TO SAFE POINT - PROBABLY GETCABIN(); ## RUN GETCABIN() SUBROUTING TO PUTCABIN(); ## PLACE CABIN ON TRAY GETNOZZLE(); ## PICK UP NOZZLE PUTNOZZLE(); ## PLACE NOZZLE ON TRAY GETDECK(); ## PICK UP DECK PUTDECK(); ## PLACE DECK ON TRAY GETHINGE(); ## GET HINGE PUTHINGE1(); ## PLACE FIRST HINGE GETHINGE(); ## GET SECOND HINGE PUTHINGE2(); ## PLACE SECOND HINGE STAKE(); ## HEAT STAKE EVERYTHING MOVE_TRAY1(); ## MOVE TRAY FROM THERMAL PRESS GETHULL(); ## GET HULL PUTHULL(); ## PLACE HULL UWELD(); ## ULTRASONICALLY WELD MOVE_TRAY2(); ## ROTATE TRAY AT ULTRASONIC WEL UWELD(); ## MOVE_TRAY3(); WELD SECOND SET ## MOVE TRAY BACK TO THERMAL PRE } UNTIL END_PROG EQ 1; ENDMONITOR (1005); PLED(5,0); END;