โมดูล 3/5 · สัปดาห์ 7–9 · 27 ชม.

โดรนในคลังสินค้า

UAT 363 เทคโนโลยีระบบอากาศยานไร้คนขับเพื่อการขนส่งและคลังสินค้าอัจฉริยะ

เวลาเรียนประมาณ 90 นาทีร่าง รอตรวจปรับปรุงล่าสุด 27 กันยายน 2569

บทเรียน

เมื่อเรียนจบโมดูลนี้ ผู้เรียนจะสามารถ

  1. อธิบายการใช้โดรนในคลังสินค้าและความต่างระหว่างการตรวจนับประจำปีกับการตรวจนับแบบหมุนเวียน
  2. วางแผนการบินสแกนชั้นวางและประมาณเวลาที่ใช้
  3. เปรียบเทียบวิธีระบุตำแหน่งในอาคารที่ไม่มี GNSS ได้แก่ VIO, motion capture, UWB และ AprilTag
  4. คำนวณตำแหน่งจากระยะถึงสมอ UWB ด้วยวิธีกำลังสองน้อยที่สุด

ความรู้พื้นฐานที่ควรมี: UAT 363 โมดูล 1–2 · UAT 322 (การนำทางและ SLAM)

ทำไมต้องรู้

คลังเวชภัณฑ์มีสินค้าหลายพันรายการบนชั้นวางสูง การตรวจนับด้วยคนต้องใช้รถยก ใช้เวลานาน และมักต้องหยุดงาน ความคลาดเคลื่อนระหว่างของจริงกับบันทึกทำให้ยาขาดหรือหมดอายุโดยไม่รู้ตัว โดรนที่บินสแกนชั้นวางช่วยนับได้บ่อยขึ้น แต่ในอาคารไม่มีสัญญาณ GNSS โดรนต้องรู้ตำแหน่งตัวเองด้วยวิธีอื่น

โดรนในคลังสินค้า

รายงานของ ETH Zurich (Wawrla และคณะ, 2019) ศึกษาการใช้งานจริง 12 กรณี แบ่งเป็นสามกลุ่ม คือ การจัดการสินค้าคงคลัง การขนย้ายภายในคลัง และการตรวจและเฝ้าระวัง สรุปว่า การจัดการสินค้าคงคลังมีศักยภาพสูงที่สุด ส่วนการขนย้ายภายในคลังยังไม่พร้อมเพราะข้อจำกัดของแบตเตอรี่และน้ำหนักบรรทุก ข้อท้าทายหลักคือพื้นที่บินจำกัด การนำทางในอาคารที่ไม่มี GPS การเชื่อมกับระบบเดิม และความปลอดภัยของแบตเตอรี่

รายงานเดียวกันแยก การตรวจนับประจำปี (stock taking) ที่นับทั้งคลังปีละครั้ง กับ การตรวจนับแบบหมุนเวียน (cycle counting) ที่นับบางส่วนทุกวันหรือทุกสัปดาห์ โดรนเหมาะกับแบบหมุนเวียน เพราะนับซ้ำได้บ่อยโดยไม่หยุดงาน

ภาพมองจากบน ชั้นวางเจ็ดแถวสีเทา ทางเดินหกช่องระหว่างชั้นวาง เส้นสีชมพูแสดงโดรนบินขึ้นลงตามทางเดินทีละช่องแบบไปกลับ
ภาพที่ 1 แนวบินสแกนสต็อกในคลัง

ตัวอย่างที่ 1 จำนวนตำแหน่งและเวลาสแกน

คลังสมมติ: ทางเดิน 6 ช่อง ชั้นวางยาว 40 m แบ่ง 16 ช่อง (bay) สูง 5 ชั้น โดรนสแกนสองฝั่งทางเดินพร้อมกันทีละชั้นที่ 0.5 m/s

import math

AISLES, RACK_M, BAYS, LEVELS = 6, 40.0, 16, 5
SPEED, LEVEL_CHANGE_S, AISLE_CHANGE_S, BATTERY_MIN = 0.5, 10, 30, 15

locations = AISLES * 2 * BAYS * LEVELS
per_aisle_s = LEVELS * RACK_M / SPEED + LEVELS * LEVEL_CHANGE_S
total_s = AISLES * per_aisle_s + (AISLES - 1) * AISLE_CHANGE_S
flights = math.ceil(total_s / 60 / BATTERY_MIN)
print(f"{locations} locations, {per_aisle_s / 60:.1f} min per aisle, "
      f"total {total_s / 60:.1f} min -> {flights} battery flights")
print(f"daily cycle count of one aisle covers {2 * BAYS * LEVELS} locations "
      f"= all {locations} in {AISLES} working days")
960 locations, 7.5 min per aisle, total 47.5 min -> 4 battery flights
daily cycle count of one aisle covers 160 locations = all 960 in 6 working days

การนับทั้งคลังในครั้งเดียวต้องเปลี่ยนแบตเตอรี่หลายครั้ง แต่การนับแบบหมุนเวียนวันละหนึ่งทางเดินใช้เวลาไม่ถึง 15 นาที และครบทั้งคลังทุกสัปดาห์

