那些花兒 III

2022-08-08 23:51:22 字數 2924 閱讀 1495

那些花兒,好懷念,那些時光,好珍貴。

時間過得是有些快了,上研已經兩個多月了,可是我的心偶爾還是會回到西郵,回到229,回到那個讓我拼命學習的日日夜夜。不禁想起了「飛思卡爾」智慧型車比賽,一段刻苦銘心的經歷,這次比賽可以說是大學生活中讓我成長最快的經歷。此刻兩個隊友的名字對映到了我的腦海,梅仔,肖坤,兩個可愛的隊友,雖然當時鬧過彆扭,有些不愉快,可是「不打不相識啊!」

梅仔,我們的coder,參加過新卓越的培訓,經過老范的指點,程式設計方面經驗豐厚。會使用多種程式語言,從後面利用c#編寫上位機,觀察小車動態採集回來的資料以及動態的調節車子的pid引數,在小車的除錯中,啟到了很大的作用。然而,我們的梅仔,有些執拗和偏執,也正是因為這,我們倆鬧得有些不愉快。接下來,該介紹我們的pcb製作者,肖坤,河南周口籍。這裡我之所以要提到籍貫,是為了說明河南小伙的幾個優點。第一,做事細心,有耐心,會一直做下去;第二,特別能忍耐,並調節我和梅仔之間的關係。可以這樣說,如果沒有他的話,我和梅仔之間必然會鬧掰。第三,性格好,肖坤被他們班的女生叫作「坤姐」。當然,這些都是我後來畢業和他們一起吃飯的時候,聽到的。

合作(cooperation)真的不是那麼容易,在共同完成乙個任務時,各司其責是完全不夠的,我們必須有足夠的交叉,讓我們的思想融匯貫通。最好的方式也是最通常的方式,就是坐在一起討論。我們當時的分工是這樣的,因梅仔對編碼很在行,所以梅仔主要負責k60的編碼工作和除錯小車。肖坤負責除錯雷射感測器、繪製電路板和焊接元器件。尤其是除錯感測器,後來基本上都是他負責,感覺那雷射感測器就只聽他的話似得。雖然我偶爾也動動,但心中總是帶著擔心,深怕手上的靜電把雷射弄壞了。而我呢,兩邊都參加,看程式做演算法,雖然我沒有經過專業的培訓,但是我的邏輯能力還不錯,找錯誤是一把好手。同時,在硬體電路的設計和除錯上,也能幫忙分析,對發現錯誤解決問題,總是屢試不爽。

好啦,現在步入正題,進入問題討論環節。做「飛思卡爾」智慧型車中困擾我很久的兩大問題,在此也不完全能夠提出正解,如果你也對這個問題感興趣,可以發表你的看法。

第乙個問題描述:我們採用的是一對三的方式接收反射回來的雷射訊號,傳送的雷射訊號是經過pwm(180khz)調製的,感測器的布局左邊[9 8 7; 6 5 4; 3 2 1 ],右邊[1 2 3; 4 5 6; 7 8 9 ],最終這些雷射點都是整齊的打在小車前50-60cm的白色kt板上。因為接收管採用了復用方式,為了判斷出來是哪個點對應的雷射照射到黑線上面,我們採用分時的方式,分三次點亮所有雷射。例如第一次點亮左邊[9 6 3]和右邊[3 6 9],第二次點亮左邊[8 5 2]和右邊[2 5 8],第三次點亮左邊[7 4 1]和右邊[1 4 7],這樣就可以採集到所有的點資訊。在這裡,我不去討論感測器的具體布局和前瞻遠近的問題,假設其處於合適的狀態。

我和梅仔的第乙個爭論,取樣頻率問題。梅仔的觀點是,盡可能的使取樣時間短,減小小車狀態調節的時間延遲,縮短調節週期,達到對小車穩定平滑的控制。在增加了取樣頻率後,出現了這樣的現象,雷射的亮度明顯變暗。至於雷射為什麼會變暗,這個不難理解,單個雷射的點亮時間明顯縮短,因而觀察到的結果就是整個雷射的亮度衰減。剛開始調車的時候,效果還不錯,緊接著,出現了一些讓人不可思議的現象,小車在一些平常行走很正常的地方,卻出現了奇怪的行為,如突然左拐或右拐。對此,梅仔剛開始的解釋是雷射沒有對好焦點,然後就讓肖坤去調節。可是後來,怎麼調節都不啟作用,總會有接收不到的點。這個時候,就不得不深入的思考一下了。於是我提出這樣的觀點——如果我們把器件的壽命考慮進去的話,當器件還是新的時候,無論是器件的響應時間還是穩定性,都是處於最佳狀態。剛開始使用這種方式採集資料的時候,發射管的功率和接收管的接收能力都還很不錯,可是使用一段時間後,發射管的發射功率明顯衰減,導致接收管接收誤判,將白板判斷為黑板,從而在小車的控制策略上面就會出現大的誤操作。後來發現,當我們減小小車的前瞻的時,雷射的接收能力明顯增強,這在一定程度上驗證了我的觀點。

