基于RT-Thread開發智能視覺組智能車-樂山師范學院

      網友投稿 1020 2022-05-29

      學 校:樂山師范學院

      隊伍名稱:樂師逐飛四隊

      參賽隊員:陳龍、劉宇林、唐玉琴、

      帶隊教師:楊濟豪,李富鋼

      簡 介:

      本設計以第十六屆全國大學生智能汽車競賽為背景,全向行進組以大賽組委會指定的采用麥克納姆輪的H型車模為平臺,制作一輛以沁恒CH32V103R8T6為核心板和以MOUNRIVER STUDIO為開發環境, 用PWM輸出控制舵機轉向和電機速度,利用智能車數字攝像頭識別賽道,解決十字、坡道、三岔、起始線等特殊元素的智能車,并讓其實現轉向、速度能夠快速的到達想要的速度、能夠自主識別路徑并按照規定路徑以盡可能快的速度行進完成比賽.

      關鍵詞:

      智能車競賽,全向行進,H車模,RT-Thread

      1.1第十六屆全國大學生智能汽車大賽介紹

      本文以第十六屆全國大學生智能汽車競賽和 2014年11月2日第十屆全國大學生智能汽車競賽組委會擴大會議討論通過的全國大學生智能汽車競賽章程為背景,介紹本屆全國大學生智能汽車競賽.

      該競賽受教育部高等教育司委托,由教育部高等自動化專業教學指導分委員會(以下簡稱"自動化教指委")主辦,負責指導全國范圍內的大學生智能汽車競賽. 為加強大學生實踐、創新能力和團隊精神的培養,促進高等教育教學改革,該競賽以"立足培養,重在參與,鼓勵探索,追求卓越"為指導思想,以設計制作在特定賽道上自主行使且具有優越性能的智能汽車為研究對象的創意性科技競賽.是面向全國大學生的一種具有探索性工程實踐活動,是教育部倡導的大學生科技競賽之一.旨在促進高等學校素質教育,培養大學生的綜合知識運用能力、基本工程實踐能力和創新意識,激發大學生從事科學研究與探索的興趣和潛能,倡導理論聯系實際、求真務實的學風和團隊協作的人文精神,為優秀人才的脫穎而出創造條件.

      該競賽由競賽秘書處為各參賽隊設計、規定標準硬軟件技術平臺,競賽過程包括理論設計、實際制作、整車調試、現場比賽等環節,要求學生組成團隊,協同工作,初步體會一個工程性的研究開發項目從設計到實現的全過程.該競賽內容綜合性強,涵蓋了控制、模式識別、傳感技術、電子、電氣、計算機、機械、通信、汽車工程等多個學科知識.

      經全國大學生智能車競賽組委會擴大會議決定,第十六屆全國大學生智能汽車競賽分為分賽區選拔賽與全國總決賽兩個階段,比賽在2021年8月份中下旬舉行,本屆有五個分賽區(東北、華北、華東、華南、西部)和三個省賽區(安徽、山東、浙江),全國總決賽定于哈爾濱工程大學舉行.

      該競賽至今已舉辦十五屆,參與學生超過30萬人次,得到了教育部相關領導與各高校師生的高度重視,已發展成全國 30 個省市自治區近 300所高校廣泛參與的全國大學生智能汽車競賽.2008年起被教育部批準列入國家教學質量與教學改革工程資助項目中科技人文競賽之一(教高函[2007]30號文).

      1.2 第十六屆全國大學生智能汽車大賽競速組比賽規則介紹

      本屆大賽競賽秘書處制定的規則適用于各分/省賽區比賽以及全國總決賽,在實際可操作性基礎上保證競賽的公開、公平與公正,為了兼顧現在比賽規模的要求,同時避免同組別內出現克隆車的情況,能夠便于參賽學校在有限的場地內使用兼容的賽道完成比賽準備,競速比賽由八個組別設置,包括基礎四輪組、節能信標組、電磁越野組、雙車接力組、全向行進組、單車拉力組、專科基礎組、智能視覺組.

      本屆大賽要求全向行進組使用H車模,制作完畢后,車模長寬不超過30厘米,高度不超過30厘米.車模微控制器使用WCH系列單片機,允許使用各類電磁、紅外光電、攝像頭、激光、超聲傳感器器件進行賽道和環境檢測.參賽選手制作的車模完成后從車庫觸發計時器在PVC賽道上通過賽道兩邊的黑色邊線和電磁導引運行兩圈然后再返回車庫.車模需分別通過三岔路口兩條岔路,每經過三岔路口車模需改變一次行進姿態

      基于RT-Thread開發智能視覺組智能車-樂山師范學院

      1.3章節安排

      技術報告的章節安排如下:

      第 1 章 引言,大賽介紹和規則介紹及章節安排;

      第 2 章 車模設計方案說明

      第 3 章 智能車機械調整,主要介紹對小車的機械結構的改裝及一些模塊的安裝方法;

      第 4 章 介紹智能車硬件系統設計,主要介紹智能車硬系統的設計思想、設計過程和設計結果;

      第 5 章 智能車軟件系統設計,主要介紹智能車軟件系統的理論分析、控制器設計過程和調試;

      第 6 章 總結;

      本章主要介紹我們全向行進組使用的H車模設計及要求及設計思路,后面章節將按機械、硬件以及軟件三個部分詳細說明.

      本次競賽,全向行進組使用的H車模帶有四個麥克納姆輪,麥克納姆輪是一種可全方位移動的全向輪,簡稱麥輪,由輪轂和圍繞輪轂的輥子組成,麥輪輥子軸線和輪轂軸線夾角成45?.在輪轂的輪緣上斜向分布著許多小輪子,即輥子,故輪子可以橫向滑移.輥子是一種沒有動力的小滾子,小滾子的母線很特殊,當輪子繞著固定的輪心軸轉動時,各個小滾子的包絡線為圓柱面,所以該輪能夠連續的向前滾動.采用該麥輪的H型車模可以全方位移動,任意變形,這是全向行進組的一大特點.

      根據第16屆全國大學生智能汽車競賽相關規定,全向行進組使用H型車模,經過比較,我們選用以下電子元器件:

      1. 微控制器:

      WCH限定使用RISC-V架構芯片:CH32V103,32 位 RISC 處理器 RISC-V3A 基于 RISC-V 開源指令集設計,其系統架構實現了硬件平臺的低成本、 低功耗及功能應用的最佳平衡。 CH32V1 系列通用微控制器以此處理器為核心,掛載了豐富的外設接口和功能模塊,包括時鐘安 全機制、多級電源管理、通用 DMA 控制器、多通道 12 位 ADC 轉換模塊、多通道觸摸按鍵電容檢測(TKey)、 高級和通用定時器、USB2.0 主機控制器和設備控制器、多路 I2C/USART/SPI 接口等如圖2.1,我們選用該系列性能優越的R8T6型號單片機來做智能車模的微控制器;

      2.傳感器選擇:

      ①總鉆風MT9V032攝像頭:總鉆風攝像頭是一款基于MT9V032芯片設計的傳感器模塊,是逐飛科技獨家研發的一款高性能,在智能車競賽市面上性能最優,最適合高速情況下的圖像采集的全局快門攝像頭.

      ②MPU6050:該陀螺儀是世界上第一個集成的六軸運動處理模塊,與多元器件方案相比,mpu-6050消除了組合陀螺儀與加速器時間軸的差異問題,減少了大量的封裝空間.

      ③逐飛角度編碼器:該傳感器的主要優點為無觸點、無噪聲、高靈敏度、高重復性、接近無限轉動壽命以及高頻響應特性好;

      3.伺服電機采用S3010舵機控制攝像頭轉向.

      競賽智能車中,除單片機最小系統的核心子板、加速度計和陀螺儀集成電路板、攝像頭、舵機自身內置電路外,還需自制pcb板,主板和兩個驅動板如下圖

      智能車機械部分設計主要包括制作和調整兩部分內容,制作部分的內容主要是對車模沒有的部分進行設計,包括傳感器支架、電路板固定、防撞、編碼器安裝等.調整部分則主要是針對智能車車模本身已經有的機械部分,在規則允許范圍內進行調整,改裝,提高其運動性能,以適應高速行駛和快速控制,這部分主要包括舵機改裝、避震調整、四輪定位等.本章內容主要對傳感器支架、電路板固定部分進行介紹.

      3.1 機械結構制作部分設計

      由于大賽提供車模本身是運動型模型車通用車模,并沒有提供專門為智能車安裝電路、傳感器等電路部分的部件,因此這部分機械結構需要自行設計制作并安裝.制作部分主要原則為:牢固、簡單.但由于我們的是H車模,機械結構并不需要改變過大,我們采用熱熔槍固定驅動板,通過打孔和螺絲固定主板、舵機以及攝像頭支架.

      3.2 攝像頭的選型和架設

      攝像頭分為兩種,數字的和模擬的,我們選擇了數字攝像頭MT9V032,能夠將圖像灰度值以數組的形式傳輸給單片機,傳輸回來的還有行場中斷信號.攝像頭分為 CMOS 和 CCD 兩類,也分數字和模擬的攝像頭.

      數字攝像頭和模擬攝像頭性能差別不大,數字攝像頭電路更為簡單,只需要直接將信號接入單片機的 IO 口,而模擬攝像頭需要使用芯片(LM1881 等)進行視頻信號同步分離.對于攝像頭的選擇,主要考慮以下幾個參數:1 芯片大小 2 自動增益 3 分辨率 4 最小照度 5 信噪比 6 標準功率 7 掃描方式

      我們最終選定了使用總鉆風攝像頭,相比其他攝像頭,這款攝像頭圖像和動態性能不差,由于自己設計電路,可以把攝像頭尺寸和重量盡可能的做小做輕. 攝像頭選擇碳纖維桿,通過熱熔膠制作固定.安裝好的攝像頭最遠掃描行 2.1 米.攝像頭的假設高度大致為20cm,這樣在兼顧遠端的同時不丟失近端,同時使近端掃描行寬度足夠.便于處理今年新增加的特殊元素.

      3.3 攝像頭信息參數

      1) 攝像頭掃描行的選擇 最遠端掃描行距離:2.1米左右;最近段掃描行距離:車前 10cm 左右 ;主控制行位置:車前1.2米范圍 ;這樣選擇主要考慮到:首先要能看較遠,這樣可以對賽道和特殊元素做出預判;不能太遠,因為太遠之后,遠端信息可靠性極差,正確賽道提取并不容易,同時還會受到三岔、坡道等特殊狀況的干擾;近處行需要可靠有效,作為遠處行信息的基礎;控制行40cm足夠.

      2) 分辨率MT9V032的分辨率理論可以達到 752x480,但如果所有點都提取出來,將占用巨大的數據空間,處理速度也會減慢.而我們在車輛控制上所需要的分辨率并沒有這么高,最終我們有針對性的挑選出部分掃描行和部分像素點.最終分辨率大概近似為 120x65.這樣既保證了數據量不要過大又能保證掃描行間距足夠采集到賽道左右黑色邊界.

      3.4編碼器的選擇和安裝

      全向車模均采用360角度編碼器來測量車輪的轉速.

      3.5 智能車主要技術參數

      智能車主要技術參數包括物理尺寸、電路指標等,具體參數見表 3.5

      【表3-5 智能車主要參數】

      注①:由于設計報告書寫期間智能車仍然在進行改進,因此有些數據未能更新.之后的內容中涉及到的參數、程序、圖片也有類似情況,不做逐一說明.

      智能車電路部分主要的模塊包括:單片機最小系統、電源模塊、傳感器模塊、驅動模塊.各模塊的總體設計原則是:緊湊、易于拆換、穩定可靠.但根據各模塊的不同,又有不同的設計要求.單片機最小系統采用了沁恒微電子股份有限公司的CH32V103R8T6的核心板.

      4.1 電源模塊設計

      電源的首要指標是可靠性,整個硬件系統的工作完全由電源供電的可靠性決定,電源供電不穩定會引起電池損耗、單片機復位、舵機及傳感器損毀等嚴重問題,因此電源的設計是最重要的硬件電路設計部分之一.

      電源設計中主要考慮到需要的電壓和電流,另外還增加了電池電壓顯示,便于觀察電池電量.如圖 4.1 所示,智能車需要的電源要求包括3.3V,5V,6V,7.2V等.圖4.1電源分配示意圖

      根據規劃,5V 供電我們選擇了TPS7350,比起 7805,2940 的優點是低壓差穩壓,它的穩壓壓差可以小于 500mV,這樣保證電池在低電壓的情況下,仍能使單片機和傳感器正常工作,設計原理圖如圖 4.1.1 所示.

      3.3V供電我們使用TPS7333芯片作為穩壓芯片.其電路原理是該芯片簡單的電路.其原理圖如 4.1.2

      其中,為了不互相干擾工作,單片機 5V 和傳感器的 5V 分開單獨供電,單點共地.為了消除紋波,需要在電源輸出位置加入電容進行濾波,減少紋波對元件的影響,提高供電穩定性.驅動電機供電選擇電池直接供電.最終電源模塊電路板尺寸:全向:140mm * 65mm

      4.2 傳感器電路設計與實現

      本設計中,傳感器分為兩部分:巡線傳感器(攝像頭)、速度傳感器(編碼器)姿態傳感器(MPU6050).

      4.2.1 巡線感器電路設計

      用MT9V032 攝像頭作為主要的巡線傳感器,這部分也是硬件電路設計的主要模塊,是用來控制程序的基礎.在設計時,要充分考慮到賽道情況,包括賽題中的各種特殊賽道類型,要盡可能通過硬件保證檢測的有效性和可靠性.另外考慮到攝像頭架設偏低,因此要盡可能的制作的輕巧.特別的,本屆比賽賽題加入出庫入庫,這樣就需要攝像頭的遠端圖像足夠清晰可靠,從而提前識別入庫的條件.

      4.2.2 速度傳感器電路設計

      對于速度傳感器,我們采用的是逐飛角度編碼器,它是6線設計,通過硬件SPI進行通訊.

      4.2.3 姿態傳感器電路設計

      姿態傳感器我們采用的是MPU6050,并將該傳感器放置在車模中央以便于更好的采集車身的當前姿態數據.

      4.3 驅動電路設計

      驅動電路為智能車驅動電機提供控制和驅動,這部分電路的設計要求以能夠通過大電流為主要指標.驅動電路的基本原理是 H 橋驅動原理,目前流行的H 橋驅動電路有: H 橋集成電路,如 MC33886;集成半橋電路,如 BTS7960 等;MOS 管搭建的 H 橋電路.

      MC33886 的優點是電路簡單,外圍元件少,但缺點是內阻較大,通過電流有限,可以通過兩片 MC33886 并聯方式進行改善.MOS 管搭建的 H 橋電路可以通過較大電流,但由于每個 MOS 管體積較大,因此電路板面積較大,另外,MOS 管 H 橋電路可能會發生脈沖上升沿下降沿由于不夠陡峭而帶來的瞬間短路、功率過高等問題.

      而DRV8701E單雙電機MOS管無需升壓到12V,大大簡化了驅動芯片電源部分,且其驅動信號接口由HIP4082驅動方案的兩路PWM控制一個電機正反轉的方式,更新為1路PWM信號控制轉速,1路高低電平信號即可控制電機正反轉,可節約1路PWM引腳資源,用普通IO即可控制電機轉動方向且其外形較小為安裝車模節省空間,板載電源指示燈及使能指示燈方便觀察硬件工作狀態.

      由上比較,為節約單片機pwm資源,最終我們選擇了具有免升壓設計的簡化控制邏輯的DRV8701E單雙電機MOS管作為本車模的驅動.

      本章介紹基于RT-Thread操作系統的軟件框架搭建及小車控制算法實現

      5.1 基于RT-Thread操作系統的軟件框架搭建

      在本次的智能車程序中采用了RT-Thread操作系統來進行一個總體的控制。

      RT-Thread 內核的第一個版本是熊譜翔先生在 2006 年年初發布的 0.1 版本。因為 RTOS 中的任務更類似于通用操作系統中的線程,并且這個系統支持基于優先級的搶占式任務調度算法,調度器的時間復雜度是 O(1),所以把它命名為 RT-Thread,即實時線程。

      經過14年的發展,RT-Thread 被廣泛應用于智能家居、智慧城市、安防、工控、穿戴等眾多行業領域,累計裝機量超過6億臺,GitHub 的 Star 數量超過 5.3k,嵌入式開源社區活躍度行業第一。

      隨著 MCU 硬件性能的提升、外設的增加以及軟件功能需求的增加,越來越多項目采用 RTOS 的開發方式。一方面裸機開發方式的軟件框架不清晰,對后續擴展功能極其不利;另一方面,由于軟件復雜性的增加,裸機開發對工程師的要求越來越嚴苛,過多使用中斷等因素,都會增加系統的不可靠性。

      今年的競賽引入了RT-Thread作為贊助商,鼓勵大家采用RTOS的思想來進行嵌入式開發,因此在本次的智能車競賽中,我們既要使用RT-Thread操作系統來滿足競賽的任務需求,也要使用RT-Thread操作系統進行框架實現和算法實現。

      首先是智能車競賽的任務需求,根據我們的方案,需要滿足以下幾個需求:攝像頭數據采集、360°角度傳感器數據采集、陀螺儀數據采集、電機PID控制、圖像數據處理、人機交互等,這些任務在傳統的裸機開發中,大體都放在兩個地方,一個是周期中斷內,一個是主循環內,而且所有任務是串行起來工作的,這樣就導致了所有的任務邏輯會相互影響,軟件的并發效率變的很差,從而影響了多任務程序執行的實時性。因此我們引入了RT-Thread操作系統,引入RT-Thread操作系統的第一步就是RT-Thread操作系統的移植。

      關于RT-Thread操作系統的移植:

      我們可以直接從逐飛的碼云開源庫中找到RT-Thread操作系統的NANO版

      的庫,下面是移植RT-Thread操作系統的一些注意事項:

      1. 添加RT-Thread操作系統的庫,將匯編路徑和C文件路徑都添加到工程內

      2. 然后就是修改啟動匯編,將啟動匯編中最后的跳轉到MAIN函數運行的代碼改成跳轉到RT-Thread操作系統的啟動函數。

      3. 修改滴答定時器,因為滴答定時器是單片機的最高優先級的定時器,如果不修改定時器的延時函數,那么系統也無法正常運行。

      4. 修改board文件,讓用戶可以通過finsh軟件對RT-Thread操作系統進行實時調試。

      T-Thread有完整版和NANO版,對于資源受限的微控制器(MCU)系統,可通過簡單易用的工具,裁剪出僅需要 3KB Flash、1.2KB RAM 內存資源的 NANO內核版本。在本次的智能車競賽中,由于CH32V103R8T6芯片的資源有些不足,因此采用的是RT-Thread操作系統的NANO版。

      RTOS的嵌入式開發的優點:

      1. 實時性:RT-Thread本身就是一款實時的操作系統,對各個線程可以設置不同的優先級,重要的線程可以設為高優先級,不重要的線程可以降低優先級,做好全局的統籌規劃后,這樣整個軟件各個任務的實時性都能得到保證。

      2. 可重用性:RT-Thread操作系統提供了統一的抽象接口層,方便可重用組件的積累,提高開發效率。比如:信號量、事件通知、郵箱、環形緩沖區、單向鏈表/雙向鏈表等等,這些功能拿來即用。

      3. 軟件生態:RT-Thread擁有豐富的生態,這種生態給開發者帶來的事量變到質變的開發體驗,以前的裸機開發是自己玩,現在借助操作系統,變成了大家一起玩。使用操作系統所帶來的軟件可模塊化、重用性的提升,也使得我們自己在做軟件開發時,可以封裝一套基于操作系統、適合嵌入式的可重用組件,這些組件不僅可以用在自己的項目中,還能開源出來分享給更多有需要的嵌入式開發者,把軟件的價值最大化。

      RT-Thread操作系統相對于傳統裸機編程的優點:

      1. 多線程處理:在裸機編程中,我們基本上都是從main主函數從頭執行到尾,中間加個主循環以達到讓程序循環執行的效果,雖然單片機可以通過定時中斷的方式去執行其他的程序,但主要的依舊是在執行主函數中的程序,進而導致單片機可能一直執行同樣的語句從而浪費單片機的效率,對單片機的利用率也因此下降。在使用了RT-Thread操作系統之后,單片機可以進行多線程的處理,這里的多線程并不是幾個主函數同時處理,而是通過線程優先級或者時間片來控制線程的執行時間,當高優先級的線程空閑時則可以讓單片機去執行低優先級的線程,而不是一直原地等待,從而提高單片機的資源利用率。

      2. 對各類單片機的兼容性:今年因為使用的單片機型號較多,也有一些從未接觸過的單片機型號,如果不使用RT-Thread操作系統,那么將從頭開始學習使用一款新的單片機,這肯定會花費我們大量的時間和精力。由于RT-Thread操作系統的易移植性以及小體積,只要將RT-Thread操作系統移植到新的單片機上,我們在RT-Thread操作系統上編寫的所有程序幾乎不用做任何需要適配當前單片機的修改。

      3. 定時線程:由于CH32V103R8T6芯片的硬件定時器資源不足,只有四個定時器可作為通用定時器使用,因此如果進行裸機編程,這是不可避免的硬傷,甚至需要使用多個芯片才能滿足需求。而在使用RT-Thread操作系統后,我們可以直接創建定時線程,它與普通的線程的不同之處就在于會定時運行,相當于芯片的硬件定時器,而且在RT-Thread操作系統中,我們可以創建無數個這樣的定時線程,極大的滿足了我們的需求。

      4. 傳遞數據:在傳統的裸機編程中,如果我們需要將這個函數處理出來的數據傳遞到另外一個不相關的函數,那么我們肯定需要通過全局變量或者數組來實現,而聲明全局變量會的削弱單片機的RAM空間,導致單片機運行效率下降,尤其是對于CH32V103R8T6這種本身資源就不足的單片機。而在RT-Thread操作系統中,我們可以通過郵件,信號量等方式進行數據傳遞,這種的數據傳遞幾乎不會占用單片機的RAM空間,傳遞完成后單片機的RAM空間就會得到釋放,從而提高單片機的運行效率。

      5. 上位機調試:單片機是否可以通過上位機或者軟件直接進行在線調試是一個極其重要的點,它關乎著我們寫程序的效率。CH32V103R8T6這款芯片所使用的軟件MounRiver Studio支持調試,但不是在線調試,需要將單片機運行的程序暫停才可觀察數據。而在RT-Thread操作系統中,我們可以直接使用上位機軟件Finsh來對單片機進行在線調試,甚至直接觀察單片機中各個進程在運行時對于單片機的RAM占用量,這對于我們智能車的程序設計有著極大的幫助。

      5.2 小車控制算法實現

      整個系統有兩部分,速度和方向.這些都是通過控制車模四個車輪驅動電機完成的,轉向控制需要電機之間相互協同配合的.控制轉向是不僅需要前輪電機差值,還需控制后輪電機的差值,才能更好的轉向,為了使電路板緊湊,較少車重,系統板僅對所用到的必要引腳引出,適當留有備用端口,其中包括電機接口、攝像頭接口,屏幕接口,編碼器接口,無線串口接口等.主要端口作用規劃見圖5.1

      5.2.1 路徑識別部分

      路徑識別傳感器我們選擇的是 MT9V032數字攝像頭,高效的軟件程序是智能車高速平穩自動尋線的基礎,圖像采集及校正處理就成了整個軟件的核心內容.在智能車的轉向和速度控制方面,我們使用了魯棒性很好的經典 PID 控制算法,配合使用理論計算和實際參數補償的辦法,使智能車能夠穩定快速尋線.

      5.2.2原始圖像的采集

      MT9V034攝像頭是一款數字灰度攝像頭,在采集圖像方面已經能夠非常的穩定,對于賽道的圖像信息采用了二維數組來存儲賽道信息,圖像的灰度值是從0-255,顏色偏向于白色,灰度值便會越大,顏色偏向于黑色,灰度值便會越小,我們攝像頭的高度為十八厘米,圖像所看到的畸變會略大,但由于攝像頭的數據能夠很好的反映賽道信息,因此我們未對畸變未處理,因為賽場上的光線不均勻問題,攝像頭采用了加增偏光鏡使圖像的對比度更加明顯,圖5.2為攝像頭所采出來的原圖

      5.2.3循跡處理

      在基本圖像處理完成后,就要從圖像中提取出有效的賽道信息,也就是賽道邊緣.循跡算法思路如下:

      1) 對圖像的每一列的灰度值進行運算,從而能夠找出賽道的最合適的列

      2) 對于最合適列的左右對于每一行來收集圖像的灰度值差值并且得到賽道的左右邊界線

      3) 對于十字,由于雙側賽道邊沿的丟失,確定找點的初始位置,選擇由中間向兩邊找的方式找的路徑,同時根據矯正圖像濾除十字拐角線,從而順利連線;

      4) 對于圓環,能夠找到圓環的一邊邊界的列數會有較大的差異,從而補線讓其進入圓環內

      5) 對于坡道,分成兩端來判斷,遠端的右邊線與左邊線的差之和大于近端的右邊線與左邊線的差之和,便會識別坡道,坡道會采用減速,并將中線算出來的小車轉角除以一個值

      6) 對于三岔路口,它與坡道相似,但中心會有明顯的拐角,因此可以直接區分三岔和坡道的識別。

      7) 出庫時,用來判斷賽道的長度來控制直行與轉向

      8) 入庫時,檢測到起跑線后直行一定距離后轉向入庫

      9) 中心引導線,是從視野了兩邊往中間掃描,判斷中心引導線并控制小車方向,讓小車小車沿引導線行駛.

      5.2.4 速度控制部分

      速度控制并不像方向控制那樣精確,只要在短時間內達到目標速度即可,而誤差是允許的,因為作為智能車這個慣性系統來說,速度不會徒增驟減(與控制周期比較),因此我們使用了P 控制,經過調試,選擇合適的P 系數后,加速可以很快也不會過沖,控制效果很好,如圖5.3

      5.2.5 方向控制的理論分析

      在工程實際中,應用最為廣泛的調節器控制規律為比例、積分、微分控制,簡稱PID控制,又稱PID調節.PID控制器問世至今已有近70年歷史,它以其結構簡單、穩定性好、工作可靠、調整方便而成為工業控制的主要技術之一.當被控對象的結構和參數不能完全掌握,或得不到精確的數學模型時,控制理論的其它技術難以采用時,系統控制器的結構和參數必須依靠經驗和現場調試來確定,這時應用PID控制技術最為方便.即當我們不完全了解一個系統和被控對象,或不能通過有效的測量手段來獲得系統參數時,最適合用PID控制技術.PID控制,實際中也有PI和PD控制.

      PID控制器是一種線性控制器,它根據給定值與實際輸出值構成控制偏差.將偏差的比例§、積分(I)和微分(D)通過線性組合構成控制量,對被控對象進行控制,故稱PID控制器,原理框圖如圖5.3.1所示.

      在計算機控制系統中,使用的是數字PID控制器,控制規律為:

      e ( k ) = r ( k ) ? c ( k ) e\left( k \right) = r\left( k \right) - c\left( k \right) e(k)=r(k)?c(k)

      u ( k ) = K p { e ( k ) + T T I ∑ j = 0 k e ( j ) + T D T [ e ( k ) ? e ( k ? 1 ) ] } u\left( k \right) = K_p \left\{ {e\left( k \right) + {T \over {T_I^{} }}\sum\limits_{j = 0}^k {e\left( j \right)} + {{T_D } \over T}\left[ {e\left( k \right) - e\left( {k - 1} \right)} \right]} \right\} u(k)=Kp {e(k)+TI T j=0∑k e(j)+TTD [e(k)?e(k?1)]}

      簡單說來,PID控制器各校正環節的作用如下:

      比例環節:及時成比例地反映控制系統的偏差信號,偏差一旦產生,控制器立即產生控制作用,以減少偏差.

      積分環節:主要用于消除靜差,提高系統的無差度.積分作用的強弱取決于積分時間常數,越大,積分作用越弱,反之則越強.

      微分環節:能反映偏差信號的變化趨勢(變化速率),并能在該偏差信號變得太大之前,在系統中引入一個有效的早期修正信號,從而加快系統的動作速度,減小調節時間.

      數字PID控制算法通常分為位置式PID控制算法和增量式PID控制算法.

      位置式PID

      位置式PID中,由于計算機輸出的u (k) 直接去控制執行機構(如閥門),u(k)的 值和執行機構的位置(如閥門開度)是一一對應的,所以通常稱公式2為位置式PID控制算法.

      位置式PID控制算法的缺點是:由于全量輸出,所以每次輸出均與過去的狀態有關,計算時要對過去e(k)進行累加,計算機工作量大;而且因為計算機輸出的u(k)對應的是執行機構的實際位置,如計算機出現故障,u(k)的大幅度變化,會引起執行機構位置的大幅度變化,這種情況往往是生產實踐中不允許的,在某些場合,還可能造成嚴重的生產事故.因而產生了增量式PID 控制的控制算法,所謂增量式PID 是指數字控制器的輸出只是控制量的增量△u(k).

      增量式PID

      當執行機構需要的是控制量的增量(例如:驅動步進電機)時,可由公式2推導出提供增量的PID控制算式.由公式2可以推出公式3,公式2減去公式3可得公式4.

      PID參數整定

      運用PID控制的關鍵是調整KP、KI、KD三個參數,即參數整定.PID參數的整定方法有兩大類:一是理論計算整定法.它主要是依據系統的數學模型,經過理論計算確定控制器參數;二是工程整定方法,它主要依賴工程經驗,直接在控制系統的試驗中進行,且方法簡單、易于掌握,在工程實際中被廣泛采用.由于智能車系統是機電高耦合的分布式系統,并且要考慮賽道的具體環境,要建立精確的智能車運動控制數學模型有一定難度,而且我們對車身機械結構經常進行修正,模型參數變化較為頻繁,理論計算整定法可操作性不強,最終我們采用了工程整定的方法.

      5.3 輔助車模調試程序設計

      輔助調試程序有兩個部分,一是基于鍵盤顯示與按鍵的PID 參數輸入程序,二是基于無線串口模塊的無線通信數據發送理想速度與實際速度,通過查看不同PID參數來查看理想速度與實際速度的關系,調試到最好的參數.

      我們是從大二開始在實驗室中學習c語言,嵌入式的,經過了一年多的時間,我們也學習了很多,成長了很多,今年一年的時間為了這次比賽更是卯足了勁,今年這一年也是記憶深刻的一年,我們學習知識的過程,也是漸漸從一個新手轉變為老手的過程,知識是一點一點獲取的,經驗也是一點一點積累的,這一年里,我們獲得的不僅是知識的增加,也獲得了團隊協作的能力,遇到問題解決的能力,在這期間內,我們有過悲傷,有過開心,有過絕望,但什么都沒有阻止我們奮斗的心,非常感謝這個比賽,才能讓我在學校里面學得很多的知識與經驗。

      大三的下學期我們參加了16屆大學生智能汽車競賽,在西部賽區進行比賽,由于我們使用的RT-Thread操作系統,所以整車做出來之后都是一個極簡的風格

      我們僅用了一個核心板和一個攝像頭就實現了所有的任務需求,比賽之前雖然抱著幾分坎坷的心態,但是在預賽中我們的表現還算是比較突出,小車前五分鐘表現有點差,一直在調試攝像頭參數,還好后面將參數調到了一個比較合適的地步.

      后面我們的車跑起來也讓大家都感到震驚,以第二名的成績完成西部賽的預賽,距離第一名的差距只有0.2秒,也因此我們對第二天的決賽充滿了信心,但是很可惜我們在第二天的決賽中一直沒有完賽,主要問題出在了圖像處理部分,對于當時現場的光線一直都不能調試出一個較為合適的攝像頭參數,當然,也有很大原因是因為我們的圖像處理有些簡單,對于光線不均勻的場地無法達到把邊界完全處理出來,決賽的賽道也比較長,所以到最后也沒能完賽。最終排名出來之后我們因為決賽沒有完賽,即使預賽跑的再好,也依舊被刷下來了,排在了第七。

      這個名次對我來說是不好接受的,對我的車來說也不能接受,所以賽后我們認真的對本次西部賽做了一些反思,首先就是程序方面,側重點放在了車的姿態控制上,對于圖像的處理卻草草了事,導致比賽時對于環境的適應能力偏弱,進而導致特殊元素識別經常誤判遲判;其次是硬件方面,在繪制主板時,沒有合理分配電源,導致主板的穩壓電路經常發熱發燙,同時由于攝像頭數據部分端口走線不夠規范,導致圖像數據容易受到其他干擾;最后是機械方面,四川省省賽時由于嚴重的機械問題導致小車最后只能堪堪緩慢完賽,所以后面對于小車的機械方面,個人認為已經做的很好了,也因此把側重點放在了姿態控制上,在決賽結束后,我們去卓大大那里檢查車模,卓大大也說我們的車做的很漂亮,電機比較溫和并沒有發燙,雖然我們沒能完賽,但面對卓大大的夸獎,內心還是有一絲竊喜的。

      最后就是西部賽的閉幕式,閉幕式結束照例都要拿著車模合照,在這之前都挺冷靜的,認真分析了自己的不足,以后該這么去提高自己,但是再次看到自己做了那么就才做出來的小車之后,心里總有一些說不出的感受想要釋放出來,我認為我的小車不應該止步于西部賽的預賽,它與其他的H車相比,感覺處處都是優點,但是我們確實已經止步于西部賽預賽了,指導老是為我們感到惋惜,我們自己也對本次比賽感到遺憾,但這并不能讓我們因此而放棄,我們將對智能車依舊保持熱情。

      借書寫技術報告的機會向幫助過我們的老師、同學,學校、學院領導以及組委會的老師,表示深深地謝意!更要向隊內的隊友表示深深地感謝,感謝陪伴在一起的日日夜夜!通過參賽,我們學會了很多!

      參考文獻

      關于舉辦第十六屆全國大學生智能汽車競賽的通知.

      第十六屆全國大學智能汽車競賽競速比賽規則.

      華成英, 童詩白. 模擬電子技術基礎. 北京, 高等教育出版社, 2006

      TPS7350 datasheet

      TPS7333 datasheet

      閻石. 數字電子電路基礎. 北京, 高等教育出版社, 2005

      NXP i.MXRT1064DVL6A datasheet

      ● 相關圖表鏈接:

      圖2.1 CH32V103x產品資源分配

      圖2.2 控制主板

      圖2.3 驅動電路板

      圖3.4 編碼器

      表3-5 智能車主要參數

      圖4.1 系統硬件設計框圖

      圖4.1.1 電源原理圖

      圖4.3 電路板正反面

      圖5.1 RT-Thread簡介

      單片機主要輸入輸出端口規劃圖

      圖5.2 未處理的圖像

      圖5.3 速度控制曲線

      圖5.4 PID 控制算法框圖

      硬件開發

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:60道常見的 Kubernetes 面試題總結
      下一篇:【轉載】我們為何要跳槽?
      相關文章
      久久精品国产亚洲AV网站 | 国产大陆亚洲精品国产| 久久亚洲精品成人AV| 亚洲五月综合缴情在线观看| 亚洲人成网站色在线入口| 在线亚洲v日韩v| 亚洲福利视频一区二区| 国产成人亚洲综合a∨| www.亚洲精品| 亚洲婷婷国产精品电影人久久| 亚洲AV无码乱码精品国产| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲国产精品成人网址天堂| 亚洲a∨无码精品色午夜| 国产精品亚洲综合网站| 亚洲AV无码乱码在线观看性色扶 | 亚洲一区二区三区高清| 亚洲AV美女一区二区三区| 久久亚洲伊人中字综合精品| 久久精品亚洲中文字幕无码网站| 亚洲AV无码精品无码麻豆| 亚洲AV本道一区二区三区四区 | 亚洲乱色伦图片区小说| 国产精品观看在线亚洲人成网| 亚洲国产精品尤物yw在线| 亚洲一区视频在线播放| 亚洲综合无码精品一区二区三区 | 亚洲乱码一区二区三区在线观看| 日本亚洲成高清一区二区三区| 久久精品国产亚洲av麻豆| 亚洲色图视频在线观看| 亚洲毛片基地4455ww| 亚洲欧美国产国产综合一区| 国产成人亚洲午夜电影| 国产亚洲人成A在线V网站| 亚洲AV无码日韩AV无码导航| 亚洲福利视频网站| 亚洲一区AV无码少妇电影| 国产亚洲精品美女2020久久| 亚洲宅男天堂在线观看无病毒| 亚洲AV日韩AV永久无码下载|