深入探究LuatOS平臺上的GNSS定位技術,是提升應用精度與可靠性的關鍵。本文將深度解析GNSS定位的初始化流程,詳細講解如何從原始數據中提取并解析NMEA信息,以及最終如何將解析出的位置數據實現實時上傳。
一、GPS 概述
GPS 最先來自美國,1978 年,美國發射了第一顆 GPS 衛星,發明和實踐了衛星定位技術。衛星定位技術原理是,覆蓋全球的多顆定位衛星連續發射一定頻率的無線電信號,移動終端上集成便攜式衛星信號接收機,接收機接收衛星信號并測量衛星到終端接收機之間的距離,最終由移動終端利用多顆衛星位置和與這些衛星的距離計算出移動終端的具體位置。后來出現了歐洲的 Galileo、俄羅斯的 GLONASS、中國的北斗等,所以如今的 GPS 實質上是作為一個衛星定位技術體系 GNSS 的代名詞,而不是單指美國的 GPS 系統。
GPS 提供的服務包括定位、授時和導航。定位服務就是 GPS 終端獲得其位置的服務,授時服務就是 GPS 終端獲得正確時間的服務,導航服務是計算 GPS 終端速度和運動方向的服務。GPS 不限制終端數,在 GPS 衛星信號不被阻擋的情況下,在地球上任何地點、任何時間,任何 GPS 終端都可以得到正確的位置和時間。定位只需要一個條件,那就是能夠接收到足夠多的衛星信號。因此在室內通常無法定位。
Air8000 作為集成了 4G、Wi-Fi、BLE、GNSS(全球導航衛星系統)等多功能的高性能工業引擎,其內置的 GPS 模塊能夠提供穩定、準確的定位服務。
二、演示功能概述
本教程將演示如何使用 Air8000 的 GPS 功能,包括硬件連接、軟件配置、代碼編寫等步驟,最終實現通過 Air8000 獲取 GPS 信息,并將其進行本地處理或上傳至指定的服務器。
三、準備硬件環境
3.1 Air8000 核心板

3.2 GPS 天線

參考:硬件環境清單:https://docs.openluat.com/air8000/luatos/common/hwenv/,準備以及組裝好硬件環境。

四、準備軟件環境
1. 燒錄工具Luatools;
2. 內核固件文件(底層 core 固件文件):LuatOS-SoC_V2014_Air8000_2.soc;此頁面有新版本固件的話選用最新版本固件。
3. LuatOS 需要的腳本和資源文件:https://gitee.com/openLuat/LuatOS/tree/master/module/Air8000/demo/GPS
4. lib 腳本文件:使用 Luatools 燒錄時,勾選 添加默認 lib 選項,使用默認 lib 腳本文件;
準備好軟件環境之后,接下來查看如何燒錄項目文件到 Air8000 開發板中,將本篇文章中演示使用的項目文件燒錄到 Air8000 開發板中。
五、GPS 軟硬件參考
本教程使用 api 接口為:
https://docs.openluat.com/osapi/core/libgnss/
5.2 GPS 硬件設計
GPS 在硬件設計中天線部分是比較關鍵的,可以參考這篇文章:(Air8000 GNSS 硬件設計指導:https://docs.openluat.com/air8000/luatos/hardware/design/gnssant/)
在核心板上內置 GNSS ipex 連接器,同時內置 3.3V LDO, 用于有源天線供電。因此可以使用外部有源天線直接連接 GNSS 連接器。

注意:目前有源天線供電僅支持 3.3V 有源天線,請注意連接的有源天線的供電范圍。
六、代碼示例介紹
6.1 軟件代碼介紹

6.2 效果展示

將定位成功后的經緯度復制到此頁面:https://www.openluat.com/GPS-Offset.html。可以查看位置信息和坐標系轉換后的經緯度。

七、總結
本教程詳細介紹了如何使用 Air8000 的 GPS 功能,包括硬件連接、軟件配置、代碼編寫等步驟。通過本教程的學習,讀者應該能夠掌握 Air8000 GPS 功能的基本使用方法,并能夠根據實際需求進行擴展和應用。
八、注意事項與常見問題
8.1、GPS 定位經緯度不準確
1、坐標沒有糾偏,參考:http://www.openluat.com/GPS-Offset.html進行糾偏處理
2、周圍有比較高的障礙物,會導致定位誤差
3、在開闊地帶,正常情況下定位精度只能做到 5 米
4、不能在室內測試,必須到室外測試;如果只能在室內測試,可以淘寶搜索“gps 信號轉發器”
8.2、Air8000 獲取到的經緯度數據是基于什么坐標系
使用國際標準 WGS-84 坐標系,需要自己進行坐標系轉換各 GPS 坐標系說明以及轉換方法。
8.3、GPS 天線如何設計
參考:https://docs.openluat.com/air8000/luatos/hardware/design/gnssant/
8.4、可視衛星、可用衛星有什么區別
可視衛星是當前區域,接收條件良好情況下,應該可以收到衛星信號的衛星。
可用衛星是當前已經收到信號并正在使用參與定位的衛星。
8.5、 GGA 和 RMC 應該用哪個
視具體情況而定,建議用 gga,信息相對更全面。
8.6、如何解讀 NMEA 報文每個字段的含義
參考:NMEA-0183 協議簡介
8.7、車載使用時需要天線引出到車頂上嗎
1、擋風玻璃如果沒有貼膜或者貼了不含金屬材料的膜,可以放在擋風玻璃下,但是 gps 信號會有一定衰減,在萬不得已的情況下,可以放在擋風玻璃下,最好再實際測試確認一下。 2、擋風玻璃如果貼了含有金屬材料的膜,則不能放在擋風玻璃下,必須將天線到車頂。
8.8、如何輸出原始 NMEA 數據
可以通過 libgnss.bind(id, next_id)接口進行綁定。

今天的內容就分享到這里了~
審核編輯 黃宇
-
定位
+關注
關注
5文章
1590瀏覽量
36709 -
GNSS
+關注
關注
9文章
993瀏覽量
51176 -
LuatOS
+關注
關注
0文章
156瀏覽量
2702
發布評論請先 登錄
掌握 LuatIO:GPIO 復用模式初始化配置全流程解析
EtherCAT總線初始化步驟
深度解析 | 低抖動高精度EtherCAT多軸控制的實現與實踐案例
LuatOS exgnss擴展庫實戰進階:GNSS功能開發全流程!
【CPKCOR-RA8D1】基于CPKCOR-RA8D1的GNSS RTK系統設計
Air8000-LuatOS exvib擴展庫實操指南:全流程技術細節深度解讀
LuatOS腳本開發入門:嵌入式運行框架全解析!
GraniStudio:初始化例程
定義IO初始化結構體
IM 系列設備過載保護觸發界面初始化中斷的機制解析與閾值建模
LuatOS GNSS定位技術深度解析:初始化流程、NMEA數據提取與實時上傳
評論