ระบุตำแหน่งในอาคาร

วิธีหลักการข้อดีข้อจำกัด
VIO (visual-inertial odometry)กล้องบนโดรนร่วมกับ IMU ประมาณการเคลื่อนที่ไม่ต้องติดตั้งอุปกรณ์ในอาคารตำแหน่งคลาดสะสม ผนังเรียบหรือแสงน้อยทำงานยาก
Motion captureกล้องหลายตัวในห้องจับเครื่องหมายบนโดรนแม่นยำสูงมากติดตั้งแพง ใช้ได้ในพื้นที่จำกัด
UWBวัดระยะด้วยคลื่นวิทยุแถบกว้างมากถึงสมอที่รู้ตำแหน่งครอบคลุมพื้นที่กว้างกว่า ไม่ขึ้นกับแสงต้องติดสมอ สิ่งกีดขวางทำให้วัดคลาด
AprilTagป้ายรหัสภาพ (fiducial marker) ที่รู้ตำแหน่งถูกและระบุตัวได้ชัดต้องเห็นป้าย ใช้ช่วยแก้ความคลาดสะสม

คู่มือ PX4 อธิบายการส่งตำแหน่งจากระบบภายนอก (VIO หรือ motion capture) เข้าตัวประมาณสถานะ EKF2 และแนะนำอัตราส่งข้อมูล 30–50 Hz UWB มีมาตรฐาน IEEE 802.15.4z-2020 สำหรับการวัดระยะ งานทบทวนของ Alarifi และคณะ (2016) สรุปว่า UWB ทำงานได้ดีกว่าเทคโนโลยีอื่นในงานระบุตำแหน่งในอาคาร ส่วนความแม่นจริงขึ้นกับการติดตั้งและสภาพแวดล้อม ต้องวัดในพื้นที่จริง ป้าย AprilTag (Olson, 2011) ใช้ทั้งระบุตำแหน่งและเป็นจุดอ้างอิงบนชั้นวาง

ห้องขนาด 20 คูณ 10 เมตร มีสมอ UWB สี่ตัว A1 ถึง A4 ที่มุม เส้นประสีฟ้าจากสมอแต่ละตัวถึงโดรนมีป้าย r1 ถึง r4 แทนระยะที่วัดได้
ภาพที่ 2 หาตำแหน่งจากระยะถึงสมอ UWB

ตัวอย่างที่ 2 หาตำแหน่งจากระยะ UWB ด้วยกำลังสองน้อยที่สุด

ระยะที่วัดได้มีความคลาดเล็กน้อย (ค่าสมมติ) ลบสมการแรกออกจากสมการอื่นจะได้ระบบเชิงเส้น แล้วแก้ด้วยกำลังสองน้อยที่สุด

import math

anchors = [(0, 0), (20, 0), (20, 10), (0, 10)]
true_pos = (7, 4)
noise = [0.05, -0.03, 0.04, -0.02]            # m
ranges = [math.dist(a, true_pos) + e for a, e in zip(anchors, noise)]

(x1, y1), r1 = anchors[0], ranges[0]
rows, rhs = [], []
for (xi, yi), ri in zip(anchors[1:], ranges[1:]):
    rows.append((2 * (xi - x1), 2 * (yi - y1)))
    rhs.append(r1 ** 2 - ri ** 2 + xi ** 2 - x1 ** 2 + yi ** 2 - y1 ** 2)

a11 = sum(r[0] * r[0] for r in rows); a12 = sum(r[0] * r[1] for r in rows)
a22 = sum(r[1] * r[1] for r in rows)
b1 = sum(r[0] * v for r, v in zip(rows, rhs)); b2 = sum(r[1] * v for r, v in zip(rows, rhs))
det = a11 * a22 - a12 * a12
x, y = (a22 * b1 - a12 * b2) / det, (a11 * b2 - a12 * b1) / det
print(f"ranges {[round(r, 2) for r in ranges]}")
print(f"estimate ({x:.2f}, {y:.2f}) m, error {math.dist((x, y), true_pos) * 100:.1f} cm")
ranges [8.11, 13.57, 14.36, 9.2]
estimate (7.01, 4.01) m, error 1.6 cm

การนับด้วยภาพต้องอ่านบาร์โค้ดหรือป้ายบนกล่อง ส่วนงานวิจัย RFly (Ma และคณะ, 2017) ใช้โดรนเป็นตัวถ่ายทอดสัญญาณ RFID เพื่ออ่านและระบุตำแหน่งป้าย RFID ที่ไม่มีแบตเตอรี่ในคลัง ทางเลือกนี้ไม่ต้องเห็นป้ายโดยตรง

ปฏิบัติการประจำโมดูล

