Tag: โดรน

เมื่อผมลองดี โมดิฟายด์แอพ DJI GO 4 ด้วย Deejayeye-Modder สำหรับโดรน DJI Spark

จากลองของเป็นลองดี

จากตอนที่แล้วเมื่อต้องลองของเอาโดรนเซลฟี่ DJI Spark มาบินทำแผนที่ภาพถ่ายทางอากาศ ตอนนี้เลยคำว่า”ลองของ”ไปไกลหลายช่วงตัวแล้ว เพราะแพ็ตช์หรือโมดิฟายด์แอพ DJI GO 4 เรียกง่ายว่าเป็นการ “ลองดี” ไปแล้ว เพื่อนำโดรนมาบินทำแผนที่ภาพถ่ายทางอากาศโดยที่เปิดหรือใช้ฟีเจอร์ที่ซ่อนไว้ ตอนนี้ฟีเจอร์เทียบได้กับโดรนรุ่นใหญ่เช่น Phantom 4 Pro หรือ Mavic

คำเตือน

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

ต้นทุนความเสี่ยง

มาแจกแจงราคาของสปาร์คกันนิด ผมซื้อสปาร์คแบบ fly combo ราคาในตอนนั้น 23,900 บาท ซื้อแบตเตอรีมาเพิ่มหนึ่งลูกราคา 2000 บาทถ้วน (รวมแบตเตอรีทั้งหมด 3 ลูก) ซื้อกระเป๋าสำหรับใส่โดรนมาครั้งแรก 650 บาทแต่ไม่ถูกใจเพราะใส่ของได้ไม่เยอะ ซื้อมาอีกใบราคา 1850 บาท สาย OTG 200 บาท รวมทั้งหมด 28,600 บาท ใช้เงินขนาดนี้สามารถซื้อสมาร์ทโฟนรุ่นดีๆ ได้สักหนึ่งเครื่องเลยทีเดียว

ทำไมต้องโมดีฟายด์แอพ

ความจริงโดรนแต่ละรุ่นของ DJI แอพจะเป็นส่วนหนึ่งที่เป็นตัวกำหนดว่าตัวไหนมีความสามารถอะไรบ้าง โดรนแต่ละรุ่นจะถูกจัดให้ Product อยู่ในเกรดไหนระดับไหน ตามกำลังซื้อของลูกค้า ลูกค้าที่ต้องการ Premium พันธุ์แท้มีกำลังซื้อสูงก็ควรจะมาซื้อรุ่นเทพ Inspire ที่ราคาเหยียบสองแสนบาทไปใช้ ส่วนใครมีกำลังซื้อลดหลั่นกันมาก็ไล่ตั้งแต่ Phantom 4 Pro, Mavic Pro, Mavic Air จนกระทั่ง DJI Spark โดรนเซลฟี่ราคาถูกที่สุดในไลน์การผลิดของ DJI

ฟีเจอร์ของ DJI Spark ที่ถูกซ่อนคือบินตามเส้นทางที่กำหนด (Waypoint) กับบินเป็นวงโคจร (Orbit) ก่อนหน้านี้ผมพยายามเข้าไปดูข่าวสารตามที่ DJI เคยบอกไว้ว่าอาจจะเอาการบินตามเส้นทางที่กำหนดมาใส่ให้สปาร์ค แต่ก็ตามข่าวมาสี่ ห้าเดือนแล้วก็ไม่มีความคืบหน้าอะไร และในตอนนี้ที่เขียนบทความนี้ ทางดีเจไอก็ออกโดรนรุ่น Mavic Air ตัวใหญ่กว่าสปาร์คนิดหนึ่ง ราคาแพงกว่าประมาณหมื่นกว่าบาท บินได้นานขึ้น gimbal ได้สามแกน (แต่สำหรับคนทำแผนที่ภาพถ่ายทางอากาศสองแกนก็พอครับ) แต่ก่อนจะขายบอกว่าสนับสนุนการบินด้วย waypoint แต่พอออกขายจริงๆ กลับตัดฟีเจอร์นี้ไปดื้อๆ ซะอย่างนั้น ก็ได้ก้อนอิฐไปตามระเบียบไปหลายก้อน

นักโมกลุ่ม Deejayeye-Modder

ผมเข้าไปติดตามข่าวสารบ่อยๆตามฟอรั่มของผู้ใช้โดรน ก็เลยค้นไปเจอว่ามีกลุ่มโมดิฟายด์ (modder) ชื่อรวมๆคือ Deejayeye โมดิฟาย์แอพ DJI Go 4 เพื่อเปิดฟีเจอร์ที่ซ่อนนี้สำหรับโดรนสปาร์ค เป็นโค้ดเปิดใน Github โดยการเอาไฟล์ที่ใช้สำหรับติดตั้งในแอนดรอยด์คือไฟล์ APK (Android Package) มาทำการ patch เพื่อเปิดฟีเจอร์ที่ถูกซ่อนนี้ ในตอนแรกก็ไม่มั่นใจแต่ลองเอามาทำด้วยเครื่องมือที่ทีมงานแนะนำมาพร้อมโค้ด ก็ลองดูกลับทำได้สำเร็จ ลองเอาไฟล์นี้มาติดตั้งในโทรศัพท์แอนดรอยด์ของผมก็สามารถใช้งานได้

ย้อนรอยตอนลองของ

ขอเล่าย้อนรอยสั้นๆก่อนหน้านี้ ผมใช้แอพ Litchi ผมพอใจการทำงานของ Litchi ปัญหาเมื่อโดรนต่อกับรีโมทคอนโทรล (Remote controller) สัญญานหลุดจากกันแต่ก็ reconnect ให้ใหม่ได้เร็ว ไม่ต้องลุ้นมาก แอพมีความเสถียรพอสมควร นานๆจะแครชที แต่ข้อเสียคือสุ่มเสี่ยงกับการไม่ได้รับประกันจาก DJI และข้อเสียอีกอย่างคือไม่สนับสนุนการบินตามเส้นทางที่กำหนด (waypoint) สำหรับโดรน DJI Spark ที่ไม่สนับสนุนเพราะว่าเครื่องมือ SDK (Software Development Kit) ของ DJI ไม่มีไว้ให้นั่นเอง คำว่าไม่สนับสนุนคือสั่งให้บินไปตามเส้นทางไม่ได้ แต่สามารถสร้างเส้น waypoint นี้ได้

