โปรเจกต์ลงมือทำบนคอมพิวเตอร์

เริ่มจากไฟล์ตัวอย่าง รันให้เห็นผล แล้วค่อยเปลี่ยนข้อมูลหรืออุปกรณ์ เลือกทำทีละชุดได้โดยไม่ต้องมีโดรน

สามชุดเดิมด้านภาพ จำลองเส้นทาง และ 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 และอุปกรณ์จริงที่ยังไม่ได้ทดลอง

ซ้อมตรวจข้อมูลและส่งรายงานสาธารณภัย

ผู้เรียนใช้คอมพิวเตอร์จำลองสนามทดสอบโดรนและบันทึกผลการฝึกในห้องเรียน
ภาพประกอบแนวคิดสร้างด้วย AI

ใช้ CSV สังเคราะห์ฝึกตรวจรหัสซ้ำ พิกัด เวลา และหลักฐานการยืนยัน แล้วส่งรายงานพร้อมรายการที่ต้องตรวจเพิ่ม มีคู่มือ แบบฟอร์ม คำตอบ และใบอนุญาตของไฟล์ต้นฉบับ

คำนวณ GSD ตรวจจุดอิสระ และเทียบปริมาตร

ทีมสำรวจตรวจแผนที่พื้นที่เกษตรข้างโดรนในสถานีภาคสนาม
ภาพประกอบแนวคิดสร้างด้วย AI

ฝึกด้วยกล้องสมมติ พิกัด checkpoint สังเคราะห์ และกริดความสูงขนาดเล็ก ใช้ Python standard library พร้อม CSV และคำตอบคาดหวัง

  1. คำนวณ GSD จากขนาดเซนเซอร์ ความยาวโฟกัส ความกว้างภาพ และความสูงเหนือพื้น
  2. แยก RMSE แนวราบกับแนวดิ่งจากจุดที่กันไว้ตรวจผล ใช้พิกัดและความสูงอ้างอิงเดียวกันในหน่วยเมตร
  3. เปลี่ยนฐานกริดเพื่อเทียบปริมาตร และดูพื้นที่ที่ถูกเว้นเพราะ NoData

ตรวจแล้ว: Windows 11 และ Python 3.14.3 เมื่อ ผ่าน 110 กรณีต่อสำเนาในโฟลเดอร์ทดลองและ ZIP ที่แตกใหม่ ยังไม่ได้ทดสอบ Linux หรือโปรแกรมทำแผนที่ภายนอกในชุดนี้

อ่านรายงานตรวจและขอบเขต · เรียนเส้นทางการทำแผนที่ · เลือกเครื่องมือประมวลผลแผนที่

ผลสังเคราะห์ใช้ตรวจสูตรและขั้นตอน ไม่ใช่หลักฐานความถูกต้องของแผนที่จริง คู่มือแนบเส้นทาง Mygla → WebODM → QGIS และภาพรวม GeoAI ที่ยังไม่ได้ทดลองในงานนี้

ตรวจหาพัสดุจากภาพ

กล้องและแสงสำหรับเก็บภาพพัสดุหลายชิ้นเพื่อเตรียมชุดข้อมูล
กล้องและแสงสำหรับเก็บภาพพัสดุหลายชิ้นเพื่อเตรียมชุดข้อมูล · ภาพจำลองสร้างด้วย AI ไม่ใช่หลักฐานการทดลองจริง
  1. ภาพและ label
  2. ฝึกด้วย train
  3. ประเมินด้วย val / test
  4. ส่งออกและตรวจ PC
  5. ต่อยอด Edge

แผนภาพแสดงเส้นทางรวม ขั้นต้นใช้ชุดสีสังเคราะห์ใน ZIP; การฝึก YOLO และการย้ายไป Edge เป็นขั้นต่อยอดที่ยังไม่ทดสอบ ต้องประเมินซ้ำหลังส่งออกโมเดล

ฝึกเส้นทางภาพ → เรียนรู้ → ส่งออกโมเดล → ทดสอบบน PC ก่อนย้ายไป Raspberry Pi หรือ Jetson

สิ่งที่รันแล้ว: โมเดลสีขนาดเล็กเรียนจากภาพสังเคราะห์ ตรวจกรอบพัสดุหนึ่งชิ้นและภาพไม่มีพัสดุได้ตาม fixture ทั้ง 4 ภาพทดสอบ เป็น nearest-centroid classifier ไม่ใช่ YOLO และผลนี้ไม่ใช่ความแม่นยำบนภาพจริง

ภาพสังเคราะห์กล่องสีน้ำตาลหนึ่งชิ้นบนฉากหลังสีอ่อน ใช้ทดสอบขั้นตอนเท่านั้น
ภาพสังเคราะห์ 64×64 px
ไม่มีภาพพัสดุจริงในชุดนี้
  1. สร้างภาพและ label: python parcel_lab.py generate ได้ PNG, PPM และ label แบบ YOLO แบ่ง train 16 / val 4 / test 4
  2. ฝึกและส่งออก: python parcel_lab.py train ได้ output/model.json ซึ่งเรียนจาก train เท่านั้น
  3. ทดสอบบน PC: python parcel_lab.py evaluate ต้องได้ passed: true ดูกรอบคาดหวังเทียบผลจริงใน JSON
  4. ลองภาพเดียว: ใช้คำสั่งด้านล่าง ผลเป็นพิกัดกรอบในภาพหรือ 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 จำลอง

