โครงการ RTK-GPS ด้วย RTKLIB ที่ราคาถูกโคตรๆ (Low-cost RTK GPS)
RTK (Real Time Kinematic)
- RTK เป็นเทคนิคการรังวัดแบบหนึ่งของงาน GPS ซึ่งให้ความละเอียดสูงได้ละเอียดถึง 2-3 ซม. (ประมาณ 1 นิ้ว) ระบบนี้ต้องการ GPS อยู่สองชุดคือ Reference และ Rover เครื่อง GPS ที่ติดตั้งบน Reference station บนหมุดที่ทราบค่าพิกัดทำการวัด (Measurements) แล้วส่ง Measurements นั้นไปให้เครื่อง GPS ชุด Rover ผ่านทาง Radio modem, โทรศัพท์มือถือ และผ่านทางอินเทอร์เน็ตก็ได้ เครื่อง Rover จะทำการคำนวณหาค่าตัวเลขปริศนา (Integer Ambiguity) แล้วนำมาปรับแก้ค่าพิกัดของ Rover ให้ได้ความถูกต้อง
- การประยุกต์ใช้งานที่ต้องการความถูกต้องสูงเช่นงาน Geodetic Survey และงานก่อสร้าง
รู้จักโครงการ RTKLIB
- ครั้งแรกที่รู้จักโครงการนี้ ผมรู้สึกว่าทึ่งและน่าสนใจมากเพราะ GPS ระบบ RTK นั้น สนนราคาต่อชุดราคานั้นล้านบาทต้นๆต่อชุด ถ้าซื้อมาจริงๆอย่างน้อยต้อง 2 ชุด และตัว GPS ต้องเป็นเครื่องรับสัญญาณสองความถี่ ชุดแรกต้องติดตั้ง Base Station หรือ Reference Station เอง (เพราะในเมืองไทย VRS -Virtual Reference Station Network ยังไม่แพร่หลาย เท่าที่ทราบหน่วยงานราชการบางหน่วยเพิ่งจะเริ่มติดตั้ง) ส่วนชุดที่สองจะเป็น Rover การรับส่งข้อมูลระหว่าง Reference Station และ Rover ผ่านทางวิทยุโมเด็มหรือผ่านระบบโทรศัพท์มือถือก็ได้ แต่ถ้าบ้านเรามี VRS ซื้อ GPS มาชุดเดียวก็พอ ซึ่งถ้าใช้แบบ Low-cost RTK ที่ว่าสนนราคาไม่เกิน 20,000 บาท ใช้ GPS ที่เป็นแบบรับความถี่เดียว ที่สามารถนำมาทำ RTK โดยการใช้ RTKLIB ได้เพียงไม่กี่ยี่ห้อเท่านั้น
- RTKLIB เป็น opensource ที่พัฒนาไลบรารีขึ้นมาเพื่อช่วยให้ GPS ราคาถูกแบบความถี่เดียวสามารถใช้ในโหมด RTK ได้คำนวณหาค่าพิกัดด้วยความละเอียดสูง (Precise Positioning) สำหรับงานคำนวณ GPS ซึ่งทูลส์ให้เลือกใช้หลายตัว RTKLIB พัฒนาด้วย Ansi C (C89) เป็น cross-platform ใช้ได้ทั้งฝั่ง Linux และ Windows RTKLIB พัฒนาโดย Tomoji Takasu และ Akio Yasuda แห่งสถาบัน Laboratory of Satellite Navigation, Tokyo University of Marine Science and Technology สนใจโครงการนี้ไปดูได้ที่ลิงค์ RTKLIB ตอนนี้เป็น version 2.4.0
goGPS โครงการที่คล้ายๆกัน
- จุดมุ่งหมายของโครงการ goGPS คล้ายกับ RTKLIB คือ ทำให้ GPS มีค่าพิกัดที่ละเอียดมากขึ้นประมาณ 30-50 ซม.แต่ไม่ถึงระดับเซ็นติเมตรเหมือนกับ RTKLIB โครงการ goGPS พัฒนาโดย Eugenio Realini แห่ง Osaka City University, Japan และ Mirko Reguzzoni แห่ง OGS c/o Politecnico di Milano, Italy
- ดั้งเดิม goGPS พัฒนาด้วย MATLAB เป็น opensource ปัจจุบันได้แปลงเป็นโค๊ด C/C++ แล้ว และกำลังแปลงโค๊ดเป็น Java ด้วย สนใจโครงการนี้ไปดูได้ที่ลิงค์ goGPS
ความต่างของโครงการ RTKLIB และ goGPS
- ความถูกต้องของค่าพิกัด (Accuracy) RTKLIB ทำได้ระดับเซ็นติเมตร ส่วน goGPS ทำได้ที่ 30 – 50 เซ็นติเมตร ความต่างของ Accuracy เกิดจากวิธีการคำนวณ โครงการ RTKLIB มุ่งคำนวณหาตัวเลขปริศนา (Fix phase ambiguity) แต่ goGPS พยายามคำนวณให้อยู่ในโหมด floating แล้วใช้อัลการิทึ่ม Kalman Filter คำนวนด้วยการใช้ DTMs ช่วย (งงหรือปล่าว ผมก็งง)
Hardware สำหรับ Low-Cost RTK
- ความเหมือนของ Hardware คือเครื่อง GPS สองโครงการใจตรงกันคือส่วนใหญ่จะใช้ยี่ห้อ U-Blox เหมือนๆกัน ความต่างอยู่ที่จานรับสัญญาณ (Antenna) ของ goGPS ไม่เลือก แต่ RTKLIB ระบุว่าให้ใช้ของดีๆแบบสองความถี่ตัวอย่างก็คือของ Novatel รุ่น GPS-702-GG+ ส่วนยี่ห้ออื่นเฉพาะบางรุ่นเท่านั้นที่โครงการ RTKLIB ใช้ได้แก่ Hemisphere, Skytraq ที่สำคัญที่สุดเครื่อง GPS ราคาถูกสามารถนำมาใช้ได้ต้อง output ข้อมูลเป็นแบบ Raw Binary Data Message
- ถ้าดูใน Data sheet ของ U-Blox LEA-4T จะเห็น spec. ดังนี้
- การรังวัด RTK ตัว Rover ถ้าใช้อุปกรณ์ High end ส่วนใหญ่จะมี GPS หนึ่งตัว มี Controller หนึ่งตัวที่ทำหน้าที่เป็นโปรแกรม เก็บข้อมูลงานสำรวจ และอาจจะมีวิทยุโมเด็มรับสัญญาณจาก Reference Station หรืออาจจะผ่านทางโทรศัพท์มือถือหรือผ่านทางอินเทอร์เน็ตก็ได้ แต่สำหรับ Low-cost RTK ยังไม่มีใครทำ Hardware ทำหน้าที่แบบ Controller อย่างน้อยต้องใช้ Notebook ทำหน้าที่รันโปรแกรมที่เรียกใช้ RTKLIB
“The LEA-4T also supports raw measurement data
(carrier phase with half-cycle ambiguity resolved, code
phase and Doppler measurements) which can be used
in external applications that offer precision
positioning, real-time kinematics (RTK) and attitude
sensing.”
- แต่ผู้พัฒนา RTKLIB ไม่ได้หยุดแค่นั้นเพราะถ้าลำพังเอา Notebook กางเดินสำรวจก็คงไม่สะดวก ทางผู้พัฒนา RTKLIB เลยหันไปใช้บอร์ดขนาดเล็กๆ เรียกว่า BeagleBoard ดังรูปด้านล่าง
คุณสมบัติ BeagleBoard
- ใช้ CPU ของ ARM ตอนนี้ความเร็วประมาณ 600 MHz – 1 GHz ไม่มี Harddisk ใช้ SD Carrd แต่มี 3D Graphics Accelerator (ใช้ OpenGL เป็นตัวขับเคลื่อน) มี Lan กินไฟน้อยจนเหลือเชื่อ ตัวบอร์ดรองรับ OS ได้หลายอย่างเช่น Ubuntu TM , Android TM , MeeGo TM , WinCE TM , QNX TM , Angstrom, Symbian TM , Debian, Gentoo ตอนที่เขียนอยู่นี้รุ่น xM ออกมาแล้วค่อนข้างแรงเอาเหมือนกัน มีแรม 512 MB, CPU 1.0 GHz ที่สำคัญคือดู HDTV ได้ (ว๊าว!!!) ราคาตอนนี้เหลืิอเพียง $149 เท่านั้นเอง ผมค้นดูราคาในเมืองไทยแพงเอาเรื่องเกือบๆหนึ่งหมื่นบาท ถ้าราคาเท่าๆที่อเมริกาก็น่าทุบกระปุกเอามาเล่นเหมือนกัน สนใจไปดูได้ที่ลิงค์ Beagleboard.org มี vdo clip ที่ youtube จนดูไม่หวัดไม่ไหว
การ ต่อเครื่อง GPS U-ฺBlox กับ BeagleBoard
- ลักษณะการต่อที่ผู้พัฒนาโครงการ RTKLIB นำมาต่อกันแบบเปลือยยังไม่ได้ทำ case เป็นเรื่องเป็นราวลองดูรูปด้านล่าง
การติดตั้ง Software บน Beagleboard
- ทางผู้พัฒนาเลือก Ubuntu สำหรับ ARM ติดตั้งบน SD Card และบู๊ตจาก SD Card โดยติดตั้ง OS และ RTKLIB ดังตารางด้านล่าง
การทดสอบ
- การทดสอบในที่นี้อยู่ที่อยู่ญี่ปุ่น มีหมุด Reference Station ของ GEONET ซึงหมุดเหล่านี้เรียกว่า CORS (Continuous Operating Reference Stations) ส่งค่า Measurement ของหมุดออกมาทาง server ที่เรียกว่า NTRIP caster ด้วยโปรโตคอล RTCM 3.1 ผ่านทางอินเทอร์เน็ต โดยที่ค่า measurement และค่าพิกัดของหมุดจะส่งออกมาทาง message เบอร์ 1004 และ 1005 ดูไดอะแกรมด้านล่าง มีข้อสังเกตว่า PC ที่ระบุในไดอะแกรมด้านล่างก็คือ Beagleboard ที่ติดตั้ง Ubuntu นั่นเอง การต่ออินเทอร์เน็ตใช้ usb modem
ส่วนประกอบและการทำงานของ RTKLIB
- ใน RTKLIB มีทูลส์อยู่หลายตัวเช่น RTKNAVI(GUI)/RTKRCV(console) ทำหน้าที่รับข้อมูล measurement จาก reference station แล้วนำข้อมูล measurement ที่ได้จาก GPS เครื่อง rover แล้วนำมาคำนวณแบบ real time จะได้ค่าพิกัดที่มี accuracy ได้ระดับเซ็นติเมตร รูปด้านล่างเป็น RTKNAVI ที่รันบนวินโดส์
- RTKPLOT แสดงรูปแผนที่ขณะที่ได้จากการรังวัดด้วย RTKLIB
ผลการทดสอบ
- การทดสอบของผู้พัฒนา RTKLIB ระบุว่าติดตั้ง antenna ของ Novatel GPS-702-GG บนหลังคา (น่าจะเป็นหลังคาบ้านหรือตึก) เีปรียบเทียบผลการรังวัดกับการวัดแบบ Static บนหมุดเดียวกันจะให้ผลลัพธ์ซึ่งแยกเป็น N-S (North-South), E-W (East-West) และ U-D (Up-Down) สังเกตว่าช่วงแถบสีส้มน่าจะเป็นช่วงที่ไม่สามารถหาค่า Fix ได้ (ไม่สามารถหา integer ambiguity ได้) ทำให้ผลลัพธ์รวมแทนที่จะได้ accuracy ที่ระดับ 1 ซม. + 1 ppm x ระยะทาง base line
สรุป
- ตามความคิดของผมเองไม่เลวเลยครับสำหรับเครื่อง GPS วัดแบบ RTK ที่ให้ผลลัพธ์ได้ขนาดนี้ ถึงแม้ผลการทดสอบจะออกมาได้แย่กว่าที่ทางผู้พัฒนา RTKLIB คาดการณ์ไว้ก็ตาม เพาระอุปกรณ์ที่นำมาทดสอบทั้งหมดราคารวมกันไม่เกิน 20,000 บาท ตามผลการทดสอบดังตารางด้านบนที่สามารถ fix ได้ 56.9% ที่เหลือจากนี้น่าจะให้ผลลัพธ์เป็น float ซึงจะได้ accuracy อยู่ระดับไม่เกิน 5o ซม. (น่าจะดีกว่า DGPS) ค่า accuracy ขนาดนี้เพียงพอจะนำมาใฃ้งานได้หลายๆรูปแบบที่ไม่ต้องการค่า accuracy ระัดับเซ็นติเมตร จุดอ่อนอีกอย่างคือระยะทางระหว่าง Reference Station กับ Rover ต้องไม่ห่างกันมาก ในการทดสอบนี้ระยะห่างประมาณ 6 กม. ระยะห่างที่มากขึ้นจะทำให้การคำนวณ Fix solution ได้ยากลำบากมากขึ้น
- RTKLIB ในตอนนี้มีฟังก์ชั่นมากกว่าจะทำ RTK สามารถนำมาคำนวณแบบ Post Processing ได้จากทูลส์ชื่อ RTKPOST สนับสนุน Static, Fast Static, PPP ซึ่งในตอนหน้าผมจะนำการคำนวณเหล่านี้มานำเสนอในตอนต่อไป
- ข่าวร้าย ก็คือ Hexagon บริษัทฯ จากสวีเดนซื้อกิจการ NovAtel ไปเรียบร้อย และที่โด่งดังก็คือซื้อกิจการของ Leica Geosystems น่าเศร้าเพราะเท่าที่ดูปฎิกิริยาของผู้คนพบว่า Hexagon ค่อนข้างจะผูกขาดการแข่งขัน เป็นที่วิตกว่าผลิตภัณฑ์แบบ U-Blox LEA-4T หรือ AEK-4T จะไม่ทำมาอีกหรือทำออกมาแต่ก็ลดฟีเจอร์ลง หรือคงฟีเจอร์เดิมแต่ก็ขายแพงซะ จนโครงการ low-cost RTK-GPS อาจจะได้แค่โครงการในฝัน
เอกสารอ้างอิง
1) Development, Evaluation and Application of RTKLIB: A program library for RTK-GPS (ภาษาญี่ปุ่น)
2) RTKLIB: Open Source Program Package for RTK-GPS
3) Development of the low-cost RTK-GPS receiver with an open source program package RTKLIB
4) Real-time PPP with RTKLIB and IGS real-time satellite orbit and clock













แบบนี้ผมก็ตกงานแย่เลยครับนายช่าง :D
โครงการยังห่างไกลกับด้านพานิชย์มาก ในความเป็นจริงจะหารถสปอร์ตที่สมรรถนะเท่ากับรถปอร์เช่แต่ราคาเท่ากับรถฮอนด้าแจ๊สคงเป็นไปไม่ได้ แต่ถ้าโครงการนี้เป็นไปได้ผมก็คนหนึ่งที่ต้องตกงานเหมือนกัน 555