ผมกำหนดเส้นทางการบิน (waypoint) จากที่มีในแอพ เรียกว่าสามารถใส่จุดล่วงหน้าจากแอพโดยการจิ้มแต่ละจุดไปบน map แต่ข้อเสียคือไม่สามารถนำเข้าไฟล์จาก kml ได้ เครื่องมือสร้าง auto waypoint จากรูปปิดที่กำหนดให้ก็ไม่มี ตอนบินก็เรียกเส้นทางการบินนี้ให้แสดงบนแผนที่ จากนั้นก็บังคับโดรนบินไปตามเส้นทางเหล่านี้ คุณภาพของการบินให้ตรงกับเส้นทางที่กำหนดนี่ต้องอาศัยทักษะพอสมควร แต่ส่วนใหญ่ผมเป๋ไปด้านซ้ายด้านขวาบ้าง แต่ผมออกแบบให้เส้นแนวบิน Overlap กันมากขึ้นคือให้เส้นแนวบินเข้ามาใกล้กันมากกว่าทฤษฎีจะได้ชดเชยเมื่อบินไม่ตรงแนว ตอนบินก็สั่งให้ gimbal ก้มด้วยมุม 85 องศา (เต็มที่แล้ว ไม่ได้ 90 องศา) จากนั้นก็สั่งถ่ายรูปด้วย interval ทุกๆ 3 วินาที ลองดูรูปด้านล่างจะเห็นว่าแนวบินไม่เป็นเส้นตรงเฉไปเฉมา

ตั้งแต่ผมซื้อโดรนมา เคยเอามาเซลฟี่ประมาณ 4-5 ครั้งแค่นั้นเอง จากนั้นเอามาบินทำแผนที่ภาพถ่ายทางอากาศทั้งหมด ดังนั้นฟีเจอร์ที่ผมต้องการที่สุดก็คือบินตามเส้นทางที่กำหนดเท่านั้นเพราะจะได้เบาแรงเมื่อเอาโดรนขึ้นไปบนฟ้า เพิ่มเติมอีกนิดผมเคยใช้แอพทางการของ DJI GO 4 อยู่ไม่กี่ครั้ง จากนั้นก็ใช้ Litchi มาตลอด

เมื่อ DJI กลับลำในกรณี Mavic Air

เท่าที่ผมติดตามเป็นแฟนของโดรน DJI มาสักระยะหนึ่งพบว่านอกจากสินค้าที่ดีด้านฮาร์ดแวร์ ส่วนด้านบริการยังไม่ทราบเพราะไม่เคยได้ใช้ ส่วนซอฟต์แวร์จะดีหรือแย่ค่อยมาว่ากันอีกที ในกรณีของ Mavic Air จะวางขายมีการออกสื่อทั้งทางเว็บทางการของ DJI เองว่า Mavic Air สนับสนุนการบินตามเส้นทางที่กำหนด ผมรู้สึกผิดหวังนิดๆว่าไม่น่ารีบซื้อ Spark มาเลย เตรียมตัวขายต่อครับ จะเอาเงินไปซื้อ Mavic Air แต่สุดท้ายฟ้าผ่าเพราะก่อนหน้าจะออกวางขายไม่กี่วัน DJI ก็ตัดฟีเจอร์นี้ออกจากเว็บไซต์แบบหน้าตาเฉย ตอนนั่นผมไม่รู้จะดีใจหรือผิดหวังดี ที่ดีใจคือไม่ได้ขายสปาร์ค ที่ผิดหวังคือนโยบายที่เอาแน่นอนไม่ได้ของ DJI

พบแสงสว่างบนทางแห่งความเสี่ยง

ในที่สุดกับก็มาพบโมดิฟายด์แอพด้วยเครื่องมือของ Deejayeye ตามที่ผมกล่าวไปข้างต้น พยายามอ่านและทำความเข้าใจอยู่หลายวัน คันไม้คันมือทนไม่ไหว ก็เลยตัดสินใจลองดู ถ้าสำเร็จหมายถึงการรับประกันก็สิ้นสุดทันที ผมดาวน์โหลดไฟล์โดยที่ไฟล์ประกอบด้วยโค้ด โครงสร้างไดเรคทอรีเปล่าๆ ที่จะต้องไปดาวน์โหลดเครื่องมือมาใส่ในไดเรคทอรีนี้ และมีไดเรคทอรีที่ต้องไปหาไฟล์ติดตั้งแอพ DJI GO 4 ที่เป็นแพ็คเกจ APK มาใส่เพื่อให้โปรแกรมสามารถแพ็ตช์ได้

แพ็คเกจ APK สามารถหาดาวน์โหลดได้เฉพาะ DJI GO 4 รุ่น 4.1.4 ถึง 4.1.9 แต่รุ่นหลังจากนี้ทาง DJI ได้ทำการ encrypted ไว้ ไม่สามารถหาได้บนดิน ต้องมุดใต้ดินไปหาครับ

ปัญหา OTG (On The Go)

ปัญหาของ OTG บนแอนดรอยด์สำหรับใช้บนแอพ DJI GO 4 ถือว่าเป็นปัญหาอลเวง เดี๋ยว DJI สนับสนุนเดี๋ยวถอดออก ผมซื้อสายมา 200 บาทแต่ไม่ได้ใช้เลย แต่ที่ได้ยินมาคือฝั่ง IOS ใช้ได้ดีไม่ปัญหาเหมือนฝั่งแอนดรอยด์

OTG คือสายเคเบิลที่เอามาต่อระหว่างรีโมทคอนโทรลกับโทรศัพท์มือถือที่ลงแอพ DJI GO 4 คือที่ได้ยินมาตลอด ถ้ามันต่อได้ดีเสถียร จะเป็นประโยชน์มากกว่าการต่อด้วยไวไฟเพราะไวไฟนี้อาจจะไปกวนไวไฟที่ต่อระหว่างรีโมทคอนโทรลกับโดรนที่บินกลางอากาศ

เลือกเวอร์ชั่นของแอพ DJI GO 4

ผมหาแพ็คเกจ apk ของแอพตอนแรกเลือก 4.1.22 รุ่นล่าสุดในขณะที่เขียนบทความ ทำการแพ็ตช์ ติดตั้งลงโทรศัพท์มือถือปรากฎว่าสาย OTG ใช้ไม่ได้ครับ เพราะตอนแรกอ่านผ่านๆว่ารุ่นหลังๆสนับสนุนแล้ว พอไปอ่านดีๆกลับผมว่า DJI ไม่สนับสนุนในแอพรุ่นนี้ สุดท้ายพบว่ารุ่น 4.1.15 ที่สนับสนุน ก็เลยต้องไปหาแพ็คเกจ apk รุ่นนี้มาทำการแพ็ตช์ แล้วทำการติดตั้งลงมือถือ เลือก Flight mode คือปิดการสื่อสารทุกอย่างบนโทรศัพท์มือถือ เปิดแอพ DJI GO 4 รุ่น 4.1.15 ในที่สุด OTG ใช้ได้

เปิดฟีเจอร์ Waypoint

