พื้นฐาน UAV/UAS และการจำลองบิน
เริ่มจากแยกส่วนประกอบระบบและบทบาทของ simulator ก่อนทดลอง mission และอ่านผลการบิน
มองโดรนเป็นระบบ
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 แรงจากใบพัดมีทั้งส่วนพยุงน้ำหนักและส่วนเร่งไปในแนวราบเมื่อเอียงลำ จึงไม่ควรนำภาพแรงของเครื่องบินปีกตรึงมาแทนทุกโหมดโดยตรง
| คำศัพท์ | สิ่งที่เกิดขึ้น | จุดสังเกตในการจำลอง |
|---|---|---|
| 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 มาปนกับรุ่นใหม่
F01: แปลงหน่วยก่อนแทนค่า
ระดับพื้นฐาน · คำถาม: ตัวเลขจากแบตเตอรี่ เซนเซอร์ และ log นำมาคำนวณร่วมกันได้หรือยัง? เริ่มจากเขียนหน่วยติดทุกค่า แล้วแปลงให้ตรงกับสูตร อย่าเดาหน่วยจากขนาดตัวเลข หลักหน่วยและคำนำหน้าตาม BIPM, SI Brochure ฉบับที่ 9 ปรับปรุง 2026 (S01, ตรวจ 26 กันยายน 2569)
θrad = θdeg × π / 180
QAh = QmAh / 1000
EWh = EJ / 3600
อ่านว่า มุมองศาคูณพายหาร 180 ได้เรเดียน; ความจุมิลลิแอมป์ชั่วโมงหาร 1000 ได้แอมป์ชั่วโมง; พลังงานจูลหาร 3600 ได้วัตต์ชั่วโมง ตัวห้อยระบุหน่วย ไม่ใช่ตัวคูณ
| ตัวแปร | ความหมายและหน่วยเข้า → ออก | ช่วง/แหล่งค่า |
|---|---|---|
| θ | มุม deg → rad | จำนวนจริง; อ่านนิยามทิศบวกจาก API หรือ log |
| Q | ความจุประจุ mAh → Ah | ตั้งแต่ 0; ฉลากแบตเตอรี่หรือค่าที่วัด |
| E | พลังงาน J → Wh | ตั้งแต่ 0 ในบัญชีพลังงานใช้ไป; มิเตอร์หรือผลรวมกำลังตามเวลา |
| π | ค่าพาย ไม่มีหน่วย | ใช้ค่าพายเต็มความละเอียดระหว่างคำนวณ |
คำอธิบายภาพ: ลูกศรแต่ละแถวเป็นการแปลงปริมาณเดิม เปลี่ยนเฉพาะหน่วย โดยหาร 1000 สำหรับ mAh, คูณ π/180 สำหรับองศา และหาร 3600 สำหรับจูล ไม่ได้แปลงความจุประจุเป็นพลังงานโดยตรง
ตัวอย่าง: ตรวจหน่วยในใบงานพลังงาน
- อ่านความจุ 5000 mAh แล้วหาร 1000 ได้ 5 Ah
- เมื่อแรงดัน nominal เท่ากับ 22.2 V จะได้พลังงาน nominal 22.2 V × 5 Ah = 111 Wh เพราะ V × A = W
- แปลงเป็นจูล: 111 Wh × 3600 = 399600 J ค่าพลังงานเท่าเดิม
- หาก log มุมให้ 90° ให้คูณ π/180 ได้ π/2 ≈ 1.570796 rad ก่อนส่งฟังก์ชันที่รับเรเดียน
การตรวจมิติจับข้อผิดพลาดได้ เช่น Wh/W ให้ชั่วโมง แต่ Ah/W ไม่ได้เวลา มวล kg ก็ไม่ใช่แรง N: น้ำหนักต้องคำนวณจาก m × g การแปลงหน่วยไม่เพิ่มความแม่นยำของเครื่องมือ และไม่แก้ timestamp หรือกรอบพิกัดผิด ในงานหุ่นยนต์ Open Robotics REP 103 (S29) อธิบายหน่วยและแกนมาตรฐาน แต่ต้องตรวจข้อยกเว้นของระบบที่ใช้ด้วย
ลองทำด้วยตนเอง
แบตเตอรี่ 2500 mAh เท่ากับกี่ Ah, มุม −90° เท่ากับกี่ rad และพลังงาน 7200 J เท่ากับกี่ Wh? ยอมรับคำตอบมุมคลาดเคลื่อนไม่เกิน 0.000001 rad
เปิดเฉลย F01
2500/1000 = 2.5 Ah; −90 × π/180 = −π/2 ≈ −1.570796 rad; 7200/3600 = 2 Wh เครื่องหมายลบของมุมต้องคงอยู่ ไม่ใช้ค่าสัมบูรณ์เพื่อให้เป็นบวก
ต่อด้วย พลังงานและเวลาบิน หรือ เครื่องมือคำนวณเดิม โดยตรวจหน่วยที่ช่องป้อนทุกครั้ง
F02: ระยะ เวลา และระยะหยุดในแบบจำลอง
ระดับพื้นฐาน · คำถาม: เมื่อสั่งหยุดแล้วลำยังเคลื่อนต่อไปกี่เมตร? แยกระยะระหว่างรอคำสั่งออกจากระยะชะลอ สูตรอ่านได้และคัดลอกได้โดยไม่ใช้ JavaScript
v̄ = Δs / Δt; ā = Δv / Δt
dstop = v tdelay + v² / (2 abrake)
อ่านว่า ความเร็วเฉลี่ยเท่ากับการกระจัดหารเวลา ความเร่งเฉลี่ยเท่ากับความเร็วที่เปลี่ยนหารเวลา ระยะหยุดเท่ากับระยะรอรวมระยะเบรก
| ตัวแปร | ความหมายและหน่วยเข้า → ออก | ช่วง/แหล่งค่า |
|---|---|---|
| Δs, Δv | การกระจัด m และความเร็วที่เปลี่ยน m/s; input | จำนวนจริงแบบมีเครื่องหมาย; log ในแกนเดียวกัน |
| Δt | ช่วงเวลา s; input | > 0 จาก timestamp เดียวกัน |
| v̄, ā | ความเร็วเฉลี่ย m/s, ความเร่งเฉลี่ย m/s²; output | มีเครื่องหมายตามแกน |
| v | อัตราเร็วเริ่มเบรก m/s; input | ≥ 0 จากกรณีสังเคราะห์หรือ log |
| tdelay | เวลารอก่อนเริ่มชะลอ s; input | ≥ 0; รวมการตรวจจับ/สั่งการที่นิยามไว้ |
| abrake | ขนาดความหน่วง m/s²; input | > 0; ค่าบวก แม้ความเร่งตามแกนเป็นลบ |
| dstop | ระยะหยุด m; output | ≥ 0 ภายใต้แบบจำลอง |
สมมติฐาน: เคลื่อนที่หนึ่งมิติ ความเร็วคงเดิมระหว่างรอ จากนั้นชะลอคงที่จนหยุด ไม่รวมลม การเอียงลำ jerk หรือข้อจำกัดตัวควบคุม ถ้า abrake เป็นศูนย์ ห้ามหารแล้วรายงานระยะหยุด สูตรนี้ไม่กำหนดระยะปลอดภัยจริง ความสัมพันธ์ใช้ OpenStax §3.4 สมการ 3.10–3.14 (S02, ตรวจ 26 กันยายน 2569)
คำอธิบายภาพ: พื้นที่ใต้กราฟความเร็วคือระยะทาง สี่เหลี่ยมช่วงรอมีพื้นที่ 1 m และสามเหลี่ยมช่วงชะลอมีพื้นที่ 6.25 m รวม 7.25 m
ตัวอย่างและการตรวจหน่วย
- log สมมติเคลื่อน 10 m ใน 2 s: v̄ = 10/2 = 5 m/s
- ลดความเร็วจาก 5 เป็น 0 m/s ใน 2.5 s: ā = (0−5)/2.5 = −2 m/s² จึงใช้ abrake = 2
- รอ 0.2 s: ระยะรอ = 5×0.2 = 1 m; ระยะเบรก = 25/(2×2) = 6.25 m
- รวม 7.25 m; ตรวจหน่วย (m/s)²/(m/s²) = m ระยะนี้เป็นผลจำลอง ไม่ใช่ข้อเสนอระยะห่างจากคน
แบบฝึก: เปลี่ยนความเร็ว
เปลี่ยน v เป็น 10 m/s แต่ใช้ delay และ abrake เดิม ระยะหยุดเป็นเท่าใด? ยอมรับ ±0.01 m
เปิดเฉลย F02
ระยะรอ 10×0.2 = 2 m; ระยะเบรก 100/4 = 25 m; รวม 27 m ไม่ใช่สองเท่าของ 7.25 m เพราะพจน์เบรกเพิ่มตามกำลังสองของความเร็ว
นำโจทย์ไปเทียบ log ใน simulator และอ่าน เวลาไปกลับเมื่อมีลม
อ่านต่อและแหล่งอ้างอิง
- เอกสารตั้งต้น: DTI, ความรู้พื้นฐานเทคโนโลยีอากาศยานไร้คนขับ
- ArduPilot SITL และการตั้งค่า
- PX4 Gazebo simulation
- Mission Planner installation และข้อจำกัด Linux
- พื้นฐานการบินและระบบโดรนในคลังเดิม
เนื้อหานี้เรียบเรียงจากเอกสารที่ DTI เอื้อเฟื้อและแหล่งอ้างอิงข้างต้น ตัวอย่างตัวเลขเป็นกรณีเพื่อการเรียนรู้ อ่านกิตติกรรมประกาศและที่มาของเนื้อหา
เชื่อมความรู้กับภารกิจและข้อมูล
การเลือกชนิดอากาศยานควรเริ่มจากคำถามและพื้นที่ทำงาน ก่อนเปรียบเทียบระยะบินหรือกล้อง บันทึกสิ่งที่ต้องได้ เช่น ภาพสภาพถนน พร้อมข้อจำกัดที่ยอมรับไม่ได้ ไม่ถือว่าการมีอุปกรณ์ครบแปลว่าทีมพร้อมปฏิบัติงาน อ่านแหล่งอ้างอิง: CAAT — Guidance for Development of an Operations Manual
ฝึกตรวจความเข้าใจ: เขียนโจทย์สำรวจหนึ่งประโยค แล้วแยกข้อจำกัดคน เครื่อง และพื้นที่อย่างละหนึ่งข้อ
อ่านต่อ บทที่ใช้ความรู้นี้ในงานจำลอง · ทบทวนแหล่งข้อมูล 26 กันยายน 2569
ต่อยอดอากาศพลศาสตร์และสมการการไหล
อ่าน สมการนาเวียร์–สโตกส์ แล้วทดลอง Re/Mach และ การไหลระหว่างแผ่นขนาน เพื่อแยกแบบจำลองการไหลออกจากแบบจำลองการเคลื่อนที่ของโดรน
ดาวน์โหลดชุดตรวจคำตอบสูตรพื้นฐาน (JSON) · ข้อมูลสังเคราะห์พร้อมหน่วย ใช้เปรียบเทียบผลคำนวณของตนเอง
ดาวน์โหลดชุดฝึกสูตรประยุกต์ (CSV/JSON พร้อมเฉลย) · ข้อมูลสังเคราะห์สำหรับฝึกคำนวณและตรวจหน่วย