??此篇博文并非技術分享,而是記一次艱難的比賽經歷,可能也是大學接近尾聲時最難忘的一次比賽,
??4月12日,已經深夜,快要堅持不下去了,已經連續通宵了三天,身體出現了明顯的不良狀況,但距離工訓賽省賽目前還有四天,
??為什么時間這么緊張,需要通宵除錯?因為我們頻繁地更改方案,缺乏比賽經驗,每個方案都在不停地試錯,最終改回了之前的校賽方案,但是,再也回不去了……
??工訓賽從去年的12月份開始討論方案,中間長時間在放假,專案進度停滯,新學期開學就瘋狂趕進度,但是每天進展依舊緩慢,當其他組的小車跑得飛快時,我們還在緩慢循跡,但最侄訓是在校賽前一天除錯完畢,完成了整個功能,校賽的大佬較多,我們的實力是靠后的,大多使用步進電機,我們既沒有使用步進電機,連直流電機都沒上編碼器,更沒調PID,包括驅動都是非常規的串口驅動,循跡用的車頭反向,所以車身跑起來一抖一抖的,所有的特點綜合起來使得我們的機器人處于一種極端的劣勢:走得丑,放不準,在校賽十支隊伍里面,應該是處于第八位或者第九位,
??比完校賽,我們的機器人只抓取了三個物料放在粗加工區,由于四周有擋板的緣故,機械臂將車身掀起,導致機器人并未跑完全程,四個人都極其沮喪,準備收拾行李離開賽場,校賽10進3,肯定進不了,但事實是,第二天出成績,比第四名多了零點幾分,剛好卡線過校賽,
??4月17號省賽,在此之前我們先換成了步進電機的方案,步進電機確實很穩,能及時剎車,能給機器人增加配重,重心較低,但可能是我們使用不當,步進電機的驅動DRV8825發熱嚴重,使用時間過長時電機一段時間不運轉,驅動失效,甚至有時會損壞單片機(一塊單片機的channel引腳被損壞),之后換成了倍訓的步進電機驅動器模塊,貼在步進電機上,節省空間,但琢磨了一下午,它并未如期轉動,起初由于是電機的線序問題,但找了很長時間沒有解決問題,無奈退貨,最終選用TB6600電機驅動,基本不發熱,驅動電流較大,但體積大,不好安裝,多虧鬼才隊友將驅動懸掛式安裝,才塞在機器人的肚子中,可以說淘寶上的步進電機驅動被我們試了個遍,財庫血空,
??之前的灰度傳感器也被換成了激光傳感器,以為檢測黑線很準,但事實是比灰度傳感器還垃圾!!!檢測同樣一根黑線,輸出的數值還在跳變,詢問客服后,客服支招說斜著安裝激光,我們試了一下,效果還可以,但另外一個依舊精度不夠,懷疑是一個殘次品,且漫反射激光傳感器相互之間影響較大,我們最終放棄了該傳感器,于是從淘寶購買了單路的,兩路的灰度傳感器,使用光敏巡線,效果還不錯,由于沒有安裝位置,此種方案待定,在此我沒有使用一個同學推薦的線性CCD,因為CCD安裝位置較高,主要是看得遠,能檢測前方黑線的變化并做出及時的反應,用于尋直線有點大材小用了,并且CCD價格較為昂貴,
??小車組裝完畢后,開始跑軌跡,但步進電機的小車巡線并沒有我們想象中的那么好,起初以為步進電機可以走直線,不會偏移,事實證明步進電機確實偏離較少,但是巡線回呼的力度比不上直流電機,導致有時偏移黑線太多而偏離路線,步進電機啟動時加速度不能過大,必須采用S型加速或者梯形加速,否則會造成失步,甚至無法啟動,同時也不能實作立即反向,只能先減速停止再加速反向,步進電機的速度不能過快,跑不過直流電機,驅動有時也會偶爾出現問題,
??前后折磨了十天左右,看到步進電機巡線并沒有直流電機效果好(其實步進電機巡線反而更偏,不循線應該是最佳選擇),最終在7號凌晨一點,我們毅然決定換回校賽的方案:直流電機,這也意味著,我們十天改成步進電機方案的努力,全部泡湯,
??大概在八號左右,換回了以前的校賽方案,重新拆裝,花了幾個小時,直接用校賽的工程代碼,可能是還原不出以前的小車的,于是我又花了一個通宵除錯完代碼,此時只是想單純還原最初的方案,未使用編碼器,最終在早晨7點,機器人可以跑完全程,雖然車身較歪且有點抖,但是基本是最初的效果,甚至比校賽的小車更快,
??由于需要改進,之后小車又重新拆裝,換了亞克力板,我不太想使用非常規的串口驅動,總是需要考慮許多問題,比如波特率較低時,串口給驅動模塊發送的訊息會不會被定時器中斷或者外部中斷給打斷,造成資料丟失,電機不轉的現象(因為之前遇到過,小車直接停止運動),干脆之間換成TB6612,使用PWM波驅動,就不需要考慮諸多問題了,但是這也意味著,底層的驅動代碼全部需要重寫,之后花了幾個小時左右寫完底層驅動,
??驅動模塊是在淘寶上購買的一塊電路板,上面集成了兩塊TB6612芯片,還有一個撥動開關,晚上九點左右,另外一個隊友除錯PID時,不小心將這塊驅動板和單片機放在一起,引腳相互接觸造成短路,兩塊板子全廢,進度又變成負數,信心打擊巨大,還好有備用的TB6612芯片,連夜焊接,大概在凌晨一點,又開始重新調PID,調完一個電機后,效果還不錯,回應時間較短,但我們此時并未測驗剩下的三個電機,直接裝車,凌晨三點左右,裝車完畢,接著除錯四個電機的PID,開始出現玄學,車子的軌跡越來越離譜,有時出現單個輪子很長時間不動的現象,我們知道是Kp值太小了,參考了平衡小車之家的PID引數,以及看了許多文章,也都沒調好,前后花了大概一天一夜,但時間不多了,我們決定放棄PID調參,直接讓小車下地,手動增減引數,后來考慮到四個電機的引數應該不同,所以我們每一個輪子都設定不同PID引數,后面效果好了一點點,我們就不愿過多花時間在調參上面了,也參考了上一屆工訓賽同樣調PID的文章: PID:從入門到放棄
??使用陀螺儀MPU6050,可以知道車身的偏角以及加速度,這里我們只使用了z軸的旋轉角,利用陀螺儀尋找方向是一個不錯的選擇,采集的資料經過卡爾曼濾波發送給單片機,起初效果較好,后來陀螺儀的資料完全離譜,以為是陀螺儀本身的零飄或者受到磁場的干擾,我們最終認為,這塊MPU6050已經損壞,又重新購買了其他三塊陀螺儀,
??開始利用陀螺儀轉向,我們又遇到了一個新的問題:無法解決轉向角為180°的情況,按常理說陀螺儀可以測360°的任何一個偏角,但我們的陀螺儀超過了180°就會出錯,這個問題我們解決了一個晚上,最終放棄解決,節約時間,為了使用陀螺儀轉向,后面想了一個辦法:每轉向一次,將角度重置為當前的偏角,因為我們測驗發現當前角度與重置角度不超過180°陀螺儀才能正常作業,可實作180°轉向,
??在省賽的前兩天,我們使用了未調好的PID,直接跑車,并且使用差速來回呼車身,此時的效果比之前的反向回呼好得太多,車身不抖,但是因為回呼力度過小有時會巡出線外,又回到了當初步進電機的效果,不過直流電機可以任意加大回呼力度,除錯幾次之后,小車大部分軌跡能正常巡線了,
??此時又出現了一個新的問題,在半成品區后退巡線的時候車尾啟動時永遠會往右偏,我將它稱為玄學問題,并將鍋甩給了PID,解決了一天一夜,最后沒辦法,強行讓車尾左偏,
??因為“玄學問題”,個人差一點直接棄賽,每天都要收拾前一天的“爛攤子”,我們的進度天天是負數,前一天的問題解決不了,于是瘋狂通宵,已經記不清通宵多少次了,大概十幾次應該有,其中有三四天連續通宵,精神狀態不好,整個人處于一種低迷的狀態,吃完飯后不愿意去調車,一個人就去林子里崩潰,壓力很大,每天都會遇到新的問題,除錯不成功,而其他組的小車都跑得很快很準,我們依舊停留在最初的循跡,心理落差較大,也無法直面老師的目光,越來越麻木,只求不輸的太難看就行,除錯不成功,只能硬著頭皮去調了,看了調了幾百遍的代碼就反感,又開始了無休止的通宵除錯…
??4月15日,我們將軌跡跑完,剩下的優化,想嘗試openMV巡線,測量黑線與視野的偏角,但是本質和陀螺儀差不多,本來計劃15日晚上將機械臂除錯完畢,后面的時間全部用于openMV巡線了,單片機的六個串口被我們恰好使用完,已經記不清openMV使用的哪個串口,可能是思路不清晰,通信問題我們解決了很長時間,最終巡線有效果,但是有段時間又不太行了,測量的資料開始不準確,我們并沒有多余的時間解決這個問題,最終放棄了openMV巡線,
??4月16日去比賽場地報道,下午回學校接著除錯,17號開始比賽,
??既然小車可以跑完全程,剩下的就是定位的問題了,之前買的漫反射激光傳感器還沒派上用場,斜著裝了四個激光傳感器用來車頭和車尾定位,想著效果應該會不錯,但16號下午又出現了一個新的問題,同樣的工程代碼,每一次重啟后運行都不一樣,起初以為是硬體問題,可能是線接觸不良,加固一下接線后依舊如此,我們觀察到單片機周圍有一個LED一段時間常亮,一段時間持續閃爍,可能問題與它有關,于是查找原理圖,這個引腳是輸出TB6612的方向信號的,代碼上是隔一段時間就將它輸出為高電平,它沒有上拉和下拉,也不至于持續閃爍,后來改了一下代碼,只輸出一次高電平,小車就能正常行駛了,但第二次重啟,問題復現,懷疑是單片機出現了問題,換了一塊單片機,燒錄同樣的工程代碼,依舊會出現LED持續閃爍的問題,
??另外一個隊友發現,掛在單片機上的ST-LINK在代碼運行時也會持續閃爍,想著會不會與ST-LINK有關,于是將ST-LINK拔下,代碼正常運行,罪魁禍首已找到:正版的ST-LINK,
??浪費一個下午時間解決的問題竟與ST-LINK有關,好在后面激光定位比較準確,效果較好,仿佛看到了希望,每一次機械臂放置的環數也比以前高了許多,我們例外欣喜,進度可以加快了,
??16號晚上11點,開始除錯舵機,
??17號凌晨1點,一個意外出現了,小車啟動后行駛了一段距離不動了,冒出了一股輕煙,我迅速關閉電源,發現單片機上有一顆螺絲,應該時從機械臂上面掉下來的,造成了引腳短路,最可怕的事情發生了,在比賽的前9個小時單片機啥訓,換單片機也不方便,上面有大概60個引腳接著線,其中很大一部分引腳都是焊上去的,為了防止接觸不良,早應該畫個底板將引腳擴展出來,沒辦法只能硬著頭皮上,緊接著開始了時長兩個小時的“心臟移植手術”,四個人緊密配合,不停地警告自己不要慌張,兩個小時后,“手術移植”完畢,換上了新的單片機,凌晨三點,接著除錯機械臂,凌晨四點,除錯完畢,一直到凌晨五點,還在優化軌跡和機械臂,最終在17號比賽之前,把初賽功能全部完成,機器人也會偶爾出現失誤,
??4月17日,體育館比賽場地燈光太亮,導致我們的灰度傳感器一進去就失效,并且攝像頭也無法掃描出物料的顏色,僥幸過了省賽初賽,下午在社區里面效率較低,整個隊伍都比較疲憊,在社區里小車的軌跡都未除錯出來,到了晚上九點左右想直接放棄了,后來就真的放棄了,不再除錯軌跡,機械臂也是定點直接除錯,整個程序不了了之,無法實作決賽的功能,晚上十點半提交作品,第二天決賽,最后隊友也真的提交了,盡管一點都沒除錯出來,自己在旁邊昏昏睡去,
??晚上回酒店,開始后悔,畢竟這是最后一個晚上了,于是打開電腦,開始云調車,另外一個隊友在腦海里云調機械臂的角度,凌晨三點,關閉電腦,至此,不再更改,
??最終結果是好的,但時至今日,我們均未能在賽場上看見我們的機器人跑完全程,只能吐槽主辦方的賽制,選手的綜合實力未能體現出來,賽制區分度太不明顯,一路上我們總是在不斷試錯,頻繁地更換方案,導致進度極其緩慢,歸根究底還是自己考慮問題太復雜,經驗不足,每增加一種新的傳感器就會遇到一種新的“玄學問題”,比賽使人麻木,也讓人崩潰,偷偷放幾張圖:



轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/278421.html
標籤:其他
上一篇:報文如何丟棄 如何處理
