โครงการ 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 ให้ได้ความถูกต้อง
RTK ระบบที่ใช้ Radio Modem เป็นตัวรับและส่งข้อมูล (ภาพจาก http://water.usgs.gov/osw/gps/index.html)
  • การประยุกต์ใช้งานที่ต้องการความถูกต้องสูงเช่นงาน 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 ได้เพียงไม่กี่ยี่ห้อเท่านั้น
RTK ชุด Rover ราคาล้านบาทต้นๆ (ราคารวม Controller แล้ว)
  • 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. ดังนี้

“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.”

  • การรังวัด RTK ตัว Rover ถ้าใช้อุปกรณ์ High end ส่วนใหญ่จะมี GPS หนึ่งตัว มี Controller หนึ่งตัวที่ทำหน้าที่เป็นโปรแกรม เก็บข้อมูลงานสำรวจ และอาจจะมีวิทยุโมเด็มรับสัญญาณจาก Reference Station หรืออาจจะผ่านทางโทรศัพท์มือถือหรือผ่านทางอินเทอร์เน็ตก็ได้ แต่สำหรับ Low-cost RTK ยังไม่มีใครทำ Hardware ทำหน้าที่แบบ Controller อย่างน้อยต้องใช้ Notebook ทำหน้าที่รันโปรแกรมที่เรียกใช้ RTKLIB
โฉมหน้า GPS ยี่ห้อ U-Blox ขนาดเล็กมากๆ
จานรับสัญญาณ GPS ของ Novatel รุ่น 702GG แบบสองความถี่
  • แต่ผู้พัฒนา RTKLIB ไม่ได้หยุดแค่นั้นเพราะถ้าลำพังเอา Notebook กางเดินสำรวจก็คงไม่สะดวก ทางผู้พัฒนา RTKLIB เลยหันไปใช้บอร์ดขนาดเล็กๆ เรียกว่า BeagleBoard ดังรูปด้านล่าง
โฉมหน้า 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 เป็นเรื่องเป็นราวลองดูรูปด้านล่าง
การต่อ U-Blox เข้ากับ BeagleBoard
diagram การต่อ U-Blox เข้ากับ Beagleboard

การติดตั้ง Software บน Beagleboard

  • ทางผู้พัฒนาเลือก Ubuntu สำหรับ  ARM ติดตั้งบน SD Card และบู๊ตจาก SD Card โดยติดตั้ง OS และ RTKLIB ดังตารางด้านล่าง
ติดตั้ง OS และ RTKLIB บน Beagleboard

การทดสอบ

  • การทดสอบในที่นี้อยู่ที่อยู่ญี่ปุ่น มีหมุด Reference Station ของ GEONET ซึงหมุดเหล่านี้เรียกว่า CORS (Continuous Operating  Reference Stations) ส่งค่า Measurement ของหมุดออกมาทาง server ที่เรียกว่า NTRIP caster ด้วยโปรโตคอล RTCM 3.1 ผ่านทางอินเทอร์เน็ต โดยที่ค่า measurement และค่าพิกัดของหมุดจะส่งออกมาทาง message เบอร์ 1004 และ 1005 ดูไดอะแกรมด้านล่าง มีข้อสังเกตว่า PC ที่ระบุในไดอะแกรมด้านล่างก็คือ Beagleboard ที่ติดตั้ง Ubuntu นั่นเอง การต่ออินเทอร์เน็ตใช้ usb modem
ไดอะแกรมแสดงการทดสอบรับสัญญาณจาก Reference station ผ่านทางอินเทอร์เน็ต

ส่วนประกอบและการทำงานของ RTKLIB

  • ใน RTKLIB มีทูลส์อยู่หลายตัวเช่น RTKNAVI(GUI)/RTKRCV(console) ทำหน้าที่รับข้อมูล measurement จาก reference station แล้วนำข้อมูล measurement ที่ได้จาก GPS เครื่อง rover แล้วนำมาคำนวณแบบ real time จะได้ค่าพิกัดที่มี accuracy ได้ระดับเซ็นติเมตร รูปด้านล่างเป็น RTKNAVI ที่รันบนวินโดส์
RTKNAVI
  • RTKPLOT แสดงรูปแผนที่ขณะที่ได้จากการรังวัดด้วย RTKLIB
RTKPLOT

ผลการทดสอบ

  • การทดสอบของผู้พัฒนา 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
ผลลัพธ์ของการทดสอบแสดงในรูป position error
ผลลัพธ์แสดง RMS Error

สรุป

  • ตามความคิดของผมเองไม่เลวเลยครับสำหรับเครื่อง 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

10 thoughts on “โครงการ RTK-GPS ด้วย RTKLIB ที่ราคาถูกโคตรๆ (Low-cost RTK GPS)”

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

  1. บทความจุดประกายเลยครับ จนผมได้ไปพบเจอ Emlid Reach ที่ใช้ RTKLIB แบบคัสตอม
    ตามที่ได้เรียนนายช่างไป

    1. ยินดีครับ โครงการ RTKLIB เป็นโครงการ open-source มี EMLID มาผลิตที่ราคาถูกเหลือเชื่อ ผมว่าจะเก็บตังค์ซื้อมาลองเหมือนกัน

  2. ผมได้ลองซื้อชิป ublox รุ่นใหม่ f9p ซึ่งสามารถรับสัญญานได้ ทั้ง L1/L2 มาครับ
    รุ่นนี้สามารถประมวลผลได้ด้วยตัวเองด้วยครับ หรือจะใช้กับ rtklib ก็ได้ (เท่าที่ศึกษา) กะว่าจะลองมาทำใช้เองดูครับ ร่วมกับฟรีในมือถือ หวังว่าจะสำเร็จครับ
    ปล.ซื้อมาแค่ชุดเดียว งบน้อย หวังว่าจะใช้กับระบบ vrs ของกรมที่ดินครับ

    1. คุณปฐมพงศ์ก้าวล้ำนำหน้าไปอีกหนึ่งก้าว ผลลัพธ์การใช้งานเป็นไงช่วยรายงานด้วยครับ ความรู้นี้จะเป็นประโยชน์ต่อท่านอื่น

      1. ผมใช้ f9p บนบอร์ดของ ardusimple (simplertk2b) เชื่อมต่อ NTRIP ของกรมที่ดิน ด้วยโปรแกรม u-center (ของ ublox) ตัว f9p สามารถประมวลผลได้ด้วยตัวของมันเองครับ (หรือจะใช้ RTKLIB ก็ได้แต่ผมยังเซตไม่เป็น) สามารถ fix ได้ใน 1 นาทีครับ เร็วกว่าตัว Emlid ReachRS+ อีกครับ (แต่ Emlid ได้ออก Reach RS2 ซึ่งใช้ f9p ที่ราคาสองเท่าของ RS+ , 1699 USD ) ขั้นต่อไปที่อยากทำ (แต่ยังต้องอ่านและลองผิดลองถูกอีกเยอะ) คือ
        1. ต่อ simplertk2b กับ rtklib บนวินโดว์ (ใช้สาย USB)
        2.ต่อ simplertk2b กับ rtklib ผ่าน bluetooth
        3.ต่อ simplertk2b กับแอปบนแอนดรอยด์ ผ่าน bluetooth ซึ่งถ้าทำตรงนี้ได้ ก็น่าจะเหมาะที่จะใช้ในงานสนามได้ครับ
        พอได้มาลองเซตเองแล้ว ถึงได้รู้ว่า emlid เขาทำส่วนติดต่อกับผู้ใช้ให้ใช้งานได้ง่ายที่สุดแล้ว ใช้ของเขาจบครับ ไม่ต้องปวดหัว

        1. น่าสนใจมาก chipset ขนาดเล็กๆ สำหรับบอร์ด RTK ตอนหลังออกมามาก ตลาดที่กระตุ้นตัวนี้คือโดรนและ robot และส่วนหนึ่งอาจจะเป็น iOT ผมมีโครงการจะทำเรือเซอร์เวย์ Autonomous Survey Vessel (ASV) เป็นเรือไฟฟ้าใช้พลังจากแบตเตอรี จะใช้ PixHawk เป็นบอร์ดควบคุมอุปกรณ์อื่นๆเช่น GNSS, Barometer, Compass, มอเตอร์, หางเสือ ในส่วน RTK GNSS ตอนนี้ดูบอร์ด Navspark – NS-HP-GL อยู่ซึ่งถ้าซื้อ Rover + Base จานรับสัญญานสำหรับ Base รวมๆราคาหมื่นบาทต้นๆก็น่าสนใจ จะเอาชุดนี้มาต่อกับ PixHawk ส่วน echo sounder สำหรับวัดความลึกน้ำดู echologger แต่ยังไม่ทราบราคา

          สำหรับเรือเซอร์เวย์ เครื่องหยั่งน้ำ (Echo sounder) ถือว่าเป็น part สำคัญที่สุด ความละเอียดความลึก 10 เมตร error สัก 2 ซม. ก็ถือเป็นเรื่องปกติ ถ้ามีงบมากพอ ว่าจะหา side scan sonar มาติดด้วย แต่เรือต้องมีขนาดใหญ่ขึ้นกินไฟฟ้ามากขึ้น เรือสามารถตั้ง waypoints คือแนวเดินเรือให้เรือวิ่งสำรวจเองได้ โดยไม่ต้องกดรีโมท โปรแกรมที่ใช้คงเป็น Mission Planner รวมๆแล้วโครงการนี้เป็น open-source ชื่อ Ardupilot โด่งดังพอสมควร นำมาประยุกต์ใช้โดรนบังคับ รถบังคับ เรือบังคับหรือหุ่น่ยนต์

          เอาละครับ ยังเป็นโครงการในฝัน ตอนนี้หัดทำโมเดลเรือเป็น prototype ก่อนใช้วัสดุพวกฟิวเจอร์บอร์ด หรือไม้อัดบางๆ โครงการนี้ยังต้องการเวลาอีกมาก สำหรับเคสของคุณปฐมพงศ์ แค่ผมได้อ่านแค่หัวข้อข้างต้นก็ได้ความรู้พอสมควร ถ้ามันเวิร์คอาจมาทำเป็นโครงการ startup ได้ ขายแบบ emlid เขาทำได้ ทำไมเราจะทำไม่ได้ ผมเห็นเรือเซอร์เวย์ ASV ที่ทำมาขายได้ราคาไม่แพง ต้นแบบก็มาจาก Ardupilot ทั้งนั้น ขอบคุณคุณปฐมพงศ์อีกครั้งที่สละเวลามาแลกเปลี่ยนความรู้ครับ

        2. สนับสนุน ข้อ3 ครับ – Rover ต่อ simplertk2b ผ่าน bluetooth กับแอปบนแอนดรอยด์ Survey Master ใช้ NTRIP ของกรมที่ดิน หรือ เซต Base(NTRIPผ่าน rtk2go.com) เอง ส่ง RTCM ผ่าน แอป RTKGPS+ ครับ

  3. คอยติดตามครับ
    ผมเห็นเขาทำรถสำรวจ น่าจะเอาคอนเซปต์นี้ไปทำได้เช่นกัน
    https://tinymobilerobots.com/

Leave a Reply

Your email address will not be published. Required fields are marked *