色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于RT-Thread的開源飛控StarryPilot解決方案

lPCU_elecfans ? 來源:未知 ? 作者:工程師陳翠 ? 2018-07-22 11:33 ? 次閱讀

背景描述

近年來無人機應用市場日趨火熱,無人機開始被應用在多個領域之中,比如航拍,植保,運輸,安防等。隨著應用場景的增加,對于無人機的大腦一飛控,的性能和功能要求也變得越來越高。國內具有一大批優質的無人機企業,如DJI,零度,億航,極飛等。可是這些企業的飛控系統并不開源,而開源飛控市場卻基本被國外所壟斷,比如APM, PX4, Autoquad等,國內目前還沒有一款開源飛控可以與之抗衡,在國際上也沒有令人熟知的“國產”開源飛控。正是基于開發出一款世界知名的中國的開源飛控,我從2016年開始了StarryPilot這個項目。飛控的設計理念是一款輕量,功能強大的飛控,主要面向科研和無人機行業應用,使得無人機開發技術更加普及,也更容易將無人機技術應用到各個行業。

無人機整機

Pixhawk

室外定高飛行

Gazebo HITL(硬件在環)仿真

Msh shell系統

開發環境

主控:STM32F427 + STM32F100(從控制器)

編譯環境: Keil MDK5.23

RT-Thread版本: RTT-2.1.0

硬件設計