เมื่อเปิดแอพ DJI GO 4 ทำการต่อสายรีโมทคอนโทรล จากนั้นก็ต่อกับโดรน ช่่วงนี้ลองในบ้านได้ ทำการปรับค่า config ต่างๆ แล้วลองแท็บไปในโหมด Fly intelligent จะเห็นว่า การบินด้วยเส้นทางที่กำหนด (Waypoints) เปิดมาเป็นที่เรียบร้อยพร้อมที่จะไปลองทดสอบ

ปัญหาเมื่อเส้นทางกำหนดการบินไม่สามารถกำหนดล่วงหน้าได้

ผมได้บอกไปแล้วว่าด้าน hardware โดรนในค่ายของ DJI ทำได้ยอดเยี่ยม แต่ด้านซอฟท์แวร์ กลับได้ยินเสียงอึงคะนึงหลายๆอย่าง ที่หนักๆแรงๆคือการบินด้วย waypoint ไม่สามารถป้อนหรือใส่ได้ก่อนแบบที่ Litchi หรือแอพตัวอื่นทำได้ จะวางแผนการบินล่วงหน้าทาง DJI ก็มีให้คือเสียเงินไปซื้อ DJI Ground Station สำหรับ IOS แต่ไม่มีสำหรับฝั่งแอนดรอยด์ที่ผมใช้อยู่

การวาง waypoint จะต้องเอาเครื่องโดรนขึ้นไปบนฟ้าตำแหน่งที่จะต้องการบินแล้วทำการ record จุดที่ละจุดจนครบ ฟังดูง่ายสำหรับการตั้ง waypoint สำหรับเอาไปถ่ายภาพสวยๆหรือถ่ายวีดีโอ แต่ไม่ใช่งานบินทำแผนที่ด้วยภาพถ่ายทางอากาศ เพราะเราต้องการเส้นตรงที่ขนานกัน เพื่อให้ overlap ได้ตรงกับที่คำนวณไว้ และเส้นตรงเหล่านี้ไม่ได้มีแค่เส้น สองเส้น บางครั้งเป็นร้อยเส้น จะทำอย่างไรดี และที่ตลกคือเมื่อเราวางจุด waypoint เสร็จ ถ้าเป็นงานถ่ายภาพทำแผนที่ภาพถ่ายทางอากาศ มีเสน waypoint หลายๆเส้น แบตเตอรีก็คงใกล้จะหมด ต้องเอาโดรนลงมาบนพื้นใส่แบตเตอรี่แล้วบินขึ้นไปใหม่ แล้วค่อยใช้ waypoint ในการบินอีกครั้งเพื่อถ่ายภาพ

ปัญหาอีกอย่างคือในการบินตามเส้นทางที่กำหนด ต้องทำการเป็นลำดับ 1, 2, 3, 4, …. (ไม่ต้องถึงไลน์สุดท้ายก็สามารถเรียกโดรนกลับมาได้) แต่ตัวอย่างเช่นต้องการบินจาก 3, 4 ,5, 6 ทำไม่ได้ครับ ต้องไล่ตั้งแต่ 1, 2, 3 ซึ่งเป็นข้อเสียอย่างแรง

ตามล่าหาวิธีการสร้างเส้นทางการบินที่กำหนดล่วงหน้า

จากปัญหาที่พบผมไม่ต้องไปค้นที่ไหนไกล ในกลุ่มนักโมดิฟายด์ ก็มีคนเห็นปัญหานี้ เขาใช้เครื่องที่ root ตามเข้าไปในดูในโฟลเดอร์ของแอพบนมือถือก็พบว่ามีไฟล์ที่เป็นฐานข้อมูล sqlite ข้างในมีตารางที่แสดง waypoint ด้วยสตริงแบบ json จากนั้นก็เพิ่มฟีเจอร์เข้าไปใน DJI GO 4 เพื่อทำให้ไฟล์นี้เป็น public คือเครื่องไม่ root สามารถไปแก้ไขได้ ในขณะนี้รู้ว่าแอพทำการเก็บข้อมูลที่ไหนและรู้รูปแบบคือเป็นฐานข้อมูล sqlite

Mission Planner สุดยอดโปรแกรมออกแบบเส้นทางการบิน

โปรแกรมนี้บน Desktop PC เป็นโปรแกรมฟรี ใช้งานง่ายมาก ไปดาวน์โหลดได้ที่ ลิ๊งค์นี้  โปรแกรมนี้สามารถสร้าง Polygon ด้วยการจุดบน map ได้ง่ายๆ หรือจะนำเข้าจาก shape file ก็ได้ เมื่อได้พื้นที่แล้วสามารถสร้าง waypoint ได้จากการป้อนค่ามุมอะซิมุทแนวการบิน ความสูงของโดรน และค่าอีกหลายๆค่า จากนั้นโปรแกรมจะสร้าง waypoint ให้ ซึ่งเราสามารถจัดเก็บเป็นไฟล์ในรูปแบบรหัสแอสกี้ (text file) ได้ แต่ตอนนี้ได้ไฟล์มาแต่ยังไม่โดนใจแอพ DJI GO 4 ต้องทำการแปลงเป็นฐานข้อมูล sqlite ก่อน

มาลองดูไฟล์ waypoints ที่ได้จากโปรแกรม Mission Planner

QGC WPL 110
0 1 0 16 0 0 0 0 23.864033 90.366674 8.000000 1
1 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86296860 90.36620300 50.000000 1
2 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86312430 90.36512590 50.000000 1
3 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86336720 90.36516850 50.000000 1
4 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86321230 90.36623980 50.000000 1
5 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86345610 90.36627670 50.000000 1
6 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86361010 90.36521110 50.000000 1
7 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86385300 90.36525370 50.000000 1
8 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86369980 90.36631360 50.000000 1
9 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86394360 90.36635050 50.000000 1
10 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86409600 90.36529640 50.000000 1
11 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86433890 90.36533900 50.000000 1
12 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86418730 90.36638740 50.000000 1
13 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86443110 90.36642420 50.000000 1
14 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86458180 90.36538160 50.000000 1
15 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86482470 90.36542420 50.000000 1
16 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86467480 90.36646110 50.000000 1
17 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86491860 90.36649800 50.000000 1
18 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86506770 90.36546680 50.000000 1
19 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86531060 90.36550940 50.000000 1
20 0 0 16 0.00000000 0.00000000 0.00000000 0.00000000 23.86516230 90.36653490 50.000000 1

ArduMissionToDJISQL ทูลส์มาช่วยแปลงข้อมูล

