Programming Implementation : Path Manipulation
Path Manipulation
--------------------------------------------------------------------------------------------------------------------------
>> ในส่วนของการควบคุมหุ่นยนต์ YUMI นั้นทางกลุ่มของผู้จัดทำได้ใช้วิธีติดต่อสื่อสารระหว่าง YUMI กับ Task Planning ด้วยการเชื่อมต่อ Socket โดยมี Main Server สำหรับเป็นสื่อกลางในการติดต่อสื่อสารของ Manipulation, Task Planning, Vision
>>>> Main Server <<<>>> Manipulator Client(YUMIKO_L) <<<>>> YUMI (Server)
<<<>>> Manipulator Client(YUMIKO_R) <<<>>> YUMI (Server)
--------------------------------------------------------------------------------------------------------------------------
>> โดยที่ในการ Implementation ทางโปรแกรมในส่วนของ Manipulator นั้นมีการใช้ภาษาสำหรับเขียนโปรแกรมอยู่ 2 ภาษาด้วยกัน
>>>> ภาษาแรกคือ C# ---> ที่เปิด Socket เพื่อเชื่อมต่อกับ Main Server และ YUMI(Server)
---> จัดเรียงลำดับสำหรับการทำงาน
---> แปลงพิกัดเพื่อให้แต่ละส่วนนั้นใช้ระบบพิกัดฉากเดียวกัน
>>>> ภาษาสองคือ RAPID เขียนโดยใช้ IDE --> RobotStudio ของบริษัท ABB ที่มีความสามารถในการจำลองการทำงานโดยไม่จำเป็นต้องมีหุ่นยนต์ ทำให้ง่ายต่อการพัฒนา
---> จัดเรียงลำดับสำหรับการทำงาน
---> แปลงพิกัดเพื่อให้แต่ละส่วนนั้นใช้ระบบพิกัดฉากเดียวกัน
>>>> ภาษาสองคือ RAPID เขียนโดยใช้ IDE --> RobotStudio ของบริษัท ABB ที่มีความสามารถในการจำลองการทำงานโดยไม่จำเป็นต้องมีหุ่นยนต์ ทำให้ง่ายต่อการพัฒนา
--------------------------------------------------------------------------------------------------------------------------
C# --> Manipulator Client
--------------------------------------------------------------------------------------------------------------------------
>> Manipulator Client นั้นจะประกอบด้วยโปรแกรมาสำหรับควบคุมหุ่นยนต์ YUMI 2 โปรแกรมด้วยกัน เพื่อที่จะแยกโปรแกรมสำหรับแขนซ้ายกับแขนขวา ทำให้ YUMI สามารถทำงานสองแขนพร้อมกันได้
>> โดยที่ใน 1 โปรแกรมของ Client จะประกอบไปด้วย 2 From
>>>> From แรกเป็น From หลักที่ใช้สำหรับติดต่อระหว่าง YUMI กับ Main Server
>>>> From แรกเป็น From หลักที่ใช้สำหรับติดต่อระหว่าง YUMI กับ Main Server
>>>> Form ที่สองเป็น Form สำการควบคุมหุ่นยนต์ YUMI แบบ Maunal ในการหาค่าพิกัดต่างๆ
--------------------------------------------------------------------------------------------------------------------------
RAPID --> YUMI(Server)
--------------------------------------------------------------------------------------------------------------------------
>> YUMI นั้นถูกเขียนด้วยภาษา RAPID ที่เป็นภาษาเฉพาะใช้สำหรับหุ่นยนต์อุตสาหกรรม โดยที่คำสั่งหลักๆที่ใช้จะมีอยู่สองส่วนด้วยกัน
>>>> ส่วนแรกจะเป็นเกี่ยวกับติดต่อสื่อสารผ่าน Socket กับ Computer และตัดคำเพื่อใช้ในฟังก์ชันต่างๆ
>>>> ส่วนที่สองจะเป็นการเข้าเงื่อนไขและทำตามเงื่อนไขต่างๆ คำสั่งหลักๆที่ใช้คือ MoveL MoveJ MoveAbs
>>>>>>>>>>>>>>>>>>> (case 96 ใน code) ConfJ On: ทำการเปิด config ในโหมด joint และสั่งให้หุ่นยนต์เคลื่อนที่ไปยังตำแหน่งก่อนกลับไปที่ตำแหน่ง HOME ด้วย MoveL จากนั้นสั่งให้หุ่นยนต์กลับตำแหน่ง HOME ด้วย MoveAbsJ
>>>> ส่วนแรกจะเป็นเกี่ยวกับติดต่อสื่อสารผ่าน Socket กับ Computer และตัดคำเพื่อใช้ในฟังก์ชันต่างๆ
>>>> ส่วนที่สองจะเป็นการเข้าเงื่อนไขและทำตามเงื่อนไขต่างๆ คำสั่งหลักๆที่ใช้คือ MoveL MoveJ MoveAbs
----------------------------------------------------------------------------------------------------------
Code สำหรับการควบคุม YUMI
------------------------------------------------------------------
https://drive.google.com/drive/folders/0BxIRZ7vbyrfYX2lMbnBzay12WTQ?usp=sharing
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
ปัญหาที่พบระหว่างการทำ / และวิธีแก้ไขปัญหา
----------------------------------------------------------------------------------------------------------
>>> ปัญหาหลักเลยคือ Configuration ของ YUMI เนื่องจากหุ่นยนต์มี 7 แกน แต่พอเวลาเราสั่ง moveL เราจะสั่งแค่ 6 ตัวแปรคือตำแหน่ง Px Py Pz และ การหมุน Rx Ry Rz ทำให้จำเป็นต้องกำหนดค่าของตัวแปรแกนนึงให้มีค่าคงที่ โดยใช้คำสั่งดังนี้
>>>>>>>>>>>>>>>>>>> externalAxis := [-169,9E+09,9E+09,9E+09,9E+09,9E+09];
>>>>>>>>>>>>>>>>>>> cartesianTarget := [[params{1},params{2},params{3}],Target.rot,currentConf,externalAxis];
>>>>>>>>>>>>>>>>>>> MoveL cartesianTarget, V500 , fine ,tool0;
>>> ปัญหาเรื่องท่าของหุ่นยนต์ ทุกครั้งก่อนจะเริ่มทำงานควรให้หุ่นยนต์กลับไปยังจุด HOME ก่อนเพื่อทำการตั้งค่า config ในกรณีนี้ทางผู้จัดทำได้เขียนโปรแกรมรับคำสั่งให้หุ่นยนต์กลับไปยังตำแหน่ง HOME และ WORK เพื่อใช้เป็นท่าเตรียมในการทำงาน>>>>>>>>>>>>>>>>>>> (case 96 ใน code) ConfJ On: ทำการเปิด config ในโหมด joint และสั่งให้หุ่นยนต์เคลื่อนที่ไปยังตำแหน่งก่อนกลับไปที่ตำแหน่ง HOME ด้วย MoveL จากนั้นสั่งให้หุ่นยนต์กลับตำแหน่ง HOME ด้วย MoveAbsJ
ความคิดเห็น
แสดงความคิดเห็น