十四届全国大学生“恩智浦”杯智能汽车竞赛信标组总结(1)
前言
在2019年參加的智能汽車競賽信標組,代表江南大學前往東南大學參賽,勉強拿了個18名無緣前16的對抗賽,不過倒是剛剛好把東南大學的信標組給壓在后面,算是給學校爭了一點光吧。獲獎證書在下
接下來主要介紹關于信標組智能車的制作流程以及要點
一.基本要點
不知道是不是沒做陽光算法以及對抗程序的緣故,總感覺信標組比較簡單,沒花多少時間就拿了獎。我主攻電控,主要從這方面開始講解。
一開始參加的時候我和隊友都是小白,機械組成員還只會擰螺絲,我雖會C語言,但還沒真正下過程序到板子上。在寒假,機械組順便把AD學了,畫出第一版主板和驅動板(這里自然要參考往屆學長的板子,可惜學校是第一次信標組,沒有往屆程序可以參考)
然后我便開始了寫程序,做電控,最有效的方法當然是就著實物寫了。主要寫寫各模塊的操作代碼,跑馬燈就不談了,從OLED顯示屏開始,到433無線模塊,龍丘編碼器和神眼攝像頭(這里都是從往屆程序刪刪改改開始的,一開始看不懂,后來看著看著就懂了)。接下來便是操縱電機轉動輪子了,先從輸出pwm原理開始,了解各寄存器作用(這個看看就好),寫出封裝函數,即輸入一個占空比自動換算成當應頻率下的比較值。
然后便開始信標至為重要的運動學分析(很多人都覺得麥克納姆輪全向移動很神奇,其實也還好),此處主要參考這篇文章
麥克納姆輪介紹
如果數學不好的話,可以用簡單粗暴的方法,將車放在地上,要前行的話就往前推,可以看到四個輪子同時向前轉,那么放在控制程序里就是給4個電機相同正值pwm(不同值就是差速走歪了),而橫行亦然,對角兩個輪子轉向相同,兩個對角轉向相反(具體我記不清了,放地上一推便知)這樣就知道了前行后退,橫向移動的控制方法。
至于原地旋轉同理放在地上手動旋轉可以得出,右側兩個輪子正轉,左側反轉即逆時針旋轉,反之,則為順時針旋轉。
那么,若是想要任意移動的話怎么辦呢?
考慮速度分解
圖中一個斜向的速度可以轉化為一個前向的y方向速度和一個橫向的x方向速度,按照前述所說的運動學分析y向速度可轉化為給4個電機4個正pwm,橫向移動就是對角給相反的pwm,將二者疊加即能得到使小車斜向的4個電機pwm值,而旋轉運動也可以轉化為兩側相反的pwm值,將三者疊加就可以得到最終給電機的pwm值。
此文到此結束,后面將會介紹PID控制方法以及信標燈識別
總結
以上是生活随笔為你收集整理的十四届全国大学生“恩智浦”杯智能汽车竞赛信标组总结(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scala下载与安装
- 下一篇: SVG在线编辑器