และนักโมดิฟายด์ท่านนี้ก็ได้สร้างทูลส์แปลงจาก textfile เป็นไฟล์ sql ซึ่งเป็น text file เช่นเดียวกันแต่เป็นไฟล์โค๊ดภาษา sql เพื่อเตรียมปั๊มป์ข้อมูลนี้เข้าไปในฐานข้อมูล ไปหาดาวน์โหลดได้ที่ฟอรั่มตามลิ๊งค์นี้

ไฟล์ sql ที่ได้จากการแปลง waypoints ก็แบบนี้ครับ

INSERT INTO dji_pilot_dji_groundstation_controller_DataMgr_DJIWPCollectionItem ( distance, pointsJsonStr, autoAddFlag, createdDate )
VALUES (1328.54, ‘{“points”:[{“craftYaw”:-81,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86296860000000,”lng”:90.36620300000000},{“craftYaw”:9,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86312430000000,”lng”:90.36512590000000},{“craftYaw”:99,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86336720000000,”lng”:90.36516850000000},{“craftYaw”:8,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86321230000000,”lng”:90.36623980000000},{“craftYaw”:-81,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86345610000000,”lng”:90.36627670000000},{“craftYaw”:9,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86361010000000,”lng”:90.36521110000000},{“craftYaw”:99,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86385300000000,”lng”:90.36525370000000},{“craftYaw”:8,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86369980000000,”lng”:90.36631360000000},{“craftYaw”:-81,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86394360000000,”lng”:90.36635050000000},{“craftYaw”:9,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86409600000000,”lng”:90.36529640000001},{“craftYaw”:99,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86433890000000,”lng”:90.36533900000001},{“craftYaw”:8,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86418730000000,”lng”:90.36638739999999},{“craftYaw”:-81,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86443110000000,”lng”:90.36642420000000},{“craftYaw”:9,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86458180000000,”lng”:90.36538160000001},{“craftYaw”:99,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86482470000000,”lng”:90.36542420000001},{“craftYaw”:8,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86467480000000,”lng”:90.36646110000000},{“craftYaw”:-81,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86491860000000,”lng”:90.36649800000001},{“craftYaw”:9,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86506770000000,”lng”:90.36546679999999},{“craftYaw”:99,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86531060000000,”lng”:90.36550939999999},{“craftYaw”:99,”gimbalPitch”:-85,”gimbalYaw”:0,”height”:50.00000000000000,”lat”:23.86516230000000,”lng”:90.36653490000000}]}’,1,1524200609000)

SQLite Studio โปรแกรมช่วยบริหารฐานข้อมูล SQLite

SQLite Studio เป็นโปรแกรมฟรีและเปิดโค้ด ผมใช้มานานแล้ว เมื่อติดตั้งแล้ว ผมจะใช้โอนไฟล์จากแอพ DJI GO 4 ชื่อไฟล์คือ dji_mod_4_1_15.db ในเครื่องผมอยู่ที่ /mnt/storage/DJI/ จากนั้น copy มาฝั่ง desktop pc ทำการแก้ไขด้วย SQLite Studio ด้วยการ Add Database แล้วเลือกไฟล์นี้ จากนั้นมองหาตารางข้อมูลชื่อ “dji_pilot_dji_groundstation_controller_DataMgr_DJIWPCollectionItem” เปิด Sqlite Editor จากนั้นเปิดไฟล์ sql  ด้วย Notepad จากขั้นตอนที่แล้วทำการ copy เนื้อหาไปยังคลิปบอร์ด แล้วทำการ paste ที่ Sqlite Editor นี้แล้วทำการ Execute Query ข้อมูลจะถูกปั๊มป์เข้าไปในฐานข้อมูล จากนั้นจะ copy ไฟล์ ฐานข้อมูลนี้กลับไปยังโทรศัพท์มือถือเพื่อไปทับกับไฟล์เดิม

ทดสอบบินตามเส้นทางที่กำหนด

วันแรกที่ผมต้องการลองบินแบบบินตามเส้นทางที่กำหนด (waypoint) รู้สึกใจไม่ค่อยดี หนึ่งนั้นที่เคยบอกไปว่าไม่ค่อยคุ้นกับแอพ DJI GO 4 เพราะไม่ค่อยได้ใช้ และอีกอย่างคือไฟล์เส้นทางการบินที่เตรียมมาไม่สามารถเปิดดูได้จากแอพ DJI GO 4 ก่อน ว่ามีอะไรบ้าง นี่ก็เป็นข้อเสียที่ร้ายแรงอีกอย่างครับ ทำไมให้เปิดดูไม่ได้ก่อน ต้องเอาโดรนบินขึ้นไปบนฟ้าเท่านั้นจึงจะดูได้ แหมถ้าเป็นยุคซามูไร ทีมงานผู้พัฒนาชุดนี้ควรจะต้องคว้านท้องตัวเอง (เอาฮานะครับ) เมื่อขึ้นไปบนท้องฟ้าแล้วผมก็ดูไฟล์แนวบินที่ผมสร้างเอาไว้ ในฐานข้อมูลนั้นจะมี location ด้วยผมใส่คำอธิบายไปด้วยสั้นๆ เพื่อให้หาไฟล์ง่าย เพราะ DJI GO 4 เลือกที่จะเน้นแสดงผลเส้นทางการบินนี้ด้วยวันเวลาที่สร้างซึ่งดูยากมาก

ครั้งแรกที่ลองบินตาม waypoint ผมเลือกเอาเส้นทางการบินตามแนวรถไฟฟ้าที่กำลังก่อสร้างนอกเมือง บริเวณนั้นมีหนองน้ำเยอะพอสมควร สลับด้วยทุ่งหญ้า เมื่อบินขึ้นท้องฟ้าปรากฎว่าผมไปยืนอยู่ผิดตำแหน่งคือห่างจาก waypoint ไปประมาณ 400 เมตร (ถือว่าไกลสำหรับสปาร์ค) ด้วยความที่ไม่อยากเสียเวลาก็เลย Apply เพื่ออัพโหลด waypoint ชุดนี้เข้าโดรน จากนั้นโดรนก็บินไปตาม waypoint จุดที่ 1 พอบินไปได้สัก 6 เส้น ผมลอง stop เพื่อจะเรียกเครื่องกลับ เป็นเรื่องครับ สัญญาณกลับขาดหายไปดื้อๆ ทั้งๆตอนที่บินอยู่ในตอนนั้นโดรนส่งรูปที่ถ่ายมาให้โทรศัพท์มือถือดูได้ตลอด ก่อนสัญญาณจะหลุดผมดูแล้วมีแบตเตอรีเหลือ 38% เมื่อติดต่อกันไม่ได้ผมก็เดินจ้ำอ้าวไปยังจุดที่โดรนบินค้างอยู่กลางอากาศแต่ไม่ทราบว่าอยู่ตรงไหน ด้วยอารามรีบร้อนกลับเลยไปอีกทางหนึ่ง เมื่อตั้งสติได้ก็มาดูที่แอพอีกทีดูจุดสุดท้ายบนแผนที่ ก็เลยวิ่งกันมาที่จุดนั้น เดชะบุญปรากฎว่าโดรนแลนดิ้งลงมาเอง อยู่กลางถนนลาดยางเล็กๆที่ไม่มีใครใช้ แบตเตอรีกระพริบอยู่ พอผมไปถึงแบตเตอรีก็หมดพอดี ผมลองเปลี่ยนแบตเตอรีลูกใหม่ใส่เข้าไปทดลองบินขึ้นอีกครั้งก็ยังดีอยู่ ไม่มีอะไรเสียหาย เมื่อกลับไปผมเอารูปที่ถ่ายมาดู จุดสุดท้ายที่ถ่ายเป็นทุ่งหญ้า แต่ก็สงสัยว่าเครื่องมาแลนดิ้งลงที่ถนนลาดยางห่างออกไป 20 เมตรได้อย่างไร และปลอดภัยด้วย ถือเป็นความโชคดีมากๆเนื่องจากในบริเวณนั้นส่วนใหญ่เป็นหนองน้ำ

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

