การประยุกต์ในคลังสินค้าและอุตสาหกรรม
UAT 366 ระบบอากาศยานไร้คนขับอัตโนมัติภายในอาคารและระบบอากาศยานไร้คนขับหลายลำ
บทเรียน
เมื่อเรียนจบโมดูลนี้ ผู้เรียนจะสามารถ
- แบ่งงานสแกนทางเดินให้โดรนหลายลำด้วยกฎ LPT และเทียบกับค่าต่ำสุด
- ตรวจช่วงเวลาทับกันระหว่างโซนโดรนกับงานของรถยกและคน
- ออกแบบผังโซน แท่นชาร์จ และกฎปฏิบัติการในคลังของโรงงาน
- ประเมินข้อกำหนดด้านความปลอดภัยและกฎการบินสำหรับการบินในอาคาร
ทำไมต้องรู้
โรงงานต้องการให้การนับสต็อกเสร็จก่อนกะเช้าเริ่ม ถ้าแบ่งงานไม่ดี ลำหนึ่งทำงานนานกว่าลำอื่นมาก ทุกคนต้องรอลำช้าสุด และถ้าโดรนบินเข้าทางเดินขณะรถยกกำลังทำงาน อาจเกิดอุบัติเหตุ โมดูลนี้รวมทุกอย่างที่เรียนเป็นระบบปฏิบัติการจริงในคลังของโรงงาน
แบ่งงานด้วยกฎ LPT
การแบ่งงานที่มีเวลาต่างกันให้เครื่องเหมือนกัน เครื่องให้เสร็จเร็วที่สุด (makespan น้อยที่สุด) เป็นปัญหาที่ยาก กฎ LPT (longest processing time first) เรียงงานจากยาวไปสั้น แล้วให้งานถัดไปแก่เครื่องที่ว่างเร็วที่สุด Graham (1969) พิสูจน์ว่ากฎนี้ให้ผลไม่เกิน เท่าของค่าที่ดีที่สุด
ตัวอย่างที่ 1 แบ่งทางเดิน 8 ช่องให้โดรน 3 ลำ
เวลาสแกนแต่ละทางเดินสมมติเป็นนาที
from itertools import product
aisles = [14, 12, 11, 9, 8, 7, 6, 5]
M = 3
loads, plan = [0] * M, [[] for _ in range(M)]
for idx, t in sorted(enumerate(aisles, 1), key=lambda x: -x[1]):
k = loads.index(min(loads))
loads[k] += t
plan[k].append(f"A{idx}")
lpt = max(loads)
best = min(max(sum(t for t, a in zip(aisles, asg) if a == k) for k in range(M))
for asg in product(range(M), repeat=len(aisles)))
lower = max(sum(aisles) / M, max(aisles))
for k in range(M):
print(f"D{k + 1}: {plan[k]} = {loads[k]} min")
print(f"LPT makespan {lpt} min, optimum {best} min, lower bound {lower:.1f} min")
print(f"LPT / optimum = {lpt / best:.3f} (Graham bound {4 / 3 - 1 / (3 * M):.3f})")
D1: ['A1', 'A6'] = 21 min
D2: ['A2', 'A5', 'A7'] = 26 min
D3: ['A3', 'A4', 'A8'] = 25 min
LPT makespan 26 min, optimum 25 min, lower bound 24.0 min
LPT / optimum = 1.040 (Graham bound 1.222)
LPT ช้ากว่าค่าที่ดีที่สุดเพียง 1 นาที และอยู่ในขอบเขตของ Graham การค้นทุกทางทำได้เพราะงานน้อย (3⁸ = 6,561 แบบ) แต่คลังจริงอาจมีหลายร้อยทางเดิน LPT จึงเป็นทางเลือกที่ดีและอธิบายได้
แยกโดรนกับรถยกและคน
วิธีที่ปลอดภัยที่สุดคือ แยกด้วยเวลาและพื้นที่ ให้โดรนบินเฉพาะเมื่อทางเดินนั้นไม่มีรถยกหรือคน ระบบบริหารคลังรู้ว่ารถยกจะเข้าทางเดินใดเมื่อใด จึงใช้ตรวจตารางได้ก่อนบิน
ตัวอย่างที่ 2 ตรวจตารางโดรนกับงานรถยก
drone_slots = {"A1": (0, 14), "A2": (0, 12), "A3": (0, 11), "A4": (11, 20), "A5": (12, 20)}
forklift = [("A4", 18, 25), ("A2", 30, 40), ("A5", 5, 10)] # ทางเดิน, เริ่ม, จบ (นาที)
BUFFER = 2 # นาทีเผื่อระหว่างงาน
for aisle, f0, f1 in forklift:
d0, d1 = drone_slots.get(aisle, (None, None))
if d0 is None:
continue
clash = d0 < f1 + BUFFER and f0 < d1 + BUFFER
print(f"{aisle}: drone {d0}-{d1} min, forklift {f0}-{f1} min -> {'CONFLICT' if clash else 'ok'}")
A4: drone 11-20 min, forklift 18-25 min -> CONFLICT
A2: drone 0-12 min, forklift 30-40 min -> ok
A5: drone 12-20 min, forklift 5-10 min -> ok
A4 ทับกับรถยก ต้องเลื่อนงานใดงานหนึ่ง ส่วน A5 ห่างจากงานรถยกพอดีตามระยะเผื่อ
ความปลอดภัยและข้อกำหนด
- ระบบในตัวควบคุมการบิน เปิด Collision Prevention (โมดูล 3) ตั้ง geofence ของห้อง และพฤติกรรมเมื่อสูญเสียตำแหน่ง เช่น ลงจอดทันทีแทนการกลับฐานที่ต้องใช้ตำแหน่ง
- แท่นชาร์จ วางในพื้นที่แยก ห่างวัสดุติดไฟ และคำนวณจำนวนให้พอกับรอบบิน (โมดูล 1 ของ UAT 364)
- การประเมินความเสี่ยง ใช้เมทริกซ์โอกาสกับความรุนแรงตามแนวทาง SMS ของ ICAO (UAT 362) โดยคิดผลต่อคนงาน สินค้า และระบบดับเพลิง
- กฎการบินในอาคาร ไม่พบประกาศของ กพท. ที่ระบุชัดว่าการบินภายในอาคารปิดอยู่ในข้อกำหนดหรือไม่ ทีมควรสอบถาม กพท. ผ่าน UAS Portal และทำตามข้อกำหนดความปลอดภัยของโรงงานเสมอ
รายงานของ ETH Zurich (Wawrla และคณะ, 2019) ระบุความปลอดภัยของแบตเตอรี่และการเชื่อมกับระบบเดิมเป็นข้อท้าทายหลักของโดรนในคลัง ระบบที่ออกแบบดีจึงต้องจัดการทั้งสองเรื่องตั้งแต่ต้น
ปฏิบัติการประจำโมดูล
ปฏิบัติการ: แผนปฏิบัติการนับสต็อกหลายลำ
- วัดเวลาสแกนต่อทางเดินในห้องปฏิบัติการ ใช้โค้ดตัวอย่างที่ 1 แบ่งงานให้สองถึงสามลำ
- สร้างตารางงานรถยกสมมติ ตรวจด้วยโค้ดตัวอย่างที่ 2 แล้วปรับตารางจนไม่มีงานทับกัน
- วาดผังโซน ตำแหน่งแท่นชาร์จ ทางหนีไฟ และพื้นที่ห้ามบิน
- เขียนการประเมินความเสี่ยงและพฤติกรรมเมื่อสูญเสียตำแหน่ง แบตเตอรี่ต่ำ และการสื่อสารขาด
- ทดสอบทั้งระบบในห้องปฏิบัติการ บันทึกเวลาเสร็จจริงเทียบกับแผน
ข้อผิดพลาดที่พบบ่อย
ระวัง
- แบ่งงานเท่ากันตามจำนวนทางเดิน โดยไม่ดูเวลาของแต่ละทางเดิน
- ไม่เผื่อเวลาระหว่างงานโดรนกับรถยก
- ตั้งให้กลับฐานเมื่อสูญเสียตำแหน่ง ทั้งที่การกลับฐานต้องใช้ตำแหน่ง
- ชาร์จแบตเตอรี่ใกล้สินค้าติดไฟ
- ถือว่าในอาคารไม่มีข้อกำหนดใด
สรุป
- กฎ LPT แบ่งงานได้ใกล้ค่าที่ดีที่สุด และมีขอบเขตรับประกันของ Graham
- แยกโดรนกับรถยกและคนด้วยเวลาและพื้นที่ ตรวจตารางก่อนบินพร้อมระยะเผื่อ
- ระบบต้องมีการหลบหลีก geofence พฤติกรรมเมื่อสูญเสียตำแหน่ง และแท่นชาร์จที่ปลอดภัย
- สอบถาม กพท. เรื่องการบินในอาคาร และทำตามข้อกำหนดของโรงงาน
แบบฝึกตรวจความเข้าใจ
- งาน 10, 8, 6, 4 นาที โดรน 2 ลำ ใช้ LPT ได้ makespan เท่าใด
- ขอบเขตของ Graham สำหรับ 2 ลำเท่าใด
- งานรวม 60 นาที งานยาวสุด 15 นาที โดรน 3 ลำ ขอบล่างของเวลาเสร็จเท่าใด
- โดรน 10–20 นาที รถยก 21–30 นาที ระยะเผื่อ 2 นาที ทับกันหรือไม่
- ทำไมการกลับฐานอัตโนมัติจึงไม่เหมาะเมื่อสูญเสียตำแหน่งในอาคาร
เฉลย
- 10 → ลำ 1, 8 → ลำ 2, 6 → ลำ 2 (รวม 14), 4 → ลำ 1 (รวม 14) makespan 14 นาที
- นาที
- ทับ เพราะ 10 < 30 + 2 และ 21 < 20 + 2
- การกลับฐานต้องรู้ตำแหน่ง เมื่อสูญเสียตำแหน่งจึงควรลงจอดทันที
สรุปสูตรสำคัญ
| ขอบเขตของกฎ LPT | |
| ขอบล่างของเวลาเสร็จ |
แหล่งอ้างอิงหลัก
- Graham, R. L. (1969). Bounds on multiprocessing timing anomalies. SIAM Journal on Applied Mathematics, 17(2), 416–429. link
- Wawrla, L., Maghazei, O., & Netland, T. (2019). Applications of drones in warehouse operations (White paper). ETH Zurich, D-MTEC, Chair of Production and Operations Management. link
- Chung, S.-J., Paranjape, A. A., Dames, P., Shen, S., & Kumar, V. (2018). A survey on aerial swarm robotics. IEEE Transactions on Robotics, 34(4), 837–855. link
- PX4 Autopilot. Collision prevention. PX4 user guide (main). link
- International Civil Aviation Organization. (2018). Safety management manual (Doc 9859, 4th ed.). link
- สำนักงานการบินพลเรือนแห่งประเทศไทย. (2569). ประกาศ กพท. เรื่อง หลักเกณฑ์และวิธีการในการอนุญาตให้ผู้บังคับหรือปล่อยอากาศยานซึ่งไม่มีนักบิน ประเภทอากาศยานที่ควบคุมการบินจากภายนอก ที่มีน้ำหนักไม่เกิน 25 กิโลกรัม ปฏิบัติแตกต่างไปจากเงื่อนไขที่กำหนด พ.ศ. 2569 (มีผล 17 พฤษภาคม 2569). link
อ่านเพิ่มเติม
ศึกษาหน่วยความรู้ที่กำหนดล่วงหน้า ดูสื่อประกอบ และทำ quiz ประจำโมดูล
ในชั้นเรียน / ภาคสนาม
ปฏิบัติการเข้มข้นในแล็บและภาคสนาม บันทึกผลลงสมุดปฏิบัติการ
หลักฐานการเรียนรู้: สมุดปฏิบัติการที่อาจารย์ลงนาม