ปฏิบัติการ: สแกนชั้นวางจำลอง

  1. จัดชั้นวางจำลองในแล็บ ติดบาร์โค้ดหรือ AprilTag ที่ทุกช่อง
  2. ใช้โค้ดตัวอย่างที่ 1 กับขนาดคลังของโรงพยาบาลหรือของแล็บ วางแผนการนับแบบหมุนเวียน
  3. ติดตั้งระบบระบุตำแหน่งในอาคารที่แล็บมี (UWB หรือ motion capture) ส่งตำแหน่งเข้า PX4 ตามคู่มือ แล้ววัดความคลาดเทียบจุดอ้างอิง
  4. ใช้โค้ดตัวอย่างที่ 2 กับระยะ UWB จริงจากหลายจุด บันทึกความคลาด
  5. บินสแกนด้วยมือหรืออัตโนมัติในพื้นที่ปิด บันทึกอัตราการอ่านป้ายสำเร็จ

ข้อผิดพลาดที่พบบ่อย

ระวัง

  • เปิดโหมดที่พึ่ง GNSS ในอาคาร
  • ไม่ปรับเทียบตำแหน่งสมอ UWB จนตำแหน่งคลาดทั้งระบบ
  • บินใกล้คนและรถยก โดยไม่แยกเวลาหรือพื้นที่
  • เชื่อ VIO นานเกินไป โดยไม่มีจุดอ้างอิงแก้ความคลาดสะสม
  • ไม่ตรวจอัตราการอ่านป้ายสำเร็จ ก่อนสรุปว่าของหาย

สรุป

  • การจัดการสินค้าคงคลังเป็นงานที่เหมาะกับโดรนมากที่สุดตามรายงาน ETH และเหมาะกับการนับแบบหมุนเวียน
  • ประมาณเวลาสแกนจากจำนวนทางเดิน ชั้น และความเร็ว แล้ววางรอบการนับ
  • ในอาคารใช้ VIO, motion capture, UWB หรือ AprilTag ส่งตำแหน่งเข้าตัวควบคุมการบิน
  • ระยะถึงสมอหลายตัวแก้ตำแหน่งได้ด้วยกำลังสองน้อยที่สุด

แบบฝึกตรวจความเข้าใจ

  1. ทางเดิน 4 ช่อง ช่องละสองฝั่ง ฝั่งละ 20 bay 4 ชั้น มีกี่ตำแหน่ง
  2. ชั้นวางยาว 30 m สแกน 4 ชั้นที่ 0.5 m/s ใช้เวลาบินตามแนวกี่นาที
  3. stock taking ต่างจาก cycle counting อย่างไร
  4. ทำไม VIO ต้องมีจุดอ้างอิงเช่น AprilTag
  5. ระบุตำแหน่งสองมิติด้วย UWB ต้องมีสมออย่างน้อยกี่ตัว
เฉลย
  1. ตำแหน่ง
  2. s = 4 นาที
  3. stock taking นับทั้งคลังปีละครั้ง cycle counting นับบางส่วนทุกวันหรือทุกสัปดาห์
  4. ความคลาดของ VIO สะสมตามเวลา จุดอ้างอิงช่วยรีเซ็ตให้ตรง
  5. 3 ตัว (ไม่อยู่บนเส้นตรงเดียวกัน) ตัวที่ 4 ช่วยลดความคลาด

สรุปสูตรสำคัญ

ระยะจากสมอ
สมการเชิงเส้นหลังลบสมการแรก

แหล่งอ้างอิงหลัก

  1. 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
  2. PX4 Autopilot. Using vision or motion capture systems for position estimation. PX4 guide (main). link
  3. Olson, E. (2011). AprilTag: A robust and flexible visual fiducial system. In 2011 IEEE International Conference on Robotics and Automation (pp. 3400–3407). IEEE. link
  4. IEEE. (2020). IEEE standard for low-rate wireless networks — Amendment 1: Enhanced ultra wideband (UWB) physical layers (PHYs) and associated ranging techniques (IEEE Std 802.15.4z-2020). link
  5. Alarifi, A., Al-Salman, A., Alsaleh, M., Alnafessah, A., Al-Hadhrami, S., Al-Ammar, M. A., & Al-Khalifa, H. S. (2016). Ultra wideband indoor positioning technologies: Analysis and recent advances. Sensors, 16(5), 707. link
  6. Ma, Y., Selby, N., & Adib, F. (2017). Drone relays for battery-free networks. In Proceedings of ACM SIGCOMM 2017 (pp. 335–347). ACM. link

อ่านเพิ่มเติม

ศึกษาหน่วยความรู้ที่กำหนดล่วงหน้า ดูสื่อประกอบ และทำ quiz ประจำโมดูล

ในชั้นเรียน / ภาคสนาม

ปฏิบัติการเข้มข้นในแล็บและภาคสนาม บันทึกผลลงสมุดปฏิบัติการ

หลักฐานการเรียนรู้: สมุดปฏิบัติการที่อาจารย์ลงนาม

แบบทดสอบประจำโมดูล

แบบทดสอบนี้ใช้ตรวจความเข้าใจ (formative) ไม่ใช่การสอบเก็บคะแนน

โดเมนความรู้: ขนส่ง ภายในอาคาร และคลังสินค้า · การควบคุม ออโตไพลอต และการนำทาง