ไม่พบปัญหาในการทดสอบในภายหลัง

วันต่อมาผมก็เอาโดรนพร้อมทั้งทำ waypoint ประมาณ 3 ชุด แต่ละชุดผมคำนวณระยะทางและความเร็วของการบินโดรนซึ่งผมไม่ให้เกิน 12 กม.ต่อชม. ใช้เวลาประมาณแค่ 9-10 นาทีเท่านั้น (แบตเตอรีตามสเป็คแล้วใช้ได้ 15 นาที) และจุด home ที่ไปยืนปล่อยโดรนต้องเป็นจุดที่อยู่ในพื้นที่นั้นๆ ป้องกันโดรนบินออกไปไกลทั้งขาไปและขากลับ วันที่สองนี้ไม่มีปัญหาครับ สัญญาณไม่หลุด นิ่ง และที่สำคัญคือในขณะนั้นลมแรงไปนิด เพราะมีเมฆฝนตั้งเค้าไกลๆ แต่โดรนสามารถบินไปตามแนวได้อย่างตรงแนว ผิดกับที่ผมบินด้วย manual แบบหน้ามือกับหลังมือ และแอพก็เตือนตลอดว่าลมแรงให้บินด้วยความระมัดระวัง เมื่อบินจบแนวเส้นทางการบินที่กำหนดไว้แล้ว เครื่องก็บินกลับมาจุดปล่อย (home) ได้อย่างปลอดภัย ลองดูรูปด้านล่างจะเห็นว่าแนวบินเป็นเส้นตรง

สรุป

ผมถือว่าภารกิจลองดีครั้งนี้ประสบความสำเร็จด้วยดีแต่ก็ผ่านความหวุดหวุดหวาดเสียวมาพอสมควรในกรณีที่สัญญาณหลุดจนโดรน landing ลงมาเอง ในส่วนของแอพ DJI GO 4 เองยังมีฟีเจอร์หลายอย่างที่ต้องพัฒนาปรับปรุงอีกมากมาย ตามที่ในฟอรั่มผู้ใช้งานได้เรียกร้องกันมาตลอด สำหรับประสบการณ์ของผมในครั้งนี้ก็ถ่ายทอดให้ผู้อ่านพอหอมปากหอมคอและอย่าได้ขอไฟล์แพ็คเกจที่ผมแพ็ตช์ตัวนี้มาเลยนะครับเพราะเป็นเรื่องการละเมิดลิขสิทธิ์ ติดตามกันต่อไปครับ

DJI Spark – เมื่อต้องลองของเอาโดรนเซลฟี่ไปบินทำแผนที่ภาพถ่ายทางอากาศ

DJI Spark

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

20180107_152500

 

ข้อดี

ใช้ง่าย ราคาย่อมเยาว์ บังคับได้สามอย่างคือทั้งภาษาท่าทางมือ (Gesture), โทรศัพท์มือถือต่อตรงกับโดรน และ รีโมทคอนโทรล (Remote control) ถ้าใช้รีโมทคอนโทรลต้องซื้อมาต่างหากหรือซื้อมารวมเรียกว่า Fly More Combo

ข้อเสีย

สำหรับผมแล้ว ปัญหาประการที่หนึ่งคือสปาร์คไม่สนับสนุนการบินตามเส้นทางที่เรากำหนด (Waypoint) นี่เป็นปัญหาหนักใจสำหรับภารกิจนี้ ผมพยายามดูแอปอื่นที่ไม่ใช่ DJI GO 4 เช่น Litchi, Dronedeploy, Autopilot ทุกแอปไม่สนับสนุน ยกเว้นได้ยินว่า Autopilot บน IOS บินด้วย waypoint ได้ แต่ผมใช้แอนดรอยด์ ตัวนี้เลยตกไป (ผมซื้อ Litchi มาด้วย 800 บาท) แต่อย่างไรก็ตามผู้ใช้ในฟอรั่มของ DJI ก็เรียกร้องฟีเจอร์นี้กันพอสมควร มาดูกันว่าอนาคตผู้ผลิตจะใส่ฟีเจอร์นี้ให้หรือไม่ ถึงแม้เราจะบินด้วยแอปอื่นที่ไม่ DJI GO 4 ก็ตามก็อาจจะไม่ได้รับการรับประกันจาก DJI นี่เป็นปัญหาประการที่สอง

ทำไมต้องบินตามเส้นทางที่กำหนด

คือถ้าโดรนสนับสนุนฟีเจอร์นี้ เราสามารถใส่เส้นทางการบินโดยกำหนดจุดให้ แล้วก็ลากเส้นทางจากจุดเหล่านั้นต่อๆกันไป สำหรับหลักการของการบินภาพถ่ายทางอากาศ แต่ละภาพจะต้องเหลื่อมซ้อนกันนี่เป็นหลักการที่สำคัญมาก เพื่อให้เกิดภาพคู่ (Stereo) ทั้ง overlap ในแนวบินขณะนั้นและ overlap กับแนวบินสองข้างที่ขนานกัน วิธีการกำหนดที่ได้ผลที่สุดคือต้องลากเส้นตรงเป็นแนวบินขนานกันไปในพื้นที่นั้นๆ จากนั้นอาจจะเพิ่มเส้นตัดขวางแต่ห่างๆหน่อยเพื่อให้เกิดภาพอีกมุม จะได้เก็บรายละเอียดได้ครบ เมื่อสร้างเส้นทางการบินแล้ว เอาโดรนหน้างานก็สั่งให้บินขึ้นไปเก็บ โดรนจะบินในโหมด Autonomous จนกระทั่งแบตเตอรี่ใกล้หมดในระดับหนึ่ง โดรนจะคำนวณระยะเวลาบินกลับฐาน (Return to Home) ได้อย่างปลอดภัย

