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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

第六章 PX4-Sensors解析

發(fā)布時(shí)間:2024/4/18 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第六章 PX4-Sensors解析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


第六章?PX4-Sensors解析

????????這一章節(jié)并不難,也很容易理解,但是這一章節(jié)有幾個(gè)函數(shù)需要我們?nèi)ダ斫庖幌?#xff0c;所以這里我們這里寫(xiě)一章來(lái)說(shuō)明一下。Sensors是所有傳感器進(jìn)行數(shù)據(jù)組合,就是拿到傳感器的原始數(shù)據(jù)進(jìn)行組合在一個(gè)結(jié)構(gòu)體中方便訂閱使用。

????????Sensors的啟動(dòng)時(shí)在rc.sensors的腳本文件中,在啟動(dòng)所有傳感器之后最后一步啟動(dòng)了sensors,這里的啟動(dòng)同樣是沒(méi)有參數(shù),所以我們直接找到sensors.cpp查看入口函數(shù)就行了。

????????這里直接又是newsensors,這里沒(méi)什么好講的,跟前面說(shuō)的一樣就是進(jìn)行初始化。接著就是start函數(shù),

然后創(chuàng)建任務(wù)函數(shù)

進(jìn)入task_main函數(shù)。首先對(duì)傳感器初始化在這個(gè)函數(shù)沒(méi)有找到那些定義所以我們找到的是elsesensors_init這里面就有對(duì)加速度計(jì)、陀螺儀、電子羅盤(pán)、氣壓計(jì)進(jìn)行初始化,這里我們只分析其中的一個(gè),其他的照貓畫(huà)虎一樣的分析方法。這里我們只分析加速度計(jì)吧。進(jìn)入到accel_init函數(shù)。首先是獲取句柄至于這個(gè)獲取設(shè)備的路徑,這個(gè)在傳感器的初始化就看看有過(guò)注冊(cè)的,這個(gè)自己去找。然后就是ioctl函數(shù),這個(gè)函數(shù)也是重載函數(shù),主要使用來(lái)配置用的。這里是對(duì)采樣速率的設(shè)置。第一個(gè)參數(shù)是命令,第二個(gè)參數(shù)是值。這個(gè)值我們追蹤一下,在drv_accel.h文件中,這些驅(qū)動(dòng)文件都是給他們分配一個(gè)基地址這個(gè)路徑下都有相應(yīng)的h文件,adcbaro,大家可以去看看都會(huì)給他們分配一個(gè)不一樣的基地址。這里我們就要回到相應(yīng)的傳感器了比如我們傳感器是mpu6000,在這里面我們能找到函數(shù)在這里面就有switch case語(yǔ)句都是進(jìn)行相應(yīng)的操作,看到?jīng)],設(shè)置采樣速率。這里你們可能會(huì)問(wèn)這里有3個(gè)參數(shù),而另外一個(gè)只有2個(gè)參數(shù)那么這里就要找到設(shè)備的nuttx驅(qū)動(dòng)了,找到這個(gè)目錄下cmake文件查看編譯的是哪個(gè)cpp文件,我們用的是nuttx系統(tǒng)編譯的就是文件了這個(gè)不難理解也沒(méi)必要去深入了解,其實(shí)只要知道怎么使用就行了。找到?jīng)],看到這里大家應(yīng)該知道這個(gè)工作機(jī)制是怎么處理了的吧!

????????初始化完成后就定義了原始數(shù)據(jù)的結(jié)構(gòu)體,這里的sensor_conmbined_s結(jié)構(gòu)體大家還記得吧,是從msg文件生成的h文件中有這樣的結(jié)構(gòu)體的,自己去查。開(kāi)始訂閱了,nuttx的這些個(gè)函數(shù)在前面介紹過(guò),不懂的話就去研讀一下。這里開(kāi)始訂閱數(shù)據(jù)了,用的是poll機(jī)制,這個(gè)機(jī)制不懂的話就去度一下,不難。看一下accel_poll函數(shù),這里復(fù)制訂閱的數(shù)據(jù),這些數(shù)據(jù)都是傳感器發(fā)布的,如果有疑問(wèn)就去看看那些傳感器是如何獲取數(shù)據(jù)和發(fā)布的。這里面就有對(duì)這些數(shù)據(jù)進(jìn)行矩陣運(yùn)算、積分、數(shù)據(jù)是否可靠然后進(jìn)行賦值給raw,這里面沒(méi)什么好說(shuō)的。接下來(lái)就是進(jìn)入到while中不斷去訂閱數(shù)據(jù)進(jìn)行賦值后發(fā)布

????????Sensors這一章節(jié)相對(duì)來(lái)說(shuō)比較容易,這里面主要是將傳感器數(shù)據(jù)和遙控信息進(jìn)行一個(gè)匯總,方便位置和姿態(tài)去使用,到這里那些傳感器數(shù)據(jù)就比較可靠了,一次大家如果有跟好的算法就可以在這個(gè)函數(shù)中進(jìn)行處理或者在傳感器獲取數(shù)據(jù)就處理,PX4的數(shù)據(jù)處理主要還是在傳感器那端。如果大家有更好的算法也可以分享一下,大家可以共同研究然后共享出來(lái)。



http://blog.csdn.net/qq_18112493/article/details/70193856

總結(jié)

以上是生活随笔為你收集整理的第六章 PX4-Sensors解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。