日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第五章 PX4-GPS解析

發布時間:2024/4/18 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第五章 PX4-GPS解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第五章?PX4-GPS解析

在上一章節我們對傳感器MPU6000做了一個解析,MPU6000所支持的協議是SPI。這一章節我們來解析GPS,GPS使用的是串口通信。這里我們著重講解UBLOX的解析過程,并且會附帶串口的解析說明。這一章節完了之后大家有興趣可以嘗試RTK的數據解析,對于RTK我在前面講到過。

首先我們還是找到GPS的啟動代碼,GPS的啟動在RCS文件中直接就是

。這里我們回到驅動層

找到文件gps.cpp文件找到入口函數

。這里說明一下PX4的gps驅動是可以支持2套gps的

從這里就可以看出來。首先我們還是來看device_name,這個參數是

驅動層的h文件均在

目錄下。很顯然這里其實就是串口的名字。既然說到這里我們就來說說“/dev/ttys3”是如何注冊到串口的吧。

還記的SPI的驅動吧。這里我們主控是V2板的所以是支持的處理器是stm32的,所以我們就到stm32的驅動中去找,這里一般對stm32庫了解的話都知道,串口要么是usart要么是serial,這里我們就可以知道文件是stm32_serial.c,初始化串口程序就是up_serialinit了,至于為什么,你可以去追蹤一下,發現這個函數在

文件中調用,stm32是屬于arm不是avr哦,

然后一級一級的去追蹤你就能發現最終的源頭了。回到stm32_serial.c文件的初始那段代碼去。你可以看到NSH?后臺控制串口注冊的是串口7

CONSOLE_UART=7哦,這里你可以去追蹤哦,對照deconfig文件,那些define定義在deconfig文件能找到的。并且串口7還注冊了DMA控制,接下來的for會對串口一一初始化看到沒一開始是復制然后對x值進行改變然后注冊了哦,剛才我們找到GPS是ttys3,所以我們查看一下uart_devs[2],這里面的邏輯應該不難理解吧!發現注冊的是串口3。我們在來看看硬件的GPS接口

正好是串口3哦,這下對應起來了吧。串口的注冊也就講完了。

這里我們就直接進入start函數,這里的參數是相信也不難理解吧。然后就是產生驅動首先還是以new的方式進行初始,然后成功后進行init函數這里的init函數就是gps的init,這個自己理解一下,所以這個初始化也在本文件中,找到init函數看到的是串口任務同樣去追中函數找到task_main函數,首先是打開串口這里的_port在new的時候賦完值了哦。然后就是訂閱和初始化數據轉存,然后進入while中去執行。首先會判斷_fake_gps參數,這個是虛擬的數據,真正場合肯定不會用的,所以我們看else的,這里是一個case語句是對模塊的選擇,我們今天只講ublox,所以看到這里也是new GPSDriverUBX.然后是檢測配置主要是波特率,這里的configure是一個虛函數,我們使用的ublox所以當然是到ubx.cpp中去找了。這里面的函數都不難,但是要對比手冊來看,這里面的處理機制可以值得學習哦,通過輪詢的方式來查找ublox的波特率,還有就是配置ublox。

接下來就是復位那些數據了,然后就是要接收數據了。找到ublox的receive函數,進入讀取串口數據讀取的數據暫存在buf中。這里的read函數大家不妨去找找,這個是一個重載到gps.cpp中的回掉函數,大家也能看到讀取數據的case語句這里面就有對串口數據中斷讀取的函數,大家自己去理解一下。

然后進入數據解析階段了這里我們貼出ublox的協議格式。


所以從這里就可以看出幀頭以0xb5,0x62開頭。第一個case就是判斷是0xb5和是否為rtcm格式


完成幀頭后需要進行校驗了,看到沒校驗是從第三個數據開始的哦,ublox采用的是校驗和的然后得到2個數據的長度

這里的_rx_payload_length就是長度了。接著就開始解析相關數據了,這里我們只解析SVINFO信息

看到沒通過之前接收到的_rx_msg來判斷接收到的是什么數據。首先我們還是來看看ublox的SVINFO數據幀,

進入到解析函數就可以看到這些數據的解析了,這里不做過多說明,只要對照手冊就很容易讀懂,這幀數據主要是衛星高度角、信噪比了。


解析出數據后就要繼續進行校驗和了,從剛才ublox的數據幀也可以看出來校驗和是占兩個字符。


當然校驗完成了后還是要解析其他的數據了,這里面就有NAV_PVT、NAV_POSLLH等等,這些數據幀你就看到了經緯度、高度,ecef坐標了,這些解析的就沒必要說了吧。

所有的數據在這里就算是接收完了,完了之后當然是要發布出去給需要的機制去訂制。

大家也行看到的是_report_gp http://blog.csdn.net/qq_18112493/article/details/69951128

總結

以上是生活随笔為你收集整理的第五章 PX4-GPS解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。