client_2018-01-07_13-44-35

ใช้รีโมทคอนโทรลเมื่อต้องบินทำแผนที่ภาพถ่ายทางอากาศ

อันนี้สำคัญมากครับ เพราะใช้รีโมทคอนโทรลจะบังคับโดรนได้ไกลมากกว่าใช้โทรศัพท์มือถืออย่างเดียว ตามคู่มือสปาร์คสามารถใช้ได้ไกลถึง 2 กม. แต่ทำจริงๆไม่ได้ขนาดนั้น เรามาว่ารายละเอียดเรื่องนี้ทีหลัง

20180107_152509

เตรียมพื้นที่ที่จะบิน

ในการบินทำแผนที่ภาพถ่ายทางอากาศสิ่งที่สำคัญที่สุดคือ Marker บนพื้นดินเพื่อเป็นจุดบังคับภาพถ่าย (Photo control หรือ Ground control point) วิธีการจะมีการใช้ Maker แบบชั่วคราว เป็นแผ่นไม้อัดทาสีกากบาท อาจจะใช้สีแดงสีขาวทาให้ตัดกันชัดเจน แล้วนำไปวางเป็นจุดๆตามพื้นที่กระจายๆกันไป ให้พอดีไม่น้อยเกินไปหรือไม่มากเกินไป หรือจะใช้แบบถาวรแบบที่ผมใช้คือในโรงงานมันมีถนน ผมเอาสีแดงสีขาวไปพ่นไว้ ขนาดใหญ่ประมาณ 30 cm x 30 cm ให้พอเห็นชัดจากภาพถ่ายทางอากาศ จากนั้นจะเก็บพิกัด Marker เหล่านี้ด้วยวิธีการใช้กล้อง Total Station เก็บค่าพิกัด แต่ถ้าใช้ RTK ก็จะรวดเร็วขึ้นมาก ข้อดีของ Marker แบบถาวรคือจะมาบินกี่รอบก็ยังใช้ได้ เหมาะกับโรงงานหรือพื้นที่ก่อสร้างที่ต้องการตรวจความก้าวหน้าของงาน

2018-01-05_17-49-492018-01-10_11-57-32

ตรวจสภาพอากาศ

สภาพอากาศบางครั้งต้องตรวจเหมือนกันจากเว็บไซต์ได้แก่ฝนตกไหม หรือหมอกจัด ผมเคยนัดกันไปสิบโมงเช้าปรากฎว่าหมอกลงจัดแทบมองกันไม่เห็นดังรูปด้านล่าง ต้องรออีกสองชั่วโมงตอนเที่ยงแดดถึงไล่หมอกออกไปเริ่มบินได้ตอนบ่ายโมง ถ้าวางแผนล่วงหน้าได้จะไม่ต้องไปให้เสียเที่ยว

20180105_095332

จัดเตรียมอุปกรณ์

ชาร์จแบตเตอรี่ของโดรนและรีโมทคอนโทรลให้เรียบร้อย การเอามาใช้ครั้งแรกต้องมีการ activate โดรนเสียก่อนเพื่อให้ DJI GO 4 ได้รู้จักวิธีการต้องไปอ่านคู่มือหรือดูจากยูทูบที่มีคนเอามาลงเยอะมาก สำหรับในที่นี้ผมจะใช้งานด้วยการต่อโดรนเข้ารีโมทคอนโทรล และต่อรีโมทคอนโทรลเข้ากับโทรศัพท์มือถือ เมื่อต่อเรียบร้อยครั้งแรกจะมีการอัพเดทเฟิร์มแวร์ของโดรน จากน้้นทำการคาลิเบรท Compass, IMU ให้เรียบร้อย แล้วต้องมั่นใจว่า Micros SD Card เสียบอยู่ที่โดรนเรียบร้อย

ปัญหาการเชื่อมต่อ

ตอนซื้อมาผู้ขายโดรน จัดสาย OTG มาให้จ่ายตังค์เพิ่มสองร้อยบาท เพื่อมาต่อรีโมทคอนโทรลเข้ากับโทรศัพท์มือถือบอกว่าเสถียรกว่าต่อด้วยไวไฟ แต่ในความเป็นจริงเมื่อมาต่อแล้วกลับพบปัญหาต่อกันได้มองกันเห็น แต่ข้อมูลบางอย่างเช่นสถานะแบตเตอรี GPS กลับไม่ส่งมามือถือ กลับไปดูตามฟอรั่มพบว่า DJI หยุดสนับสนุนมาสักพักใหญ่ๆแล้ว อาจจะมีปัญหาเรื่องไดรเวอร์ของสาย OTG เอาละกลับมาต่อรีโมทคอนโทรลกับโทรศัพท์มือถือด้วยไวไฟอีกครั้ง ที่นี้การเชื่อมต่อไวไฟจะเป็นสองขยักคือ ไวไฟขยักที่ต่อระหว่างโทรศัพท์มือถือกับรีโมทคอนโทรล และไวไฟระหว่างรีโมทคอนโทรลกับโดรน ที่กลัวกันว่าสัญญานไวไฟสองอย่างนี้จะกวนกันทำให้ไม่เสถียร แต่ตอนนี้ไม่มีทางเลือกอื่นต้องใช้

GSD (Ground Sample Distance)

คือระยะทางบนพื้นดินระหว่างจุดศูนย์กลางพิกเซลของภาพที่อยู่ติดกัน ถ้าค่าน้อยแสดงว่าภาพจะมีความละเอียดมาก  GSD  จะขึ้นอยู่กับความสูงของแนวบินในขณะถ่ายภาพ ถ้าความสูงของแนวบินต่ำจะได้ค่า GSD ที่น้อย ภาพจะมีความละเอียดคมชัดมากขึ้น

วางแผนการบิน

