Path Planning
Path Planning
เริ่มต้นกำหนดโจทย์ให้กับ ABB YUMI จากนั้นทำการเช็คสีและรูปร่างที่โจทย์ต้องการในพื้นที่ Store ถ้ามีก็นำชิ้นงานไปประกอบได้เลยแต่ถ้าไม่มี จะทำการขอข้อมูลสีจาก PATH VISION ก่อนซึ่ง PATH VISION จะทำการตรวจสอบสี และจะส่งจำแหน่งของ สีที่เราต้องการ กลับไปยัง PATH PLANNING โดยลำดับการเลือกชิ้นงานจะทำตามลำดับที่บึนทึกไว้ในโจทย์ เมื่อได้ตำแหน่งของสีแล้วจะทำการส่ง โปรโตคอลไปยัง PATH MANIPULATION เพื่อทำการจับชิ้นงานไปยังพื้นที่ตรวจจับรูปร่าง PATH PLANNING จะทำการขอข้อมูลจาก PATH VISION อีกครั้งเพื่อทำการตรวจสอบรูปร่างว่าตรงตามที่โจทย์ต้องการหรือไม่ ถ้าตรงจะทำไปในพื้นที่การประกอบเลย แต่ถ้าไม่ตรงจะทำการเคลื่อนที่ชิ้นงานไปยังพื้นที่ Store ทันทีและทำการค้นหาสีและรูปร่างใหม่อีกครั้งนึง ซึ่งลักษณะการทำงานจะเป็นไปตาม flowchart ภาพที่ 1
ภาพที่ 1 Flowchart
ภาพที่ 2 UI
จากรูปที่ 2 ผู้ใช้สามารถเลือกรูปร่างของชิ้นงานที่ต้องการนำมาประกอบได้ในช่อง Shape และสามารถเลือกสีของชิ้นงานที่ต้องการในช่อง Color
จากนั้นเลือก Layer เพื่อระบุว่าต้องการวางชิ้นงานซ้อนกันกี่ชั้นในแต่ละตำแหน่ง ส่วนการระบุตำแหน่งที่ต้องการนำชิ้นงานไปวาง ผู้ใช้สามารถคลิกที่กริดใด ๆ ในตารางสี่เหลี่ยมได้เลย จากนั้นคลิก ADD TO ITEM LIST คำสั่งของชิ้นงานที่กำหนดโดยผู้ใช้แต่ละชิ้นจะไปปรากฏบนช่อง Item list จากนั้นคลิก SEND COMMAND
Task Planning Performance
- สามารถสั่งการให้มีการจัดเรียงซ้อนกันได้
- สามารถเลือกตำแหน่งสำหรับจัดวางวัตถุได้ และเลื่อนแสดงสีตามตำแหน่งที่มีวัตถุวางอยู่
- สามารถเลือกตำแหน่งการจัดวางของวัตถุรูปทรงต่างๆ ได้ว่าจะให้อยู่ทางด้านซ้ายหรือขวาของช่องกริด
- สามารถหมุนวัตถุให้จัดวางอยู่ในแนวตั้งหรือแนวนอนของช่องกริดได้
หลักการทำงาน
ส่วนของ Layer
ในส่วนนี้จะถูกเรียกให้ทำงานเมื่อมีการเปลี่ยนค่าของ Slider หรือที่เรียกว่า On Value Change Event และการปรับค่าของ Layer คือการปรับค่าแกน Z ซึ่งวัตถุ 1 ชิ้นจะกำหนดว่ามีความสูงที่ 20 มิลลิเมตร จึงกำหนดสูตรคำนวณในส่วนของ Layer แก่ค่า Z ดังนี้ Z = layerSlider.Value * 20; เพื่อนำจำนวนชั้นของ Layer ที่ระบุถูกแปลงเป็นค่าความสูงของแกน Z
ส่วนการเลือกรูปแบบวัตถุและสี
เป็นการเลือกเพื่อนำคำสั่งที่ได้เตรียมส่งไปยังส่วนของ Vision
ส่วนของการระบุตำแหน่งพิกัด X, Y
มีการทำงานสัมพันธ์กันกับ Layer เนื่องจากว่า Layer เป็นแกน Z และเพื่อป้องกันไม่ไห้เกิดการโยนวัตถุลงสู่พื้นที่การทำงาน (workspace) จึงต้องมีการกันบั๊กในส่วนนี้ด้วย ซึ่งการทำงานส่วนนี้จะนำค่าที่ได้เก็บไว้เป็นตัวแปรชนิด Array เพื่อให้ข้องมูลการ input แต่ละครั้งของวัตถุถูกเก็บไว้เป็นชุด เพื่อง่ายต่อการจัดการระบบเพื่อให้ค้นหาสีและรูปแบบวัตถุที่ผู้ใช้ต้องการเมื่อคลิกที่ปุ่มใดๆ ในส่วนนี้ ระบบจะทำการเรียก event เพื่อดึงค่าพิกัด x, y เริ่มต้นขึ้นมา จากนั้นจะนำค่าที่ได้เก็บลงในตัวแปรชื่อ inputPositionX[] และ inputPositionY[]
ส่วนของการจัดตำแหน่งและการหมุน (Adjust & Orientation)
ส่วนนี้จะมีการคำนวณตำแหน่งพิกัด X, Y และการหมุนTHETAเพื่อส่งค่าการทำงานไปยัง Manipulatorโดยการจัดวางแต่ละแบบจะมีพิกัดที่แตกต่างกัน โดยหลักการคำนวณแสดงดังภาพด้านล่าง
ส่วนของปุ่ม ADD TO ITEM LIST
เมื่อปุ่มนี้ถูกกด จะมีการทำงานเกิดขึ้น 2 ส่วนคือ
- ค่าของตัวแปร inputCounter จะเพิ่มขึ้นครั้งละ 1
- ทำการล้างค่าและพิมพ์ค่าออกมาจากตัวแปรของวัตถุ 1 ชิ้นใน Item List
ส่วนของปุ่ม SEND COMMAND
เมื่อปุ่มถูกกดจะเป็นการเริ่มส่งคำสั่งไปยัง Vision และ Manipulatorโดยจะเริ่มจากการส่งไปให้ Vision เพื่อให้ตรวจสอบหาตำแหน่งของสีที่ต้องการ เมื่อ Vision ได้ส่งตำแหน่งเป้าหมายกลับมาโดยประกอบด้วยพิกัดของแกน X, Y, Z
เมื่อ Task Planning ได้รับแล้วจะทำการส่งคำสั่งไปยัง Manipulator พร้อมระบุพิกัดต้นทางและปลายทาง เพื่อย้ายตำแหน่งของวัตถุไปยังตำแหน่งสำหรับตรวจสอบรูปร่างของวัตถุ
หลังจากที่ Manipulator ได้ Return กลับมา
Task Planning จะทำการส่งคำสั่งต่อไปยัง Vision อีกครั้ง เพื่อให้ตรวจสอบรูปร่างของวัตถุว่าเป็นวัตถุที่ต้องการหรือไม่ โดยแบ่งเป็นสองเงื่อนไขดังนี้
หลังจากที่ Vision ตรวจสอบเสร็จจะทำการ Return ค่ารูปร่างของวัตถุที่ตรวจสอบได้, พิกัด X, Y, Z, และมุมมายัง Task Planning จากนั้น Task Planningจะทำการตรวจสอบว่ารูปร่างนั้นตรงกับที่ Input หรือไม่ โดยแบ่งออกเป็น 2 เงื่อนไขดังนี้
หากใช่
Task Planning จะทำการส่งคำสั่งและพิกัดต้นทาง, ปลายทาง และองศาหมุนไปยัง Manipulator เพื่อย้ายวัตถุจากจุดตรวจสอบรูปร่างไปยังตำแหน่งใน Workspace ที่ Input
หากไม่ใช่
Task Planning จะทำการส่งคำสั่งและพิกัดต้นทาง, ปลายทาง และองศาหมุนไปยัง Manipulator เพื่อย้ายวัตถุจากจุดตรวจสอบรูปร่างไปยังตำแหน่งใน Inventory ที่ถูกจัดเตรียมไว้เพื่อเก็บไว้ใช้ในครั้งต่อไปหากมีการเรียกใช้วัตถุที่มีรูปแบบตรงกันทุกประการ หลังจากวัตถุถูกเก็บใน Inventory เรียบร้อย Task Planning จะทำการส่งคำสั่งไปยัง Vision เพื่อหาสีที่ Input และทำตามขั้นตอนดังที่กล่าวมาก่อนหน้านี้
หลังจากที่วัตถุถูกวางในตำแหน่ง Workspace ที่ input เรียบร้อย Task Planning จะทำการเริ่มส่งคำสั่งไปยัง Vision อีกครั้งเพื่อทำการจัดวางสำหรับวัตถุชิ้นถัดไป
ความคิดเห็น
แสดงความคิดเห็น