Báo cáo NGHIÊN CỨU THIẾT KẾ, CHẾ TẠO CÁC ROBOT THÔNG MINH PHỤC VỤ CHO CÁC ỨNG DỤNG QUAN TRỌNGHÓM SẢN PHẨM ROBOT SCA

Khi thiết lập hệ ph-ơng trình động học cơ bản của robot phải lặp lại nhiều phép tính đại số ma trậnphức tạp. Ta cần có hệ ph-ơng trình (1.11) ở dạng giải tích để có thể trực giác phân tích và tìm lời giải cuả hệ ph-ơng trình này nhằm xác định các thông số điều khiển vị trí của robot. Mặt khác, nếu thực hiện các phép tính ma trận bằng tay thì rất mất thời gian và rất dễ nhầm lẫn. Vì vậy rất cần thiết tiến hành tính toán, thiết lập các biểu thức giải tích nói trên bằng máy tính.

pdf247 trang | Chia sẻ: lylyngoc | Lượt xem: 2302 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Báo cáo NGHIÊN CỨU THIẾT KẾ, CHẾ TẠO CÁC ROBOT THÔNG MINH PHỤC VỤ CHO CÁC ỨNG DỤNG QUAN TRỌNGHÓM SẢN PHẨM ROBOT SCA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i¶ m tè c BR C L 79 H×nh 2.2.30. Hép gi¶m tèc BRCL cho m«®un quay robot T û lÖ : § ¹i h ä c B ¸c h K h o a h µ n é i D uy Öt K iÓ m tr a H ä vµ tª n T hi Õt k Õ T r. nh iÖ m K ý N gµ y b¶ n v Ï l¾ p h é p g i¶ m t è c i= 29 T hÐ p 45 02 æ bi 1 2x 24 x6 1718 V ßn g c¸ ch 01 P hÝ p 0201 T hÐ p 45 T hÐ p 45 B ¸n h r¨ ng 2 9 192 0 V µn h r¨ ng 06 C hè t ® Þn h vÞ 21 01 T hÐ p 45 N ¾p d uí i 22 X ev an it1 1 T hÐ p 45 T hÐ p 45 T hÐ p 45 T hÐ p 45 010101 0101 01 01 æ bi 1 7x 35 x1 0 V ßn g ch ¾n d Çu T he n 2 T he n 1 æ bi 2 0x 42 x1 2 P hÇ n l¾ p se n s¬ T rô c ®Ç u ra 91012 1115 14 13 T hÐ p 45 01 C hè t 16 5 C hè t ® Çu r a 06 T hÐ p 45 T hÐ p 45 01 T h© n ®Ç u ra 78 V ò m ì 01 3 C on l¨ n 30 T hÐ p 45 T hÐ p 45 06 C on l¨ n ch èt ® Çu r a 4 2 01 T hÐ p 45 M iÕ ng ® Öm T hÐ p 45 01 N ¾p tr ªn 1 S T T V Ët li Öu S è l\' ee ng T ªn c hi ti Õt 23 V ßn g lÖ ch t© m T hÐ p 45 02 80 3) Hép gi¶m tèc BRCL dïng cho c«ng t¸c häc tËp ý thøc r»ng lo¹i h×nh truyÒn ®éng BRCL lµ rÊt cã triÓn väng øng dông réng r·i trong nhiÒu lÜnh vùc c«ng nghiÖp vµ ®ang trong giai ®o¹n nghiªn cøu s¸ng t¹o phï hîp víi nh÷ng ph−¬ng ph¸p c«ng nghÖ míi, §Ò tai ®· lµm thªm mét viÖc lµ chÕ t¹o cho tr−êng häc nh÷ng hép gi¶m tèc BRCL cã thªn hép b»ng vËt liÖu trong suèt. Ng−êi häc cã thÓ hiÓu nã vËn hµnh ra sao nh×n thÊy râ trôc ®éng c¬ nèi liÒn víi trôc ®Çu vµo quay nhanh ®Õn thÕ mµ trôc ®Çu ra ®−îc quay rÊt chËm H×nh 2.2.31. Hép gi¶m tèc BRCL víi th©n hép chÕ t¹o b»ng vËt liÖu trong suèt ®Ó phôc vô ®µo t¹o 81 H×nh 2.2.32. S¶n xuÊt hép gi¶m tèc BRCL phôc vô ®µo t¹o 82 IV. KÕt luËn TriÓn khai thùc hiÖn nhiÖm vô 2 lµ nghiªn cøu c¶i tiÕn n©ng cÊp robot SCATM ®Ó ®¸p øng yªu cÇu th«ng minh, §Ò tµi ®· b¾t gÆp néi dung t¹o ra nh÷ng khíp quay robot, trong ®ã ph¶i cã truyÒn ®éng b¸nh r¨ng kh«ng cã khe hë c¹nh r¨ng ®Ó khi ®iÒu khiÓn kh«ng bÞ trÔ. Do vËy ®· xuÊt hiÖn nhu cÇu nghiªn cøu vÒ m«®un quay dïng BRCL. Víi néi dung nghiªn cøu nµy §Ò tµi ®· nhËn ®−îc c¸c kÕt qu¶ khoa häc chñ yÕu sau: 1) §Ò xuÊt ph−¬ng ph¸p x©y dùng d¹ng r¨ng b¸nh r¨ng l−în sãng theo yªu cÇu ®Æt tr−íc ®èi víi bé truyÒn BRCL (b¸nh r¨ng con l¨n) vµ thiÕt lËp ch−¬ng tr×nh m¸y tÝnh thiÕt kÕ hép gi¶m tèc BRCL. Ch−¬ng tr×nh nµy ®· ®−îc cÊp giÊy chøng nhËn b¶n quyÒn. 2) §Ò xuÊt ph−¬ng ph¸p chÕ t¹o b¸nh r¨ng con l¨n trªn m¸y gia c«ng CNC vµ kh«ng dïng dao (dao phay l¨n hoÆc dao xäc) ®Ó tr¸nh sai lÖch so víi d¹ng r¨ng lý thuyÕt. Trong tr−êng hîp s¶n xuÊt lo¹t lín ®Ò xuÊt dïng c¸c ph−¬ng ph¸p gia c«ng ¸p lùc tr−íc nguyªn c«ng mµi ®Ó chÕ t¹o BRCL, cã ®é chÝnh x¸c cao vÒ t¹o h×nh vµ gi¸ thµnh thÊp. 3) HiÖn thùc viÖc m«®un hãa thiÕt kÕ m«®un quay vµ kÕt cÊu robot ®Ó ®¸p øng nhu cÇu ®a d¹ng lo¹i h×nh robot trong lóc vÉn cã thÓ chuyªn m«n hãa s¶n xuÊt chÕ t¹o tõng lo¹i m«®un ®¶m b¶o ®−îc gi¸ thµnh gia c«ng vµ chÊt l−îng s¶n phÈm. 4) ChÕ t¹o thö nghiÖm thµnh c«ng nhiÒu s¶n phÈm BRCL. Trong ®ã cã m«®un quay robot dïng BRCL, c¸c hép gi¶m tèc BRCL dïng cho c«ng nghiÖp, hép gi¶m tèc BRCL phôc vô c«ng t¸c ®µo t¹o. 83 PHẦN III BÁO CÁO CÁC KẾT QUẢ NGHIÊN CỨU THEO NHIỆM VỤ 2 ĐỀ TÀI KC.03.08 MÔĐUN DÂY CHUYỀN TỰ ĐỘNG DÙNG ROBOT SCATM ĐÓ PHÂN LOẠI SẢN PHẨM THEO MÀU SẮC I. GIỚI THIỆU CHUNG Trong phần báo cáo này trình bày kết quả nghiên cứu xây dựng môđun dây chuyền tự động dùng robot SCATM để phân loại sản phẩm theo màu sắc. Đây là một sản phẩm minh họa về cách thức “thông minh hóa” hoạt động của robot. Tất nhiên khả năng “thông minh” của robot của robot phải thể hiện trên một công việc cụ thể. Trong môđun dây chuyền tự động này, máy tính sẽ trực tiếp điều khiển các chuyển dịch của robot và các sản phẩm trên dây chuyền theo các tín hiệu về màu sắc do các sensor nhận biết. Định hướng ứng dụng của nội dung nghiên cứu này là công nghiệp hàng tiêu dùng. Trong các dây chuyền sản xuất này bộ phận phân loại sản phẩm luôn luôn có mặt như một môđun của hệ thống thiết bị sản xuất. Ở đây dùng Robot SCATM thao tác phối hợp với các băng truyền điều chỉnh được tốc độ, có trang bị các sensor nhận biết được màu sắc và toàn bộ hệ thống được điều khiển bằng máy tính. Nội dung nghiên cứu này bao gồm một khối lượng lớn các công việc từ thiết kế, chế tạo, lắp ráp vận hành toàn bộ hệ thống chấp hành cơ, điện, 84 khí nén, các thiết bị phần cứng của hệ thống điều khiển và chương trình phần mềm điều khiển toàn bộ hệ thống nói trên. Các thiết bị chủ yếu của hệ thống gồm: Robot SCATM, bộ phận khí nén, 2 băng truyền, bộ phận truyền động với tốc độ thay đổi được, bộ phận thu hồi sản phẩm và bộ phận điều khiển. Ngoài Robot SCATM đã trình bày riêng ở phần trên, dưới đây giới thiệu tóm tắt các bộ phận còn lại trong 2 mục: Hệ thống băng truyền và hệ thống điều khiển. II. HỆ THỐNG BĂNG TRUYỀN Hệ thống băng truyền được thiết kế đảm bảo cho các sản phẩm đặt trên đó di chuyển đều đặn với tốc độ đã định. Đảm bảo mặt băng bằng phẳng và đủ rộng để phân nhiều luồng sản phẩm theo từng màu sắc. So với vị trí đặt Robot SCATM bố trí 2 băng truyền: Băng thứ nhất đem sản phẩm tới Robot và băng thứ 2 đưa sản phẩm đi. Trong điều khiển chật hẹp của phòng thí nghiệm các băng tải đều rút nhỏ kích thước và bổ xung thêm bộ phận thu hồi sản phẩm từ cuối băng chuyền thứ 2 về đầu băng truyền thứ 1. Dưới đây là bộ hồ sơ kỹ thuật của hệ thống băng truyền gồm: - H×nh 2.3.1. Các bản vẽ lắp Môđun dây chuyền dùng robot SCATM - H×nh 2.3.2. Các ảnh chụp Môđun dây chuyền dùng Robot SCATM (nhìn từ nhiều phía). - H×nh 2.3.3. Các bản vẽ và ảnh chụp về hệ thống khí nén. - H×nh 2.3.4. Các ảnh chụp hệ thống truyền dẫn động và biến tần - H×nh 2.3.5. Các ảnh chụp và bản vẽ lắp bộ phận thu hồi sản phẩm 85 H×nh 2.3.1. B¶n vÏ l¾p M«®un d©y chuyÒn s¶n xuÊt dïng Robot SCATM 1 2 3 A A A A 1 T æn g sè K hè i l −î ng V Ët li Öu S è l− în g § ¬n v Þ 1 1 G hi c hó R ob ot S C A 1 M « ®u n b¨ ng t¶ i V Þ t rÝ T ªn g äi T ñ ®i Ön 3 2 N gu y? n Th i? n Ph úc N gu y? n V an M in h D uy ?t Th i? t k ? Tr . n hi ?m K i? m tr a H ? và tê n K ý N gà y S? lu ?n g: Đ ? tà i K C - 0 3 - 0 8 Tr un g tâ m N CK T T? d ?n g hó a Tr u? ng Đ ?i h ?c B ác h K ho a H à N ?i B ?n v ? s? : T? l? : H oµ ng A nh § ¹i D ¢ Y T R U Y Òn p h © n l o ¹ i s¶ n p h È m t h eo m ¸ u s ¾ c B ¶ n v Ï l¾ p 86 H×nh 2.3.2. B¶n vÏ l¾p M«®un d©y chuyÒn s¶n xuÊt dïng Robot SCATM(nh×n tõ nhiÒu phÝa) 87 H×nh 2.3.3.S¬ ®å vµ ¶nh chôp vÒ hÖ thèng khÝ nÐn ®iÒu khiÓn b¨ng truyÒn dïng Robot SCATM 88 H×nh 2.3.4. Van khÝ nÐn ®iÖn tõ ®iÒu khiÓn Robot SCATM vµ b¨ng truyÒn H×nh 2.3.5. Bé phËn thu håi s¶n phÈm 89 M« t¶ th«ng sè kü thuËt cña hÖ thèng khÝ nÐn cho Robot SCATM vµ b¨ng truyÒn 1. Xy lanh bµn kÑp tay m¸y SCATM * Ký hiÖu: HGW-25-A * §Æc tÝnh kü thuËt: - DÉn ®éng b»ng xy lanh khÝ nÐn t¸c ®éng kÐp - §Þnh t©m tù ®éng - T¸c ®éng cña ngãn kÑp: KÑp bªn ngoµi hoÆc kÑp bªn trong. - Cã kh¶ n¨ng tæ hîp víi c¸c dÉn ®éng kh¸c - Cã thÓ g¾n c¶m biÕn vÞ trÝ tõ tÝnh hoÆc c¶m biÕn Hall. - Linh ho¹t víi kÑp tõ bªn ngoµi - Lùc kÑp lµ h»ng sè kh«ng phô thuéc vµo gãc kÑp. - Gãc më tèi ®a cña m¸ kÑp lµ 400 - §é chÝnh x¸c lËp l¹i: ± 0,02 mm - §é chÝnh x¸c kho¶ng c¸ch: < 0,2 mm - Sè ngãn kÑp: 2 - ¸p suÊt lµm viÖc: 2-8 bar - TÇn sè lµm viÖc lín nhÊt cña bµn kÑp: 4 Hz - Thêi gian më nhá nhÊt ë ¸p suÊt 6 bar: 10 ms - Thêi gian më ®ãng nhÊt ë ¸p suÊt 6 bar: 10 ms - NhiÖt ®é m«i tr−êng lµm viÖc: 5 - 60 0C - M« ment tay kÑp më ë ¸p suÊt 2 bar = 60 Ncm - M« ment tay kÑp më ë ¸p suÊt 4 bar = 120 Ncm - M« ment tay kÑp më ë ¸p suÊt 6 bar = 180 Ncm - M« ment tay kÑp ®ãng ë ¸p suÊt 2 bar = 53,5 Ncm - M« ment tay kÑp ®ãng ë ¸p suÊt 4 bar = 106,7 Ncm - M« ment tay kÑp ®ãng ë ¸p suÊt 2 bar = 160 Ncm - Lùc lín nhÊt ë m¸ kÑp Fz tÜnh = 54 N - M« ment lín nhÊt ë m¸ kÑp Mx tÜnh = 1,7 Nm - M« ment lín nhÊt ë m¸ kÑp My tÜnh = 0,6 Nm - M« ment lín nhÊt ë m¸ kÑp Mz tÜnh = 1,1 Nm - Träng l−îng: 250 g - §Çu nèi khÝ: M5 - VËt liÖu: Hîp kim nh«m 90 - M¹ anod cøng - M¸ kÑp ®−îc m¹ Niken KÝch th−íc: 2. Xy lanh quay: * Ký hiÖu: DSR-12-180 * Th«ng sè kü thuËt: - Nguyªn lý: xy lanh quay kiÓu c¸nh g¹t, gãc quay cã thÓ ®iÒu chØnh ®−îc. HÖ thèng dõng ®−îc t¸ch riªng khái c¸nh g¹t v× thÕ lùc qu¸n tÝnh ®−îc hÊp thô b»ng gi¶m chÊn vµ cam giíi h¹n hµnh tr×nh th«ng qua tÊm nhùa linh ho¹t. - Lùc ®Èy ®−îc truyÒn trùc tiÕp ®Õn trôc quay qua c¸c c¸nh g¹t b»ng chuyÓn ®éng l¾c qua l¹i. 91 - Lùc ®Èy max: 0,5 Nm - C¶m biÕn giíi h¹n hµnh tr×nh: c«ng t¾c c¬ ®iÖn mini hoÆc c¶m biÕn tõ tÝnh - Gãc l¾c cã thÓ hiÖu chØnh tõ 00 ®Õn 1800 . - Cã thÓ g¸ l¾p ë bÊt cø vÞ trÝ nµo. - ¸p suÊt lµm viÖc: 2 - 8 bar - TÇn sè l¾c lín nhÊt ë 6 bar : 3 Hz - NhiÖt ®é m«i tr−êng lµm viÖc: -100C ®Õn 600C - M« ment ë 6 bar: 1 Nm - §Çu nèi khÝ nÐn: M5 - VËt liÖu lµm trôc: ThÐp - M¹ Niken - Vßng lµm kÝn: NBR KÝch th−íc: 3. Xy lanh khÝ: * Ký hiÖu: DSN-25-100-PPV-A * Th«ng sè kü thuËt: - Hµnh tr×nh: 100 mm - §−êng kÝnh piston: 25mm - Ren cÇn piston: M10x1.25 - Gi¶m chÊn cuèi hµnh tr×nh: Vßng gi¶m chÊn ®µn håi ë c¶ hai phÝa 92 - ¸p suÊt lµm viÖc: 1 - 10 bar - ChÕ ®é lµm viÖc: t¸c dông kÐp - NhiÖt ®é m«i tr−êng lµm viÖc: -20 - 80 °C - Lùc ®Èy lý thuyÕt ë 6 bar, hµnh tr×nh trë vÒ: 247.4 N - Lùc ®Èy lý thuyÕt ë 6 bar, hµnh tr×nh tiÕn ra: 294.5 N - Khèi l−îng chuyÓn ®éng víi hµnh tr×nh 0 mm: 71 g - Khèi l−îng ccéng thªm cho mçi hµnh tr×nh 10 mm: 11g - Träng l−îng c¬ b¶n cho hµnh tr×nh 0 mm: 238 g - §Çu nèi ren khÝ nÐn: G 1/8" - VËt liÖu vá xy lanh: Hîp kim nh«m ®−îc an«d ho¸ - VËt liÖu vßng lµm kÝn: TPE-U(PU) NBR - VËt liÖu xy lanh: ThÐp hîp kim cao cÊp, kh«ng rØ - VËt liÖu piston: ThÐp hîp kim cao cÊp, kh«ng rØ Van ®iÖn tõ lo¹i nhá CPE: * Ký hiÖu: CPE14-M1BH-5L-1/8 * Th«ng sè kü thuËt: - Van ®iÖn tõ 5 cöa 2 vÞ trÝ t¸c ®éng ®¬n, håi b»ng lß xo - KÝch th−íc dÇy: 10mm - L−u l−îng khÝ ®i qua: 350l/phót - §iÖn ¸p ®iÒu khiÓn: 24 VDC - Cã chèt ®iÒu khiÓn van b»ng tay - §Çu nèi ren khÝ nÐn: G 1/8" 93 Van ®iÖn tõ lo¹i lín Tiger 2000 : * Ký hiÖu: JMFH-5-1/8-B * Th«ng sè kü thuËt: - Van kiÓu con tr−ît ®iÒu khiÓn ®iÖn tõ c¶ hai phÝa - Van ®iÖn tõ cã chèt ®iÒu khiÓn b»ng tay - L−u l−îng khÝ ®i qua: 1000l/phót - §iÖn ¸p lµm viÖc: 24VDC - Cã thÓ l¾p trùc tiÕp trªn ®−êng dÉn hoÆc trªn ®Õ thµnh tr¹m van tõ 2 ®Õn 10 van 94 Van Kho¸ HE : * Ký hiÖu: HE-2-1/8-QS-6 * Th«ng sè kü thuËt: - KiÓu van 2 cöa 2 vÞ trÝ - KÝch th−íc ®Þnh møc: 5 mm - ¸p suÊt lµm viÖc: 0,75 - 10 bar - L−u l−îng khÝ: 300 - 800 l/phót - §iÒu khiÓn b»ng tay - L¾p ®Æt ë vÞ trÝ bÊt kú - Dßng khÝ kh«ng ®¶o chiÒu ®−îc - Träng l−îng: 18 g - Ren nèi khÝ: G1/8" - VËt liÖu: Nhùa PBT Bé läc, ®iÒu ¸p khÝ nÐn LFR : * Ký hiÖu: LFR-1/4-D-MINI * Th«ng sè kü thuËt: - KÝch th−íc: lo¹i Mini - KiÓu: D - Cã kho¸ nót ®iÒu chØnh - L−u l−îng khÝ: 1400 l/phót - §é läc: 40 µm - L¾p ®Æt: Th¼ng ®øng +/- 5° - X¶ n−íc ng−ng tô: nót quay b»ng tay - ThÓ tÝch n−íc ng−ng tù lín nhÊt: 22 cm3 95 - Vá b¶o vÖ: b»ng kim lo¹i - Cã l¾p ®ång hå ¸p suÊt - D¶i ¸p suÊt ®iÒu chØnh: 0.5 - 12 bar - ¸p suÊt ®Çu vµo: 0 - 16 bar - NhiÖt ®é lµm viÖc: -10 - 60oC - NhiÖt ®é m«i tr−êng: -10 - 60oC - Träng l−îng: 460g - §−êng nèi khÝ: G1/4" - VËt liÖu van: KÏm ®óc - VËt liÖu bÇu chøa n−íc ng−ng tô: nhùa trong PC 96 H×nh 2.3.6. B¶n thiÕt kÕ 3D b¨ng t¶i 1 H×nh 2.3.7. B¶n thiÕt kÕ 3D b¨ng t¶i 2 (cã g¾n sensor nhËn mµu) 97 H×nh 2.3.8. HÖ thèng 2 b¨ng t¶i 98 III. hÖ thèng ®iÒu khiÓn dcsx dïng robot scatm ®Ó ph©n lo¹i s¶n phÈm theo mµu s¾c 3.1. Nguyên tắc hoạt động Hoạt động được điều khiển là môđun dây chuyền sản xuất (DCSX) gồm robot SCATM làm việc với hệ thống băng tải được điều khiển bằng biến tần và được trang bị các sensor nhận biết màu sắc. Nhờ chương trình phần mềm điều khiển, các thông số chuyển động của robot SCATM và của băng tải được tính toán hoặc nạp vào thông qua bàn phím và màn hình của máy PC. Khi khởi động môđun DCSX làm việc, chương trình điều khiển sẽ đưa các bộ phận chấp hành về vị trí ban đầu. Trong quá trình làm việc từ các khớp quay các giá trị xung tương ứng với độ chuyển dịch tức thời đều được ghi nhớ và so sánh với các giá trị đặt trước hoặc tính toán ra, chương trình điều khiển sẽ xuất ra các lệnh để làm chuyển dịch các khớp động đến vị trí cần thiết. Độ chuyển dịch của 3 động cơ bước sẽ đảm bảo tọa độ X,Y và hướng mở của bàn kẹp. Tọa độ Z của nó được thực hiện bằng độ chuyển dịch của xilanh khí nén. Hệ thống robot được dạy học nhận biết màu qua các sensor. Khi có tín hiệu xuất hiện vật thể có màu đã chọn, bằng cách phối hợp các chuyển động của băng tải và của bản thân mình, robot SCATM được ra lệnh nhặt lấy vật thể có màu đó. Phân loại sản phẩm bằng màu sắc có thể trở thành phương thức phân loại được dùng rộng rãi nhất nếu lưu ý rằng có thể dễ dàng tạo ra tín hiệu màu sắc để nhìn thấy ở vị trí thuận lợi trên bất kỳ loại bao bì hoặc trực tiếp trên sản phẩm. Trên hình 2.3.6 là ảnh chụp môđun DCSX với robot SCATM đang làm việc cùng băng tải phân loại sản phẩm theo màu sắc. 99 Hình 2.3.9. Tßan c¶nh m«®un DCSX dïng robot SCATM ®Ó ph©n lo¹i s¶n phÈm theo mµu s¾c 3.2. Các bộ phân chủ yếu Hệ thống điều khiển môđun DCSX dùng robot SCATM làm việc với băng tải phân loại sản phẩm, đã được thiết kế, chế tạo, lắp ráp và vận hành thử nghiệm đối với cả phần cứng và phần mềm. Phần cứng dùng bộ giao tiếp với máy tính PC qua cổng máy in, thực hiện các chuyển động của robot SCATM và của hệ thống băng tải theo các số liệu đã được lập trình. Các bộ phận phần cứng chủ yếu gồm có: Mạch giao tiếp với máy tính; Mạch logic và điều khiển động cơ bước; Mạch điều khiển khí nén v.v. Lấy ví dụ, trên hình 2.3.10. là sơ đồ điều khiển mạch động cơ bước. 100 Hình 3.2 H×nh 2.3.10. S¬ ®å c¸c m¹ch ®iÒu khiÓn ®éng c¬ b−íc Chương trình phần mềm được viết trên ngôn ngữ Visual C++. Việc thực hiện quỹ đạo chuyển động của bàn kẹp của robot SCATM được tự động tính toán theo chương trình con để giải các bài toán thuận và ngược động học, như đã trình bày ở phần trên. Trong quá trình điều khiển, chương trình bày tính toán giá trị của các góc khớp quay và so sánh với các giá trị nhận được từ các sensor gắn với các khớp quay để xuất ra các lệnh làm quay các động cơ tương ứng. Các số liệu được nhập vào từ bàn phím của máy PC. Khi khởi động, chương trình điều khiển sẽ đưa tay máy về vị trí ban đầu được xác định nhờ các bộ cảm biến vị trí gắn trên các hành trình của mỗi bậc tự do chuyển động. Hình 2.3.11 là trích đoạn chương trình phần mềm nói trên. Toàn bộ chương trình được trình bày ở phần IV của Báo cáo nhiệm vụ 2. Robot SCATM còn được điều khiển theo phương pháp “dạy học”, tức là dẫn dắt tay máy thực hiện các bước chuyển dịch cần thiết và các số liệu này được ghi vào bộ nhớ để sau đó lặp lại trong quá trình làm việc. Các “teaching box” này cũng được thiết lập trên màn hình (hình 2.3.12.) 1 2 3 4 A B C D 4321 D C B A Title Number RevisionSize A4 Date: 21-Sep-2001 Sheet of File: C:\NGHIA\DKM.S01 Drawn By: 11 12 13 IC14D 74LS32 8 9 10 IC14C 74LS32 4 5 6 IC14B 74LS32 1 2 3 IC14A 74LS32 11 12 13 IC13D 74LS02 89 10 IC13C 74LS02 4 56 IC13B 74LS02 1 23 IC13A 74LS02 +5 R2 1213 IC2F 74LS04 1011 IC2E 74LS04 8 9 IC2D 74LS04 5 6 IC2C 74LS04 1 2 IC2A 74LS04 +5 A1 B2 C3 E14 E25 E36 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 IC5 74LS138 8 9 10 IC3C 74LS32 1 14 2 15 3 16 4 17 5 18 6 19 7 20 8 21 9 22 10 23 11 24 12 25 13 D2 DB25 A02 A13 A24 A35 A46 A57 A68 A79 B0 18 B1 17 B2 16 B3 15 B4 14 B5 13 B6 12 B7 11 E19 DIR1 IC7 74LS245 D03 Q0 2 D14 Q1 5 D27 Q2 6 D38 Q3 9 D413 Q4 12 D514 Q5 15 D617 Q6 16 D718 Q7 19 OE1 LE11 IC8 74LS373 D 0 3 Q 0 2 D 1 4 Q 1 5 D 2 7 Q 2 6 D 3 8 Q 3 9 D 4 13 Q 4 12 D 5 14 Q 5 15 D 6 17 Q 6 16 D 7 18 Q 7 19 O E 1 LE 11 IC9 74LS373 D 0 3 Q 0 2 D 1 4 Q 1 5 D 2 7 Q 2 6 D 3 8 Q 3 9 D 4 13 Q 4 12 D 5 14 Q 5 15 D 6 17 Q 6 16 D 7 18 Q 7 19 O E 1 C LK 11 IC10 74LS374D 0 3 Q 0 2 D 1 4 Q 1 5 D 2 7 Q 2 6 D 3 8 Q 3 9 D 4 13 Q 4 12 D 5 14 Q 5 15 D 6 17 Q 6 16 D 7 18 Q 7 19 O E 1 C LK 11 IC11 74LS374 D 0 3 Q 0 2 D 1 4 Q 1 5 D 2 7 Q 2 6 D 3 8 Q 3 9 D 4 13 Q 4 12 D 5 14 Q 5 15 D 6 17 Q 6 16 D 7 18 Q 7 19 O E 1 L E 11 IC12 74LS373 1A 2 1Y 4 1B 3 2A 5 2Y 7 2B 6 3A 11 3Y 9 3B 10 4A 14 4Y 12 4B 13 G 15 A /B 1 IC15 74LS257 +5 +5 A1 B2 C3 E14 E25 E36 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 IC1 74LS138 1 2 3 IC3A 74LS32 4 5 6 IC3B 74LS32 11 1213 IC3D 74LS32 1 2 3 IC4A 74LS00 4 5 6 IC4B 74LS00 8 9 10 IC4C 74LS00 11 12 13 IC4D 74LS00 D0 3Q02 D1 4Q15 D2 7Q26 D3 8Q39 D4 13Q412 D5 14Q515 D6 17Q616 D7 18Q719 OE 1 LE 11 IC6 74LS373 VAO12 RA15RA14RA13 8X10K /RD /RD /WR /WR D0 D1 D2 D3 D4 D5 D6 D7 ACK SLCT PE BUSY STROBE D0 D1 D2 D3 D4 D5 D6 D7 D4 D5 D6 D7 =1 DU LIEU AF =1 WR =1 RDSLCTIN INIT SLCTIN INIT AF STROBE =0 DIA CHI =0 NUA BYTE THAP =1 NUA BYTE CAO J1 RD WR 101 Hình 2.3.11 Trích đoạn chương trình điều khiển robot SCA khí nén. Hình 2.3.12. Thiết lập “teaching box” trên màn hình 102 PHẦN IV. BÁO CÁO VỀ NHIỆM VỤ 2 CỦA ĐỀ TÀI KC.03.08 CƠ SỞ TÍNH TOÁN VÀ XÂY DỰNG CÁC CHƯƠNG TRÌNH MÁY TÍNH VỀ ĐIỀU KHIỂN VÀ ỨNG DỤNG ROBOT SCA I. GIỚI THIỆU CHUNG Trong phần IV của Báo cáo trình bày các cơ sở tính toán và xây dựng các chương trình máy tính. Trên cơ sở đó đã xây dựng các chương trình máy tính sau: - Ch−¬ng tr×nh tù ®éng thiÕt lËp m« h×nh ®éng häc robot (TDH) - Ch−¬ng tr×nh kiÓm nghiÖm lêi gi¶i bµi to¸n ®éng häc ng−îc (KN§H) - Ch−¬ng tr×nh tÝnh to¸n ®éng lùc häc (TDLH) - Chương trình điều khiển Robot SCA - Chương trình điều khiển môđun DCSX dùng robot SCA chọn lựa sản phẩm theo màu sắc. 103 II. Ch−¬ng tr×nh tù ®éng thiÕt lËp m« h×nh ®éng häc robot (tdh) Khi thiÕt lËp hÖ ph−¬ng tr×nh ®éng häc c¬ b¶n cña robot ph¶i lÆp l¹i nhiÒu phÐp tÝnh ®¹i sè ma trËn phøc t¹p. Ta cÇn cã hÖ ph−¬ng tr×nh (1.11) ë d¹ng gi¶i tÝch ®Ó cã thÓ trùc gi¸c ph©n tÝch vµ t×m lêi gi¶i cu¶ hÖ ph−¬ng tr×nh nµy nh»m x¸c ®Þnh c¸c th«ng sè ®iÒu khiÓn vÞ trÝ cña robot. MÆt kh¸c, nÕu thùc hiÖn c¸c phÐp tÝnh ma trËn b»ng tay th× rÊt mÊt thêi gian vµ rÊt dÔ nhÇm lÉn. V× vËy rÊt cÇn thiÕt tiÕn hµnh tÝnh to¸n, thiÕt lËp c¸c biÓu thøc gi¶i tÝch nãi trªn b»ng m¸y tÝnh. Lêi gi¶i ë ®©y ph¶i lµ c¸c biÓu thøc gi¶i tÝch (chø kh«ng ph¶i b»ng sè), biÓu diÔn mèi quan hÖ ®éng häc cña robot. Gi¶i quyÕt ®−îc c¸c vÊn ®Ò trªn, nh»m tù ®éng hãa mét sè c«ng viÖc tÝnh to¸n thiÕt kÕ ®éng häc robot, sÏ phôc vô cã c¸c b−íc tiÕp theo trong qóa tr×nh tù ®éng hãa s¶n xuÊt dïng robot. Ch−¬ng tr×nh tÝnh to¸n TDH ®−îc viÕt b»ng ng«n ng÷ Matlab. KÕt qu¶ tÝnh to¸n cã thÓ l−u vµo ®Üa vµ cã thÓ xem l¹i hoÆc in ra giÊy khi cÇn. D÷ liÖu nhËp trùc tiÕp trªn mµn h×nh mét c¸ch trùc quan, chñ yÕu lµ bé th«ng sè Denavit - Hartenberg (DH) cña c¬ cÊu robot , tªn robot vµ sè kh©u ®éng. Ch−¬ng tr×nh sÏ tù ®éng tÝnh to¸n vµ cho ra kÕt qu¶. L−u ®å thuËt to¸n cña ch−¬ng tr×nh chÝnh TDH nh− h×nh 2.4.1 104 Begin NhËp d÷ liÖu: Tªn robot, sè kh©u ®éng n, c¸c th«ng sè DH, kiÓu khíp X¸c ®Þnh c¸c ma trËn Ai TÝnh to¸n c¸c ma trËn Ti Xö lý kÕt qu¶ End Më File kÕt qu¶ cò Ghi kÕt qu¶ ra mµn h×nh In kÕt qu¶ ra m¸y in Ghi kÕt qu¶ vµo ®Üa H×nh 2.4.1. L−u ®å thËt to¸n c¸c ma trËn Ti nh− h×nh 2.4.2 H×nh 2.4.2 Begin Khai b¸o c¸c biÕn, c¸c ma trËn, ®äc c¸c th«ng tin tÖp d÷ liÖu, sè khíp §äc c¸c phÇn tö cña c¸c ma trËn Ai §Æt c¸c gi¸ trÞ ®Çu cho c¸c biÕn, c¸c ma trËn kh¸c nhau ... TÝnh tÝch c¸c ma trËn Ti = A1 *(A2... (An-1 * An)) TÝnh kÕt qu¶ ë d¹ng triÓn khai Rót gän c¸c biÓu thøc l−îng gi¸c, biÓu diÔn kÕt qu¶ ë d¹ng rót gän dïng c¸c ngoÆc ®¬n End 105 Mµn h×nh tÝnh to¸n ch−¬ng tr×nh TDH nh− h×nh 2.4.3 H×nh 2.4.3 PhÇn mÒm nµy còng cã t¸c dông tèt trong viÖc gi¶ng d¹y robot. Khi cho sinh viªn thiÕt lËp m« h×nh ®éng häc c¸c lo¹i robot, ta cã thÓ dÔ dµng kiÓm tra kÕt qu¶ sinh viªn thiÕt lËp m« h×nh ®éng häc mét c¸ch nhanh chãng. III. Ch−¬ng tr×nh kiÓm nghiÖm lêi gi¶i bµi to¸n ®éng häc ng−îc V× lêi gi¶i bµi to¸n ®éng häc ng−îc th−êng cã tÝnh ®a trÞ, kh«ng ph¶i lêi gi¶i nµo còng thÝch hîp nªn ë ®©y ta cÇn kiÓm nghiÖm c¸c lêi gi¶i. §Çu tiªn ta cho bé th«ng sè biÕn khíp (qi , i=1...4) øng víi n ®iÓm, sÏ x¸c ®Þnh ®−îc ®−êng ®i cña “ ®iÓm t¸c ®éng cuèi “. VËy ë ®©y ta cã n ®iÓm “®iÓm t¸c ®éng cuèi ”. Mçi mét “ ®iÓm t¸c ®éng cuèi “ sÏ cho ta mét bé nghiÖm cña bµi to¸n thuËn (nx, ny, nz, sx, sy, sz, ax, ay, az, px, py, pz ). Tõ bé nghiÖm cña bµi to¸n thuËn nµy ta thay vµo bµi to¸n ng−îc ®Ó t×m ra ®−îc 106 nghiÖm cña bµi to¸n ng−îc lµ c¸c biÕn khíp (qi_nguoc , i=1...4). Ta thay c¸c nghiÖm (qi_nguoc , i=1...4) vµo bµi to¸n thuËn vµ t×m ra ®−îc bé nghiÖm kh¸c cu¶ bµi to¸n thuËn (nx_sau, ny_sau, nz_sau, sx_sau, sy_sau, sz_sau, ax_sau, ay_sau, az_sau, px_sau, py_sau, pz_sau ). Cho (qi , i=1...4) → bµi to¸n thuËn →(nx, ny, nz, sx, sy, sz, ax, ay, az, px, py, pz ) → bµi to¸n ng−îc → (qi_nguoc , i=1...4) → bµi to¸n thuËn →(nx_sau, ny_sau, nz_sau, sx_sau, sy_sau, sz_sau, ax_sau, ay_sau, az_sau, px_sau, py_sau, pz_sau ). Tõ mét bé nghiÖm (nx, ny, nz, sx, sy, sz, ax, ay, az, px, py, pz ) ta x¸c ®Þnh ®−îc tr¹ng th¸i cña ®iÓm “ ®iÓm t¸c ®éng cuèi “. Ta sÏ so s¸nh (nx, ny, nz, sx, sy, sz, ax, ay, az, px, py, pz ) vµ (nx_sau, ny_sau, nz_sau, sx_sau, sy_sau, sz_sau, ax_sau, ay_sau, az_sau, px_sau, py_sau, pz_sau ) xem sù sai kh¸c cã nhiÒu hay kh«ng. KÕt qu¶ ch−¬ng tr×nh KNDH sau khi ch¹y nh− trªn h×nh 4.4. H×nh 2.4.4. 107 NhËn xÐt: Tõ nh÷ng h×nh ¶nh trùc quan trªn, ta thÊy râ sù thuËn lîi h¬n h¼n khi kiÓm nghiÖm bµi to¸n robot b»ng viÖc m¸y tÝnh ho¸ c¸c phÐp tÝnh to¸n vµ dïng c¸c ch−¬ng tr×nh øng dông ¸p dông vµo ®©y. KÕt qu¶ kiÓm nghiÖm cho ta thÊy sù tÝnh to¸n bµi to¸n ®éng häc thuËn vµ bµi to¸n ®éng häc ng−îc cña robot SCATM lµ hoµn toµn chÝnh x¸c. IV. Ch−¬ng tr×nh phÇn mÒm tÝnh to¸n ®éng lùc häc (tdlh). PhÇn mÒm nµy ®−îc viÕt trªn ch−¬ng tr×nh matlab ®Ó tÝnh to¸n ®éng lùc häc. KÕt qu¶ lµ c¸c biÓu thøc gi¶i tÝch (chø kh«ng ph¶i b»ng sè). KÕt qu¶ ch−¬ng tr×nh khi tÝnh ®éng lùc häc robot SCA nh− ë môc 2.3. PhÇn I Ch−¬ng tr×nh nguån cña phÇn mÒm xem ë phÇn phô lôc. V. Ch−¬ng tr×nh phÇn mÒm ®iÒu khiÓn robot SCA (DKSCA) Ch−¬ng tr×nh phÇn mÒm ®−îc viÕt trªn ng«n ng÷ Visual C++. ViÖc thùc hiÖn quü ®¹o chuyÓn ®éng cña bµn kÑp cña robot SCA ®−îc tù ®éng tÝnh to¸n theo ch−¬ng tr×nh con ®Ó gi¶i c¸c bµi to¸n thuËn vµ ng−îc ®éng häc, nh− ®· tr×nh bµy ë phÇn trªn. Trong qu¸ tr×nh ®iÒu khiÓn, ch−¬ng tr×nh nµy sÏ tÝnh to¸n gi¸ trÞ cña c¸c gãc khíp quay vµ so s¸nh víi c¸c gi¸ trÞ nhËn ®−îc tõ c¸c sensor g¾n víi c¸c khíp quay ®Ó xuÊt ra c¸c lÖnh lµm quay c¸c ®éng c¬ t−¬ng øng. HÖ thèng ®iÒu khiÓn robot ®−îc kÕt nèi víi m¸y tÝnh, qua cæng m¸y in, cho phÐp xuÊt nhËp d÷ liÖu ®iÒu khiÓn ®éng c¬ b−íc, theo c¸c chiÒu kh¸c nhau, ®Ó thùc hiÖn ®−a c¸nh tay robot SCA ®i theo nh÷ng hµnh tr×nh ®−îc x¸c ®Þnh tr−íc nhê c¸c ch−¬ng tr×nh ®iÒu khiÓn kh¸c nhau nhËp vµo m¸y tÝnh. 108 M¹ch logic vµ ®iÒu khiÓn ®éng c¬ b−íc ®−îc thiÕt kÕ trªn c¸c IC: 4093, 7474, 74257, 7406, 4066 vµ c¸c transitor c«ng suÊt lín, cho phÐp t¹o ra c¸c xung ®iÒu khiÓn lµm quay ®éng c¬ theo c¸c ch−¬ng tr×nh ®iÒu khiÓn. Trªn h×nh 5.5 lµ mµn h×nh ®iÒu khiÓn ®éng häc thuËn robot SCA H×nh 2.4.5 Trªn h×nh 2.4.6 lµ mµn h×nh ®iÒu khiÓn ®éng häc ng−îc robot SCA H×nh 2.4.6 109 Khi lËp tr×nh trùc tuyÕn, ng−êi vËn hµnh robot trùc tiÕp tiÕn hµnh lËp tr×nh trªn b¶n th©n robot hoÆc thiÕt bÞ phô trî kÌm theo. ë ®©y theo ph−¬ng ph¸p lËp tr×nh dïng hép d¹y häc (teach box). "Hép d¹y häc" ®−îc thiÕt kÕt ngay trªn mµn h×nh m¸y tÝnh (h×nh 2.4.7). H×nh 2.4.7 C¸ch sö dông "hép d¹y häc" nh− sau: sau khi bËt m¸y, trªn mµn h×nh hiÖn sè liÖu tr¹ng th¸i hiÖn thêi cña c¸c khíp ®éng vµ th«ng tin vÒ kÕt qu¶ so s¸nh víi vÞ trÝ ban ®Çu cÇn cã cña tõng khíp ®éng. NÕu khíp ®éng nµo cßn ch−a ë vÞ trÝ ban ®Çu th× ta bÊm vµo nót lÖnh cho vÒ vÞ trÝ ®Çu. Sau ®ã dïng c¸c nót trªn "hép d¹y häc" ®Ó ®iÒu khiÓn c¸c khíp ®éng ®Õn vÞ trÝ mong muèn. Lóc ®ã sè liÖu sÏ ®−îc ghi l¹i vµ khi cã lÖnh chuyÓn ®éng sÏ ®−îc t¸i hiÖn vµ lËp l¹i nhiÒu lÇn theo ý muèn. Trong khi c¸c ®éng c¬ ®ang quay th× lu«n lu«n cã ch−¬ng tr×nh con kiÓm tra tr¹ng th¸i ho¹t ®éng cña tõng khíp ®éng. VI Ch−¬ng tr×nh ®iÒu khiÓn m«®un DCSX dïng Robot SCA chän lùa s¶n phÈm theo mµu s¾c. 110 111 // rbkhinenDlg.cpp : implementation file #include "stdafx.h" #include "rbkhinen.h" #include "rbkhinenDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) 112 //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // No message handlers //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRbkhinenDlg dialog CRbkhinenDlg::CRbkhinenDlg(CWnd* pParent /*=NULL*/) : CDialog(CRbkhinenDlg::IDD, pParent) { //{{AFX_DATA_INIT(CRbkhinenDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CRbkhinenDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CRbkhinenDlg) DDX_Control(pDX, IDC_DUNG, m_cDung); DDX_Control(pDX, IDC_CHAY, m_cChay); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CRbkhinenDlg, CDialog) //{{AFX_MSG_MAP(CRbkhinenDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_CHAY, OnChay) ON_BN_CLICKED(IDC_DUNG, OnDung) ON_BN_CLICKED(IDC_VITRIDAU, OnVitridau) ON_WM_TIMER() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRbkhinenDlg message handlers BOOL CRbkhinenDlg::OnInitDialog() { 113 CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control } void CRbkhinenDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. 114 void CRbkhinenDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } // The system calls this to obtain the cursor to display while the user drags // the minimized window. HCURSOR CRbkhinenDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } //*************************************** #include"stdio.h" #include"conio.h" #include"math.h" #include"stdlib.h" #include"iostream.h" #define basad 0x378 #define datreg basad #define statreg basad+1 #define contrreg basad+2 int xuat_cong_13(int); int xuat_cong_14(int); int xuat_cong_15(int); int dong_co_1(int); 115 int dong_co_2(int); int dong_co_3(int); int dong_co_1_ve(int); int dong_co_2_ve(int); int dong_co_3_ve(int); //------------------------------------ int vao_cong(int); int vi_tri_dau(int); int vao; int xuong4=255, dong5=255; //************************************************************** int vi_tri_dau(int cong) { int loc_1,loc_11,loc_sau_1; int loc_2,loc_21,loc_sau_2; int loc_3,loc_31,loc_sau_3; int loc_4,loc_41,loc_sau_4; int loc_5,loc_51,loc_sau_5; int luc_dau,tg,co_ban,chieu_quay; /* vao_cong(12); loc_2=vao&2; loc_sau_2=loc_2&0; Sleep(10); xuat_cong_14(34); Sleep(10); xuat_cong_15(253); while(loc_21!=loc_sau_2) { vao_cong(12); loc_21=vao&2; } xuat_cong_15(255); */ vao_cong(12); Sleep(10); loc_1=vao&1; loc_sau_1=loc_1&0; 116 loc_2=vao&2; loc_sau_2=loc_2&0; loc_3=vao&4; loc_sau_3=loc_3^4; xuat_cong_14(38); xuat_cong_15(248); xuat_cong_15(248); while(loc_11!=loc_sau_1) { vao_cong(12); loc_11=vao&1; xuat_cong_15(251); xuat_cong_15(251); } // xuat_cong_15(255); while(loc_21!=loc_sau_2) { vao_cong(12); loc_21=vao&2; xuat_cong_15(253); Sleep(0.1); xuat_cong_15(253); Sleep(0.1); xuat_cong_15(253); } while(loc_31!=loc_sau_3) { vao_cong(12); loc_31=vao&4; xuat_cong_15(254); } xuat_cong_15(255); //xuat_cong_15(255); 117 return(0); } //--------------------------------------- int vao_cong(int y8) { int tam1,tam2,thap,cao; _outp(contrreg,0); //mo dia chi _outp(datreg,y8); //d/c cong _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 Sleep(0.1); thap=_inp(statreg); //truyen _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 Sleep(0.1); cao=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam1=thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 tam2=cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 vao=tam1/16+tam2; return(0); } //------------------------------------------------ int xuat_cong_15(int x15) { _outp(contrreg,0); Sleep(0.1); _outp(datreg,15); _outp(contrreg,1); Sleep(0.1); _outp(datreg,x15); _outp(contrreg,9); //xung ghi Sleep(0.1); _outp(contrreg,1); //ket thuc ghi Sleep(0.1); return(0); } 118 int xuat_cong_14(int x14) { _outp(contrreg,0); Sleep(0.1); _outp(datreg,14); _outp(contrreg,1); Sleep(0.1); _outp(datreg,x14); _outp(contrreg,9); //xung ghi Sleep(0.1); _outp(contrreg,1); //ket thuc ghi Sleep(0.1); return(0); } int xuat_cong_13(int x13) { _outp(contrreg,0); _outp(datreg,13); _outp(contrreg,1); _outp(datreg,x13); _outp(contrreg,9); //xung ghi _outp(contrreg,1); //ket thuc ghi return(0); } //------------------------------------------ //************************************************ void CRbkhinenDlg::OnChay() { // TODO: Add your control notification handler code here int loc,loc_sensophathienvat1,loc_senso,loc1; dong_co_1(820);//780 Sleep(100); dong_co_2(500);//-510 Sleep(100); dong_co_3(150);//-510 Sleep(100); // xuat_cong_15(223); //ca len va mo // xuat_cong_15(215); //xuong // xuat_cong_15(199); //xuong va dong // xuat_cong_15(207); //len // xuat_cong_15(231); //xuong va dong//231 119 /* xuat_cong_14(40); // xi lanh ra delay(1000); xuat_cong_14(48); // xi lanh vao delay(1000); xuat_cong_14(34); // quay xl delay(1000); xuat_cong_14(32); // quay xl delay(1000); */ while(1) { vao_cong(12); Sleep(10); loc=vao&128; loc1=vao&64; Sleep(1); if(loc1==0) { xuat_cong_14(40); Sleep(300); Sleep(500); xuat_cong_15(215); Sleep(1500); xuat_cong_15(199); Sleep(1000); xuat_cong_15(207);//207 Sleep(1000); xuat_cong_14(48); Sleep(500); dong_co_1_ve(-550); Sleep(1000); xuat_cong_15(231); Sleep(800); xuat_cong_15(215);//255 Sleep(500); xuat_cong_15(255);//255 Sleep(1000); dong_co_1(550);//780 xuat_cong_14(2); Sleep(2000); 120 xuat_cong_14(32); } else if(loc==0) { Sleep(500); xuat_cong_14(40); Sleep(800); xuat_cong_15(215); Sleep(1500); xuat_cong_15(199); Sleep(1000); xuat_cong_15(207);//207 Sleep(1000); xuat_cong_14(48); Sleep(500); dong_co_1_ve(-650); Sleep(1000); xuat_cong_15(231); Sleep(800); xuat_cong_15(215);//255 Sleep(500); xuat_cong_15(255);//255 Sleep(1000); dong_co_1(650);//780 xuat_cong_14(2); Sleep(2000); xuat_cong_14(32); } else { xuat_cong_15(255); } } // m_cChay.EnableWindow(FALSE); // m_cDung.EnableWindow(TRUE); } 121 //************************************************ void CRbkhinenDlg::OnDung() { // TODO: Add your control notification handler code here m_cChay.EnableWindow(TRUE); m_cDung.EnableWindow(FALSE); } //***************************************** void CRbkhinenDlg::OnVitridau() { // TODO: Add your control notification handler code here xuat_cong_14(48); // xi lanh vao vi_tri_dau(1); Sleep(10); // vi_tri_dau(1); xuat_cong_13(255); Sleep(1); xuat_cong_13(0); /* xuat_cong_14(48); // xi lanh vao Sleep(1000); xuat_cong_14(32); // xi lanh quay ve dau //Sleep(1000); */ } //******************************************** //---------------------------------------------- int dong_co_1(int dc1) { int tam1,tam2,tam3,tam4,thap_thap,cao_thap, thap_cao,cao_cao,thap_that,cao_that; int gia_tri_tong_hop,gia_tri_tong_hop_that; xuat_cong_15(255-510+xuong4+dong5);//+(223-255)); Sleep(1); if (dc1<0) { xuat_cong_14(36); } else { xuat_cong_14(32); } xuat_cong_15(255+(-510+xuong4+dong5));//+(223-255)); 122 xuat_cong_13(255); xuat_cong_13(0); xuat_cong_15(251+(-510+xuong4+dong5));//+(223-255)); Sleep(1); do { _outp(contrreg,0); //mo dia chi _outp(datreg,4); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 // Sleep(100); thap_thap=_inp(statreg); //truyen tam1=thap_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 // Sleep(100); cao_thap=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam2=cao_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 thap_that=tam1/16+tam2; //--------------------------- _outp(contrreg,0); //mo dia chi _outp(datreg,5); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 //Sleep(100); thap_cao=_inp(statreg); //truyen tam3=thap_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 // Sleep(100); cao_cao=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam4=cao_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 cao_that=tam3/16+tam4; //--------------------------- // Sleep(1); gia_tri_tong_hop=(cao_that*256+thap_that); Sleep(1); }while (gia_tri_tong_hop<=abs(dc1)); 123 // xuat_cong_15(255); // Sleep(50); xuat_cong_15(255-510+xuong4+dong5);//+(223-255)); return(0); } //---------------------------------------- //---------------------------------------------- int dong_co_2(int dc2) { int tam1,tam2,tam3,tam4,thap_thap,cao_thap, thap_cao,cao_cao,thap_that,cao_that; int gia_tri_tong_hop,gia_tri_tong_hop_that; xuat_cong_15(255-510+xuong4+dong5);//+(223-255)); if (dc2<0) { xuat_cong_14(34); } else { xuat_cong_14(32); } xuat_cong_13(255); xuat_cong_13(0); xuat_cong_15(253+(-510+xuong4+dong5));//+(223-255)); do { _outp(contrreg,0); //mo dia chi _outp(datreg,2); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 // Sleep(0.1); thap_thap=_inp(statreg); //truyen tam1=thap_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 // Sleep(0.1); cao_thap=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 124 tam2=cao_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 thap_that=tam1/16+tam2; //--------------------------- _outp(contrreg,0); //mo dia chi _outp(datreg,3); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 //Sleep(0.1); thap_cao=_inp(statreg); //truyen tam3=thap_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 //Sleep(0.1); cao_cao=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam4=cao_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 cao_that=tam3/16+tam4; //--------------------------- gia_tri_tong_hop=(cao_that*256+thap_that); Sleep(1); }while (gia_tri_tong_hop<=abs(dc2)); // xuat_cong_15(255); xuat_cong_15(255-510+xuong4+dong5);//+(223-255)); return(0); } //---------------------------------------- //---------------------------------------------- int dong_co_3(int dc3) { int tam1,tam2,tam3,tam4,thap_thap,cao_thap, thap_cao,cao_cao,thap_that,cao_that; int gia_tri_tong_hop,gia_tri_tong_hop_that; xuat_cong_15(255-510+xuong4+dong5);//+(223-255)); if (dc3<0) { xuat_cong_14(32); 125 } else { xuat_cong_14(33); } xuat_cong_13(255); xuat_cong_13(0); xuat_cong_15(254+(-510+xuong4+dong5));//+(223-255)); do { _outp(contrreg,0); //mo dia chi _outp(datreg,0); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 //Sleep(0.1); thap_thap=_inp(statreg); //truyen tam1=thap_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 //Sleep(0.1); cao_thap=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam2=cao_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 thap_that=tam1/16+tam2; //--------------------------- _outp(contrreg,0); //mo dia chi _outp(datreg,1); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 //Sleep(0.1); thap_cao=_inp(statreg); //truyen tam3=thap_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 //Sleep(0.1); cao_cao=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam4=cao_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 cao_that=tam3/16+tam4; //--------------------------- gia_tri_tong_hop=(cao_that*256+thap_that); 126 Sleep(1); }while (gia_tri_tong_hop<=abs(dc3)); // xuat_cong_15(255); xuat_cong_15(255-510+xuong4+dong5);//+(223-255)); return(0); } //---------------------------------------- //***************************************** //---------------------------------------------- int dong_co_1_ve(int dc1) { int tam1,tam2,tam3,tam4,thap_thap,cao_thap, thap_cao,cao_cao,thap_that,cao_that; int gia_tri_tong_hop,gia_tri_tong_hop_that; xuat_cong_15(239); if (dc1<0) { xuat_cong_14(36); } else { xuat_cong_14(32); } xuat_cong_13(255); xuat_cong_13(0); xuat_cong_15(251+(-255+239)); do { _outp(contrreg,0); //mo dia chi _outp(datreg,4); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 // Sleep(0.1); thap_thap=_inp(statreg); //truyen tam1=thap_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 127 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 // Sleep(0.1); cao_thap=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam2=cao_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 thap_that=tam1/16+tam2; //--------------------------- _outp(contrreg,0); //mo dia chi _outp(datreg,5); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 // Sleep(0.1); thap_cao=_inp(statreg); //truyen tam3=thap_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 // Sleep(0.1); cao_cao=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam4=cao_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 cao_that=tam3/16+tam4; //--------------------------- gia_tri_tong_hop=(cao_that*256+thap_that); Sleep(1); }while (gia_tri_tong_hop<=abs(dc1)); // xuat_cong_15(255); xuat_cong_15(239); return(0); } //---------------------------------------- //---------------------------------------------- int dong_co_2_ve(int dc2) { int tam1,tam2,tam3,tam4,thap_thap,cao_thap, thap_cao,cao_cao,thap_that,cao_that; int gia_tri_tong_hop,gia_tri_tong_hop_that; xuat_cong_15(239); 128 if (dc2<0) { xuat_cong_14(34); } else { xuat_cong_14(32); } xuat_cong_13(255); xuat_cong_13(0); xuat_cong_15(253+(239-255)); do { _outp(contrreg,0); //mo dia chi _outp(datreg,2); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 // Sleep(0.1); thap_thap=_inp(statreg); //truyen tam1=thap_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 //Sleep(0.1); cao_thap=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam2=cao_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 thap_that=tam1/16+tam2; //--------------------------- _outp(contrreg,0); //mo dia chi _outp(datreg,3); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 //Sleep(0.1); thap_cao=_inp(statreg); //truyen tam3=thap_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 //Sleep(0.1); cao_cao=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam4=cao_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 cao_that=tam3/16+tam4; 129 //--------------------------- gia_tri_tong_hop=(cao_that*256+thap_that); Sleep(1); }while (gia_tri_tong_hop<=abs(dc2)); // xuat_cong_15(255); xuat_cong_15(239); return(0); } //---------------------------------------- //---------------------------------------------- int dong_co_3_ve(int dc3) { int tam1,tam2,tam3,tam4,thap_thap,cao_thap, thap_cao,cao_cao,thap_that,cao_that; int gia_tri_tong_hop,gia_tri_tong_hop_that; xuat_cong_15(239); if (dc3<0) { xuat_cong_14(32); } else { xuat_cong_14(33); } xuat_cong_13(255); xuat_cong_13(0); xuat_cong_15(254+(239-255)); do { _outp(contrreg,0); //mo dia chi _outp(datreg,0); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 // Sleep(0.1); thap_thap=_inp(statreg); //truyen tam1=thap_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 130 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 //Sleep(0.1); cao_thap=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam2=cao_thap&240; //giu nguyen 4 bit dau, 4 bit sau =0 thap_that=tam1/16+tam2; //--------------------------- _outp(contrreg,0); //mo dia chi _outp(datreg,1); //d/c cong 0 _outp(contrreg,1); //ghi ra _outp(contrreg,3); // doc vao nua byte thap,AF=1,Init=0 //Sleep(0.1); thap_cao=_inp(statreg); //truyen tam3=thap_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 _outp(contrreg,7); // doc nua cao cua byte thap,AF=1,Init=1 //Sleep(0.1); cao_cao=_inp(statreg); //truyen _outp(contrreg,1); // ket thuc xung doc,AF=0,Init=0 tam4=cao_cao&240; //giu nguyen 4 bit dau, 4 bit sau =0 cao_that=tam3/16+tam4; //--------------------------- gia_tri_tong_hop=(cao_that*256+thap_that); Sleep(1); }while (gia_tri_tong_hop<=abs(dc3)); xuat_cong_15(255); xuat_cong_15(239); return(0); } //---------------------------------------- void CRbkhinenDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default CDialog::OnTimer(nIDEvent); } 131 Tµi liÖu tham kh¶o 1. Morgan, C. Robots: planning and implementation, UK, IFS Publications, 1984. 2. Owen, T. Assembly with Robot. London: Kogan Page, 1985 3. Pham and Heginbotham – Robot Grippers. Bedford, UK, IFS Publications, 1986. 4. Pugh, A. (editor). Robot Sensors. Vol. 1 and Vol 2, Bedford UK, IFS Publications, 1986. 5. Vijay Kumar “Motion Planning and Control Robots” . Handbook of Industrial Robotics. Ed. S.Y.Nof. NewYork, John Wiley & Sons. Inc, 1999. 6. Refael C. Gonzaler & Richard E. Woods. Digital Image Processing. Addison – Wesley, 1992. 7. Mair G. Industrial Robotics. Prentice Hall, 1988. 8. Paul R.P., Modeling, Trajectory Caculation and Servoing of a Computer Controlled Arm. Palo Alto Calif, 1972. 9. Paul R.P., Robot Manipulators: Mathematics, Programming and Control. The MIT Press – Cambridge, Massachusetts and London, England, 1981. 10. Schilling R.J., Fundamentals of Robotics, Analysis & Control. Prentice Hall, 1990. 11. Snyder W.E., Industrial Robots: Computer Interfacing and Control. Prentice Hall Inc. New Jersey, 1985. 12. Shimon Y. Nof, Handbook of Industrial Robotics, 2nded. John Wiley & Sons. Inc. 1999. 132 13. Shimon Y. Nof, Handbook of Industrial Robotics, 2nded. John Wiley & Sons. Inc. 1999. 14. NguyÔn ThiÖn Phóc, TrÇn V¨n C−êng, VÒ mét ph−¬n−g ph¸p gi¶i bµi to¸n ng−îc ®éng häc khi tæng hîp quü ®¹o chuyÓn ®éng cña ng−êi m¸y. TuyÓn tËp c¸c b¸o c¸o khoa häc Héi nghÞ Tù ®éng hãa toµn quèc lÇn thø II, 1996. 15. NguyÔn ThiÖn Phóc, §iÒu khiÓn chuyÓn ®éng robot hµn theo quü ®¹o ®Þnh tr−íc. TuyÓn tËo c«ng tr×nh Héi nghÞ C¬ häc toµn quèc lÇn thø VI, Hµ Néi, 12/1997. 16. NguyÔn ThiÖn Phóc, Ph¸p triÓn ph−¬ng ph¸p “c¸c nhãm 3” ®Ó gi¶i bµi to¸n ng−îc ®éng häc khi tæng hîp quü ®¹o chuyÓn ®éng cña tay m¸y – ng−êi m¸y. TuyÓn tËp c¸c b¸o c¸o khoa häc Héi nghÞ C¬ häc m¸y ViÖt Nam, Hµ Néi, 1999. 17. NguyÔn ThiÖn Phóc, TrÇn Ngäc To¶n, TrÇn Minh NghÜa, NguyÔn TiÕn §øc, Nghiªn cøu thiÕt kÕ chÕ t¹o robot SCA mini. TuyÓn tËp c«ng tr×nh khoa häc Héi nghÞ khoa häc toµn quèc vÒ c¬ kü thuËt tËp 2, 10/2001. 18. Koltrin N.I. C¬ häc m¸y, M, 1972 (tiÕng Nga). 19. Litvin F. L. Lý thuyÕt ¨n khíp b¸nh r¨ng. Moscva, 1968 (tiÕng Nga) 20. Duxev I.I., NguyÔn ThiÖn Phóc – Ph©n tÝch ®Æc tÝnh tiÕp xóc côc bé trªn c¬ së lý thuyÕt b«i tr¬n thñy ®éng, Moscva, 1977 (tiÕng Nga). 21. NguyÔn ThiÖn Phóc. C¸c chØ tiªu ®¸nh gi¸ kh¶ n¨ng chÞu t¶i cña c¸c lo¹i truyÒn ®éng trôc vÝt kiÓu míi. Leningrat, 1971 (tiÕng Nga). 22. NguyÔn ThiÖn Phóc. C¬ së lý thuyÕt tiÕp xóc enlip trong ¨n khíp b¸nh r¨ng kh«ng gian, Leningrat, 1978 (tiÕng Nga). 23. NguyÔn ThiÖn Phóc. Planetary cycloid roller gear reducer. VN Journal of Mechanics, N2. 2002. 133 24. NguyÔn ThiÖn Phóc “Robot c«ng nghiÖp” NXB khoa häc vµ kü thuËt, Hµ Néi, 2004. 25. NguyÔn ThiÖn Phóc, (vµ c¸c céng sù). Hép gi¶m tèc b¸nh r¨ng con l¨n. TuyÓn tËp b¸o c¸o Héi nghÞ C¬ häc toµn quèc lÇn thø VII, 2002. 26. NguyÔn ThiÖn Phóc, NguyÔn TiÕn §øc, Lª Hoµng Giang. TÝnh to¸n thiÕt kÕ, chÕ t¹o c¸c m«®un quay trong robot. TuyÓn tËp b¸o c¸o khoa häc Héi nghÞ tù ®éng hãa toµn quèc, lÇn thø V.

Các file đính kèm theo tài liệu này:

  • pdfBáo cáo- NGHIÊN CỨU THIẾT KẾ, CHẾ TẠO CÁC ROBOT THÔNG MINH PHỤC VỤ CHO CÁC ỨNG DỤNG QUAN TRỌNGHÓM SẢN PHẨM ROBOT SCA.pdf
Luận văn liên quan