ผู้เรียนวางแผนแนวสำรวจสลับทิศบนแผนที่ในคอมพิวเตอร์
ผู้เรียนวางแผนแนวสำรวจสลับทิศบนแผนที่ในคอมพิวเตอร์ · ภาพจำลองสร้างด้วย AI ไม่ใช่หลักฐานการทดลองจริง
เส้นทางสำรวจจาก mission.json มองจากด้านบนแนวสำรวจสี่แนว ระยะตะวันออก 40 เมตร ห่างกันทางเหนือ 10 เมตร จุดเริ่มและจบอยู่พิกัดศูนย์ 0102030 010203040 East (m)North (m) 1, 92345678
แนวสำรวจ 4 แนว ห่างกัน 10 m พิกัดจาก mission.json หมายเลขเรียงตาม waypoint; จุด 1 และ 9 ซ้อนกันที่ต้นทาง การขึ้นและลงแนวดิ่งจึงไม่เห็นระยะในภาพด้านบน
020 m0 s52 sความสูงตามเวลาจาก CSV

แก้ waypoint และความเร็ว สร้างเส้นทางสำรวจสลับทิศ แล้วตรวจระยะและเวลาจากข้อมูล CSV

สิ่งที่รันแล้ว: ตัวจำลองตำแหน่งตามเวลาแบบเชิงเส้น (kinematic) บน PC ไม่จำลองแรง ลม แบตเตอรี่ หรือ flight controller ข้อมูล log เป็นข้อมูลสังเคราะห์จากโปรแกรม ไม่ใช่ผลบินหรือ ArduPilot SITL

  1. เปิด mission.json ดูพิกัด east/north/up หน่วยเมตร เริ่มและจบที่ต้นทาง สูง 20 m ระหว่างสำรวจ
  2. รัน python simulate.py ได้ output/synthetic-flight.csv, summary.json และไฟล์ waypoint สำหรับเตรียมทดลองใน SITL
  3. เปิด CSV วาดกราฟ east เทียบ north ควรเห็นแนวสำรวจ 4 แนว ตรวจระยะรวม 260 m เวลา 52 s และตัวอย่างตำแหน่ง 53 แถว
  4. ลดความเร็วจาก 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

สร้างแผ่นยึดกล้องแบบปรับขนาดได้

ตรวจชิ้นส่วนยึดกล้องบนโต๊ะที่มีเครื่องพิมพ์สามมิติและเครื่องมือวัด
ตรวจชิ้นส่วนยึดกล้องบนโต๊ะที่มีเครื่องพิมพ์สามมิติและเครื่องมือวัด · ภาพจำลองสร้างด้วย AI แผนภาพระบุขนาดด้านล่างเป็นแบบที่ตรงกับไฟล์ทดลอง
แบบแผ่นยึดกล้องมองจากด้านบนขนาด60คูณ40มิลลิเมตร ช่องสกรูสี่เหลี่ยม4ช่อง และช่องรัด2ช่อง ตรงกับ dimensions.json 60 mm40 mm หนา 3 mmมองจากด้านบน
อ่านขนาดจาก dimensions.json โดยตรง: ช่องสกรู 4 × 4 mm ระยะศูนย์กลาง 40 × 24 mm; ช่องรัด 3 × 12 mm ระยะศูนย์กลาง 50 mm แบบนี้ยังไม่ผ่านการทดสอบความแข็งแรง

แก้พารามิเตอร์ สร้าง 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
  1. แก้ dimensions.json โดยใช้หน่วย mm แล้วรัน python build_mount.py
  2. เปิด output/geometry-check.json ค่าเริ่มต้นต้องได้ขนาด 60×40×3 mm และปริมาตร 6,792 mm³
  3. เปลี่ยนความหนาเป็น 4 mm แล้วรันใหม่ ปริมาตรต้องเพิ่มเป็น 9,056 mm³
  4. เปิด 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 ไม่ได้ทดสอบโปรแกรมภายนอกหรืออุปกรณ์จริง

ยังไม่มีผลทดลองจากผู้เรียนจริง แบบบันทึกด้านล่างเป็นไฟล์ว่างสำหรับเก็บวันที่ ระบบ เวอร์ชัน ขั้นตอนที่ติดขัด ผลที่คาด/ได้ และชื่อไฟล์หลักฐาน ใช้บันทึกในเครื่อง ไม่มีการส่งข้อมูลอัตโนมัติ

ดาวน์โหลดแบบบันทึกทดลอง CSV

Source, คู่มือและ fixture ที่สร้างใหม่ในแต่ละ ZIP ใช้ MIT ตาม LICENSE.txt ภายในชุด เครื่องมือ โมเดลและเอกสารภายนอกใช้ใบอนุญาตเจ้าของ เช่น Ultralytics AGPL-3.0/Enterprise, ArduPilot GPLv3 และ OpenSCAD GPLv2

เลือกโจทย์ทดลองอื่น · ดูเครื่องมือและระบบที่รองรับ · กลับไปอ่านหลักการ