簡 介: ?你沒有想到吧,在第十六屆全國大學(xué)生智能車競賽單車?yán)M獲得單車比賽全國冠軍的隊(duì)伍的單車控制算法居然是PID參數(shù)調(diào)整不當(dāng)造成的振蕩現(xiàn)象!沒錯(cuò),出乎所有人的意料。下面讓我們看看來自上海海事大學(xué)單車組隊(duì)員的分享。
關(guān)鍵詞
: 智能車競賽,單車?yán)?/strong>,騎摩托的蒙娜麗莎
01 花式慢跑
??
在推文
騎摩托的蒙娜麗莎[1] 展示了 上海海事大學(xué) 參加第
十六屆全國大學(xué)生智能車[2] 單車?yán)M全國總決賽的 “
騎摩托的蒙娜麗莎”隊(duì)伍比賽成績以及比賽過程。很多隊(duì)伍對于他們單車在慢車道上曼妙風(fēng)騷的“
花式慢跑”技術(shù)非常感謝興趣。??本文特別向該隊(duì)伍建議將他們的慢車比賽算法及其實(shí)現(xiàn)專門成文分享給大家。
▲ 圖1.1 ?騎摩托的蒙娜麗莎的妖嬈風(fēng)騷的花式慢跑王老師( 王天真[3] ),您好。我看到參加智能車競賽的的同學(xué)們對于 “騎摩托的蒙娜麗莎” 隊(duì)伍在運(yùn)行 慢車道比賽中的 “花式慢跑” 算法及其實(shí)現(xiàn)非常感興趣,可否您讓學(xué)生們對于這部分的內(nèi)容專門寫一個(gè)短文給大家分享一下呢?
??下面是他們隊(duì)員
王云堯 發(fā)送過來的算法分享。再次感謝上海海事大學(xué) 騎摩托的蒙娜麗莎隊(duì)員的技術(shù)分享。
02 算法分享
??
大家好,我是上海海事大學(xué)單車組“騎摩托的蒙娜麗莎”隊(duì)員岑衎遠(yuǎn),應(yīng)卓大大邀請來分享一下我們的“
花式”慢賽道跑法。??首先分析一下咱們今年單車的規(guī)則。在往屆比賽中,車模往往被要求盡快跑完全程,因此車模都是盡量按照已有的賽道路徑去跑,甚至在過彎時(shí)切內(nèi)彎以達(dá)到最短的行進(jìn)路徑。而今年的單車慢賽道,則正好相反,我們需要讓小車以
最慢的速度走過盡可能長的路程,同時(shí),按照要求,車模在慢賽道上行進(jìn)路線要滿足簡單閉合曲線的要求,即路線自身沒有相交點(diǎn)。這樣的規(guī)則要求之下,行進(jìn)路線的選擇幾乎只剩下了
S形前進(jìn)。那么再加上后面對于車模偏離賽道的判定距離,
兩米,S形前進(jìn)的范圍也已經(jīng)確定。那么
理論存在,
實(shí)踐開始。
▲ 圖2.1 ?電單車俯視圖??第一步要解決的就是慢車的直立,慢車的直立思路其實(shí)跟快車完全相同,只是
更改了PID 系數(shù),需要注意的是,慢車的PID參數(shù)總體相比快車
更大,這其實(shí)也與我們的生活實(shí)際體驗(yàn)相符:
騎自行車的時(shí)候,想以慢的速度前進(jìn),我們就會(huì)以更大的幅度擺動(dòng)車把。另外,慢車直立PID的調(diào)參對于舵機(jī)的
損耗極大,我們在國賽的前一天就因?yàn)檎{(diào)了數(shù)天慢賽道,導(dǎo)致舵機(jī)出現(xiàn)故障,不受控制地抖動(dòng),不得已換了新舵機(jī),對之前保存的所有快慢賽道程序進(jìn)行參數(shù)微調(diào)。??完成直立后的第二步就是讓小車以
S形巡線。這之前還要再提一下對于慢賽道的設(shè)計(jì),最好的設(shè)計(jì)是簡簡單單的一個(gè)圓,就可以滿足慢賽道S形巡線的需求,不會(huì)因?yàn)楦鞣N轉(zhuǎn)彎角度的不同影響小車的穩(wěn)定性,不過由于圓形鋪設(shè)難度較大,我們采用了
正十六邊形的設(shè)計(jì),也可以滿足要求。
▲ 圖2.1 正十六邊形的慢車賽道??對于S形巡線算法的問題,其實(shí)剛開始我們也沒什么頭緒,直到開始調(diào)巡線的時(shí)候才發(fā)現(xiàn),
減小小車巡線的PID控制中的比例項(xiàng)系數(shù),可以讓小車產(chǎn)生我們所想要的S形巡線的效果。所以說,在大家眼中我們單車的“
花里胡哨”的巡線算法,本質(zhì)上就是
合理激發(fā)并利用了傳統(tǒng)PID控制中參數(shù)調(diào)整不當(dāng)所造成的振蕩現(xiàn)象。??看到這里,你肯定想說,我看了這么半天,你就跟我說這是你們
參數(shù)調(diào)節(jié)不當(dāng)造成的?其實(shí)這其中還有相當(dāng)重要的一環(huán)——對電磁信號(hào)的處理。在對電磁信號(hào)的處理中,我們最常用的就是
歸一化和
差比和。??這兩種算法想必大家都相當(dāng)熟悉,我就不再贅述。但是這兩種算法僅僅是消除了換賽道時(shí)電磁值變化的影響,并未對丟線做任何處理。做過電磁車的都知道,電磁桿在偏離賽一定距離后,計(jì)算出的電磁偏差值會(huì)不增反減,而我們的車在S形巡線時(shí),有時(shí)可能會(huì)偏離賽道一米以上,這個(gè)時(shí)候如果單單使用差比和或者歸一化做減運(yùn)算得到的偏差就會(huì)很小,小車就會(huì)沒法兒拐回來。
??既然減運(yùn)算不行,那就試試加運(yùn)算,很顯然,小車偏離賽道較遠(yuǎn)時(shí),小車獲得的左右電感值的和較小,而小車在賽道中心時(shí)左右電感值的和較大。那么我們在發(fā)車前尋找到賽道中心處電感和的最大值,再與車模運(yùn)行時(shí)電感和作比較,不就可以獲得一個(gè)理想偏差值了嗎???然而并不是,這種方法得出的偏差值在電磁線附近時(shí)可能會(huì)出現(xiàn)跳變現(xiàn)象,而且在電磁線附近的偏差曲線也并不是我們理想中的平滑曲線,而是略有下凹。所以最后一步,我們將這種偏差計(jì)算方法與差比和相結(jié)合,即在一定范圍內(nèi)使用差比和算法計(jì)算偏差,超出范圍后使用電感和的算法計(jì)算偏差。??其實(shí)這種算法在慢賽道出現(xiàn)之前,我們就已經(jīng)投入了使用,跑快賽道效果也相當(dāng)不錯(cuò),直角完全不需要處理,全程也只用了兩個(gè)橫電感就完成了巡線(是的,那兩個(gè)
豎電感只是擺設(shè))。
▲ 圖2.2 巡線電磁傳感器??分享寫到這里已經(jīng)基本結(jié)束。今年的智能車比賽也可以說是一波三折,疫情的反彈更是將國賽逼回了線上。不過好在智能車的組委會(huì)相當(dāng)認(rèn)真負(fù)責(zé),為我們定制了獨(dú)特的比賽方案。卓大大更是在公眾號(hào)上非常耐心地為我們答疑解惑,甚至還要聽我們發(fā)牢騷。??我本人是第二年做智能車,今年在天時(shí)地利人和之下有幸拿到了
單車組的全國冠軍,可以說是做車生涯了無遺憾了。不過明年我還是會(huì)繼續(xù)做車的,畢竟我才大三,還沒到可以做
咸魚的時(shí)候。
▲ 圖2.3 ?沒想到調(diào)壞了的PID參數(shù)居然也能拿到單車組全國冠軍
世界上最長的路就是從想法到實(shí)現(xiàn)參考資料
[1]騎摩托的蒙娜麗莎: https://mp.weixin.qq.com/s?__biz=MzA5NjQyNjc2NQ