硬件采用國外開源的自駕儀Pixhawk(https://pixhawk.org/modules/pixhawk), 如下圖所示。Pixhawk也是目前世界上應用最廣,支持的飛控系統最多的開源飛控硬件。

其主要性能參數如下:

168MHz / 256 MIPS Cortex M4F

14路 PWM/伺服 輸出

外擴總線接口 (I2C,CAN,UART)

冗余電源輸入

外部安全開關

多色LED指示燈

外置microSD卡槽

傳感器

ST Micro L3GD20 16位陀螺儀

ST Micro LSM303D 16位加速度計/磁力計

Invensense MPU 6000 三軸加速度計/陀螺儀

MEAS MS5611 氣壓計

接口

5x UART, 2x CAN, I2C, SPI

DSM/DSM2/DSM-X 衛星兼容輸入

PPWM, S-BUS

3.3 和 6.6V ADC輸入

microUSB

整個系統除了Pixhawk之外,還有一些外接的電子設備,如無刷電機,GPS,電調,數傳,RC接收機,Lidar-Lite激光雷達等。整體的系統框架圖如下圖所示:

基于RT-Thread的開源飛控StarryPilot解決方案

軟件設計

軟件采用分層結構設計,如下圖所示,從底層到上層分別是Driver層,RTOS(RTT + Fatfs),HAL硬件虛擬層,Framework層和應用層。

基于RT-Thread的開源飛控StarryPilot解決方案

一、Driver層

Driver層實現了Pixhawk板載的所有硬件設備的驅動,如傳感器設備(陀螺儀,加速度計,磁力計,氣壓計等),總線設備(UART, I2C, SPI等),USB,電機驅動,SD卡驅動,GPS驅動,LED燈以及一些板載設備的驅動。各個驅動以Device的形式向RTT進行注冊,并且提供各自的init(), read(), write, ioctrl()函數供上層調用。這里僅以hmc5883磁力計的驅動舉例說明驅動程序的一般設計步驟。

- 設備初始化函數

如下為hmc5883的初始化函數。首先對設備的功能函數進行函數指針賦值,這里定義了init(), read()和ioctrl()三個函數。然后向RTT注冊名為hmc5883的驅動設備,上層可以通過查找設備名的方式來獲取該驅動設備。接下來就是給hmc5883設置對應的總線設備。這里 hmc5883使用的是i2c通信,所以初始化中會為其查找對應的i2c設備。

基于RT-Thread的開源飛控StarryPilot解決方案

- init()函數

Init()函數主要做一些芯片的初始化的工作,包括寄存器配置等。

基于RT-Thread的開源飛控StarryPilot解決方案

- read()函數

read()函數實現設備數據讀取的功能,如原始磁場數據和標定后的磁場數據讀取。

基于RT-Thread的開源飛控StarryPilot解決方案

- ioctrl()函數

Ioctrl()函數主要實現一些設備的配置功能,如設置測量磁場的范圍,采樣頻率等。

基于RT-Thread的開源飛控StarryPilot解決方案

二、RTOS層

RTOS采用RT-Thread嵌入式操作系統,它的功能強大,除了提供基本的線程調度,內存管理,同步等基本功能外,還提供了如msh的shell系統,device設備驅動系統,使得系統的整體架構更加清晰,功能也更加完善。

三、HAL層

HAL層主要是對底層驅動設備進行進一步封裝,將具體的設備抽象為一個類別的設備。以串口設備為例,不同的硬件平臺,串口的底層驅動會有差異,通過HAL層,將串口設備封裝為統一的接口,這樣當系統移植到不同平臺的時候,上層代碼不需要做任何改變,而只需要將對應底層驅動進行簡單替換就行。這將大大降低系統移植的復雜程度。

四、Framework層

Framework層實現了飛控設備的主要功能,如姿態估計,位置估計,控制器,通信,日志管理等等。可以說,這一層是整個系統的核心,大部分的功能模塊都在這一層來實現。

五、Application層

應用層是將飛控的各個大的功能進行分割,變成一個個小的功能。每個功能在系統中為一個單獨的線程,每個線程負責執行自己的任務,并且跟其他線程通過IPC進行通信。Vehicle線程具有最高優先級,執行周期為1ms。其負責實現無人機飛行相關的所有功能,如狀態估計和電機的控制。

啟動流程

下面介紹一下系統的啟動流程. 啟動流程沿用RTT提供的原始結構。首先在rtthread_startup()函數中進行RTOS的一些初始化,然后進入到rt_application_init()中。 在這個函數中會建立一個init的初始線程,在這個線程中,會對飛控各個模塊進行初始化的工作。在初始化完成之后,會根據Application層的定義,建立各個線程,并喚醒,最后將init線程自己給銷毀掉,避免不必要的內存消耗。

演示視頻

控制算法和飛行效果測試( ADRC vs PID )

項目特色

使用RT-Thread嵌入式操作系統, Fatfs文件系統,完整的系統功能支持(如跨進程通信,文件管理,參數系統等)

基于Pixhawk硬件平臺開發,完美支持Pixhawk硬件

ADRC控制和PID(串級)控制

支持Mavlink協議(QGC地面站)

支持Gazebo硬件在環(HITL)仿真

Msh指令系統,提供豐富以及可擴展的系統指令

Log日志系統,方便抓取飛行日志信息,并提供相應的日志查看工具。

基于最小二乘法的最優橢球擬合校準算法(可校準零偏誤差,縮放誤差,非正交誤差),可用于磁力計和加速度計的校準。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開源飛控
    +關注

    關注

    1

    文章

    7

    瀏覽量

    5318

原文標題:【周四RTOS專欄】基于RT-Thread的開源飛控StarryPilot

文章出處:【微信號:elecfans,微信公眾號:電子發燒友網】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RT-Thread的C語言編碼規范

    這是一份 RT-Thread 開發人員的開發指引。RT-Thread 做為一份開源軟件,它需要由不同的人采用合作的方式完成,這份文檔是開發人員的一個指引。RT-Thread 的開發人員
    的頭像 發表于 02-21 16:50 ?2467次閱讀

    【資料】基于RT-Thread的四軸控項目匯總

    1、基于RT-Thread開源StarryPilot近年來無人機應用市場日趨火熱,無人機開始被應用在多個領域之中,比如航拍,植保,運輸,安防等。隨著應用場景的增加,對于無人機的大
    發表于 03-28 15:24

    RT-Thread編程指南

    RT-Thread編程指南——RT-Thread開發組(2015-03-31)。RT-Thread做為國內有較大影響力的開源實時操作系統,本文是RT
    發表于 11-26 16:06 ?0次下載

    RT-Thread AI kit開源:輕松實現一鍵部署AI模型至 RT-Thread

    RT-AK 是 RT-Thread 團隊為 RT-Thread 實時操作系統所開發的 AI 套件,能夠一鍵將 AI 模型部署到 RT-Thread 項目中,讓用戶可以 在統一...
    發表于 01-25 18:18 ?3次下載
    <b class='flag-5'>RT-Thread</b> AI kit<b class='flag-5'>開源</b>:輕松實現一鍵部署AI模型至 <b class='flag-5'>RT-Thread</b>

    RT-Thread開源作品秀】基于RT-Thread的星務平臺研究

    本作品為了驗證星務軟件在RT-Thread系統運行的可行性,底層是否能夠驅動星務軟件,同時擴展RT-Thread應用范圍。ART-Pi作為衛星下位機,...
    發表于 01-25 18:26 ?6次下載
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>開源</b>作品秀】基于<b class='flag-5'>RT-Thread</b>的星務平臺研究

    RT-Thread 編程風格指南

    這是一份 RT-Thread 開發人員的開發指引。RT-Thread 做為一份開源軟件,它需要由不同 的人采用合作的方式完成,這份文檔是開發人員的一...
    發表于 01-26 17:04 ?18次下載
    <b class='flag-5'>RT-Thread</b> 編程風格指南

    RT-Thread全球技術大會:RT-Thread開源重塑軟件發展新生態

    RT-Thread全球技術大會:RT-Thread開源重塑軟件發展新生態,市場空間巨大,以開放的心態不斷提升技術水平,大膽創新,迎接挑戰! ? ? ? 審核編輯:彭靜
    的頭像 發表于 05-27 10:47 ?1237次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術大會:<b class='flag-5'>RT-Thread</b><b class='flag-5'>開源</b>重塑軟件發展新生態

    英飛凌加入RT-Thread開源共同體 為物聯網開發者提供系統級解決方案

    日前,全球半導體解決方案的領導者英飛凌科技(中國)有限公司(以下簡稱“英飛凌”)與知名物聯網操作系統廠商睿賽德科技( RT-Thread )簽署合作協議,成為 RT-Thread 開源
    發表于 07-01 14:24 ?879次閱讀

    RT-Thread學習筆記 RT-Thread的架構概述

    RT-Thread 簡介 作為一名 RTOS 的初學者,也許你對 RT-Thread 還比較陌生。然而,隨著你的深入接觸,你會逐漸發現 RT-Thread 的魅力和它相較于其他同類型 RTOS
    的頭像 發表于 07-09 11:27 ?4545次閱讀
    <b class='flag-5'>RT-Thread</b>學習筆記 <b class='flag-5'>RT-Thread</b>的架構概述

    RT-Thread 編程風格

    作者:架構師李肯 前言 最近博主在學習 RT-Thread 這個開源項目,開始慢慢學習和理解它的開源代碼,慢慢開始接觸了它的代碼規范。 我個人認為,參與一個開源項目的第一步,就是要好好
    的頭像 發表于 12-06 19:55 ?1100次閱讀

    RT-Thread文檔_RT-Thread 簡介

    RT-Thread文檔_RT-Thread 簡介
    發表于 02-22 18:22 ?5次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 簡介

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南
    發表于 02-22 18:23 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 潘多拉 STM32L475 上手指南

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP 介紹與移植

    基于RT-Thread Studio學習

    前期準備:從官網下載 RT-Thread Studio,弄個賬號登陸,開啟rt-thread學習之旅。
    的頭像 發表于 05-15 11:00 ?3930次閱讀
    基于<b class='flag-5'>RT-Thread</b> Studio學習

    開源共生 商業共贏 | RT-Thread 2024開發者大會報名啟動!

    開發者大會將以“開源共生,商業共贏”為主題,將于2024年12月21日全天在上海臨港中心舉行。開源RT-Thread如何實現商業化?這一直是外界對RT-Thread
    的頭像 發表于 10-29 08:06 ?368次閱讀
    <b class='flag-5'>開源</b>共生 商業共贏 | <b class='flag-5'>RT-Thread</b> 2024開發者大會報名啟動!
    主站蜘蛛池模板: 天天看学生视频| 亚洲精品第五页中文字幕| 亚洲国产在线2o20| 中国欧美日韩一区二区三区| 被吊起玩弄的女性奴| 韩日美无码精品无码| 欧美日韩无套内射另类| 午夜福利理论片在线播放| 51久久夜色精品国产| 国产精品高清视频在线| 猫咪最新破解版下载| 我的好妈妈8高清在线观看WWW| 综合精品欧美日韩国产在线 | 美女大BXXXXN内射| 少女10声大哥喊退色狼| 中文字幕在线视频观看| 国产高清在线观看| 美女脱了内裤张开腿让男人桶到爽| 首页_亚洲AV色老汉影院| 2017天天拍天天拍香蕉视频| 国产精品久久久久秋霞影视| 免费精品国产人妻国语| 亚洲精品福利在线| 吃奶摸下的羞羞漫画| 狂躁美女BBBBBB视频| 亚洲福利网站| 成年视频国产免费观看| 老妇xxxxbbbb| 亚洲国产精品天堂在线播放| 波多野结衣 熟女| 久久天天婷婷五月俺也去| 无码人妻丰满熟妇区五十路久久 | 欧美又粗又长又大AAAA片| 亚洲在线成色综合网站| 国产成人h在线视频| 免费在线观看黄色网址| 亚洲午夜精品aaa级久久久久| 国产黄大片在线视频| 青青草久久伊人| 97视频视频人人碰视频| 久久99视热频国只有精品|