Robot Machining เป็นกระบวนการที่วัตถุดิบถูกตัดตามรูปร่างและขนาดที่ต้องการโดยกระบวนการควบคุมจำกัดวัตถุดิบ, การใช้แขนหุ่นยนต์ แอพพลิเคชั่นจำกัดวัตถุดิบที่เต็มไปด้วยเครื่องจักรกลที่แตกต่างกัน เช่น การผสม, การขุดเจาะ, การตัดลบมุมและการขัด ซึ่งถูกดำดำเนินโดยเครื่องมือเครื่องจักร (CNC)โดยอัตโนมัติอย่างปกติ หุ่นยนต์อุตสาหกรรมสามารถถูกใช้เหมือนเครื่องมือเครื่องจักร(3 แกน or 5 แกน) โดยใช้ RoboDK
เพื่อทำให้ผลลัพธ์เหมือนเดิมหรือดีขึ้นโดยเครื่องจักร CNC, หุ่นยนต์อุตสาหกรรมต้องการเทคโนโลยีซอฟต์แวร์การเขียนโปรแกรมออฟไลน์ขั้นสูงเหมือน RoboDK ที่จะแปลงโปรแกรมเครื่องจักรเป็นโปรแกรมหุ่นยนต์
ส่วนมิติถูกกำหนดให้ใช้ซอฟต์แวร์การออกแบบคอมพิวเตอร์ช่วย จากนั้นเปลี่ยนโปรแกรมการผลิต (เช่น G-code) โดยการผลิตโดยใช้คอมพิวเตอร์ช่วย ซอฟต์แวร์ (CAM) โปรแกรมผลิตสามารถถูกแปลงเป็นโปรแกรมหุ่นยนต์เพื่อใช้เครื่องมือการเขียนโปรแกรมออฟไลน์ RoboDK’s
แกนเพิ่มเติม, เช่น ทางที่หมุนได้หรือเส้นตรงสามารถถูกประสานกันได้โดยหุ่นยนต์เพื่อขยายพื้นที่ทำงาน
ในส่วนนี้แสดงวิธีการเตรียมฐานตัวอย่างออฟไลน์ RoboDK สำหรับRobot Machining ฐาน RoboDK ประกอบไปด้วยหุ่นยนต์, เครื่องมือ, หน้าต่างอ้าอิง, สิ่งของและการตั้งค่าอื่นๆ ข้อมูลเพิ่มเติมเกี่ยวกับการสร้างฐาน RoboDK ดูได้ในส่วน getting started
อีกทั้งยังจำเป็นต้องมีหุ่นยนต์ด้วยเครื่องมือและสิ่งของ 3 มิติในหน้าต่างอ้างอิงเพื่อตั้งค่าโครงการเครื่องจักรหุ่นยนต์:
1-เลือกหุ่นยนต์:
a.เลือกFile➔ Open online library
b.ใช้ตัวกรองเพื่อหาหุ่นยนต์ของคุณโดย ยี่ห้อ, น้ำหนักที่บรรทุก , ...
ดังตัวอย่าง, เลือกABB IRB 2600-20/1.65 (20 กิโลกรัมสำหรับบรรทุก, 1.65 เมตรที่ขยายได้)
c.เลือกDownloadและหุ่นยนต์จะปรากฏอย่างอัตโนมัติในหน้าจอหลัก
2-เลือกเครื่องมือ:
a.จากคลังออนไลน์เดียวกัน, ตัวกรองด้วยType➔Tool
b.ดาวน์โหลดเครื่องมือหมุน
c.เครื่องมือควรจะถูกแนบอัตโนมัติถึงหุ่นยนต์
เมื่อเครื่องมือถูกโหลดOnline libraryสามารถถูกปิด
3-เพิ่มหน้าต่างอ้างอิง:
a.เลือกProgram➔ Add Reference Frame
b.เลือกหน้าต่างอ้างอิงในต้นไม้และเลือก F2 เพื่อเป็นชื่อเป็นMilling Reference
4-เพิ่มสิ่งของ:
a.เลือกFile➔ Open
b.เลือกสิ่งของซึ่งมีชื่อว่าObject wooden bowl.sld
c.ลากและวางสิ่งของถึงการอ้างอิงตัวผสาน (ภายในฐานต้นไม้)
ตามขั้นตอนต่อไปนี้เพื่อตั้งค่าโครงการRobot Machining ใหม่โดยให้ไฟล์ NC ถูกสร้างขึ้นโดยใช้ซอฟต์แวร์ CAM (เช่นG-codesinv APT):
1.เลือกUtilities➔ Robot Machining project (Ctrl+M).
วินโดว์ใหม่จะป็อปอัพขึ้นมา, ตามที่แสดงในภาพ
2.เลือกSelect NC fileในส่วนเส้นทางการนำเข้า
3.จัดหาไฟล์ NC เช่นไฟล์หนึ่งจากRoboDK ในคลังเริ่มต้น:
C:/RoboDK/Library/Milling Bowl 3x.nc
เลือกหุ่นยนต์, หน้าต่างอ้างอิงและเครื่องมือในส่วนบนด้านซ้ายของเมนู, แสดงในรูปดังกล่าว:
เส้นทางของเครื่องมือเครื่องจักรกลถูกแสดงเป็นสีเขียวและในทางปกติซึ่งแสดงเป็นเวกเตอร์สีขาว ยกเลิกเส้นทางเครื่องมือที่เห็นเพื่อซ่อนเส้นทางเครื่องมือ
เส้นทางที่ป้อนเข้าอนุญาตให้เราเลือกในทางที่แตกต่างกันโดยจัดหาเส้นทางเครื่องมือ เส้นทางเครื่องมือสามารถถูกกำหนดโดย:
●Select NC file:ไฟล์ NC หนึ่ง (ได้รับจากซอฟต์แวร์ CAM ), ซึ่งถูกอธิบายในส่วนนี้
●Select curve: เส้นโค้งหนึ่งหรือมากกว่า, ซึ่งถูกอธิบายในส่วนCurve Follow Project
นอกจากนี้ยังนำเข้าเส้นโค้งimport curves ตามรายการของพิกัดใน RoboDK
●Select points: จุดหนึ่งหรือมากกว่า, ซึ่งถูกอธิบายในส่วนPoint Follow Project
นอกจากนี้ยังนำเข้าจุดimport points ตามรายการของพิกัดในRoboDK
●3D print object: สิ่งของสำหรับการพิมพ์ 3 มิติ. เครื่องตัดถูกใช้เพื่อแปลงเรขาคณิตถึงเส้นทางเครื่องมือ
การเคลื่อนที่ของการเริ่ม/ถอยกลับ สามารถถูกจัดหา ณ มุมบนขวาของเมนู
เลือกAddเพื่อเพิ่มการเคลื่อนที่เพิ่มเติม ทางสีเขียวจะถูกอัพเดทตาม นอกจากนี้ยังสามารถเลือกระหว่างการเคลื่อนที่ปกติ (ระหว่างสีขาวปกติ), เส้นสัมผัส (ระหว่างทางสีเขียว) หรือแกนเฉพาะกับส่วน
ดับเบิ้ลคลิกค่าเพื่อปรับเปลี่ยนความยาวหรือเลือกเพื่อลบการเคลื่อนที่เฉพาะ
เส้นทางของเครื่องมือค่าชดเชยอนุญาตการเปลี่ยนการหมุนที่ชอบของเครื่องมือระหว่างเส้นทางเครื่องมือ ในทางเลือกนี้ถูกใช้เป็นหลักเพื่อกลับเครื่องมือรอบแกน Z ของ
ตั้งแต่หุ่นยนต์ 6 แกนถูกใช้ตามโปรแกรมผลิต CNC 3 แกนและ 5 แกน พวกเรามีมุมเพิ่มเติมของอิสระเพื่อกำหนด มุมของความอิสระเป็นการหมุนรอบแกน Z ของ TCP
โดยค่าเริ่มต้น, เส้นทางสำหรับเครื่องมือค่าชดเชยแสดงการแปลงrotz(0)ค่านี้สามารถถูกดัดแปลงเพื่อจัดตั้งมุมที่ต้องการ, การดัดแปลงการหมุนรอบแกน Z ของ TCP หรือในการรวมกันของแกนอื่น การหมุนที่แนะนำเป็นการหมุนหุ่นยนต์ที่จะลองเก็บขณะติดตามเส้นทางเครื่องมือ
โดยเริ่มต้น, RoboDK ใช้ขั้นตอนMinimum tool orientation changeนี้หมายความว่าการหมุนของเครื่องมือจะถูกเก็บไว้คงที่เท่าที่เส้นทางเครื่องมือเป็นไปได้ ในปกติแล้ว, ทางเลือกนี้จะเหมาสมกับการปฏิบัติการบดผสมให้ move joint ของหุ่นยนต์ลดลงอีกทางเลือกหนึ่ง, ขั้นตอนวิธี/ขั้นตอนอื่นสามารถดูได้, เช่นtool orientation following the toolpath (เป็นประโยชน์สำหรับแอพพลิเคชั่นการตัด), หรือrobot holding the object ถ้าเส้นทางเครื่องมือจำเป็นต้องทำตามการแนบเครื่องมือหุ่นยนต์(ดังตัวอย่าง, สำหับแอพพลิเคชั่นการจ่ายหรือการขัด)
ให้การหมุนที่ต้องการ, หุ่นยนต์สามารถมีอิสระที่แน่นอนในการหมุนรอบแกน Z ของเครื่องมือ เป็นการอนุญาตหุ่นยนต์ทำให้โปรแกรมให้สำเร็จโดยหลักเลี่ยงหุ่นยนต์เฉพาะและข้อบังคับของแกน โดนค่าเริ่มต้น, RoboDK อนุญาตให้เครื่องมือหมุนขึ้น +/-180 องศารอบแกน TCP โดยขั้นตอนของ 20 องศา
มันถูกแนะนำให้บังคับการหมุนโดยขึ้นอยู่กับแอพพลิเคชั่น ดังตัวอย่าง, สามารถป้อน +/-90 องศาเพื่อบังคับการหมุนที่อนุญาตโดยครึ่งหนึ่ง
ถ้าบางจุดของเส้นทางมาไม่ถึง, มันถูกแนะนำให้ย้ายหน้าต่างอ้างอิงหรือให้อนุญาตการหมุนเครื่องมือ Z ที่มากกว่า หน้าต่างอ้างอิงสามารถถูกย้ายโดยการกดค้างปุ่ม Alt
เลือกอัพเดทเพื่อรับโปรแกรมตามการตั้งค่าที่จัดไว้สัญลักษณ์การตรวจสอบสีเขียวจะถูกแสดงถ้าโปรแกรมสามารถถูกสร้างอย่างสำเร็จ จากนั้นพวกเราจะเห็นโปรแกรมใหม่ในฐาน
ดับเบิ้ลการสร้างโปรแกรมหรือเลือกSimulateเพื่อเริ่มต้นการจำลองRobot Machining
คลิกขวาที่โปรแกรมและเลือกGenerate robot program (F6) เพื่อที่จะได้โปรแกรม ข้อมูลเพิ่มเติมเกี่ยวกับการสร้างโปรแกรมดูได้ในส่วนProgram
RoboDK เลือกการเริ่มต้นองค์ประกอบอย่างอัตโนมัติซึ่งมันใกล้จุดเริ่มต้นที่แนะนำ (Preferred joints for the start point). จากจุดนี้, หุ่นยนต์จะตามการเคลื่อนที่เส้นตรง, ดังนั้นการกำหนดค่าจะไม่เปลี่ยนแปลง
เมนูด้านล่างจะแสดงวิธีการที่เป็นไปได้ในการเริ่มต้นโปรแกรม ถ้าจำเป็น, เลือกการกำหนดค่าที่แนะนำและเลือกUpdateเพื่อคำนวณโปรแกรมใหม่อีกครั้ง
มันเป็นไปได้ที่จะเก็บการหมุนของเครื่องมือคงที่ท่ามกลางเส้นทาง พฤติกรรมนี้เป็นประโยชน์ต่อแอพพลิเคชั่นการตัดหรือการเชื่อม ดังตัวอย่าง
เลือกเส้นทางTool orientation followsในSelect algorithmด้านล่างเพื่อคำนวณเส้นทางเครื่องมือที่แนะนำใหม่อีกครั้ง การตั้งค่าอื่นเหมือนกับการมีMachining Project ด้วยการหมุนเครื่องมือคงที่
มันยังเป็นไปได้ที่สามารถสั่งการหุ่นยนต์เมื่อจับสิ่งของ/ทางเครื่องมือ ด้วยเครื่องมือกับหุ่นยนต์ ขณะที่ระบบปฏิบัติการผลิตไปถึงที่ มันเป็นประโยชน์สำหรับแอพพลิเคชั่นการติดกาวหรือการขัด ดังตัวอย่าง
เลือกRobot holds objectในส่วนSelect algorithmด้านล่างเพื่อวางเส้นทางเครื่องมือย่างเหมาะสมบนการอ้างอิง TCP การตั้งค่าอื่นเป็นเหมือนการมีMachining Project ด้วยการหมุนเครื่องมือคงที่
มันเป็นไปได้ที่จะสร้างหุ่นยนต์ตามเส้นโค้งในพื้นที่ 3 มิติด้วย RoboDK เส้นโค้งใน RoboDK สามารถถูกเลือกจากขอบวัตถุหรือการนำเข้า imported ตามรายการของจุดในไฟล์ CSV ตัวเลือกนี้เป็นประโยชน์สำหรับแอพพลิเคชั่นการเชื่อมหุ่นยนต์ดังตัวอย่าง
เลือกUtilities➔Curve Follow Projectเพื่อเปิดการตั้งค่าเส้นโค้ง การตั้งค่าเหล่านี้เหมือนกันกับRobot Machining Project, มีเพียงสิ่งที่แตกต่างกันคือเส้นทางสิ่งที่ป้อนเข้าPath inputเป็นการตั้งค่าล่วงหน้าSelect curve
เลือกSelect curveเพื่อเลือกเส้นโค้งบนหน้าจอ
เลือกเส้นโค้งโดยการคลิกเมาส์ซ้าย การเลือกเส้นโค้งเดียวกันสองครั้งจะสลับทิศทางของการเคลื่อนที่ อีกทั้ง, การคลิกขวาก่อนหน้าการเลือกเส้นโค้งจะทำให้สลับความรู้สึกหรือยกเลิกการเลือกเส้นโค้งก่อนหน้านั้น
คลิกขวาที่หน้าจอและเลือก Done หรือกดปุ่ม Esc เพื่อกลับไปหน้าเมนูตั้งค่า เส้นสีเขียวจะแสดงผลการเคลื่อนที่หุ่นยนต์กับสิ่งของ
ทางเลือกเพิ่มเติมสามารถใช้งานได้บนมุมขวาของการตั้งค่า เช่นความเร็วเครื่องมือและถ้าการเริ่มต้น/ ถอยกลับ ย้ายจะต้องถูกประยุกต์ใช้กับแต่ละเส้น การตั้งค่าเริ่มต้นถูกแสดงในรูปภาพถัดไป:
เส้นโค้งสามารถถูกนำเข้าใน RoboDK จากไฟล์ CSV หรือไฟล์อักษรโดยการเลือกUtilities➔Import Curveไอเทมใหม่จะปรากฏในฐานซึ่งแสดงเส้นโค้งตามวัตถุ
ไฟล์สามารถเป็นไฟล์อักษรด้วยพิกัด 3 มิติของแต่ละจุดบนเส้นโค้ง โดยทางเลือก, การหมุนของแกน Z ของเครื่องมือสามารถหาได้จากเวกเตอร์i, j, k
โดยทางเลือก, จุดที่มีอยู่ของวัตถุสามารถถูกส่งออกเป็นไฟล์ CSV(คลิกขวาที่เส้นโค้ง, จากนั้น, เลือกนำเข้าเส้นโค้ง), ดัดแปลงและนำเข้าใหม่อีกครั้งกลับ RoboDK
มันยังสามารถสร้างหุ่นยนต์ตามจุดในพื้นที่ 3 มิติกับRoboDK จุดใน RoboDK สามารถถูกนำออกมาจากวัตถุ, เส้นโค้งหรือimportedตามรายการของจุดในไฟล์ CSV ทางเลือกนี้เป็นประโยชน์สำหรับแอพพลิเคชั่นจุดเชื่อมหรือขุดเจาะ ดังตัวอย่าง วีดีโอต่อไปนี้แสดงตัวอย่างของการตั้งค่าแอพพลิเคชั่นจุดเชื่อม: watch video
เลือกUtilities➔Point Follow Projectเพื่อเปิดการตั้งค่าจุดตาม การตั้งค่าเหล่านี้เหมือนกัน Robot Machining Project, ข้อแตกต่างเดียวกันPath inputได้ถูกตั้งค่าก่อนSelect points.
เลือกSelect pointsเพื่อเลือดจุดบนหน้าจอ
เลือกจุดด้วยการคลิกเมาส์ซ้าย การเลือกจุดเดียวกันจะสลับเส้นทางที่ใกล้กัน อีกทั้ง, การคลิกขวาที่จุดอนุญาตให้เลือกจุดซึ่งตามการเลือกSelect next
คลิกขวาที่หน้าจอและเลือกDoneหรือกดปุ่ม Esc key เพื่อกลับไปหน้าเมนูตั้งค่าเส้นทางสีเขียวจะแสดงการเคลื่อนไหวหุ่นยนต์กับวัตถุ
ทางเลือกเพิ่มเติมสามารถดูได้ในด้านบนขวาของการตั้งค่า เช่น, ความเร็วเครื่องมือและระยะทางที่ใกล้กัน การตั้งค่าเริ่มต้นถูกแสดงในรูปถัดไป:
รายการของจุดสามารถนำเข้าไฟล์อักษรหรือไฟล์ CSV โดยการเลือกUtilities➔Import Points. ไอเทมใหม่จะปรากฏขึ้นในฐานซึ่งแสดงจุดเหมือนกับสิ่งของ
ไฟล์สามารถทำให้เป็นไฟล์ตัวอักษรด้วยพิกัด 3 มิติของแต่ละจุเบนเส้นโค้ง โดยทางเลือก, การหมุนของแกน Z ของเครื่องมือสามารถจัดหาโดย i,j,k
โดยทางเลือก, เส้นโค้งที่มีอยู่ของวัตถุสามารถถูกแปลงเป็นจุดโดยการคลิกขวาที่เส้นโค้ง, จากนั้น, การเลือกExtract curve points.
การพิมพ์ 3 มิติหรือการเพิ่มกระบวนการผลิตเป็นขั้นตอนของการสร้างสิ่งของแข็ง 3 มิติจากไฟล์ดิจิตอล แขนหุ่นยนต์อุตสาหกรรมสามารถถูกใช้เครื่องพิมพ์ 3 มิติ 3 แกนหรือ 5 แกน 3 มิติสำหรับRoboDK วีดีโอดังกล่าวแสดงในภาพรวมของวิธีตั้งค่าเครื่องพิมพ์ 3 มิติด้วย RoboDK ออฟไลน์: watch video.
เครื่องพิมพ์ 3 มิติด้วยหุ่นยนต์เป็นหนึ่งในหลายวิธีต่อไปนี้:
●แปลงโปรแกรม G-code โดยตรง (ไฟล์NC) ถึงโปรแกรมหุ่นยนต์ด้วย RoboDK, ซึ่งแสดงโดยRobot Machining project. อัตราของการไหลวัตถุ(คำสั่งเครื่องอัดรัด E) ได้ถูกนำลงบัญชีอย่างเหมาะสมสำหรับแต่ละการเคลื่อนที่และมันสามารถรวมกันในโปรแกรมที่สร้างขึ้นเป็นProgram Event. G-code เป็นชนิดของไฟล์ NC ที่ถูกสนับสนุนโดย RoboDK และมันยังเป็นรูปแบบทีถูกสนับสนุนโดยเครื่องพิมพ์ 3 มิติ ซอฟต์แวร์เครื่องตัดส่วนใหญ่สามารถสร้าง G-code ที่ให้มาในไฟล์ STL
●เลือกUtilities➔3D Print Projectเพื่อเปิดการตั้งค่าเครื่องพิมพ์ 3 มิติการตั้งค่าเหล่านี้เป็นสิ่งที่เหมือนกับRobot Machining Project, ความแตกต่างเฉพาะคือPath inputการตั้งค่าล่วงหน้า3D print object. เลือกSelect objectเพื่อเลือกวัตถุบนหน้าจอหลักและรับเส้นทางเครื่องมืออย่างอัตโนมัติเลือกเครื่องพิมพ์ 3 มิติเพื่อเปิด Slic3r.
ค่าเริ่มต้น, RoboDK แปลคำสั่งการเรียกโปรแกรม E เป็นโปรแกรมที่เรียกว่าExtruderและให้ค่า E value เป็นค่าพารามิเตอร์เลือกProgram Eventsเพื่อเปลี่ยนลักษณะดังกล่าว
ค่าเครื่องอัดรีด (E) เป็นตัวแทนที่แสดงว่าวัตถุดิบที่จำเป็นต้องอัดรีดก่อนการเคลื่อนที่ ค่านี้สามารถถูกขับเคลื่อนการป้อนเครื่องอัดรีดจากหุ่นยนต์ลงในบัญชีความเร็วหุ่นยนต์และระยะทางระหว่างจุด
อีกทางเลือกหนึ่ง, มันยังสามารถคำนวณการป้อนเครื่องอัดรีดโดยการใช้หน่วยประมวลผลและสร้างโค้ดที่เหมาะสมตามลำดับ ส่วนต่อไปนี้มีตัวอย่างแสดง
ในส่วนนี้แสดงการดัดแปลงหุ่นยนต์post processorเพื่อคำนวณการป้อนเครื่องอัดรัดก่อนการดำเนินการแต่ละการเคลื่อนที่ อีกทางเลือกหนึ่ง, การคำนวณเหล่านี้สามารถถูกทำได้บนหุ่นยนต์ควบคุม
ในขั้นตอนแรกที่จะขัดขวางการเรียกเครื่องอัดรีดและการอ่านค่าเครื่องอัดรีด (ค่า E) จากส่วนของ RunCode ในหน่วยประมวลผล:
def RunCode(self, code, is_function_call = False):
if is_function_call:
if code.startswith("Extruder("):
# Intercept the extruder command.
# if the program call is Extruder(123.56)
# we extract the number as a string
# and convert it to a number
self.NEW_E_LENGTH = float(code[9:-1])
# Skip the program call generation
return
else:
self.addline(code + "()")
else:
# Output program code
self.addline(code)
ค่าเครื่องอัดฉีดถูกบันทึกตัวแปร NEW_E_LENGTH จากนั้น, เราจำเป็นต้องกำหนดขั้นตอนใหม่ซึ่งจะสร้างคำสั่งการป้อนค่าเครื่องอัดรีดอย่างเหมาะสมตามระยะทางระหว่างการเคลื่อนที่,ความเร็วของหุ่นยนต์และความเร่งของหุ่นยนต์ สามารถประมาณได้ว่าการป้อนเครื่องอัดรีดถูกขับเคลื่อนด้วยผลลัพธ์อนาล็อกเฉพาะจากหุ่นยนต์ควบคุม (ตัวเลขผลลัพธ์อนาล็อก 5 ในตัวอย่างนี้)
def new_move(self, pose1, pose2):
if pose1 isNone:
return
def Calculate_Time(Dist, Vmax, Amax):
'''Calculate the time to move Dist with Amax acceleration and Vmax speed'''
tacc = Vmax/Amax;
Xacc = 0.5*Amax*tacc*tacc;
if Dist <=2*Xacc:
# Vmax is not reached
tacc = sqrt(Dist/Amax)
Ttot = tacc*2
else:
# Vmax is reached
Xvmax = Dist -2*Xacc
Tvmax = Xvmax/Vmax
Ttot = 2*tacc + Tvmax
return Ttot
add_material = self.NEW_E_LENGTH - self.LAST_E_LENGTH
self.LAST_E_LENGTH = self.NEW_E_LENGTH
if add_material >0:
distance_mm = norm(subs3(pose1.Pos(), pose2.Pos()))
# calculate movement time in seconds
time_s = Calculate_Time(distance_mm, self.SPEED_MMS, self.ACCEL_MMSS)
# add material
self.setDO(5, (add_material/time_s))
else:
# DO not add material
self.setDO(5,0)
สุดท้าย, พวกเราจำเป็นต้องกระตุ้นคำสั่ง new_move ของแต่ละคำแนะนำการเคลื่อนที่ใหม่ พวกเราสามารถเพิ่มกาเรียกนี้ตั้งแต่เริ่มต้นของคำสั่ง MoveL:
def MoveL(self, pose, joints, conf_RLF=None):
"""Add a linear movement"""
self.new_move(self.LAST_POSE, pose) # used for 3D printing