1 คะแนน โดย GN⁺ 2024-07-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

การคำนวณตำแหน่งโดยใช้ข้อมูล 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 ความคิดเห็น

 
GN⁺ 2024-07-16
ความคิดเห็นบน Hacker News
  • Android เปิดให้เข้าถึง carrier phase อยู่แล้ว และด้วยสิ่งนี้จึงสามารถวัดตำแหน่งสัมพัทธ์ระหว่างอุปกรณ์ในพื้นที่เดียวกันได้อย่างแม่นยำมาก

    • หากเพิ่ม accelerometer และ gyroscope ก็สามารถวัดตำแหน่งได้แบบเรียลไทม์ และความแม่นยำก็ไม่ลดลงมากนักเพราะการเปลี่ยนแปลงของการวัด GNSS pseudorange สามารถคาดการณ์ได้
    • สิ่งนี้ทำให้สร้างความสามารถที่น่าสนใจได้ เช่น ให้เครื่องบินโมเดลลงจอดอัตโนมัติบนกระบะท้ายรถบรรทุก
    • หากการใช้พลังงานไม่ใช่ประเด็นสำคัญมาก ก็สามารถสร้างตัวรับ GNSS ที่ค่อนข้างดีได้ในราคาถูก
  • มีโครงการโอเพนซอร์สสำหรับคนที่อยากสร้างตัวรับ GPS ด้วยตัวเอง

  • นี่เป็นลิงก์ที่มักถูกโพสต์บ่อยในคอมเมนต์เกี่ยวกับ GPS แต่ก็มีเหตุผลที่มันถูกแชร์บ่อย

  • ยังมีลิงก์ทางเลือกที่ให้คำอธิบายแบบโต้ตอบได้มากกว่า

  • เคยพบกับนักวิจัยที่เก็บข้อมูล GPS ของสิ่งมีชีวิตน้ำซึ่งโผล่ขึ้นมาที่ผิวน้ำเพียงสั้น ๆ และไม่บ่อยนัก

    • สามารถบันทึกข้อมูลดิบแล้วนำไปประมวลผลภายหลังเพื่อลดการใช้พลังงานและเวลาที่ต้องรับสัญญาณจากดาวเทียมได้มาก (เวลารับสัญญาณน้อยกว่า 1 วินาที)
  • ขั้นต่อไปคือ PPP หรือ RTK

    • GNSS เป็นสาขาที่น่าสนใจและเปิดโอกาสได้หลากหลาย
  • ยังมี implementation แบบโอเพนซอร์สที่ดีอีกตัว

  • มีภาพที่แสดงให้เห็นว่าเรขาคณิตระหว่างผู้ใช้กับแหล่งสัญญาณส่งผลต่อความไม่แน่นอนของตำแหน่งผู้ใช้อย่างไร

    • อยากให้มีตัวเลือกในแอปแผนที่บนมือถือที่เปลี่ยนรูปแบบความไม่แน่นอนของตำแหน่งจากวงกลมเป็นรูปส่วนโค้งตัดกันได้
  • เคยได้ยินมาว่า GPS เป็นหนึ่งในแอปพลิเคชันไม่กี่อย่างในชีวิตประจำวัน ที่ต้องคำนึงถึงผลของทฤษฎีสัมพัทธภาพ

    • ข้อมูลที่สร้างขึ้นได้ตัดผลของทฤษฎีสัมพัทธภาพเหล่านี้ออกไปแล้ว
  • แบบฝึกหัดสำหรับคนที่เชื่อว่าโลกแบน: อธิบายว่าการทำแผนที่ GPS บนโทรศัพท์ทำงานอย่างไร หากดาวเทียมไม่ได้โคจรรอบโลกทรงกลม