การคำนวณตำแหน่งจากข้อมูล GPS ดิบ (2017)
(telesens.co)- การคำนวณตำแหน่งด้วย GPS เป็นปัญหาที่ต้องแก้ pseudorange ไปพร้อมกับ ephemeris และความคลาดเคลื่อนของนาฬิกาตัวรับ โดยบทความนี้ประมวลผลข้อมูลดิบด้วย Matlab จนถึงขั้นประมาณตำแหน่งจริง
- สำหรับการคำนวณ ระบบพิกัด WGS 84 ECEF เหมาะสมกว่าละติจูด·ลองจิจูด และสำหรับการวิเคราะห์มุมอะซิมัท มุมเงย และความคลาดเคลื่อนตามมุมมองของผู้ใช้ จะใช้ระบบพิกัดท้องถิ่น ENU ร่วมกัน
- ตำแหน่งดาวเทียมคำนวณจากขั้นตอนใน GPS Interface Specification และพารามิเตอร์วงโคจร และเนื่องจากโลกระหว่างการเดินทางของสัญญาณมีการหมุน จึงต้องปรับแก้พิกัด ณ เวลาส่งให้ตรงกับกรอบ ECEF ณ เวลารับ
- ตำแหน่งผู้ใช้และอคตินาฬิกาของตัวรับประมาณด้วย iterative least squares จาก pseudorange ที่ปรับแก้แล้วของดาวเทียมอย่างน้อย 4 ดวง และในการวิเคราะห์ตัวอย่างนี้ไม่รวมการหน่วงจากไอโอโนสเฟียร์·โทรโพสเฟียร์
- ในการทดลองกับตัวรับแบบหยุดนิ่งโดยใช้ u-blox NEO-M8T/6T, RTKLib STRSVR, RTCM 1002/1019 และ goGPS ส่วนเบี่ยงเบนมาตรฐานของตำแหน่งคือ East 14.00m, North 39.88m, Up 47.35m และอคตินาฬิกา drift เชิงเส้นที่ 4.27e-7sec/sec
ปัญหาพื้นฐานของการคำนวณตำแหน่ง GPS
- งานหลักของ GPS คือการคำนวณ ตำแหน่ง ของผู้ใช้
- ละติจูด·ลองจิจูด·ความสูงคุ้นเคยสำหรับการแสดงตำแหน่งบนพื้นผิวโลก แต่ความต่าง 1 องศาของละติจูดหรือลองจิจูดไม่ได้หมายถึงระยะทางกายภาพที่เท่ากันเสมอ จึงไม่สะดวกต่อการคำนวณทางคณิตศาสตร์
- ระยะของความต่างลองจิจูด 1 องศามากที่สุดที่เส้นศูนย์สูตร และเข้าใกล้ 0 แถวขั้วโลก
- สำหรับการคำนวณจำเป็นต้องใช้ระบบพิกัดฉากที่ความต่างของพิกัดหนึ่งหน่วยแทนระยะทางกายภาพที่คงที่
- GPS หาตำแหน่งผู้ใช้จากระยะถึงดาวเทียมหลายดวงและตำแหน่งของดาวเทียม
- ดังนั้นต้องคำนวณทั้งระยะถึงดาวเทียมและตำแหน่งของดาวเทียมแต่ละดวงก่อน
ระบบพิกัด: ECEF, WGS 84, ENU
- ระบบพิกัดฉากที่ยึดกับโลกและหมุนไปพร้อมกันเรียกว่า ECEF(Earth Centered, Earth Fixed)
- เพราะพิกัดของผู้ใช้ที่อยู่นิ่งบนพื้นผิวโลกคงที่ตามเวลา จึงเหมาะสำหรับการแสดงตำแหน่งผู้ใช้
- ระบบพิกัด ECEF ที่ใช้กันมากที่สุดคือ WGS 84 ซึ่งพัฒนาโดยกระทรวงกลาโหมสหรัฐฯ
- จุดกำเนิดอยู่ที่จุดศูนย์กลางมวลของโลก
- แกน z ผ่าน CTP(Conventional Terrestrial Pole)
- CTP คือค่าเฉลี่ยของตำแหน่งขั้วโลกในช่วงปี 1900~1905 และตำแหน่งขั้วจริงเคลื่อนที่อยู่ภายในวงรัศมีประมาณ 15m
- แกน x ผ่านจุดตัดของระนาบเส้นศูนย์สูตรของ CTP กับเส้นเมริเดียนอ้างอิง Mean Greenwich Meridian
- การเคลื่อนที่ของดาวเทียมตามธรรมชาติควรอธิบายในกรอบพิกัดเฉื่อยตามกลศาสตร์นิวตัน แต่ GPS Interface Specification ให้ขั้นตอนสำหรับคำนวณตำแหน่งดาวเทียม ณ ช่วงเวลาหนึ่งใน กรอบ ECEF
- ในงานประยุกต์ระดับท้องถิ่น ระบบพิกัด ENU(East-North-Up) ที่มีผู้ใช้เป็นจุดกำเนิดสะดวกกว่า
- พิกัด ECEF สามารถแปลงเป็นพิกัด ENU ได้ด้วยการคูณเมทริกซ์โดยใช้ละติจูด·ลองจิจูดของผู้ใช้
- การแปลงเป็น ENU ใช้ในการคำนวณมุมอะซิมัทและมุมเงยของดาวเทียม
นิยามความสูง: ellipsoid อ้างอิงและ geoid
- ก่อนนิยามความสูง ต้องกำหนดก่อนว่า “อ้างอิงกับอะไร”
- reference ellipsoid คือแบบจำลองนามธรรมของโลกในรูปทรงรีแบน
- อยู่ที่ศูนย์กลางโลก และแกนการหมุนตรงกับแกน z ของ ECEF
- รัศมี 6371km ที่มักใช้เมื่อมองโลกเป็นทรงกลม เป็นค่าระหว่างกึ่งแกนยาวกับกึ่งแกนสั้น
- จุดหนึ่งบนพื้นผิวจริงของโลกอาจอยู่เหนือหรือใต้ ellipsoid อ้างอิงได้
- geoid คือเซตของจุดที่มีค่าศักย์โน้มถ่วงเท่ากัน จึงเป็นพื้นผิวที่มีความหมายทางกายภาพ
- ความสูงอ้างอิง geoid เรียกว่า orthometric height หรือความสูงเหนือระดับน้ำทะเลปานกลาง(MSL)
- โดยทั่วไป geoid กำหนดเป็นชุดของค่าความสูงเหนือ ellipsoid อ้างอิง
- ละติจูด·ลองจิจูด·ความสูงนิยามอยู่ในพิกัด ellipsoid
- ละติจูดเชิงภูมิศาสตร์คือมุมระหว่างเส้นที่ตั้งฉากกับผิว ellipsoid ที่จุด P กับระนาบเส้นศูนย์สูตร
- มุมของเส้นที่เชื่อมจุดศูนย์กลางโลกกับจุด P คือ geocentric latitude และจะตรงกับละติจูดเชิงภูมิศาสตร์หากโลกเป็นทรงกลมสมบูรณ์
- การแปลงจากพิกัด ellipsoid ไปเป็นพิกัดฉากทำได้ในขั้นตอนเดียว แต่การแปลงจาก ECEF กลับไปเป็นพิกัด ellipsoid ต้องใช้ขั้นตอนวนซ้ำที่ลู่เข้าได้รวดเร็ว
การคำนวณตำแหน่งดาวเทียม
- วงโคจรดาวเทียมในอุดมคติคือวงโคจรวงรีที่อธิบายด้วย องค์ประกอบวงโคจรแบบเคปเลอร์ 6 ค่า
- 5 ค่ากำหนดขนาด·รูปร่างของวงรีและทิศทางของระนาบวงโคจร
- ค่าที่ 6 กำหนดตำแหน่งของดาวเทียมที่ epoch ใด epoch หนึ่ง
- วงโคจรจริงของดาวเทียมไม่ใช่วงรีสมบูรณ์ เพราะความไม่สม่ำเสมอขององค์ประกอบโลกและแรงโน้มถ่วงจากดวงอาทิตย์กับดวงจันทร์
- GPS ออกอากาศ พารามิเตอร์วงโคจร 16 ค่า เพื่อชดเชยการรบกวนเหล่านี้
- ใน table 20-IV ของ GPS Interface Specification มีขั้นตอนคำนวณตำแหน่งดาวเทียมที่รวมการแก้ไขวงโคจรไว้
- ตำแหน่งผู้ใช้คำนวณที่เวลารับ t แต่สัญญาณ GPS ออกจากดาวเทียมที่เวลา t-τ
- ดังนั้นตำแหน่งดาวเทียมต้องคำนวณที่เวลาส่งสัญญาณ t-τ
- ระหว่างที่สัญญาณใช้เวลา τ เดินทาง โลกยังคงหมุนอยู่ จึงต้องหมุนเวกเตอร์ตำแหน่งดาวเทียมตามมุมหมุนของโลกเพื่อให้ตรงกับกรอบ ECEF ของผู้ใช้ ณ เวลารับ t
- สิ่งนี้ไม่เท่ากับการคำนวณตำแหน่งดาวเทียมที่เวลา t แบบตรง ๆ
Pseudorange และอคตินาฬิกา
- ตัวรับ GPS เปรียบเทียบ timestamp เวลาส่งในสัญญาณจากดาวเทียมกับเวลาของตัวรับ แล้วคูณส่วนต่างด้วยความเร็วแสงเพื่อประมาณระยะถึงดาวเทียม
- ค่าที่วัดได้นี้คือ pseudorange
- ถ้านาฬิกาดาวเทียมและนาฬิกาตัวรับซิงก์กันสมบูรณ์ และสัญญาณเดินทางเป็นเส้นตรงในสุญญากาศด้วยความเร็วแสง ก็จะเท่ากับระยะจริง
- แต่ในความเป็นจริงจะต่างจากระยะจริงเพราะ clock offset และการหน่วงในชั้นบรรยากาศ
- อคตินาฬิกาของดาวเทียมต้องแก้ไขเสมอ เพราะอาจทำให้เกิดความคลาดเคลื่อนของตำแหน่งระดับหลายพันเมตร
- คำนวณจากพหุนามโดยใช้ค่าสัมประสิทธิ์ในข้อความ ephemeris ของ GPS และเทอมสัมพัทธภาพ
- พหุนามให้การแก้ไขเป็นส่วนใหญ่ ส่วนผลสัมพัทธภาพมีส่วนประมาณ 1~10m ตามตำแหน่งดาวเทียม
- อคตินาฬิกาของตัวรับเป็นตัวไม่ทราบค่าที่ต้องประมาณพร้อมกับตำแหน่งผู้ใช้
- ในอัลกอริทึมจะคูณอคตินาฬิกาด้วยความเร็วแสงเพื่อจัดการในหน่วยระยะทาง
- การหน่วงในบรรยากาศแบ่งเป็นไอโอโนสเฟียร์และโทรโพสเฟียร์
- การหน่วงจากไอโอโนสเฟียร์โดยทั่วไปทำให้เกิดความคลาดเคลื่อนของตำแหน่งประมาณ 25m
- การหน่วงจากโทรโพสเฟียร์โดยทั่วไปทำให้เกิดความคลาดเคลื่อนของตำแหน่งประมาณ 2m
- ในการวิเคราะห์การทดลองในบทความนี้ละเลยการหน่วงเหล่านี้
อัลกอริทึมประมาณตำแหน่งผู้ใช้และอคตินาฬิกา
- ค่าการวัด pseudorange ที่ปรับแก้แล้วสามารถเขียนเป็นผลรวมของระยะจริงระหว่างผู้ใช้กับดาวเทียม อคตินาฬิกาของตัวรับ และความคลาดเคลื่อนที่ไม่ได้จำลอง
- ตำแหน่งผู้ใช้และอคตินาฬิกาจะหาเป็นค่าที่ทำให้ความต่างระหว่าง pseudorange ที่วัดได้กับ pseudorange ที่คาดการณ์มีค่าน้อยที่สุด
- วิธีแก้คือขั้นตอน iterative least squares
- ค่าเริ่มต้นของตำแหน่งผู้ใช้คือ
[0 0 0] - ค่าเริ่มต้นของอคตินาฬิกาผู้ใช้คือ
0 - ในแต่ละรอบ จะสร้างเมทริกซ์ G โดยเรียงเวกเตอร์หน่วยทิศทางดาวเทียมตามค่าประมาณตำแหน่งปัจจุบัน
- แก้หาค่าปรับแก้ตำแหน่งและค่าปรับแก้อคตินาฬิกา แล้วทำซ้ำจนการเปลี่ยนแปลงเล็กกว่าค่าขีดจำกัด
- ค่าเริ่มต้นของตำแหน่งผู้ใช้คือ
- หากมีดาวเทียมครบ 4 ดวงพอดีและการจัดวางไม่เสื่อมสภาพ ก็สามารถหาคำตอบได้โดยตรง
- ถ้าท้องฟ้าไม่ถูกบังมักจะมองเห็นดาวเทียมมากกว่านั้น และโดยทั่วไปจะใช้คำตอบแบบ least squares
- ขั้นตอนการทำงานเป็นไปตามลำดับดังนี้
- รับ pseudorange ดิบและ ephemeris ของดาวเทียมเป็นอินพุต
- คำนวณอคตินาฬิกาของดาวเทียมแต่ละดวงและแก้ไข pseudorange
- หากทำได้ ให้ใช้การแก้ไขไอโอโนสเฟียร์·โทรโพสเฟียร์
- แก้ไข pseudorange ด้วยอคตินาฬิกาของตัวรับปัจจุบัน
- หาร pseudorange ด้วยความเร็วแสงเพื่อหาเวลาส่งผ่านสัญญาณ τ
- คำนวณตำแหน่งดาวเทียมที่เวลา t-τ
- ปรับตำแหน่งดาวเทียมให้เข้ากับกรอบ ECEF ของผู้ใช้โดยสะท้อนการหมุนของโลกระหว่างเวลา τ
- สร้างเมทริกซ์ G และความต่างของ pseudorange แล้วคำนวณค่าปรับแก้ตำแหน่งกับอคตินาฬิกา
รายละเอียดในการ implement ด้วย Matlab
- โค้ด Matlab ส่วนใหญ่มีลักษณะประเมินค่าตัวไม่ทราบทางซ้ายจากค่าที่ทราบทางขวาได้ในครั้งเดียว
- การคำนวณบางอย่างไม่มีคำตอบแบบปิดเชิงวิเคราะห์ จึงต้องใช้ solver
- ตัวอย่างคือขั้นตอนหาค่า eccentric anomaly E จาก mean anomaly M ระหว่างการคำนวณตำแหน่งดาวเทียม
- ความสัมพันธ์
E - e*sin(E) == Mไม่มีคำตอบแบบปิด จึงใช้vpasolve
- โค้ดภาคผนวกมีฟังก์ชันดังนี้
- คำนวณตำแหน่งผู้ใช้และอคตินาฬิกา
- คำนวณตำแหน่งดาวเทียม
- คำนวณคำตอบ least squares ของตำแหน่งผู้ใช้และอคตินาฬิกา
- คำนวณอคตินาฬิกาของดาวเทียม
- แปลงพิกัด ECEF WGS84 เป็นพิกัด ellipsoid
- แปลงรูปแบบข้อมูล ephemeris
การตั้งค่าการเก็บข้อมูล GPS ดิบ
- หากต้องการข้อมูล GPS ดิบ ต้องใช้ตัวรับที่ส่งออก ข้อมูล timing เช่น pseudorange ดิบและ ephemeris ของดาวเทียม ไม่ใช่อุปกรณ์ GPS ทั่วไปที่คำนวณเฉพาะตำแหน่งภายในแล้วส่งออกผลลัพธ์
- ชิป u-blox NEO-M8T และ 6T ตรงตามข้อกำหนดนี้
- สามารถซื้อชุดฮาร์ดแวร์ที่มี GPS unit, เสาอากาศ และพอร์ตส่งออกแบบอนุกรมได้จาก Amazon ในราคาประมาณ 40 ดอลลาร์
- ใช้ยูทิลิตี STRSVR ของ RTKLib สำหรับรับและบันทึกสัญญาณ GPS ดิบ
- RTKLib เป็นแพ็กเกจซอฟต์แวร์โอเพนซอร์สที่รองรับการหาตำแหน่งแบบมาตรฐานและแบบความแม่นยำสูงของ GNSS เช่น GPS, Glonass, Galileo, Baidu
- STRSVR แปลงเอาต์พุตฟอร์แมตกำหนดเองของตัวรับ u-blox ให้เป็นฟอร์แมตมาตรฐาน RTCM
- ข้อมูลที่ต้องใช้มีอยู่ในข้อความ RTCM 1002 และ 1019
- 1002 เก็บข้อมูล pseudorange ดิบ
- 1019 เก็บข้อมูล ephemeris ของดาวเทียม
- STRSVR ถูกตั้งค่าให้รับข้อมูลผ่านพอร์ตอนุกรมที่ 9600 Baud และบันทึกเป็นไฟล์รูปแบบ RTCM 3
- การเก็บข้อมูลทำบนดาดฟ้าของอาคารอพาร์ตเมนต์
- วางตัวรับ GPS ในตำแหน่งที่มองเห็นท้องฟ้าได้โล่ง
- ใช้ซอฟต์แวร์ u-blox u-center ตรวจสอบว่ามองเห็นดาวเทียมเพียงพอและได้ position fix ที่ดี
- เก็บข้อมูล GPS ดิบประมาณ 1 ชั่วโมง
การประมวลผล RTCM และการใช้ goGPS
- STRSVR บันทึกข้อมูล GPS ดิบในฟอร์แมตไบนารี RTCM3
- หากจะประมวลผลใน Matlab ต้องถอดรหัสข้อมูล RTCM3 แล้วแปลงเป็นโครงสร้างข้อมูลของ Matlab
- แทนที่จะเขียนตัวถอดรหัส RTCM เอง บทความนี้ใช้ฟังก์ชัน
load_streamของไลบรารี Matlab ชื่อ goGPS- มันอ่านไฟล์ฟอร์แมต RTCM และดึงข้อความ RTCM ออกมา
- จากนั้นบันทึกข้อมูลที่ดึงได้เป็นไฟล์
.matเพื่อใช้เป็นอินพุตของอัลกอริทึมคำนวณตำแหน่ง
- มีไฟล์
rtcm_dataให้ด้วย- เนื่องจากข้อจำกัดด้านความปลอดภัยของ WordPress จึงให้มาในนามสกุล
.txtแทน.mat - หลังดาวน์โหลดต้องเปลี่ยนชื่อกลับเป็น
.mat
- เนื่องจากข้อจำกัดด้านความปลอดภัยของ WordPress จึงให้มาในนามสกุล
ผลการทดลอง: การเปลี่ยนแปลงตำแหน่งและ clock drift
- เนื่องจากตัวรับอยู่นิ่งระหว่างการเก็บข้อมูล การเปลี่ยนแปลงตามเวลาของตำแหน่งที่คำนวณได้จึงสะท้อนประสิทธิภาพจริงของอัลกอริทึมคำนวณตำแหน่ง
- ส่วนเบี่ยงเบนมาตรฐานขององค์ประกอบตำแหน่งในกรอบ ENU ที่มีผู้ใช้เป็นศูนย์กลางมีดังนี้
- East: 14.00m
- North: 39.88m
- Up: 47.35m
- การเปลี่ยนแปลงตำแหน่งอยู่ที่ระดับประมาณ 30m ในทิศ East และ North ส่วนทิศ Up มากกว่า
- อคตินาฬิกาของตัวรับไม่ใช่ค่าคงที่ แต่ drift เชิงเส้นตามเวลา
- ในอัลกอริทึม อคตินาฬิกาถูกจัดการในหน่วยระยะทาง
- ในกราฟผลลัพธ์จะแปลงกลับเป็นหน่วยเวลาด้วยการหารด้วยความเร็วแสง
- ปริมาณ drift คือ 4.27e-7sec/sec
การคำนวณมุมอะซิมัทและมุมเงยของดาวเทียม
- มุมอะซิมัทและมุมเงยของดาวเทียมนิยามจากมุมมองของผู้ใช้ จึงคำนวณใน กรอบ ENU ที่มีผู้ใช้เป็นศูนย์กลาง
- ขั้นตอนคำนวณเป็นดังนี้
- คำนวณเวกเตอร์ตำแหน่งจากผู้ใช้ไปยังดาวเทียมในกรอบ ECEF
- แปลงตำแหน่งผู้ใช้เป็นพิกัด ellipsoid คือ ละติจูด·ลองจิจูด
- หมุนเวกเตอร์ตำแหน่งดังกล่าวไปยังกรอบ ENU ของผู้ใช้
- คำนวณมุมอะซิมัทและมุมเงยจากพิกัด ENU
- ที่ epoch ตัวอย่าง มุมเงยของดาวเทียมทั้ง 8 ดวงที่คำนวณได้เป็นค่าบวกทั้งหมด
- มุมอะซิมัทอาจเป็นได้ทั้งค่าบวกและค่าลบ
- เนื่องจากผู้ใช้มองไม่เห็นดาวเทียมใต้ขอบฟ้า จึงเป็นธรรมดาที่มุมเงยจะเป็นค่าบวก
- หากคำนวณตำแหน่งดาวเทียมด้วยวิธีเดียวกันในหลาย epoch ก็สามารถสร้าง satellite track chart แบบที่ซอฟต์แวร์ประมวลผล GPS แสดงได้
DOP: ปัจจัยเชิงเรขาคณิตของคุณภาพการประมาณตำแหน่ง
- DOP(Dilution of Precision) เป็นตัวชี้วัดว่าการประมาณตำแหน่งดีเพียงใด
- ความคลาดเคลื่อนของตำแหน่งไม่ได้ขึ้นกับ noise ของการวัดเท่านั้น แต่ยังขึ้นกับ เรขาคณิต ระหว่างผู้ใช้กับดาวเทียมด้วย
- ยิ่งการวัด pseudorange และตำแหน่งดาวเทียมมี noise มาก ความคลาดเคลื่อนของตำแหน่งก็ยิ่งมาก
- ยิ่งดาวเทียมกระจายกว้างในมุมอะซิมัทและมุมเงย เรขาคณิตก็ยิ่งเอื้อและ DOP ยิ่งต่ำ
- covariance ของความคลาดเคลื่อนของตำแหน่งและอคตินาฬิกาสามารถแยกเป็นฟังก์ชันของความคลาดเคลื่อนระยะทางฝั่งผู้ใช้กับเมทริกซ์ G
- เมทริกซ์ G ประกอบด้วยเวกเตอร์หน่วยจากผู้ใช้ไปยังดาวเทียม
- เมทริกซ์ G ในกรอบ ECEF จะถูกหมุนไปยังกรอบ ENU เพื่อความสะดวกในการคำนวณ DOP
- องค์ประกอบ DOP นิยามตามทิศ East, North, Up
- HDOP คือ DOP แนวนอนที่รวมองค์ประกอบ East และ North
- VDOP คือ DOP แนวตั้งขององค์ประกอบ Up
- ในข้อมูลจริง HDOP และ VDOP โดยมาก ต่ำกว่า 2.5
- ค่านี้ถือว่าอยู่ในระดับที่เพียงพอ
- VDOP มีค่ามากกว่า HDOP
- ผู้ใช้บนพื้นโลกไม่สามารถสังเกตดาวเทียมใต้ขอบฟ้า และสัญญาณจากดาวเทียมที่อยู่ต่ำกว่า 10 องศาเหนือขอบฟ้ามักมี noise สูงเกินไปจึงมักไม่ถูกใช้ ส่งผลให้ VDOP สูงกว่า
ขนาดของโครงสร้างพื้นฐาน GPS
- การสร้างกลุ่มดาว GPS ใช้งบประมาณราว 3 หมื่นล้านดอลลาร์ และรัฐบาลสหรัฐฯ ใช้งบประมาณดูแลรักษาปีละประมาณ 1 พันล้านดอลลาร์
- มีการกล่าวถึงว่ามูลค่าของ Uber ซึ่งคงไม่อาจมีอยู่ได้หากไม่มี GPS สูงกว่า 7 หมื่นล้านดอลลาร์
- หากรวมแอปพลิเคชันต่าง ๆ ที่ GPS ทำให้เกิดขึ้น ก็ถือได้ว่าการลงทุนภาครัฐใน GPS เป็นกรณีตัวอย่างของผลกระทบทางเศรษฐกิจและเทคโนโลยีที่ใหญ่มาก
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
Android เปิดให้เข้าถึงแนวทาง carrier phase (เฟสของคลื่นพาหะ) มานานพอสมควรแล้ว และด้วยวิธีนี้สามารถหาตำแหน่งสัมพัทธ์ระหว่างอุปกรณ์ที่อยู่ละแวกเดียวกันได้แม่นยำถึงระดับที่ต้องคำนึงว่าเสาอากาศ GNSS ซ่อนอยู่ตรงไหนในตัวเครื่อง
แค่นี้อย่างเดียวอาจไม่ได้ยอดเยี่ยมมาก แต่จะดีขึ้นเมื่อรวมเข้ากับ accelerometer และ gyroscope ของแต่ละอุปกรณ์
เพราะการเปลี่ยนแปลงของค่าการวัด pseudorange ของ GNSS สามารถคาดการณ์ได้แม้ไม่ได้อยู่นิ่ง จึงทำงานแบบเรียลไทม์ได้โดยประสิทธิภาพลดลงเพียงเล็กน้อย
เช่น ทำให้เครื่องบินจำลองที่ไม่มีล้อลงจอดแบบ อัตโนมัติ บนกระบะท้ายรถบรรทุกได้ และหลีกเลี่ยงรอยขีดข่วนหรือการพึ่งพารันเวย์หญ้า
ถ้าการใช้พลังงานไม่ได้สำคัญมาก ตัวรับ GNSS ที่ค่อนข้างดีก็ไม่จำเป็นต้องทำให้แพง ผมไม่เข้าใจว่าทำไมถึงซื้อเป็นคู่ในราคา 100 ดอลลาร์ไม่ได้เฉย ๆ
นี่คือตัวรับ GNSS ราคา 30 ดอลลาร์ แถมมีของจุกจิกที่ไม่จำเป็นติดมาด้วยนิดหน่อย
สำหรับคนที่อยากสร้างตัวรับ GPS เอง มีโปรเจกต์ โอเพนซอร์ส เต็มรูปแบบที่อธิบายทฤษฎีไว้มากด้วย: http://www.aholme.co.uk/GPS/Main.htm
https://lea.hamradio.si/~s53mv/navsats/theory.html
บทความที่มักถูกโพสต์ในคอมเมนต์เกี่ยวกับ GPS แต่ก็มีเหตุผลที่สมควร: https://ciechanow.ski/gps/
เป็นคำอธิบายอีกแบบ และน่าจะ โต้ตอบได้ มากกว่า:
https://ciechanow.ski/gps/
ยังมี การใช้งานโอเพนซอร์ส อีกตัวที่ดี:
https://m.youtube.com/watch?v=dVD1Yws__v0
เคยเห็นนักวิจัยที่เก็บ ข้อมูล GPS ของสิ่งมีชีวิตน้ำ ซึ่งโผล่ขึ้นสู่ผิวน้ำเพียงเป็นครั้งคราว และครั้งละสั้นมาก
หากบันทึกข้อมูลดิบแล้วนำไปประมวลผลภายหลัง จะลดทั้งการใช้พลังงานและเวลาขั้นต่ำที่ต้องเปิดรับสัญญาณดาวเทียมลงได้มาก โดยเวลารับสัญญาณลดลงได้ต่ำกว่า 1 วินาที
พอเห็นส่วนที่ว่า “ภาพด้านล่างแสดงให้เห็นว่าเรขาคณิตระหว่างผู้ใช้กับแหล่งสัญญาณส่งผลต่อความไม่แน่นอนของตำแหน่งผู้ใช้อย่างไร” ก็ทำให้คิดว่าอยากให้มีการตั้งค่าในแอปแผนที่บนมือถือที่เปลี่ยนรูปแบบความไม่แน่นอนของตำแหน่งจากวงกลมเป็น ลักษณะเส้นโค้งตัดกัน แบบนี้
เคยได้ยินว่า GPS เป็นหนึ่งในแอปพลิเคชันไม่กี่อย่างในชีวิตประจำวันที่ต้องคำนึงถึง ผลเชิงสัมพัทธภาพ ถ้าอย่างนั้นข้อมูลที่สร้างขึ้นก็น่าจะถูกลบผลเชิงสัมพัทธภาพเหล่านี้ออกไปแล้วใช่ไหม?
ถ้าหมายถึงเอาต์พุตจากอุปกรณ์ GPS เชิงพาณิชย์ ก็ใช่ ในการประมวลผลหลังการรับสัญญาณเพื่อสร้างเอาต์พุต จะมีการแก้ผลสารพัดอย่างที่ก่อให้เกิดความผิดพลาด
บทความนี้พูดถึง ข้อมูล GPS ดิบ ที่สตรีมมาจากดาวเทียมหลายดวง ซึ่งต้องผ่านการประมวลผลเพื่อสร้างค่าเอาต์พุต และบ่อยครั้งก็มีอินพุตเพิ่มเติม เช่น สถานีภาคพื้นดินหรือการแก้ไขทางทะเล เพื่อเพิ่มความแม่นยำ
ผู้จำหน่ายอุปกรณ์ GPS หลายรายโดยรวมทำสิ่งคล้าย ๆ กัน แต่รายละเอียดคือหัวใจสำคัญ
https://ciechanow.ski/gps/ ที่คอมเมนต์อื่น ๆ ลิงก์ไว้ก็อ่านดีเช่นกัน
เวลาก็ไหลช้าลงในวัตถุที่เคลื่อนที่เร็วกว่าผู้สังเกต และดาวเทียมก็เคลื่อนที่ค่อนข้างเร็ว
GPS ต้องทำให้เวลาระหว่างผู้สังเกตกับดาวเทียมซิงก์กัน ดังนั้นการไหลของเวลาจึงถูกปรับแก้ให้สะท้อนผลของทฤษฎีสัมพัทธภาพพิเศษและทฤษฎีสัมพัทธภาพทั่วไป
ดังนั้นสัมพัทธภาพจึงสำคัญ แต่ไม่จำเป็นต้องรู้สัมพัทธภาพมากนักเพื่อแก้หาตำแหน่งของตัวเอง
อย่างไรก็ตาม long-baseline/network RTK หลายรูปแบบอาจต้องใช้การสร้างแบบจำลองที่ซับซ้อนกว่า
ขั้นต่อไปคือ PPP หรือ RTK โลกของ GNSS เป็นโพรงกระต่ายแห่งความเป็นไปได้ที่สนุกมาก
แบบฝึกหัดสำหรับคนเชื่อว่าโลกแบน: จงอธิบายว่า แผนที่ GPS บนมือถือทำงานอย่างไรโดยไม่มีดาวเทียมโคจรรอบโลกทรงกลม แสดงวิธีทำด้วย
ก่อนอื่นต้องมีข้อโต้แย้งที่ค่อนข้างซับซ้อนว่าโทรศัพท์ไม่สามารถทำอย่างนั้นได้หากไม่มีดาวเทียม
ตัวอย่างที่ง่ายกว่านิดหน่อยและยากที่คนเชื่อว่าโลกแบนจะปัดตกคือ ISS แทบจะมองเห็นได้ด้วยตาเปล่า และมองเห็นได้แน่นอนด้วยกล้องโทรทรรศน์หลังบ้าน ดาวเทียม Starlink ก็คล้ายกัน
ความเชื่อว่าโลกแบนไม่ใช่จุดยืนที่ได้มาด้วยเหตุผล แต่แทบทุกครั้งมาจากความสับสน หรือเป็นผลลัพธ์ที่หลีกเลี่ยงไม่ได้ของความเชื่อแกนกลางที่ไม่สั่นคลอน โดยปกติมาจากการอ่านพระคัมภีร์แบบตีความตามตัวอักษรอย่างสุดโต่ง หรือจากความหวาดระแวงเชิงหลงผิดว่า “ทุกอย่างที่เป็นทางการล้วนเป็นเท็จ”