การคำนวณตำแหน่งโดยใช้ข้อมูล GPS ดิบ
ความสำคัญของระบบ GPS
- GPS เป็นระบบกำหนดตำแหน่งบนโลกที่ใช้ในแอปพลิเคชันหลากหลาย ตั้งแต่การนำทางใน Google Maps ไปจนถึงแอปรถรับส่ง
- GPS มีความแม่นยำสูงมากจนถูกใช้ในการวัดการแปรสัณฐานแผ่นเปลือกโลกและการเคลื่อนตัวของทวีป
- GPS เป็นของรัฐบาลสหรัฐฯ และอาจมีการจำกัดการเข้าถึงของประเทศอื่นด้วยเหตุผลทางภูมิรัฐศาสตร์
- ด้วยเหตุนี้จึงมีการพัฒนาระบบที่คล้าย GPS ของประเทศอื่น เช่น GLONASS ของรัสเซีย, Galileo ของสหภาพยุโรป และ BeiDou ของจีน
ระบบพิกัด
- มีการใช้ระบบพิกัดหลายแบบเพื่อแสดงตำแหน่ง
- ละติจูด/ลองจิจูดที่ใช้กันทั่วไปไม่ค่อยเหมาะกับการคำนวณทางคณิตศาสตร์
- ระบบพิกัด ECEF (Earth Centered, Earth Fixed) แสดงตำแหน่งโดยใช้จุดศูนย์กลางโลกเป็นจุดกำเนิด
- ระบบ WGS 1984 เป็นระบบพิกัด ECEF ที่ใช้กันแพร่หลายที่สุด
นิยามของความสูง
- เมื่อต้องนิยามความสูง จำเป็นต้องกำหนดพื้นผิวอ้างอิงก่อน
- มีการใช้แบบจำลองรีเฟอเรนซ์เอลลิปซอยด์และจีออยด์
- รีเฟอเรนซ์เอลลิปซอยด์ไม่มีความหมายทางกายภาพ ส่วนจีออยด์นิยามเป็นกลุ่มของจุดที่มีศักย์โน้มถ่วงเท่ากัน
ละติจูดและลองจิจูด
- ละติจูดเชิงจีโอเดติกคือมุมระหว่างเส้นตั้งฉากบนพื้นผิวเอลลิปซอยด์กับระนาบเส้นศูนย์สูตร
- ลองจิจูดเชิงจีโอเดติกคือมุมระหว่างเส้นเมริเดียนอ้างอิงกับเส้นเมริเดียนที่ต้องการ
- ความสูงเชิงจีโอเดติกคือความสูงที่วัดโดยอ้างอิงจากเอลลิปซอยด์
การแปลงระหว่างพิกัดจีโอเดติกและพิกัดคาร์ทีเซียน
- การแปลงพิกัดจีโอเดติกเป็นพิกัดคาร์ทีเซียนทำได้ค่อนข้างง่าย
- การแปลงพิกัดคาร์ทีเซียนกลับเป็นพิกัดจีโอเดติกต้องใช้กระบวนการวนซ้ำ
ระบบพิกัดท้องถิ่น
- ระบบพิกัดท้องถิ่นคือระบบ ENU (East-North-Up) ที่มีศูนย์กลางอยู่ที่ตำแหน่งของผู้ใช้
- มีวิธีแปลงพิกัด ECEF เป็นพิกัด ENU
การคำนวณตำแหน่งผู้ใช้ด้วย GPS
การกำหนดตำแหน่งดาวเทียม
- วงโคจรของดาวเทียมเป็นรูปวงรี และสามารถกำหนดได้ครบถ้วนด้วยพารามิเตอร์เคปเลอร์ 6 ค่า
- ตำแหน่งของดาวเทียมคำนวณตามเอกสารข้อกำหนดอินเทอร์เฟซของ GPS
การคำนวณระยะระหว่างผู้ใช้กับดาวเทียม
- ตัวรับสัญญาณ GPS ใช้ timestamp ของสัญญาณจากดาวเทียมเพื่อคำนวณระยะทางไปยังดาวเทียม
- ระยะนี้เรียกว่า pseudorange
- เพื่อคำนวณตำแหน่งให้แม่นยำ ต้องสร้างแบบจำลอง clock offset ของผู้ใช้และดาวเทียม รวมถึงความหน่วงจากบรรยากาศ
การประมาณค่า clock offset ของผู้ใช้
- clock offset ของผู้ใช้จะถูกประมาณค่าพร้อมกับตำแหน่งของผู้ใช้
อัลกอริทึมสำหรับประมาณค่าตำแหน่งผู้ใช้และ clock offset
- กำหนดค่าตั้งต้นของตำแหน่งผู้ใช้และ clock offset แล้วปรับแก้แบบวนซ้ำ
- สำหรับดาวเทียมแต่ละดวง จะมีการปรับ pseudorange คำนวณเวลาส่งสัญญาณ และคำนวณตำแหน่งดาวเทียม
- ใช้เทคนิคพีชคณิตเชิงเส้นเพื่อหาคำตอบแบบ least squares
ข้อควรระวังเกี่ยวกับโค้ด Matlab
- สมการบางส่วนจำเป็นต้องเรียก solver
- ตัวอย่างเช่น การคำนวณ eccentric anomaly (E) จาก mean anomaly (M) ต้องใช้ solver
การตั้งค่าการทดลอง
- ต้องใช้อุปกรณ์ GPS เฉพาะทางเพื่อเก็บข้อมูล GPS ดิบ
- ชิป NEO-M8T และ 6T ของ u-blox เหมาะกับงานนี้
- ใช้ยูทิลิตี STRSVR ของ RTKLib เพื่อรับและบันทึกสัญญาณ GPS ดิบ
การประมวลผลข้อมูล GPS ดิบ
- STRSVR จะบันทึกข้อมูล GPS ดิบในรูปแบบ RTCM3
- ใช้ไลบรารี Matlab ชื่อ goGPS เพื่อถอดรหัสข้อมูล RTCM และแปลงเป็นโครงสร้างข้อมูลของ Matlab
การวิเคราะห์ผลลัพธ์
- วิเคราะห์การเปลี่ยนแปลงของตำแหน่งและ clock offset
- วิเคราะห์ความแปรปรวนขององค์ประกอบตำแหน่งในแนวตะวันออก/เหนือ/ขึ้น (E/N/U)
- วิเคราะห์ความแปรปรวนของ clock offset ตามเวลา
การคำนวณมุมทิศ/มุมเงยของดาวเทียม
- คำนวณมุมทิศและมุมเงยของดาวเทียมในกรอบ ENU ที่ยึดผู้ใช้เป็นศูนย์กลาง
สรุปโดย GN⁺
- บทความนี้อธิบายหลักการทำงานของระบบ GPS และวิธีคำนวณตำแหน่ง
- มีการใช้วิธีปรับแก้หลายแบบเพื่อเพิ่มความแม่นยำของข้อมูล GPS
- มีตัวอย่างการประมวลผลและวิเคราะห์ข้อมูลจริงผ่านโค้ด Matlab
- เป็นประโยชน์ต่อการทำความเข้าใจโครงสร้างพื้นฐานทางเทคนิคของระบบ GPS
- โปรเจ็กต์ที่มีฟังก์ชันคล้ายกัน ได้แก่ RTKLib และ goGPS
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
Android เปิดให้เข้าถึง carrier phase อยู่แล้ว และด้วยสิ่งนี้จึงสามารถวัดตำแหน่งสัมพัทธ์ระหว่างอุปกรณ์ในพื้นที่เดียวกันได้อย่างแม่นยำมาก
มีโครงการโอเพนซอร์สสำหรับคนที่อยากสร้างตัวรับ GPS ด้วยตัวเอง
นี่เป็นลิงก์ที่มักถูกโพสต์บ่อยในคอมเมนต์เกี่ยวกับ GPS แต่ก็มีเหตุผลที่มันถูกแชร์บ่อย
ยังมีลิงก์ทางเลือกที่ให้คำอธิบายแบบโต้ตอบได้มากกว่า
เคยพบกับนักวิจัยที่เก็บข้อมูล GPS ของสิ่งมีชีวิตน้ำซึ่งโผล่ขึ้นมาที่ผิวน้ำเพียงสั้น ๆ และไม่บ่อยนัก
ขั้นต่อไปคือ PPP หรือ RTK
ยังมี implementation แบบโอเพนซอร์สที่ดีอีกตัว
มีภาพที่แสดงให้เห็นว่าเรขาคณิตระหว่างผู้ใช้กับแหล่งสัญญาณส่งผลต่อความไม่แน่นอนของตำแหน่งผู้ใช้อย่างไร
เคยได้ยินมาว่า GPS เป็นหนึ่งในแอปพลิเคชันไม่กี่อย่างในชีวิตประจำวัน ที่ต้องคำนึงถึงผลของทฤษฎีสัมพัทธภาพ
แบบฝึกหัดสำหรับคนที่เชื่อว่าโลกแบน: อธิบายว่าการทำแผนที่ GPS บนโทรศัพท์ทำงานอย่างไร หากดาวเทียมไม่ได้โคจรรอบโลกทรงกลม