การปฏิบัติการอัตโนมัติ
DRT 342 การวางแผนภารกิจ การปฏิบัติการอัตโนมัติ และการบินนอกระยะสายตา
บทเรียน
เมื่อเรียนจบโมดูลนี้ ผู้เรียนจะสามารถ
- อธิบายโครงสร้างภารกิจอัตโนมัติด้วยคำสั่ง MAVLink และโหมดการบิน
- เปรียบเทียบพฤติกรรม RTL และ geofence ของ PX4 และ ArduPilot
- ตั้งค่า failsafe โดยอิงการประเมินความเสี่ยง ไม่ใช้ค่าเริ่มต้นโดยไม่ตรวจ
- คำนวณพลังงานสำหรับ RTL และระยะเผื่อของ geofence
- วางขั้นตอนทดสอบภารกิจใน SITL และการติดตามภารกิจขณะบิน
ทำไมต้องรู้
ในภารกิจอัตโนมัติ ผู้บังคับไม่ได้ขยับคันบังคับทุกวินาที แต่ ออโตไพลอตทำตามคำสั่งที่เราเขียนไว้ล่วงหน้า รวมถึงคำสั่งว่าจะทำอะไรเมื่อเกิดเหตุผิดปกติ ถ้าตั้งค่าผิด โดรนจะ “ทำผิดอย่างแม่นยำ” เช่น บินกลับจุดขึ้นที่ความสูงต่ำกว่ายอดต้นไม้ หรือบินต่อไปเรื่อย ๆ หลังสัญญาณจากสถานีขาด
ออโตไพลอตเปรียบเหมือนคนขับรถที่ขับตามแผนที่นำทางอย่างเคร่งครัด ขับได้ดีมาก แต่จะขับตามเส้นทางที่ตั้งไว้แม้เส้นทางนั้นจะผิด ผู้วางแผนจึงต้องรับผิดชอบทั้งเส้นทางและกติกาเมื่อเกิดเหตุ
ภารกิจอัตโนมัติคือรายการคำสั่ง
ทั้ง PX4 และ ArduPilot เก็บภารกิจเป็นรายการ mission item ตามโปรโตคอล MAVLink สถานีควบคุม (GCS) เช่น QGroundControl หรือ Mission Planner ใช้สร้าง แก้ไข อัปโหลด และติดตามภารกิจ
| คำสั่ง MAVLink | รหัส | ความหมาย |
|---|---|---|
MAV_CMD_NAV_TAKEOFF | 22 | ขึ้นบินถึงความสูงที่กำหนด |
MAV_CMD_NAV_WAYPOINT | 16 | บินไปยังพิกัดและความสูง |
MAV_CMD_NAV_LOITER_TIME | 19 | บินวนหรือลอยรอ ณ ตำแหน่งตามเวลาที่กำหนด |
MAV_CMD_DO_CHANGE_SPEED | 178 | เปลี่ยนความเร็ว |
MAV_CMD_NAV_RETURN_TO_LAUNCH | 20 | กลับจุดขึ้น |
MAV_CMD_NAV_LAND | 21 | ลงจอด |
คำสั่งกลุ่ม NAV กำหนดการเคลื่อนที่ ส่วนกลุ่ม DO สั่งให้ทำบางอย่างระหว่างทาง เช่น เปลี่ยนความเร็วหรือสั่งกล้องถ่ายภาพ ความสูงของ waypoint ต้องระบุกรอบอ้างอิงให้ชัด เช่น สูงจากจุดขึ้น หรือสูงจากระดับน้ำทะเล เพราะในพื้นที่ลาดชันหรือภูเขา สองค่านี้ต่างกันมาก
สถานะของภารกิจและ failsafe
ชื่อโหมดต่างกันเล็กน้อยระหว่างสองระบบ เช่น ArduPilot ใช้ AUTO, GUIDED, LOITER, RTL, LAND ส่วน PX4 ใช้ Mission, Hold, Return, Land แต่แนวคิดเหมือนกัน คือเมื่อเกิดเหตุตามเงื่อนไข ออโตไพลอตจะเปลี่ยนโหมดเองตามที่ตั้งค่าไว้
ค่าเริ่มต้นที่ต้องรู้
ตารางนี้ตรวจจากเอกสารพารามิเตอร์ของ PX4 (สาขาหลัก) และซอร์สโค้ด ArduPilot Copter 4.6.3 เมื่อ 26 กันยายน 2569 ค่าเปลี่ยนได้ตามรุ่น ต้องตรวจเอกสารของรุ่นที่ใช้จริงทุกครั้ง
| เรื่อง | PX4 | ArduPilot Copter |
|---|---|---|
| failsafe เมื่อลิงก์ GCS ขาด | NAV_DLL_ACT = 0 ปิดอยู่ รอ COM_DL_LOSS_T = 10 s | FS_GCS_ENABLE = 0 ปิดอยู่ รอ FS_GCS_TIMEOUT = 5 s |
| failsafe เมื่อรีโมตขาด | NAV_RCL_ACT = 2 (Return) รอ 0.5 s | ตั้งด้วยพารามิเตอร์กลุ่ม FS_THR_* |
| แบตเตอรี่ต่ำ | เกณฑ์ 15% / 7% / 5% (BAT_LOW_THR, BAT_CRIT_THR, BAT_EMERGEN_THR) | BATT_FS_LOW_ACT = 0 เตือนอย่างเดียว |
| geofence | GF_ACTION = 2 (Hold) ระยะแนวนอนและแนวดิ่ง = 0 คือปิด | FENCE_ENABLE = 0 ปิด เมื่อเปิดใช้ รัศมี 300 m สูงสุด 100 m แล้ว RTL หรือ Land |
| ความสูง RTL | RTL_RETURN_ALT = 60 m | RTL_ALT = 1500 cm (15 m) รุ่น 4.8 เปลี่ยนชื่อเป็น RTL_ALT_M |
ข้อสังเกตที่สำคัญคือ failsafe เมื่อลิงก์ GCS ขาดถูกปิดไว้เป็นค่าเริ่มต้นในทั้งสองระบบ ภารกิจอัตโนมัติที่ไม่ได้ตั้งค่านี้จะบินตามภารกิจต่อไปแม้สถานีมองไม่เห็นเครื่องแล้ว ซึ่งอาจเป็นสิ่งที่ต้องการหรืออันตรายก็ได้ ขึ้นกับการประเมินความเสี่ยง
Return-to-Launch (RTL)
RTL ของ ArduPilot Copter จะไต่ถึง RTL_ALT ถ้าอยู่ต่ำกว่า (ถ้าอยู่สูงกว่าจะคงความสูงเดิม) บินกลับ บินวนรอเหนือจุด Home ตาม RTL_LOIT_TIME (ค่าเริ่มต้น 5 s) แล้วลงจอด ส่วน Return ของ PX4 ไต่ถึง RTL_RETURN_ALT บินกลับ ลดระดับถึง RTL_DESCEND_ALT (30 m) แล้วลงจอด
RTL ไม่ใช่คำตอบที่ปลอดภัยเสมอ ถ้าความสูง RTL ต่ำกว่าอาคารหรือต้นไม้ในแนวกลับ หรือจุด Home มีคนเข้ามาอยู่แล้ว RTL อาจอันตรายกว่าการลงจอดทันที การเลือกจึงต้องมาจากการประเมินพื้นที่ในโมดูล 1
ตัวอย่างที่ 1 พลังงานที่ต้องเหลือไว้สำหรับ RTL
โดรนอยู่ห่างจุด Home 1.5 km ที่ความสูง 60 m ความเร็วอากาศขากลับ 10 m/s มีลมสวน 3 m/s ลดระดับ 2 m/s บินวนรอ 5 s กำลังเฉลี่ย 350 W แบตเตอรี่ 177.6 Wh
- บินกลับ s
- ลดระดับ s บินวนรอ 5 s รวม s นาที
- Wh หรือ 13.6% ของแบตเตอรี่
เกณฑ์แบตเตอรี่ต่ำที่สั่ง RTL จากจุดไกลที่สุดจึงต้องสูงกว่า 13.6% บวกพลังงานสำรองที่ต้องเหลือเมื่อลงจอด ถ้าใช้เกณฑ์ 15% ตามค่าเริ่มต้นของ PX4 โดยไม่คิด จะเหลือพลังงานเผื่อเพียงเล็กน้อยเมื่อลมแรงกว่าที่คาด
Geofence
Geofence คือขอบเขตเสมือนที่ออโตไพลอตใช้ตรวจว่าอากาศยานออกนอกพื้นที่หรือไม่ มีทั้งแบบวงกลมรอบจุดขึ้น แบบรูปหลายเหลี่ยม และเพดานความสูง เมื่อชนขอบจะทำ action ที่ตั้งไว้ เช่น Hold, RTL หรือ Land
Geofence ต้องวางไว้ ด้านในของขอบพื้นที่ที่ได้รับอนุญาต เพราะอากาศยานต้องใช้ระยะหนึ่งกว่าจะหยุดได้ ระยะหยุดประกอบด้วยระยะที่บินต่อระหว่างรอตอบสนอง และระยะเบรก
ตัวอย่างที่ 2 ระยะเผื่อของ geofence
บินที่ 12 m/s เวลาตอบสนอง 1 s หน่วงได้ 3 m/s² ความคลาดเคลื่อน GNSS 3 m
- m
- รวมความคลาดเคลื่อนตำแหน่ง m
ควรวาง geofence ด้านในจากขอบพื้นที่ที่ได้รับอนุญาตอย่างน้อยราว 40 m และถ้าลมพัดตามทิศที่บินออก ระยะเบรกจะยาวกว่านี้ ค่าจริงต้องยืนยันจากการทดสอบของรุ่นที่ใช้
ทดสอบใน SITL ก่อนบินจริง
SITL (Software In The Loop) รันซอฟต์แวร์ออโตไพลอตจริงบนคอมพิวเตอร์ โดยมีตัวจำลองสร้างการเคลื่อนที่และค่าเซนเซอร์ให้ ทำให้ทดสอบภารกิจและ failsafe ได้โดยไม่เสี่ยงอากาศยานจริง ลำดับที่แนะนำ
- เลือก ArduPilot หรือ PX4 และตรึงรุ่นซอฟต์แวร์ให้ตรงกับที่จะใช้บินจริง
- โหลด parameter ชุดเดียวกับอากาศยาน
- อัปโหลดภารกิจ บินให้ครบ และเก็บ log
- จำลองเหตุทีละอย่าง เช่น ตัดการเชื่อมต่อ GCS ลดแบตเตอรี่จำลอง หรือบินชน geofence แล้วอ่านลำดับโหมดจาก log
- เปรียบเทียบพฤติกรรมกับแผน แก้ค่า แล้วทดสอบซ้ำ
ผลจาก SITL บอกว่า ตรรกะและการตั้งค่าทำงานตามที่ตั้งใจ แต่ไม่ได้รับรองพฤติกรรมของลำจริงในลมจริงหรือสัญญาณวิทยุจริง
ติดตามภารกิจขณะบิน
ระหว่างภารกิจอัตโนมัติ ผู้บังคับยังต้องเฝ้าดูค่าที่สำคัญและเทียบกับแผน
- โหมดปัจจุบันและ waypoint ที่กำลังไป
- พลังงานที่เหลือเทียบกับพลังงานที่ต้องใช้กลับ (ตัวอย่างที่ 1)
- คุณภาพ GNSS และสถานะการประมาณตำแหน่ง
- คุณภาพลิงก์และเวลาของ telemetry ล่าสุด
- ลมที่ประมาณได้จากการบินจริง เทียบกับพยากรณ์
ทีมควรตกลงเกณฑ์ หยุดภารกิจ ไว้ก่อนบิน เช่น พลังงานเหลือต่ำกว่าเส้นที่คำนวณ หรือลมเกินค่าที่คู่มือรุ่นกำหนด เพื่อไม่ต้องตัดสินใจใหม่ภายใต้ความกดดัน
กิจกรรมในชั้นเรียน
กิจกรรม: ภารกิจจำลองและ RTL ใน SITL
อ้างอิงแนวทางทดลอง L01 และคู่มือ ArduPilot SITL, QGroundControl หรือ Mission Planner ในคลังความรู้โดรน (อาจารย์สาธิตหน้าชั้น หรือผู้เรียนทำเองถ้ามีคอมพิวเตอร์พร้อม)
- สร้างภารกิจ 6–8 waypoint ในพื้นที่จำลอง บันทึกไฟล์ภารกิจและ parameter
- คำนวณพลังงาน RTL จากจุดไกลสุด แล้วเสนอเกณฑ์แบตเตอรี่ต่ำ
- คำนวณระยะเผื่อ geofence และตั้งค่าใน SITL
- จำลองการตัดลิงก์ GCS ทั้งแบบปิดและเปิด failsafe เปรียบเทียบลำดับโหมดจาก log
ข้อผิดพลาดที่พบบ่อย
ระวัง
- คิดว่าโดรนจะกลับเองเมื่อลิงก์ขาด โดยไม่ได้ตรวจว่า failsafe เปิดอยู่
- ใช้ความสูง RTL ค่าเริ่มต้น ในพื้นที่ที่มีอาคารหรือต้นไม้สูงกว่า
- วาง geofence ทับขอบพื้นที่อนุญาตพอดี ไม่เผื่อระยะหยุด
- สับสนกรอบอ้างอิงความสูง ระหว่างความสูงจากจุดขึ้นกับจากระดับน้ำทะเล
- ทดสอบใน SITL คนละรุ่นกับที่บินจริง หรือใช้ parameter คนละชุด
สรุป
- ภารกิจอัตโนมัติคือรายการ mission item ของ MAVLink เช่น TAKEOFF, WAYPOINT, RTL และ LAND
- failsafe เปลี่ยนโหมดเองเมื่อเกิดเหตุ และค่าเริ่มต้นของลิงก์ GCS ขาดถูกปิดไว้ในทั้ง PX4 และ ArduPilot
- เกณฑ์แบตเตอรี่ต่ำต้องคำนวณจากพลังงาน RTL จากจุดไกลที่สุดบวกพลังงานสำรอง
- Geofence ต้องอยู่ด้านในขอบพื้นที่อนุญาตอย่างน้อยเท่าระยะหยุดบวกความคลาดเคลื่อนตำแหน่ง
- SITL ใช้ทดสอบตรรกะและการตั้งค่า แต่ไม่รับรองพฤติกรรมในสภาพจริง
แบบฝึกตรวจความเข้าใจ
- คำสั่ง MAVLink ใดใช้บินไปยังพิกัดที่กำหนด และมีรหัสเท่าใด
- ถ้าไม่ได้ตั้งค่า failsafe ลิงก์ GCS ใน ArduPilot Copter เมื่อลิงก์ขาดระหว่างภารกิจ AUTO จะเกิดอะไรขึ้น
- บินที่ 10 m/s เวลาตอบสนอง 1 s หน่วง 2.5 m/s² ระยะหยุดเท่าใด
- โดรนห่าง Home 1.2 km ความเร็วกลับ 12 m/s ไม่มีลม ลดระดับ 50 m ที่ 2.5 m/s ไม่บินวนรอ กำลัง 300 W ใช้พลังงาน RTL เท่าใด
- ทำไม RTL อาจไม่ใช่ทางเลือกที่ปลอดภัยที่สุดเสมอ
เฉลย
MAV_CMD_NAV_WAYPOINTรหัส 16- ค่าเริ่มต้น
FS_GCS_ENABLE= 0 จึงไม่มี failsafe ของลิงก์ GCS โดรนจะบินตามภารกิจต่อไป (เว้นแต่มี failsafe อื่นทำงาน เช่น รีโมตหรือแบตเตอรี่) - m
- s พลังงาน Wh
- แนวกลับอาจมีสิ่งกีดขวางสูงกว่าความสูง RTL จุด Home อาจมีคน หรือพลังงานอาจไม่พอกลับ บางกรณีการลงจอดทันทีหรือลงจุดสำรองปลอดภัยกว่า
สรุปสูตรสำคัญ
| เวลาบินกลับ RTL | |
| พลังงานสำหรับ RTL | |
| ระยะหยุด |
แหล่งอ้างอิงหลัก
- PX4 Autopilot. PX4 user and developer guide. link
- ArduPilot Dev Team. ArduPilot documentation. link
- MAVLink Development Team. MAVLink developer guide. link
- ArduPilot Dev Team. SITL simulator (software in the loop). link
- Beard, R. W., & McLain, T. W. (2012). Small unmanned aircraft: Theory and practice. Princeton University Press.
- International Organization for Standardization. (2023). Unmanned aircraft systems – Part 3: Operational procedures (ISO 21384-3:2023). link
อ่านเพิ่มเติม
ศึกษาหน่วยความรู้ที่กำหนดล่วงหน้า ดูสื่อประกอบ และทำ quiz ประจำโมดูล
สถาปัตยกรรม PX4 และ ArduPilot
พัฒนาระบบจำลองและเชื่อม SITL
ภารกิจจำลองและ Return to Launch
ArduPilot SITL
QGroundControl
Mission Planner
ในชั้นเรียน / ภาคสนาม
บรรยาย อภิปรายกรณีศึกษา และแก้โจทย์ในชั้นเรียน
หลักฐานการเรียนรู้: ผล quiz และแบบฝึกหัดที่ส่ง