PX4源碼開發(fā)人員文檔(一)——軟件架構(gòu)

上傳人:靚*** 文檔編號(hào):32166465 上傳時(shí)間:2021-10-13 格式:DOCX 頁(yè)數(shù):10 大小:142.59KB
收藏 版權(quán)申訴 舉報(bào) 下載
PX4源碼開發(fā)人員文檔(一)——軟件架構(gòu)_第1頁(yè)
第1頁(yè) / 共10頁(yè)
PX4源碼開發(fā)人員文檔(一)——軟件架構(gòu)_第2頁(yè)
第2頁(yè) / 共10頁(yè)
PX4源碼開發(fā)人員文檔(一)——軟件架構(gòu)_第3頁(yè)
第3頁(yè) / 共10頁(yè)

下載文檔到電腦,查找使用更方便

0 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《PX4源碼開發(fā)人員文檔(一)——軟件架構(gòu)》由會(huì)員分享,可在線閱讀,更多相關(guān)《PX4源碼開發(fā)人員文檔(一)——軟件架構(gòu)(10頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、PX4源碼開發(fā)人員文檔(一) 軟件架構(gòu) 軟件架構(gòu) PX4在廣播消息網(wǎng)絡(luò)內(nèi),按照一組節(jié)點(diǎn) (nodes )的形式進(jìn)行組織,網(wǎng)絡(luò)之間使用像 如“姿態(tài)”和“位置”之類的語義通道來傳遞系統(tǒng) 狀態(tài)。軟件的堆棧結(jié)構(gòu)主要分為四層: .應(yīng)用程序接口:提供給app開發(fā)人員,使開 發(fā)人員可以使用ROS或者DroneAPI。這 一接口設(shè)計(jì)盡可能簡(jiǎn)潔和扁平,并盡量多的 隱藏復(fù)雜性。 ?應(yīng)用框架:這是一組核心缺省應(yīng)用程序(節(jié) 點(diǎn)),運(yùn)行核心的飛行控制。 ?函數(shù)庫(kù):這一層包括針對(duì)機(jī)器核心操作的所 有系統(tǒng)函數(shù)庫(kù)和功能 通信、UAVCAN和故障安全(failsafe)系 統(tǒng)。 操作系統(tǒng): 最后一層,

2、 提供硬件驅(qū)動(dòng)、 網(wǎng)絡(luò) Application API (0MQ/ROS) Surveys Cargo Follow-Me SAR 1 Authentication - ROS or 0MQ pub/sub Broker Application Framework VI Odometry Multicopter Ctrl. [ VTOL Ctrl.] MAVLInk Serial 1 State Estimation Fixed Wing Ctrl. Commander Navigator MAVROS Libraries Linux Kernel

3、 Camera Driver Network [ 4G/LTE 1 Storage SDR Driver I RTOS Kernel pORB or MuORB pub/sub UAVCAN Driver j Actuator Drivers Failsafe System Sonsor Drivers Estimation Ub F MathLIbL j E OpenCV Sj xORB Wrapper Control Lib 1 MAVLInk Lib UAVCAN Lib 1 Mission Logic Lib 內(nèi)部進(jìn)程通信(Inter Pr

4、ocesscommunication, IPC) PX4平臺(tái)的封裝提供了跨平臺(tái)的無鎖發(fā)布?訂 閱模式(publish-subscribe pattern)對(duì)象請(qǐng)求 處理器。取決于平臺(tái)/操作系統(tǒng),完成這個(gè)的后 端可能是uORB,或者Linux上的ROS / DDS (data delivery service)0封裝可擴(kuò)展,也可作 為消息系統(tǒng)提供支持,比如0MQ o所有這些后 端的共同特點(diǎn)是,它們都允許發(fā)送數(shù)據(jù)到一個(gè)像 如“位置”這樣的語義訂閱主題(topic),并使 多個(gè)接收器跨進(jìn)程的收到這一數(shù)據(jù)。 IPC性能 發(fā)布(Publication)至[]訂閱(subscription)

5、 之間的延遲: ? uORB: 23 us @ 168 MHz STM32F4 ? ROS: TBD ? ROS2/DDS:185 us @ 1.6 GHz IntelPentium 4 and 2 GB RAM running Windows XP (details) ? ZeroMQ: 170 us @ 1.6 GHz IntelPentium 4 and 2 GB RAM running Windows XP (details) 安全和保護(hù)模型 飛行核心與主要應(yīng)用級(jí)處理過程隔離,以確保獨(dú) 立于高層級(jí)系統(tǒng)狀態(tài)的機(jī)器核心操作,保持穩(wěn) 定。 PX4應(yīng)用程序框架 PX4應(yīng)用程序

6、框架在所有平臺(tái)上代碼兼容,(比 如 Pixhawk / NuttX,又比如,SnapDragon / Linux),獨(dú)立并將中間設(shè)備作為傳輸層。 publisher publish。 subscriber subscri be() Object Request Broker 節(jié)點(diǎn)句柄(Node Handle) 節(jié)點(diǎn)句柄是每一個(gè)連接到中間設(shè)備的發(fā)布器 (publisher)或者訂閱器(subscriber)的核 心數(shù)據(jù)結(jié)構(gòu)(一個(gè)節(jié)點(diǎn)可以同時(shí)是發(fā)布器和訂閱 器)。一個(gè)節(jié)點(diǎn)是一個(gè)邏輯單元,每一個(gè)進(jìn)程都 可以有多于一個(gè)的節(jié)點(diǎn)(雖然這并不是典型的形 式)。 1. px4::Nod

7、eHandle n(); 數(shù)據(jù)結(jié)構(gòu) 對(duì)于所有相關(guān)的中間設(shè)備實(shí)現(xiàn),PX4根據(jù)儲(chǔ)存在 “msg”中的定義文件自動(dòng)生成據(jù)結(jié)構(gòu)。 發(fā)布(publication) 通過使用節(jié)點(diǎn)句柄通告(advertise)訂閱主題 (topic)來創(chuàng)建一個(gè)新的發(fā)布(publication)。 注意這個(gè)模板, 是訂閱主題的數(shù)據(jù)結(jié)構(gòu)。 L px4::Publisher* rc_channels_pub = n.advertise() 從這個(gè)指向rc_channels_pub的句柄的指針, 可以用于發(fā)布數(shù)據(jù) L

8、px4_rc_channels rc_channels_msg; 2. rc_channels_msg.data().timestamp_last_valid= px4::get_time_micros(); 3. _rc_channels_pub->publish(rc_channels_msg); 訂閱(Subscription) 通過訂閱一個(gè)訂閱主題創(chuàng)建一個(gè)新的發(fā)布。注意 模板,是訂閱主題的數(shù)據(jù)結(jié)構(gòu)。使用訂閱共有三 個(gè)選擇: 1. 使用訂閱主題的句柄,進(jìn)行手動(dòng)復(fù)制操 作。 2. 作為函數(shù)的回調(diào)(callback),在訂閱 主題更新時(shí),函數(shù)被調(diào)用。 3.

9、作為類方法的回調(diào)(相當(dāng)于函數(shù),但是 是C++類型的) 單純訂閱 除非手動(dòng)調(diào)用復(fù)制方法,否則數(shù)據(jù)不會(huì)被復(fù)制。 L unsigned min_interval =500; 2. _sub_rc_chan = _n.subscribe(min_interval); 函數(shù)回調(diào) 每次訂閱主題更新,則 rcchannelscallbackfunction被調(diào)用。 ]view plaincopy 1. unsigned min_interval =500; 2. _n.subscribe(rc_channe

10、ls_callback_function> min_interval); 類方法回調(diào) 相當(dāng)于前面函數(shù)的例子。 _n.subscribe(&SubscriberExample:crc-channels-callback, this ,min_interval); 混合系統(tǒng) 為了解決更高級(jí)別的挑戰(zhàn),比如基于視覺的避障 或者復(fù)雜控制問題,一個(gè)運(yùn)行嵌入式Linux的伴 隨計(jì)算機(jī)將非常有用。 LINUX COMPANION DEEPLY EMBEDDED 集成ROS PX4可以通過兩種不同的API與ROS整合到一 起:或者自然地將每一個(gè)應(yīng)用作為R

11、OS節(jié)點(diǎn), 或者通過mavros在嵌入式自駕儀上唯一地運(yùn) 行 Linux Computer: Odroid U3 Deeply Embedded: FMUv2 Board ROS pub/sub bus Simulation Environment ROS Logging Fixed Wing Atthude Control SITL Flight Simulator DroneAPI DroneAPI是一個(gè)高級(jí)應(yīng)用程序接口,類似于一 個(gè)為遠(yuǎn)程過程調(diào)用(RPC)提供語言綁定的函數(shù) 庫(kù)。從本質(zhì)上講,它是面向告訴無人機(jī)去哪里或 做什么,而不是核心的機(jī)器人通訊/API的一部 分。

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!