我和梅仔的第二個爭論,採集資料的量化問題。梅仔對編碼有相當的經驗,編寫出來的**讓人看了相當舒服,有大家的風範。採集資料後,要找到黑線所在的位置,梅仔所採用的思路是從內側雷射點往外掃瞄,當找到黑線後就停止,然後進行量化。並且,我們的量化方式採用的是倍增點量化(將已知點的中間點也量化),至少初期的時候,我和他都還津津樂道到這個肯定能夠增加控制精度,可是卻為後面的除錯埋下了一大隱患。首先,我們討論一下量化程式,從理論上面來講,這種量化方式是完全沒有問題的,也不會出現什麼弊端。可是在實際的處理問題當中,會出現很多異常的現象,例如,所採集的資料中,多於兩點的資料照射到黑線上,這樣在量化的過程中,就會忽略掉一些點,從而使得系統的穩定性能大大下降。在所有雷射工作正常的情況下,這樣量化有乙個優點,我們可以完全忽略掉賽場外的背景,而不至於受到賽道外界環境的干擾。(ps:官方當時指出,我們不限定賽道外的背景顏色,主要由主辦方來決定,賽前兩個禮拜公布)

對此,我想提出一種量化解決方案,既能夠很好糾正錯誤情況的產生,同時又能夠不受賽道外部背景影響。方案如下:因為目前大部分的晶元都不存在著容量不足的情況,所以我們可以把感測器採集資料可能出現的情況(包括非正常情況,如某個管工作不正常)按照二進位制進行量化,根據實際情況對應量化值,當控制器採集到資料後,通過查表的方式獲取取樣值的量化值。這個方案的要點是怎樣進行量化編碼,量化值如何取,在此不作進一步分析。

再說說倍增點量化,之所以有這樣的考慮,是因為官方規定的黑線寬度是25mm,而我們的雷射點間距小於25mm,所以會出現兩點同時落在黑線上的情況。因此,我們決定將中間的乙個虛點也納入到其中,來增加調節的精細度,使控制精準。後來的實踐證明,這種方式的量化,給系統的穩定性帶來了很大的隱患。因為,穩定狀態極不容易達到或保持,跟隨系統的誤差總是存在,小車一直不停的調節,從而使得車體產生**,執行不穩定。剛開始,我們還沒有意識到這個問題,通過各種濾波函式來處理出現的問題,可是效果都不理想。後來在一次偶然的嘗試過程中,去掉這些虛點,小車的狀態一下子上了乙個檔次,當時真是把我樂壞了。總結一下,出現上述錯誤主要有兩點原因,一是雷射點間距本身就不一致,量化時就存在誤差;二是智慧型小車在執行過程中,允許的誤差越小,小車跑的就越保守,放不開步子。而事實上,小車在道路上跑動的時候是允許有一定的誤差的,只要不超過這個限度,都是合理的。我和梅仔都太過於理想化,忽略了實際情況,才導致後來種種曲折道路。

為青春奮鬥不息,我的戰友,你們現在還好嗎?

寫著寫著,就這麼長了,第二個問題待續。。。

那些花兒 II

大學四年,我幾乎沒有一刻是放鬆的,感覺始終被什麼東西追趕著。我想,應該是心中那顆不服輸的心,應該是對於夢想的追求。讓我記憶深刻的兩個比賽,高教社 的數學建模競賽和 飛思卡爾 智慧型車競賽。數學建模篇 首先說說數學建模吧,我一直特別喜歡數學,喜歡他的唯 一 確定,喜歡他一絲不苟的表達方式,於是很自然的...

那些花兒 I

往事不堪回首,記得剛上大學那會兒,什麼都不懂,當時家裡正是農忙時候,老爸不得空,是姑父陪我去的。來到這邊後,報到 報名 繳費 買生活用品等等,忙的不知道東南西北。不過,當時也沒有覺得什麼,只是22的聽著學姐說到 幹嘛幹嘛。現在想想,那個時候,我的情商幾乎為零,不懂為什麼要上大學,不知道我的大學生活是...

花兒飄落何處

花兒飄落何處 代騰飛著 歲月匆匆而過,花兒飄落何處?遙想曾幾何時,花兒飄落何處?試問諸君花兒究竟飄落何處呢?花兒都飄落到了少女那柔巧的小手之中。人們何時才能明了?人們何時才能知曉?歲月匆匆而過,少女飛向何處?遙想曾幾何時,少女飛向何處?試問諸君少女究竟飛向何處呢?少女都飛到了丈夫那溫馨的懷抱之中。人...