Integrated operation of both robots

Integrated operation of both robots

โปรแกรมการทำงาน

โค้ดส่วนนี้ใช้สำหรับเริ่มการสื่อสารกับหุ่นยนต์ 2 ตัวผ่านโปรโตคอล RTDE ซึ่งเป็นส่วนหนึ่งของซอฟต์แวร์ของ Universal Robots (UR). โปรโตคอล RTDE ช่วยให้สามารถสื่อสารและควบคุมหุ่นยนต์ในเวลาจริงได้:

  • import rtde_control: นำเข้าโมดูล rtde_control ที่ให้ฟังก์ชันสำหรับควบคุมหุ่นยนต์ UR ผ่าน RTDE
  • import time: นำเข้าโมดูล time สำหรับการทำงานที่เกี่ยวข้องกับเวลา, เช่น เพิ่มการหน่วงเวลาระหว่างคำสั่ง
  • rtde_c_20 = rtde_control.RTDEControlInterface("192.168.200.20"): เริ่มต้นการสื่อสารกับหุ่นยนต์ที่มี IP 192.168.200.20 โดยสร้างอินสแตนซ์ rtde_c_20 สำหรับการส่งคำสั่งไปยังหุ่นยนต์ตัวนี้
  • rtde_c_10 = rtde_control.RTDEControlInterface("192.168.200.10"): เช่นเดียวกัน, สร้างอินสแตนซ์ rtde_c_10 สำหรับควบคุมหุ่นยนต์อีกตัวที่มี IP 192.168.200.10

สรุป: โค้ดนี้จัดตั้งการเชื่อมต่อเพื่อควบคุมหุ่นยนต์ UR 2 ตัวผ่าน IP ที่กำหนด ทำให้สามารถสั่งงานและควบคุมหุ่นยนต์ได้ในเวลาจริง

ฟังก์ชัน move_robot_20() (หุ่นยนต์ตัวซ้าย) และ move_robot_10() (หุ่นยนต์ตัวขวา) ถูกออกแบบมาเพื่อควบคุมการเคลื่อนที่ของหุ่นยนต์ 2 ตัวในลำดับที่แตกต่างกัน โดยแต่ละฟังก์ชันจะมีลำดับการเคลื่อนที่หรือการทำงานที่เฉพาะเจาะจงสำหรับหุ่นยนต์นั้นๆ:

  • move_robot_20(): ควบคุมหุ่นยนต์ตัวแรก (หุ่นยนต์ที่มี IP 192.168.200.20) โดยมีขั้นตอนการเคลื่อนไหวเริ่มต้นจากตำแหน่ง “HOME”, ไปยังตำแหน่ง “buffer”, ตำแหน่ง “Cam” สำหรับการมองหา, กลับไปที่ “buffer”, จากนั้นเตรียมพร้อม “pick up” และสุดท้ายคือการส่งหรือวางสิ่งของในตำแหน่งที่กำหนด
  • move_robot_10(): ควบคุมหุ่นยนต์ตัวที่สอง (หุ่นยนต์ที่มี IP 192.168.200.10) โดยเริ่มจากตำแหน่ง “HOME”, และทำการเคลื่อนไปยังตำแหน่งต่างๆ เพื่อ “GET” สิ่งของ, จากนั้นเคลื่อนไปยัง “Basket_1 Position_1” และกลับมาที่ตำแหน่ง “HOME”

การเรียกใช้ move_robot_20() และ move_robot_10() ต่อจากกันแบบนี้จะทำให้การเคลื่อนไหวของหุ่นยนต์ทั้งสองเกิดขึ้นแบบต่อเนื่องกัน หากต้องการให้หุ่นยนต์ทั้งสองทำงานพร้อมกัน จำเป็นต้องใช้เทคนิคการเขียนโค้ดแบบมัลติเธรดหรือการประมวลผลแบบพร้อมกัน (concurrency) เพื่อจัดการกับการทำงานแบบพร้อมกัน