โปรเจกต์ลงมือทำบนคอมพิวเตอร์
เริ่มจากไฟล์ตัวอย่าง รันให้เห็นผล แล้วค่อยเปลี่ยนข้อมูลหรืออุปกรณ์ เลือกทำทีละชุดได้โดยไม่ต้องมีโดรน
สามชุดเดิมด้านภาพ จำลองเส้นทาง และ CAD ตรวจและรันตัวอย่างพื้นฐานเมื่อ · Windows Python 3.14.3 และ Ubuntu WSL Python 3.12.3 · ชุดทำแผนที่ระบุผลตรวจแยกด้านล่าง
เตรียมก่อนเริ่ม
ใช้ Python 3.10 ขึ้นไป ดาวน์โหลด ZIP แล้วแตกไฟล์ เปิด terminal ในโฟลเดอร์ชุดฝึก บน Windows เรียก python ส่วน Linux เรียก python3 ขั้นพื้นฐานไม่ต้องติดตั้งแพ็กเกจเพิ่ม
อ่าน README-th.md ที่แนบในทุกชุด มีวิธีทำ ผลที่คาด การแก้ปัญหา และใบอนุญาต แยกขั้นที่รันบน PC แล้วจากขั้น YOLO, SITL และอุปกรณ์จริงที่ยังไม่ได้ทดลอง
ซ้อมตรวจข้อมูลและส่งรายงานสาธารณภัย
ใช้ CSV สังเคราะห์ฝึกตรวจรหัสซ้ำ พิกัด เวลา และหลักฐานการยืนยัน แล้วส่งรายงานพร้อมรายการที่ต้องตรวจเพิ่ม มีคู่มือ แบบฟอร์ม คำตอบ และใบอนุญาตของไฟล์ต้นฉบับ
คำนวณ GSD ตรวจจุดอิสระ และเทียบปริมาตร
ฝึกด้วยกล้องสมมติ พิกัด checkpoint สังเคราะห์ และกริดความสูงขนาดเล็ก ใช้ Python standard library พร้อม CSV และคำตอบคาดหวัง
- คำนวณ GSD จากขนาดเซนเซอร์ ความยาวโฟกัส ความกว้างภาพ และความสูงเหนือพื้น
- แยก RMSE แนวราบกับแนวดิ่งจากจุดที่กันไว้ตรวจผล ใช้พิกัดและความสูงอ้างอิงเดียวกันในหน่วยเมตร
- เปลี่ยนฐานกริดเพื่อเทียบปริมาตร และดูพื้นที่ที่ถูกเว้นเพราะ NoData
ตรวจแล้ว: Windows 11 และ Python 3.14.3 เมื่อ ผ่าน 110 กรณีต่อสำเนาในโฟลเดอร์ทดลองและ ZIP ที่แตกใหม่ ยังไม่ได้ทดสอบ Linux หรือโปรแกรมทำแผนที่ภายนอกในชุดนี้
อ่านรายงานตรวจและขอบเขต · เรียนเส้นทางการทำแผนที่ · เลือกเครื่องมือประมวลผลแผนที่
ผลสังเคราะห์ใช้ตรวจสูตรและขั้นตอน ไม่ใช่หลักฐานความถูกต้องของแผนที่จริง คู่มือแนบเส้นทาง Mygla → WebODM → QGIS และภาพรวม GeoAI ที่ยังไม่ได้ทดลองในงานนี้
ตรวจหาพัสดุจากภาพ
- ภาพและ label
- ฝึกด้วย train
- ประเมินด้วย val / test
- ส่งออกและตรวจ PC
- ต่อยอด Edge
แผนภาพแสดงเส้นทางรวม ขั้นต้นใช้ชุดสีสังเคราะห์ใน ZIP; การฝึก YOLO และการย้ายไป Edge เป็นขั้นต่อยอดที่ยังไม่ทดสอบ ต้องประเมินซ้ำหลังส่งออกโมเดล
ฝึกเส้นทางภาพ → เรียนรู้ → ส่งออกโมเดล → ทดสอบบน PC ก่อนย้ายไป Raspberry Pi หรือ Jetson
สิ่งที่รันแล้ว: โมเดลสีขนาดเล็กเรียนจากภาพสังเคราะห์ ตรวจกรอบพัสดุหนึ่งชิ้นและภาพไม่มีพัสดุได้ตาม fixture ทั้ง 4 ภาพทดสอบ เป็น nearest-centroid classifier ไม่ใช่ YOLO และผลนี้ไม่ใช่ความแม่นยำบนภาพจริง
ไม่มีภาพพัสดุจริงในชุดนี้
- สร้างภาพและ label:
python parcel_lab.py generateได้ PNG, PPM และ label แบบ YOLO แบ่ง train 16 / val 4 / test 4 - ฝึกและส่งออก:
python parcel_lab.py trainได้output/model.jsonซึ่งเรียนจาก train เท่านั้น - ทดสอบบน PC:
python parcel_lab.py evaluateต้องได้passed: trueดูกรอบคาดหวังเทียบผลจริงใน JSON - ลองภาพเดียว: ใช้คำสั่งด้านล่าง ผลเป็นพิกัดกรอบในภาพหรือ
nullเมื่อไม่มีพัสดุ
python parcel_lab.py infer --image dataset/ppm/test/test-00.ppm ดูผลทดสอบภาพทั้ง 4 ภาพ · ดาวน์โหลดโมเดล JSON ที่ฝึกแล้ว
ต่อยอดด้วยข้อมูลจริงและ edge
คู่มือใน ZIP มีโครงสร้างภาพ/label, คำสั่งฝึก YOLO และ export ONNX ก่อนทดสอบ PC แล้วจึงย้ายโมเดลกับภาพ test ไปยังบอร์ด ยังไม่ได้รัน YOLO, ONNX หรือบอร์ดจริงในรอบนี้ ต้องเก็บภาพหลายสภาพแสง แยกชุดตามรอบถ่าย และประเมินผลพลาดใหม่ก่อนใช้กับกล้อง
ถ้าอ่านภาพไม่ได้หรือกรอบตรวจผิด
ตัวอ่านพื้นฐานรับ PPM ชนิด P6 RGB เท่านั้น ส่วน PNG ใช้เปิดดูหรือเป็น input ของ YOLO ถ้าได้กรอบใหญ่ทั้งภาพ ลองตรวจสีฉากหลัง: วิธีพื้นฐานอาศัยสีและรวมเป็นกรอบเดียว หากติดตั้ง YOLO บน Python รุ่นใหม่ไม่ได้ ให้สร้าง venv ด้วยรุ่นที่ PyTorch รองรับตามคู่มือต้นทาง
อ้างอิง: รูปแบบ label · ส่งออก ONNX · ใบอนุญาต Ultralytics
วางแผนสำรวจและอ่าน log จำลอง
แก้ waypoint และความเร็ว สร้างเส้นทางสำรวจสลับทิศ แล้วตรวจระยะและเวลาจากข้อมูล CSV
สิ่งที่รันแล้ว: ตัวจำลองตำแหน่งตามเวลาแบบเชิงเส้น (kinematic) บน PC ไม่จำลองแรง ลม แบตเตอรี่ หรือ flight controller ข้อมูล log เป็นข้อมูลสังเคราะห์จากโปรแกรม ไม่ใช่ผลบินหรือ ArduPilot SITL
- เปิด
mission.jsonดูพิกัด east/north/up หน่วยเมตร เริ่มและจบที่ต้นทาง สูง 20 m ระหว่างสำรวจ - รัน
python simulate.pyได้output/synthetic-flight.csv,summary.jsonและไฟล์ waypoint สำหรับเตรียมทดลองใน SITL - เปิด CSV วาดกราฟ east เทียบ north ควรเห็นแนวสำรวจ 4 แนว ตรวจระยะรวม 260 m เวลา 52 s และตัวอย่างตำแหน่ง 53 แถว
- ลดความเร็วจาก 5 เป็น 2.5 m/s แล้วรันอีกครั้ง เวลาเพิ่มเป็น 104 s ระยะยังเท่าเดิม
ดาวน์โหลด input JSON · ดาวน์โหลด log สังเคราะห์ CSV · ดูผลรวมที่รันได้
ต่อด้วย ArduPilot SITL
คู่มือใน ZIP ระบุการเปิด SITL ที่ CMAC โหลดและตรวจ waypoint ก่อนเริ่ม AUTO แล้วเก็บ telemetry จริง ขั้นนำเข้าไฟล์และการบินใน SITL ยังไม่ได้ทดลอง ไฟล์ waypoint ใช้เตรียมการจำลองเท่านั้น ไม่ใช้เป็นภารกิจบินจริง
ถ้า waypoint ไม่โหลดหรือ simulator ไม่ยอม arm
ใน WSL ใช้ path แบบ Linux และตรวจด้วย wp list ก่อนเริ่มภารกิจ รอ GPS/EKF พร้อมและอ่าน pre-arm message เพื่อแก้สาเหตุ ไม่ปิด safety checks เพื่อให้ผ่าน ส่วน Python ต้องใช้ความเร็วและช่วงเวลาตัวอย่างมากกว่า 0
อ้างอิง: วิธีใช้ ArduPilot SITL · รูปแบบ QGC WPL
สร้างแผ่นยึดกล้องแบบปรับขนาดได้
แก้พารามิเตอร์ สร้าง CAD และ STL ตรวจขนาดกับความสมบูรณ์ของ mesh ก่อนเปิดในโปรแกรมออกแบบ
สิ่งที่รันแล้ว: Python สร้าง STL และตรวจขอบปิด ขนาด และปริมาตร มี source OpenSCAD ที่แก้ไขได้ ยังไม่ได้ render ด้วย OpenSCAD, เปิด slicer, พิมพ์ชิ้นงาน หรือทดสอบความแข็งแรง
- แผ่นฐาน
- 60 × 40 × 3 mm
- ช่องสกรูสี่เหลี่ยม 4 จุด
- 4 × 4 mm ระยะศูนย์กลาง 40 × 24 mm
- ช่องรัด 2 ช่อง
- 3 × 12 mm ระยะศูนย์กลาง 50 mm
- แก้
dimensions.jsonโดยใช้หน่วย mm แล้วรันpython build_mount.py - เปิด
output/geometry-check.jsonค่าเริ่มต้นต้องได้ขนาด 60×40×3 mm และปริมาตร 6,792 mm³ - เปลี่ยนความหนาเป็น 4 mm แล้วรันใหม่ ปริมาตรต้องเพิ่มเป็น 9,056 mm³
- เปิด
camera-mount.scadใน OpenSCAD เพื่อ Preview/Render หรือเปิด STL ใน slicer ตรวจรูครบ 6 ช่องและหน่วยก่อนพิมพ์
ดาวน์โหลด source OpenSCAD · ดาวน์โหลด STL ที่สร้างด้วย Python · ดูผลตรวจ geometry
ช่องสกรูเป็นสี่เหลี่ยมสำหรับ clearance ต้องใช้แหวนรอง แบบนี้ไม่อ้างว่าเข้ากับกล้องรุ่นใดและไม่มีค่ารับน้ำหนัก ต้องวัด ตรวจความพอดีและทดลองบนโต๊ะก่อน ไม่ใช้ผลตรวจ mesh แทนผลทดสอบการยึดกล้องหรือการบิน
ถ้าขนาดผิดหรือช่องชนขอบ
STL ไม่ระบุหน่วยให้ทุกโปรแกรมตีความตรงกัน เลือก mm เมื่อนำเข้า หากโปรแกรมแจ้งช่องชนขอบให้ลด pitch หรือเพิ่มขนาดแผ่น การแก้ SCAD ด้วยมือไม่เปลี่ยน STL ที่ Python สร้าง และรัน Python ซ้ำจะสร้าง SCAD ทับไฟล์เดิม
อ้างอิง: คู่มือ OpenSCAD · ดาวน์โหลด OpenSCAD สำหรับ Windows/Linux
หลักฐานการรันและบันทึกของผู้เรียน
เปิดรายงานตรวจ Windows · เปิดรายงานตรวจ Ubuntu WSL มีคำสั่ง ผลลัพธ์ เวอร์ชัน Python และข้อจำกัด ตรวจภาพ/label, ผลโมเดล, การเปลี่ยนความเร็ว, input ที่ผิด และไฟล์ STL ที่อ่านกลับจาก binary ไม่ได้ทดสอบโปรแกรมภายนอกหรืออุปกรณ์จริง
ยังไม่มีผลทดลองจากผู้เรียนจริง แบบบันทึกด้านล่างเป็นไฟล์ว่างสำหรับเก็บวันที่ ระบบ เวอร์ชัน ขั้นตอนที่ติดขัด ผลที่คาด/ได้ และชื่อไฟล์หลักฐาน ใช้บันทึกในเครื่อง ไม่มีการส่งข้อมูลอัตโนมัติ
Source, คู่มือและ fixture ที่สร้างใหม่ในแต่ละ ZIP ใช้ MIT ตาม LICENSE.txt ภายในชุด เครื่องมือ โมเดลและเอกสารภายนอกใช้ใบอนุญาตเจ้าของ เช่น Ultralytics AGPL-3.0/Enterprise, ArduPilot GPLv3 และ OpenSCAD GPLv2
เลือกโจทย์ทดลองอื่น · ดูเครื่องมือและระบบที่รองรับ · กลับไปอ่านหลักการ