ผมใช้ DroneDeploy มีทั้งเวอร์ชั่นบนโทรศัพท์มือถือและบน Desktop เนื่องจากการบินแบบกำหนดเส้นทาง เราต้องการ GSD (Ground Sample Distance) เท่าไหร่ ถ้าละเอียดมากต้องบินต่ำ แต่แนวบินจะเพิ่มมากขึ้น เอาให้พอเหมาะ จะได้ประหยัดเวลา ประหยัดเงินทอง และที่สำคัญคือข้อมูลมาก จะไปโหลดเครื่องคอมพิวเตอร์ตอนคำนวณอย่างแรง แต่ทางเลือกอื่นก็มีถ้าเสียเงิน สามารถส่งรายการคำนวณไปใช้บริการในคลาวด์ได้ เสียเงินมากก็คำนวณได้ผลลัพธ์เร็วมาก แต่ผมไม่ได้ใช้ขอไม่พูดถึงในที่นี้
จากนั้นกำหนดพื้นลงที่ต้องการบินคร่าวๆบนโปรแกรม สามารถขยับมุมพื้นที่ได้สะดวก เพิ่มได้ง่าย จากนั้นกำหนดความสูงของแนวบิน โปรแกรมจะคำนวณ GSD มาให้ดู และจะคำนวณเส้นทางการบินให้ โดยเอาข้อมูลกล้องถ่ายรูปของโดรนของ DJI Phantom, Maveric ซึ่งผมอนุมานว่าน่าจะใกล้เคียงกับ Spark โปรแกรมจะใช้ข้อมูลกล้องถ่ายรูปของเรา โดยใช้ focal length เราสามารถป้อนเปอร์เซ็นต์ค่า overlap ได้ จากนั้นโปรแกรมจะคำนวณเส้นทางมาให้ สามารถปรับทิศทางการบินได้ตามความต้องการ จากนั้นดูเป็นไกด์ครับ ว่าเส้นทางการบินแนวไหน ห่างกันประมาณเท่าไหร่ พอไปบินด้วยสปาร์คอีกทีจะเป็นการด้นสดๆบนแผนที่ปล่าวๆ ความสนุกอยู่ตรงนี้แหละครับ

chrome_2018-01-10_12-53-35

chrome_2018-01-10_12-54-02

กำหนดและแบ่งแยกพื้นที่

เนื่องจากสปาร์คไม่สนับสนุนการบินแบบกำหนดเส้นทางล่วงหน้า ถ้าพื้นที่ที่ต้องการบินมีขนาดใหญ่ ตัวอย่างกรณีศึกษาที่ผมจะบินประมาณ 70 ไร่ (ถือว่าเล็กสำหรับโดรนรุ่นใหญ่เช่น Phantom 4, Inspire, Mavic) ต้องแบ่งเป็นส่วนๆ เพื่อให้ง่ายตอนโดรนบินขึ้นไปแล้วสามารถมองเห็นโดรนได้ตลอดเวลาและแบตเตอรีของสปาร์คใช้ได้ประมาณ 16 นาที แต่บินจริงๆประมาณสิบนาทีกว่านิดๆต้องรีบเอาลง ถึงพื้นเหลือประมาณ 10% แค่นี้ก็ใจหายใจคว่ำ ฉะนั้นการกำหนดแยกย่อยแผนที่ ก่อนจะบินเราก็เอาโดรนไปกลางๆพื้นที่ย่อยเหล่านั้นแล้วบินขึ้น เพราะแบตเตอรี่น้อยเราต้องไปอยู่กลางพื้นที่ เพื่อไม่ให้โดรนบินขาไปและขากลับไกลมากจะผลาญแบตเตอรี่โดยไม่จำเป็น

Litchi ผู้มาช่วยให้รอด

เนื่องจากบนแผนที่ DJI GO 4 เป็นแผนที่ปล่าวๆ ไม่มีเส้นทางการบิน มันเป็นอะไรที่ยากมากที่จะบังคับให้โดรนบินไปตามเส้นทางได้ ผมตัดสินใจใช้แอพ Litchi (สุ่มเสี่ยงกับการไม่ได้รับประกัน) เพราะในแอพสามารถกำหนด waypoint  ได้แต่สั่งให้บินจาก waypoint ไม่ได้ ผมจะดูเส้นแนวบินจาก Dronedeploy เป็นไกด์ จากนั้นจะจุดลากเส้น waypoint ในแอพของ Litchi จากนั้นเซฟไฟล์ waypoint เอาไว้ใช้ในโอกาสหน้าได้อีก

เทคนิคการบิน

ตอนเอาโดรนขึ้นผมจัดให้โดรนบินอยู่สูงโดยที่ค่าระดับความสูงจากพื้นดินประมาณ 40-50 เมตร ผมต้องการค่า GSD ประมาณ 1.5 ซม.ต่อพิกเซล ตอนบินพยายามบังคับให้แนวบินของโดรนไปในทิศทางตามเส้นแนวบิน ปัจจัยที่บังคับยากเมื่อบินไปแล้วคือกระแสลม ถ้าลมแรงเจอโดรนเล็กบังคับยาก ถ้าตอนบินลมเงียบๆจะดีที่สุด เมื่อต่ออุปกรณ์กันครบ ที่แอพ Litchi ให้เปลี่ยน config ถ่ายภาพ เป็น Capture mode ตั้ง interval ผมเคยใช้ 2 วินาที จะถี่มากเกินไป ลองไปใช้ 10 วินาที ห่างกันไปนิด ปรับมาใช้ 5 วินาที ผมบินด้วยความเร็วครึ่งหนึ่งของความเร็วสูงสุดประมาณ 25 กม.ต่อชม. จำนวนรูปถ่ายถ้าตั้งไว้เป็น infinity จะมีปัญหา โปรแกรมน่าจะมีบั๊ก ผมพบว่าแอพมันไม่ถ่ายภาพนิ่งให้ แอพจะสลับมาในโหมดวีดีโอตลอด ไม่สามารถหยุดได้ ผมตั้งประมาณ 100 รูป ครบร้อยรูปเมื่อไหร่ เราก็กดรีโมทคอนโทรลให้ถ่ายรูปต่ออีกที

เมื่อโดรนบินขึ้นถึงระดับแล้วจากนั้นก็บังคับกล้องให้ก้มมาที่พื้นในตำแหน่ง 85 องศา แล้วได้เวลาเข้าแนวก็บินไปเข้าแนวตามเส้น waypoint เมื่อเข้าแล้วก็กดที่รีโมทคอนโทรลเพื่อเริ่มถ่ายภาพ เรื่องถ่ายภาพเราตั้งเป็น interval ไว้ดังนั้นไม่ต้องกังวล โดรนจะถ่ายภาพให้ตลอดเวลา เรามีหน้าที่บังคับโดรนให้วิ่งไปแนวเส้นทางให้ดีที่สุด พอไปสุดแนวให้หยุดโดรนนิ่งจากนั้นค่อยๆเลี้ยวเป็นมุม 90 จากนั้นเดินหน้าแล้วหยุดเมื่อจะเข้าแนวเส้นทางบินอีกแนว ค่อยๆเลี้ยว 90 องศาอีกครั้งแล้วก็เดินหน้ายาวทำแบบนี้ ดูแผนที่ประกอบ ดูรูปบนโทรศัพท์มือเราที่โดรนถ่ายมาให้ด้วยเป็นะระยะ ตาคอยชำเลืองดูแบตเตอรี่ เพราะมันซดเร็วมาก ผมตั้งให้เครื่องเตือนเมื่อแบตเตอรี่หมด 30% ตามค่าปริยาย สามารถบินต่อได้แต่ต้องมั่นใจว่าโดรนจะบินกลับมาหาผู้บังคับได้ทันเวลา แต่ถ้าซอยพื้นที่บินให้เล็กๆ ไม่ค่อยมีปัญหาครับ เพราะขากลับไม่ไกลกันมาก

