พื้นฐาน UAV/UAS และการจำลองบิน

คอมพิวเตอร์จำลองภารกิจบินพร้อมจอยและสมุดบันทึก
ภาพประกอบแนวคิดสร้างด้วย AI

มองโดรนเป็นระบบ

แผนภาพสถาปัตยกรรมระบบ UAS สี่ส่วน: GCS เชื่อมกับ Flight stack ผ่าน telemetry/คำสั่ง, Flight stack เชื่อมกับ Physics simulator ผ่าน SITL, Mission application เรียกใช้ Flight stack ผ่าน API

UAV คืออากาศยาน ส่วน UAS ครอบคลุมสถานีควบคุม ลิงก์สื่อสาร และส่วนสนับสนุนภารกิจด้วย เมื่อแก้ปัญหาการบินควรถามก่อนว่าปัญหาเกิดที่อากาศยาน การสื่อสาร หรือโปรแกรมภารกิจ ไม่เริ่มจากเปลี่ยน PID ทุกครั้ง

ส่วน หน้าที่ ตัวอย่าง
Flight stack ประมาณสถานะ ควบคุม และจัดการโหมดบิน ArduPilot, PX4
GCS วางภารกิจ อ่าน telemetry และตั้งค่า QGroundControl, Mission Planner
Physics simulator คำนวณการเคลื่อนที่และ sensor จำลอง Gazebo, JSBSim
Mission application ประมวลผลข้อมูลและเรียกใช้ภารกิจ Python + MAVSDK

เลือกประเภทอากาศยานจากภารกิจ

ภาพเงาสามประเภทอากาศยานเทียบกัน: multirotor, fixed-wing และ VTOL พร้อมแถบรูปแบบการบินขึ้น-ล่องใต้ภาพแต่ละแบบ

Multirotor เหมาะกับการขึ้นลงแนวดิ่งและหยุดค้างตำแหน่ง ส่วน fixed-wing ใช้แรงยกจากปีกขณะเคลื่อนที่และต้องมีเงื่อนไขขึ้นลงที่เหมาะสม VTOL รวมรูปแบบการบินแต่เพิ่มความซับซ้อนช่วงเปลี่ยนผ่าน จึงควรแยกแบบจำลองและเกณฑ์ทดสอบของแต่ละประเภท

แรงทั้งสี่และแกนการเคลื่อนที่

ภาพเงาโดรนสี่ใบพัดพร้อมลูกศรแรงยก แรงขับ แรงต้าน และน้ำหนัก และแกนหมุน Roll, Pitch, Yaw ผ่านตัวลำ

อากาศยานเคลื่อนที่ภายใต้แรงยก แรงขับ แรงต้าน และน้ำหนัก การรักษาระดับไม่ได้แปลว่าแรงทุกชนิดหายไป แต่เป็นการควบคุมให้แรงและโมเมนต์สอดคล้องกับการเคลื่อนที่ที่ต้องการ สำหรับ multirotor แรงจากใบพัดมีทั้งส่วนพยุงน้ำหนักและส่วนเร่งไปในแนวราบเมื่อเอียงลำ จึงไม่ควรนำภาพแรงของเครื่องบินปีกตรึงมาแทนทุกโหมดโดยตรง

คำศัพท์ สิ่งที่เกิดขึ้น จุดสังเกตในการจำลอง
Roll หมุนรอบแกนตามยาวของลำ ลำเอียงซ้ายหรือขวา
Pitch หมุนรอบแกนขวาง หัวลำก้ม/เงย
Yaw หมุนรอบแกนแนวดิ่งของลำ หัวลำเปลี่ยนทิศ
Heading / track ทิศหัวลำ / ทิศการเคลื่อนที่เหนือพื้น อาจต่างกันเมื่อมีลมหรือบินด้านข้าง

ให้ตรวจนิยามแกนและเครื่องหมายจากระบบที่ใช้ก่อนอ่าน log เพราะ frame ของภาพ กล้อง ตัวลำ และโลกอาจต่างกัน การเห็นค่าบวกไม่ได้บอกทิศทางเดียวกันในทุกระบบ

อ่านข้อจำกัดจากคู่มือของรุ่นที่ใช้

เวลาบินสูงสุด ระยะส่งสัญญาณ และความสามารถต้านลมเป็นข้อมูลคนละเรื่อง ต้องอ่านเงื่อนไขทดสอบ น้ำหนักบรรทุก แบตเตอรี่ อุณหภูมิ และโหมดประกอบ ระยะสื่อสารที่โฆษณาไม่ได้กำหนดระยะปฏิบัติการที่ได้รับอนุญาต และเวลาบินสูงสุดไม่ใช่เวลาที่ควรวางแผนใช้หมดในหนึ่งภารกิจ

GNSS ให้ข้อมูลสำหรับประมาณตำแหน่ง ส่วน autopilot ใช้ข้อมูลเซนเซอร์และคำสั่งเพื่อควบคุมอากาศยาน ระบบหลบสิ่งกีดขวางและการตรวจอากาศเป็นความสามารถอีกส่วนหนึ่ง การมี GPS จึงไม่รับประกันว่าจะหลบสิ่งกีดขวางหรือบินปลอดภัยในอากาศไม่ดีได้ Return-to-home ก็ต้องตรวจจุด home ระดับอ้างอิงและพฤติกรรมของรุ่นนั้น

SITL ทดสอบอะไรได้

Software-in-the-loop ทำให้ firmware ทำงานกับสภาพแวดล้อมจำลองบนคอมพิวเตอร์ได้ เหมาะกับการเรียน mode, waypoint, message และพฤติกรรมเมื่อเปลี่ยนเงื่อนไข ไม่ต้องมี flight controller ก่อนเริ่ม แต่ sensor noise, vibration และสมรรถนะพลังงานขึ้นกับแบบจำลอง ไม่ใช่การวัดลำจริง

ตัวอย่างโจทย์คือรัน waypoint เดิมสองครั้ง เปลี่ยนเฉพาะลม แล้วเทียบ target position กับ actual position ตามเวลา ควรเก็บ model, firmware, parameters และหน่วยพิกัดด้วย มิฉะนั้นกราฟสองชุดอาจเทียบกันไม่ได้

Windows และ Linux

บน Windows เริ่ม ArduPilot Simulation ใน Mission Planner หรือใช้ WSL2 ตามคู่มือ ส่วน Linux ใช้ SITL ร่วมกับ MAVProxy/QGroundControl ได้โดยตรง PX4+Gazebo ต้องจับคู่ Ubuntu, PX4 และ Gazebo ให้ตรงรุ่น หลีกเลี่ยงนำคำสั่ง Gazebo Classic มาปนกับรุ่นใหม่

อ่านต่อและแหล่งอ้างอิง

เนื้อหานี้เรียบเรียงจากเอกสารที่ DTI เอื้อเฟื้อและแหล่งอ้างอิงข้างต้น ตัวอย่างตัวเลขเป็นกรณีเพื่อการเรียนรู้ อ่านกิตติกรรมประกาศและที่มาของเนื้อหา

โดรนDTIfundamentals