国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

智能車元素的處理方案:環(huán)島,坡道,三叉,以及直道和彎道的速度控制方案

這篇具有很好參考價值的文章主要介紹了智能車元素的處理方案:環(huán)島,坡道,三叉,以及直道和彎道的速度控制方案。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

智能車的元素的處理方案:環(huán)島,坡道,三叉,以及直道和彎道的速度控制方案

元素處理分到了兩篇文章中:本篇元素的處理方案以及全向組麥輪的特色控制方案。文章來源地址http://www.zghlxwxcb.cn/news/detail-404649.html

開源代碼地址: https://github.com/ittuann/Enterprise_E

博客目錄:
https://blog.csdn.net/sorcererr/article/details/124989905
https://ittuann.github.io/2021/08/30/Car.html

環(huán)島:

  • 我們對于環(huán)島的識別使用的是穩(wěn)定的電磁判斷方案。內(nèi)側(cè)兩個橫向電感會在環(huán)島切點處達到極值,以此來判斷環(huán)島。

  • 入環(huán)時使用攝像頭補線,并開始計算陀螺儀z軸積分。陀螺儀大于60度入環(huán)補線結(jié)束,陀螺儀大于200度開始攝像頭識別出環(huán),若出環(huán)判斷失敗陀螺儀大于250度強制開始出環(huán),陀螺儀大于355度出環(huán)完成。

  • 當陀螺儀大于100度小于225度時,累加環(huán)內(nèi)轉(zhuǎn)向環(huán)PID輸出量,記錄環(huán)內(nèi)轉(zhuǎn)角輸出,目的是用環(huán)內(nèi)計算環(huán)島內(nèi)平均打角。當出環(huán)預備標志位置1后,將計算值強制賦給轉(zhuǎn)向環(huán)輸出,實現(xiàn)出環(huán)使用穩(wěn)定的環(huán)內(nèi)姿態(tài)。出環(huán)不僅可以使用環(huán)內(nèi)狀態(tài)也可使用入環(huán)狀態(tài),我們測試發(fā)現(xiàn)使用環(huán)內(nèi)姿態(tài)更為穩(wěn)定。

  • 電感判斷環(huán)島的問題在于出環(huán)后會重復判斷,所以需要寫一個出環(huán)后短時間0.8s內(nèi)不再識別第二個環(huán)島。

  • 另外判斷小環(huán)島和大環(huán)島 可以記錄車身0-60度時間或是編碼器脈沖數(shù)。

  • 對于環(huán)內(nèi)巡線,由于我們是30cm攝像頭限高,所以使用正常巡線也能有不錯的效果。但使用正常的攝像頭中值會偏向一側(cè),可以在左右環(huán)島分別賦予不同的攝像頭中值。

  • 環(huán)內(nèi)屬于穩(wěn)定而又簡單的元素,入環(huán)并判斷車身穩(wěn)定后可以環(huán)內(nèi)加速。如果使用記錄環(huán)內(nèi)姿態(tài)用于出環(huán),則出環(huán)速度需要與環(huán)內(nèi)速度相同,相當于在環(huán)島元素內(nèi)只在入環(huán)減速其他時刻都在加速。

坡道:

  • 我們使用 TFMiniPlus 激光雷達測距來判斷坡道。當距離降到一定閾值下即可判斷坡道。
  • 我們將 TFMiniPlus 豎直傾斜安裝,此時測距點在賽道上。水平安裝同樣可以,不過水平安裝測距點不穩(wěn)定,賽道鋪設場地有限的情況下可能會與賽道擋板誤判。
  • 在識別到坡道后開始計步(Vy軸向編碼器數(shù)值累加),路程判斷在上坡進行到三分之一穩(wěn)定后時開啟加速并在下坡時關閉加速。路程經(jīng)過上坡三分之一后對Vx和w兩個自由度的每次輸出進行限幅防止過量打角抖動,上坡前三分之一不限幅是為了讓車身修正姿態(tài)。
  • 判斷坡道結(jié)束可以僅使用計步,當距離超過測定閾值后結(jié)束坡道。也可以當測距再次出現(xiàn)極小值時判斷坡道結(jié)束。為了防止下坡時二次識別,可以加上下坡后0.5s內(nèi)不再識別第二個坡道。另外還可以用走過一定距離后識別正常賽道結(jié)束坡道,判斷條件為計步超過小閾值并且測距恢復為正常距離值一定次數(shù)后即可判斷結(jié)束。

