Integrated operation of both robots
โปรแกรมการทำงาน
โค้ดส่วนนี้ใช้สำหรับเริ่มการสื่อสารกับหุ่นยนต์ 2 ตัวผ่านโปรโตคอล RTDE ซึ่งเป็นส่วนหนึ่งของซอฟต์แวร์ของ Universal Robots (UR). โปรโตคอล RTDE ช่วยให้สามารถสื่อสารและควบคุมหุ่นยนต์ในเวลาจริงได้:
import rtde_control
: นำเข้าโมดูลrtde_control
ที่ให้ฟังก์ชันสำหรับควบคุมหุ่นยนต์ UR ผ่าน RTDEimport 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) เพื่อจัดการกับการทำงานแบบพร้อมกัน