LiDAR และเซนเซอร์ภารกิจ
UAT 205 เซนเซอร์และระบบเครื่องมือวัด
บทเรียน
เมื่อเรียนจบโมดูลนี้ ผู้เรียนจะสามารถ
- อธิบายหลักการวัดระยะของ LiDAR และคำนวณความหนาแน่นพัลส์จากอัตรายิง ความเร็ว ความสูง และมุมกวาด
- เทียบความหนาแน่นกับระดับคุณภาพของ USGS
- อธิบายหลักการ FMCW radar และคำนวณความละเอียดระยะและความถี่บีต
- เลือกเซนเซอร์ให้เหมาะกับภารกิจด้วยตารางคะแนนถ่วงน้ำหนัก และตรวจว่าผลไวต่อน้ำหนักเพียงใด
ทำไมต้องรู้
เซนเซอร์บินได้ (IMU บารอมิเตอร์) ช่วยให้โดรนบินได้ แต่ เซนเซอร์ภารกิจ (payload) คือเหตุผลที่โดรนขึ้นบิน การเลือกผิดทำให้เสียทั้งเงินและเวลาบิน โมดูลนี้ปิดวิชาด้วยเซนเซอร์วัดระยะที่สำคัญสองชนิด คือ LiDAR และเรดาร์ และวิธีเลือกเซนเซอร์อย่างมีเหตุผล หน่วยความรู้เรื่อง Payload ของคลังความรู้โดรนย้ำว่าให้เริ่มจาก คำถามของภารกิจ ไม่ใช่จากอุปกรณ์ที่อยากใช้
LiDAR
LiDAR ยิงพัลส์เลเซอร์แล้ววัดเวลาที่สะท้อนกลับ เหมือน rangefinder ในโมดูล 3 แต่กวาดหลายทิศได้หลายแสนจุดต่อวินาที เมื่อรวมกับตำแหน่งและท่าทางจาก GNSS และ IMU จะได้ กลุ่มจุด (point cloud) สามมิติ ข้อดีเด่นคือพัลส์บางส่วนลอดช่องว่างของใบไม้ลงถึงพื้นได้ จึงวัดทั้งความสูงพืชและพื้นดินใต้พืชในเที่ยวบินเดียว
ความละเอียดของผลขึ้นกับ ความหนาแน่นพัลส์ ตารางข้อกำหนด LiDAR ของ USGS แบ่งระดับคุณภาพ เช่น QL1 ต้องมีอย่างน้อย 8 พัลส์ต่อตารางเมตร และ QL2 อย่างน้อย 2 พัลส์ต่อตารางเมตร
ตัวอย่างที่ 1 ความหนาแน่นพัลส์ของ LiDAR สามแบบ
สมมติบินแนวเดียวไม่ซ้อนทับ พัลส์กระจายสม่ำเสมอ และนับหนึ่งพัลส์ต่อการยิง
import math
def pulse_density(prr, h, v, fov_deg):
swath = 2 * h * math.tan(math.radians(fov_deg / 2))
return swath, prr / (v * swath)
cases = [
("solid-state 240k", 240_000, 60, 8, 70),
("same, higher and faster", 240_000, 120, 15, 70),
("small mechanical 20k", 20_000, 100, 12, 70),
]
for name, prr, h, v, fov in cases:
w, d = pulse_density(prr, h, v, fov)
level = "meets QL1" if d >= 8 else "meets QL2" if d >= 2 else "below QL2"
print(f"{name:<24} swath {w:5.1f} m, {d:6.1f} pulses/m^2, spacing {1 / math.sqrt(d):.2f} m, {level}")
solid-state 240k swath 84.0 m, 357.0 pulses/m^2, spacing 0.05 m, meets QL1
same, higher and faster swath 168.0 m, 95.2 pulses/m^2, spacing 0.10 m, meets QL1
small mechanical 20k swath 140.0 m, 11.9 pulses/m^2, spacing 0.29 m, meets QL1
การบินสูงและเร็วขึ้นเพิ่มพื้นที่ต่อเที่ยว แต่ความหนาแน่นลดลงตามผลคูณของทั้งสองอย่าง ส่วนเซนเซอร์อัตรายิงต่ำยังผ่าน QL1 ได้ถ้าบินช้าพอ ในงานจริงการบินซ้อนแนวเพิ่มความหนาแน่น ส่วนมุมกวาดที่ขอบและพื้นที่ไม่สะท้อนแสงลดความหนาแน่น
LiDAR ใช้เลเซอร์ จึงต้องตรวจ ระดับความปลอดภัยของเลเซอร์ ตาม IEC 60825-1:2014 จากเอกสารผู้ผลิตก่อนใช้งานใกล้คน โดยเฉพาะขณะทดสอบบนพื้น
FMCW radar
เรดาร์คลื่นมิลลิเมตรแบบ FMCW (frequency-modulated continuous wave) ส่งคลื่นที่ความถี่เพิ่มขึ้นเป็นเส้นตรงเรียกว่า chirp คลื่นสะท้อนกลับมาช้าไป เมื่อผสมกับคลื่นที่กำลังส่ง จะได้ ความถี่บีต โดย คือความชันของ chirp เอกสาร SPYY005A ของ Texas Instruments แสดงว่า ความละเอียดระยะ ขึ้นกับแบนด์วิดท์ของ chirp อย่างเดียว เรดาร์ทำงานได้ในฝุ่น ควัน หมอก และกลางคืน จึงนิยมใช้เป็นเครื่องวัดความสูงและตรวจสิ่งกีดขวางในโดรนเกษตร
ตัวอย่างที่ 2 ความละเอียดระยะและความถี่บีต
C = 299_792_458
for bw in (4e9, 1e9, 250e6):
print(f"bandwidth {bw / 1e9:.2f} GHz -> range resolution {C / (2 * bw) * 100:.2f} cm")
S = 30e12 # Hz/s ความชันของ chirp (30 MHz/µs)
for d in (5, 10, 20):
print(f"target at {d:>2} m -> beat frequency {S * 2 * d / C / 1e6:.2f} MHz")
bandwidth 4.00 GHz -> range resolution 3.75 cm
bandwidth 1.00 GHz -> range resolution 14.99 cm
bandwidth 0.25 GHz -> range resolution 59.96 cm
target at 5 m -> beat frequency 1.00 MHz
target at 10 m -> beat frequency 2.00 MHz
target at 20 m -> beat frequency 4.00 MHz
แบนด์วิดท์ 4 GHz ได้ความละเอียด 3.75 cm ตรงกับตัวอย่างในเอกสารของ TI และระยะกับความถี่บีตเป็นสัดส่วนกัน เรดาร์จึงแยกระยะด้วยการแยกความถี่
เลือกเซนเซอร์ให้ภารกิจ
ภารกิจสมมติคือ วัดความสูงทรงพุ่มอ้อยในแปลง 50 ไร่ด้วยโดรน VTOL ของแล็บ ตารางคะแนนถ่วงน้ำหนักช่วยให้ทีมตัดสินใจอย่างโปร่งใส แต่ผลขึ้นกับน้ำหนักที่ตั้ง จึงต้องทดลองเปลี่ยนน้ำหนักดูทุกครั้ง
ตัวอย่างที่ 3 ตารางคะแนนและความไวต่อน้ำหนัก
คะแนน 1–5 ที่ทีมให้ร่วมกัน (ค่าสมมติ)
criteria = ["height accuracy", "sees ground under crop", "mass on VTOL", "cost", "processing effort"]
scores = {
"LiDAR": [5, 5, 2, 1, 3],
"RGB photogrammetry": [3, 1, 5, 5, 3],
"mmWave radar altimeter": [2, 2, 4, 4, 4],
}
weight_sets = {
"accuracy first": [0.35, 0.25, 0.15, 0.15, 0.10],
"budget first": [0.15, 0.25, 0.15, 0.35, 0.10],
}
for label, w in weight_sets.items():
assert abs(sum(w) - 1) < 1e-9
ranked = sorted(((sum(a * b for a, b in zip(w, s)), name) for name, s in scores.items()), reverse=True)
print(f"{label}: " + ", ".join(f"{name} {total:.2f}" for total, name in ranked))
accuracy first: LiDAR 3.75, RGB photogrammetry 3.10, mmWave radar altimeter 2.80
budget first: RGB photogrammetry 3.50, mmWave radar altimeter 3.20, LiDAR 2.95
เมื่อความแม่นสำคัญที่สุด LiDAR ชนะ แต่เมื่อให้น้ำหนักงบประมาณมาก ภาพถ่าย RGB ขึ้นนำ ทีมจึงต้องตกลงน้ำหนักจากความต้องการของผู้ใช้ข้อมูลก่อนดูคะแนน และบันทึกเหตุผลไว้
การใช้หลายเซนเซอร์ร่วมกันต้อง ซิงก์เวลา ให้ตรงกัน LiDAR ที่ยิงหลายแสนจุดต่อวินาทีบนโดรนที่บิน 10 m/s ถ้าเวลาคลาด 10 ms ตำแหน่งจุดจะคลาด 10 cm ระบบจริงจึงใช้สัญญาณ PPS จาก GNSS หรือโปรโตคอลซิงก์เวลา (Groves, 2013)
ปฏิบัติการประจำโมดูล
ปฏิบัติการ: วางแผนเซนเซอร์ภารกิจ
- ใช้โค้ดตัวอย่างที่ 1 กับสเปกของ LiDAR ที่แล็บมีหรือที่จะซื้อ หาความสูงและความเร็วที่ผ่าน QL1
- ถ้าแล็บมีข้อมูล LiDAR ตัวอย่าง เปิดใน CloudCompare นับความหนาแน่นจริง เทียบกับที่คำนวณ
- ทดลองเรดาร์วัดระยะแบบบอร์ดพัฒนาในห้อง บันทึกระยะที่แยกได้เทียบกับตัวอย่างที่ 2
- สร้างตารางคะแนนสำหรับภารกิจของกลุ่มตนเอง ให้สมาชิกแต่ละคนตั้งน้ำหนักแยกกันแล้วเทียบผล
- ตรวจระดับความปลอดภัยของเลเซอร์จากเอกสารผู้ผลิตก่อนทดสอบใกล้คน
ข้อผิดพลาดที่พบบ่อย
ระวัง
- เลือกเซนเซอร์ก่อนตั้งคำถามภารกิจ
- ใช้อัตรายิงจากโฆษณา โดยไม่คิดความสูง ความเร็ว และมุมกวาด
- ถือว่าความละเอียดระยะของเรดาร์คือความแม่น
- ตั้งน้ำหนักในตารางคะแนนหลังเห็นผล
- ไม่ซิงก์เวลาระหว่างเซนเซอร์
สรุป
- LiDAR วัดระยะด้วยเวลาของพัลส์ ความหนาแน่นพัลส์ = PRR/(v·W) ต้องเทียบกับระดับคุณภาพ เช่น QL1 ≥ 8 พัลส์/m²
- FMCW radar แยกระยะด้วยความถี่บีต และความละเอียดระยะ = c/2B
- ตารางคะแนนถ่วงน้ำหนักช่วยเลือกเซนเซอร์ แต่ต้องตรวจความไวต่อน้ำหนัก
- หลายเซนเซอร์ต้องซิงก์เวลา และ LiDAR ต้องตรวจระดับความปลอดภัยของเลเซอร์
แบบฝึกตรวจความเข้าใจ
- บินสูง 50 m มุมกวาด 90° แนวกวาดกว้างเท่าใด
- PRR 100,000 พัลส์/s บิน 10 m/s แนวกวาด 100 m ความหนาแน่นเท่าใด ผ่าน QL1 หรือไม่
- chirp แบนด์วิดท์ 2 GHz มีความละเอียดระยะเท่าใด
- ถ้าคูณทั้งความสูงและความเร็วบินด้วยสอง ความหนาแน่นพัลส์เปลี่ยนเป็นกี่เท่า
- โดรนบิน 12 m/s เวลาระหว่าง LiDAR กับ IMU คลาด 5 ms ตำแหน่งคลาดเท่าใด
เฉลย
- m
- พัลส์/m² ผ่าน QL1
- m หรือ 7.5 cm
- ลดเหลือหนึ่งในสี่ เพราะแนวกวาดกว้างขึ้นสองเท่าและความเร็วสองเท่า
- m
สรุปสูตรสำคัญ
| ความกว้างแนวกวาดและความหนาแน่นพัลส์ | |
| ความละเอียดระยะของ FMCW | |
| ความถี่บีต |
แหล่งอ้างอิงหลัก
- U.S. Geological Survey. (2025). Lidar base specification tables (2025 rev. A). link
- Iovescu, C., & Rao, S. (2020). The fundamentals of millimeter wave radar sensors (SPYY005A). Texas Instruments. link
- International Electrotechnical Commission. (2014). Safety of laser products – Part 1: Equipment classification and requirements (IEC 60825-1:2014, Ed. 3.0). link
- Fraden, J. (2016). Handbook of modern sensors: Physics, designs, and applications (5th ed.). Springer. link
- Groves, P. D. (2013). Principles of GNSS, inertial, and multisensor integrated navigation systems (2nd ed.). Artech House. link
อ่านเพิ่มเติม
ศึกษาหน่วยความรู้ที่กำหนดล่วงหน้า ดูสื่อประกอบ และทำ quiz ประจำโมดูล
LiDAR เรดาร์ และเซนเซอร์หลบหลีกสิ่งกีดขวาง
Payload และคุณภาพข้อมูลสำรวจ
ในชั้นเรียน / ภาคสนาม
ปฏิบัติการในห้องแล็บหรือภาคสนามตามใบงาน พร้อม checklist ความปลอดภัย
หลักฐานการเรียนรู้: ใบงานที่ผ่านการตรวจและผล quiz