三岔:

  • 我們的控制方案三岔路口的一條路分為八步處理。

    第零步是預判斷三岔,預判斷后將加速降為加速計算量的一半。畢竟要給三斤多的麥輪車留夠減速的時間

    當完全判斷為三岔時,因為攝像頭判斷區(qū)域與車身實際位置存在距離,且在攝像頭高度和角度不變的情況下,距離也不會變。所以第一步為前進一定距離至三岔中心點,同時開始90度旋轉(zhuǎn)舵機。

    第二步在前進完成后使車身旋轉(zhuǎn)30度與入口賽道平行。這樣可以防止僅攝像頭補線輸出值過大,進入三岔出現(xiàn)抖動的問題。

    因為舵機旋轉(zhuǎn)需要時間,且旋轉(zhuǎn)完成后攝像頭處理速度較慢,旋轉(zhuǎn)完成時的攝像頭輸出值不穩(wěn)定,旋轉(zhuǎn)后不能立刻切為攝像頭循跡。所以第三步為車身橫向平移一定距離等待攝像頭穩(wěn)定。

    第四步即為三岔內(nèi)橫向循跡。我們出現(xiàn)的情況是右三岔循跡良好左三岔嚴重偏向外側(cè),所以右三岔基礎速度和加速最大值都會大于左三岔。另外對于三岔內(nèi)偏向一側(cè)也可以使用與環(huán)島相同的處理辦法,即左右分別賦予不同的攝像頭中值。

    第五步在預判斷出三叉后開啟轉(zhuǎn)角輸出限幅,限幅至僅能小幅度修正姿態(tài),防止補線補到三岔的另一側(cè)致使出三岔內(nèi)切。并且也將加速降為加速計算量的一半。

    第六步在判斷到出三岔后前進一定距離至中心點,同時開始轉(zhuǎn)正舵機,原因同第一步。

    第七步在前進完成后使車身旋轉(zhuǎn)150度。

    第八步在旋轉(zhuǎn)后前進一定距離,原因同第三步。至此三叉的一條邊處理結(jié)束。左三叉也是相同的處理流程。

直道加速:

? 全向組在賽道上勻速循跡很大可能不會有一個較高的速度,所以直道加速就顯得很有必要。我們使用了五種直道加速的判斷條件。

中線判斷加速:

判斷圖像上半部分中線與賽道兩邊界無交點即可加速。

for (i = startRow; i < endRow; i++) {
    if ((endRow - startRow) < 5) {
        break;
    }   //行數(shù)過少取消判斷
    
    if (middleStandard - leftBlack[i] > 4 && rightBlack[i] - middleStandard > 4) {
        rowCount2++;
    } else if (middleStandard - leftBlack[i] > 2 && rightBlack[i] - middleStandard > 2) {
        rowCount++;
    } else {
        break;
    }

    if (rowCount == endRow - startRow) {
        Gear = 8;
    }
    if (rowCount2 == endRow - startRow) {
        Gear = 10;
    }
}   //判斷中線上半部與賽道兩邊界無焦點即可加速

頂部有效圖像判斷加速:

在正常計算中線誤差的 for 循環(huán)內(nèi) 當計算完前三分之一使用面積時,計算有效圖像前三分之一的誤差,用于遠處判斷加速。這樣可以使運算更為高效。

頂行采樣判斷直道加速:

分別計算speed_line為20, 25, 30這三行的誤差,并取最大值用于判斷加速。

speedLineErr = (ABS)((  5 * middleLine[speedLine] +
                        2 * middleLine[speedLine + 1] +
                        3 * middleLine[speedLine - 1]) / (10) - middleStandard);

有效行判斷加速:

當有效行在頂部時,給予加速??梢院唵问褂梅侄未虮淼姆绞?,也可以擬合成線性關系。記得寫限幅!

距離判斷加速:

實際走過一定距離的直道, 就算是直道。有些時候小s不會判斷加速,這時只是用車身姿態(tài)來判斷,可以解決這些正常判斷較為難以處理的情況。注意這樣加有滯后性, 加速量不要給多。

if (ABS((int16)(fabsf(carSpeedA))) < speedZone) {
    disAccCount ++;
} else {
    disAccCount = 0;
}

if (disAccCount >= 500)    disAccCount = 500;    //限幅

if (disAccCount > countZone) {
    Gear = 3;
}

彎道控制:

彎道的速度的公式 f = μ ? m g = m ? v 2 R f = \mu\ mg = m\ \frac{v^2}{R} f=μ?mg=m?Rv2? 。F是摩擦力; μ \mu μ是摩擦系數(shù),由地面和輪胎決定;R是轉(zhuǎn)彎半徑。由于地面和輪胎在過彎時是給定的,這樣在比賽中我們?yōu)榱吮WCV大,只能保證更大的轉(zhuǎn)彎半徑。R越大,速度V就越大。所以穩(wěn)定沿著電磁線循跡并不一定是最優(yōu)解,最好是采用外內(nèi)外切彎。即入彎時貼彎道的內(nèi)彎,出彎時貼外彎。這種情況下賽車通過整個彎道過程中行車線半徑是固定的,即定曲率行車線。彎道的速度控制方案也最好為,入彎減速避免打滑,出彎加速節(jié)約時間。

實踐中發(fā)現(xiàn)通過調(diào)整純跟蹤算法的預瞄距離就能夠有這樣的效果,可以有效提高路徑規(guī)劃的最優(yōu)性。

元素處理分到了兩篇文章中:本篇元素的處理方案以及全向組麥輪的特色控制方案。

到了這里,關于智能車元素的處理方案:環(huán)島,坡道,三叉,以及直道和彎道的速度控制方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包