รูปด้านล่างแสดงจุดถ่ายภาพบนท้องฟ้าได้จากการใช้ Litchi บินตามแนวเส้น waypoint แต่บังคับให้เข้าเส้นทางแบบแมนวล ก็พอถูๆไถๆ

ปัญหาความไม่เสถียรของการเชื่อมต่อ

ปัญหาที่พบคือถ้าใช้ DJI Go 4 ความไม่เสถียรของการเชื่อมต่อระหว่างรีโมทคอนโทรลกับโดรนหนักหนามากครับ ส่วนใหญ่ตอนเอาบินขึ้นประมาณห้า หกนาทีแรกไม่ค่อยมีปัญหาแต่เลยครึ่งมาบนแอพ DJI GO 4 จะเห็น status ว่า Disconnected คือการเชื่อมต่อระหว่างโดรนกับรีโมทคอนโทรลขาดแล้ว พยายามต่อเชื่อมใหม่บางทีเข้าบางทีหลุดไปดื้อๆ ทั้งๆที่ระยะทางจากรีโมทคอนโทรลไปโดรนประมาณ 100-200 เมตร ปัญหานี้เข้าไปอ่านในฟอรั่มถือว่าเป็นปัญหาอมตะ ตอนแรกผมคิดว่าพื้นที่การบินมันมีไวไฟจากชุมชนอื่นรบกวนมาก แต่ไปลองที่โล่งๆนอกเมืองก็ยังเป็น เมื่อผมหันไปใช้แอพ Litchi กลับเสถียรกว่ามาก แต่การบังคับโดรนบินห่างออกไปประมาณ 500 เมตร สัญญานจะเริ่มขาดช่วง ไม่ได้ถึง 2 กม.เหมือนในคู่มือ ดังนั้นควรให้โดรนอยู่ในระยะห่างจากเราไม่เกิน 400 เมตรจะดีที่สุด

ตัวอย่างรูปถ่ายทางอากาศ

กล้องของสปาร์คเก็บความละเอียดได้ 12 ล้านพิกเซล ก็ถือว่าละเอียดพอใช้ได้ ลองดูภาพตัวอย่าง

DJI_0621

ผมขยายให้ดูชัดๆ ผมสังเกตว่าภาพที่ได้ไม่มีเบลอ นิ่งครับ

0621

โปรแกรมด้านแผนที่ภาพถ่ายทางอากาศ

ที่ผมลองมามีอยู่สามโปรแกรมครับคือ Agisoft Photoscan, Pix4DMapper และ 3DF Zephyr เอาเวอร์ชั่นทดลองใช้มาก่อน ผมพบว่า Agisoft Photoscan กับ Pix4DMapping เก่งกันมากกินกันไม่ลง เนื่องจากผมมีพื้นฐานจากโปรแกรม Erdas Imagine มาก่อนที่สิบกว่าปีที่แล้วเคยใช้ทำแผนที่ภาพถ่ายทางอากาศ ทำให้มีพื้นฐานมาพอสมควร ผมเปิดสามโปรแกรมนี้มาศึกษาใช้งานทีละโปรแกรม ใช้เวลาแกะโปรแกรมประมาณโปรแกรมละไม่ถึงหนึ่งชม.ก็ใช้งานได้ เนื่องจากโปรแกรมออกแบบมามี work flow ให้แทบไม่ต้องทำอะไรเลย ใช้งานง่ายมากๆ
แต่อีกอย่างคือต้องยอมรับว่าเทคโนโลยีด้าน Image Processing พัฒนาไปไกลมาก และโปรแกรมออกมาใช้งานง่ายมากๆ คนไม่เรียน photogrammetry มาก่อนก็สามารถทำงานนี้ได้ งานที่ผมเคยทำงานแบบใช้แรงงานแบบประมาณวิ่งควายตอนทำ Erdas Imagine สม้ยแต่ก่อน ที่ต้องหามรุ่งหามค่ำเริ่มตั้งแต่นำภาพเข้าโปรแกรม วัด tie point วัด Aerial Triangulation จากนั้นวัด DEM ใช้เวลาหลายวัน ตอนนี้ใช้เวลาคำนวณไม่กี่ชม. DEM สามารถ extract มาได้ง่ายๆ แล้วได้ผลงานดี ได้โมเดลสามมิติมาที่ดูเป็นมืออาชีพ สิบกว่าปีที่ผ่านมาเกือบจะตกยุคตกสมัย ตกขบวนรถไฟ แต่จะเปรียบเทียบกันแล้วงานใน Erdas Imagine สมัยแต่ก่อนส่วนใหญ่เป็นภาพถ่ายทางอากาศจากเครื่องบิน ที่กินพื้นที่บริเวณหลายตารางกิโลเมตรผลลัพธ์สุดท้ายเป็นภาพ orthophoto + DEM เลยดูไม่ตื่นเต้น แต่การบินโดรนด้วยความสูงไม่มาก ทำให้ได้ภาพที่คมชัด เมื่่อสร้างสามมิติโมเดลแล้วทำให้ดูชัดเจนสมจริงมาก

ผลงานแผนที่ภาพถ่ายทางอากาศ

ผลงานแรกเอาไปคำนวณใน Agisoft Photoscan ลองดูโมเดลสามมิติที่สร้างโดย Agisoft Photoscan ถึงแม้แนวบินผมจะไม่ได้ตรงแบบบินด้วย waypoint แต่โมเดลที่ออกมาก็ดูดีพอสมควร

photoscan_2018-01-10_14-00-19

ปรับมุมมองอีกมุมหนึ่ง

photoscan_2018-01-10_14-09-23

มาดูที่ Pix4DMapper ตอนสร้างโปรเจคผมตั้งคุณภาพของงานระดับ 3D Maps ทำให้ใช้เวลาคำนวณนานมาก เป็นวันครับ บางครั้งเขมือบเมมโมรีเครื่องโน๊ตบุ๊คจนหมดค้างไปดื้อๆ แต่ในภาพรวมแล้ว User interface ของโปรแกรมออกมาได้เรียบง่าย เข้าใจ ใช้สะดวก มาลองดูภาพ 3D จาก Pix4DMapper ก็สวยสดงดงามไม่แพ้กัน

สรุปภารกิจลองของ

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