• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種適用于中小學(xué)機(jī)器人競(jìng)賽的巡線技術(shù)模型

      2020-02-26 15:42羅斐劉志勤
      中國教育信息化·高教職教 2020年1期
      關(guān)鍵詞:PID算法

      羅斐 劉志勤

      摘? ?要:機(jī)器人教育作為一門交叉學(xué)科,是STEAM教育理念應(yīng)用于實(shí)踐的優(yōu)秀載體。目前國內(nèi)的中小學(xué)機(jī)器人教育主要以競(jìng)賽為主,巡線任務(wù)是大多數(shù)機(jī)器人競(jìng)賽中的基礎(chǔ)任務(wù)之一。文章構(gòu)建了一種適用于中小學(xué)機(jī)器人競(jìng)賽的巡線技術(shù)模型,包括基于PID控制的巡線算法、路口選擇算法和邊路傳感器的轉(zhuǎn)向輔助功能三個(gè)部分。文章通過闡述模型,并以LEGO MINDSTORMS編程為例進(jìn)行展示,讓更多學(xué)生掌握并應(yīng)用于中小學(xué)機(jī)器人競(jìng)賽的巡線部分,提高學(xué)生的競(jìng)賽水平。

      關(guān)鍵詞:中小學(xué)機(jī)器人競(jìng)賽;巡線技術(shù);PID算法;路口選擇

      中圖分類號(hào):TP242 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1673-8454(2020)01-0050-05

      一、引言

      幾乎任何層次、任何主題的機(jī)器人競(jìng)賽都避免不了巡線這個(gè)最基礎(chǔ)的任務(wù),機(jī)器人能夠按照既定的路線行進(jìn),是在競(jìng)賽中取得優(yōu)異成績(jī)最基礎(chǔ)和最重要的條件之一,因此讓學(xué)生掌握一種高效的巡線技術(shù)十分必要。目前國內(nèi)中小學(xué)機(jī)器人競(jìng)賽存在師資水平參差不齊且教學(xué)能力普遍不高等問題,大部分學(xué)生參加競(jìng)賽過于依靠教練,本身并沒有掌握一種良好的技術(shù)。構(gòu)建一種適用于中小學(xué)機(jī)器人競(jìng)賽的巡線技術(shù)模型并讓學(xué)生掌握,可以很好地解決這些問題。

      二、國內(nèi)外中小學(xué)機(jī)器人競(jìng)賽概述

      國外的主流機(jī)器人競(jìng)賽有VEX機(jī)器人大賽、RoboRAVE和FIRST體系賽事,VEX機(jī)器人大賽根據(jù)難度涵蓋的年齡段很廣泛,包含8歲孩子到18歲以上的大學(xué)生,是含金量較高、綜合性較強(qiáng)的機(jī)器人比賽,同時(shí)也是世界上規(guī)模最大的機(jī)器人比賽。RoboRAVE是由美國Intel公司主要贊助和支持的國際機(jī)器人競(jìng)賽,按競(jìng)賽年齡組隊(duì),可分為小學(xué)、初中和高中,作為國際大賽,同樣能夠讓參賽學(xué)生得到很好的鍛煉,開拓視野。FIRST體系賽事,包含少兒創(chuàng)意賽(FLL Jr)、工程挑戰(zhàn)賽(FLL)、科技挑戰(zhàn)賽(FTC)和機(jī)器人挑戰(zhàn)賽(FRC),是全球主流的機(jī)器人競(jìng)賽,同時(shí)也是國內(nèi)認(rèn)可度較高的機(jī)器人競(jìng)賽,只要在FIRST各類賽事獲獎(jiǎng),都會(huì)進(jìn)入STEM人才庫,對(duì)申請(qǐng)世界名校很有幫助。

      國內(nèi)的主流機(jī)器人競(jìng)賽有“全國青少年科技創(chuàng)新大賽”和“中國青少年機(jī)器人競(jìng)賽”,其中“中國青少年機(jī)器人競(jìng)賽”綜合計(jì)算機(jī)編程、工程設(shè)計(jì)、動(dòng)手制作與技術(shù)構(gòu)建,是一項(xiàng)專業(yè)的機(jī)器人類賽事。該競(jìng)賽分為機(jī)器人綜合技能比賽、FLL機(jī)器人工程挑戰(zhàn)賽、VEX機(jī)器人工程挑戰(zhàn)賽、機(jī)器人創(chuàng)意比賽和教育機(jī)器人工程挑戰(zhàn)賽。

      三、國內(nèi)外中小學(xué)機(jī)器人競(jìng)賽開展現(xiàn)狀

      國外的機(jī)器人教育開展較早且熱度一直很高,早在1994年美國麻省理工學(xué)院就開設(shè)了LEGO機(jī)器人相關(guān)課程,讓學(xué)生自行設(shè)計(jì)機(jī)器人并親自動(dòng)手制作,提高學(xué)生對(duì)機(jī)器人知識(shí)的了解和對(duì)機(jī)器人制作、操縱的水平。LEGO的第一個(gè)MINDSTORMS(可編程傳感器模具)零件于1998年上市,同年和FIRST機(jī)構(gòu)組成FLL聯(lián)盟,并在每年9月向全球參賽隊(duì)伍公布年度競(jìng)賽項(xiàng)目。大量的資源和天然的優(yōu)勢(shì)使國外的機(jī)器人教育發(fā)展水平較國內(nèi)優(yōu)勢(shì)巨大,優(yōu)質(zhì)的師資以及較高的普及程度使國外的機(jī)器人競(jìng)賽開展火熱,參加競(jìng)賽的學(xué)生由于從小受到高水平的機(jī)器人教育,在競(jìng)賽中能力突出,參與度很高。

      我國機(jī)器人教育起步較晚,將機(jī)器人教育引入課堂的學(xué)校到現(xiàn)在仍是鳳毛麟角。沒有獨(dú)立的課程支撐,大多數(shù)只是以興趣小組和課外培訓(xùn)機(jī)構(gòu)的形式存在。校內(nèi)受到資源、場(chǎng)地、時(shí)間等因素的制約,只有很少部分的學(xué)生能夠接觸到機(jī)器人教育且?guī)熧Y匱乏,學(xué)生更是學(xué)而不精。校外的培訓(xùn)機(jī)構(gòu)教學(xué)模式各異,師資水平參差不齊且大都以盈利為主要目的,教學(xué)目標(biāo)不明確,教學(xué)模式陳舊,沒有系統(tǒng)的教學(xué)設(shè)計(jì),學(xué)生所掌握的知識(shí)大都浮于表面。參加競(jìng)賽時(shí)過于依靠教練,學(xué)生參與度不高,沒能得到應(yīng)有的鍛煉和提升。

      四、國內(nèi)外中小學(xué)機(jī)器人競(jìng)賽巡線技術(shù)模型概述

      構(gòu)建的中小學(xué)機(jī)器人競(jìng)賽巡線技術(shù)模型包含三個(gè)部分,分別為基于PID控制的巡線算法、路口選擇算法和邊路傳感器的轉(zhuǎn)向輔助功能。雖然傳感器的數(shù)量越多,機(jī)器人的巡線效果會(huì)越好、越精確,但國內(nèi)外的中小學(xué)機(jī)器人競(jìng)賽對(duì)傳感器使用的數(shù)量都有嚴(yán)格的限制,一般要求不超過4個(gè)。因此,模型在基于PID控制的巡線算法部分采用單傳感器巡線。路口選擇算法部分采用兩個(gè)邊路傳感器來達(dá)到路口計(jì)數(shù)的功能,用于確認(rèn)機(jī)器人所處的位置,讓機(jī)器人能夠按照人為設(shè)定的方向行進(jìn)。邊路傳感器的轉(zhuǎn)向輔助功能用于面對(duì)彎度較大、較復(fù)雜的地圖時(shí)輔助機(jī)器人轉(zhuǎn)向,防止機(jī)器人因轉(zhuǎn)向不及時(shí)而導(dǎo)致“飛線”。

      五、基于PID控制的巡線算法

      PID控制器常用于工業(yè)領(lǐng)域,能實(shí)現(xiàn)對(duì)多種機(jī)械裝置的精確控制。PID的數(shù)學(xué)模型經(jīng)過一系列的化簡(jiǎn)之后可以表示為:

      UK=KP·EK+Ki·■Ei+Kd·(Ek-Ek-1)

      其中Uk為第k次采樣輸出值,Kp為比例系數(shù),Ek為第k次采樣時(shí)與輸出的偏差,Ki為積分系數(shù),Kd為微分系數(shù)。

      將PID算法應(yīng)用于巡線機(jī)器人,能夠高效地控制機(jī)器人完成巡線任務(wù)。其中P(Proportion)是比例項(xiàng),是巡線機(jī)器人中的關(guān)鍵部分,用于控制轉(zhuǎn)向的幅度。I(Integration)是積分項(xiàng),可以理解為機(jī)器人巡線過程中產(chǎn)生誤差的累積,用于消除穩(wěn)態(tài)誤差。D(Differentiation)是微分項(xiàng),也可以叫導(dǎo)數(shù)項(xiàng),中學(xué)數(shù)學(xué)里定義一個(gè)函數(shù)在某一點(diǎn)的導(dǎo)數(shù)描述了這個(gè)函數(shù)在這一點(diǎn)附近的變化率,可以理解為機(jī)器人巡線過程中兩個(gè)連續(xù)誤差之間的差,用于預(yù)測(cè)機(jī)器人未來可能產(chǎn)生的誤差,提高機(jī)器人的轉(zhuǎn)向速率。

      1.案例類比PID模型

      為了幫助學(xué)生理解PID模型,首先設(shè)計(jì)了一個(gè)生活中可見的案例——如何精確控制一個(gè)水缸中的水位。

      有一個(gè)水缸,在不斷往外流水,需要人為不斷往里注水,讓水缸里的水位一直保持在一個(gè)刻度上。

      這個(gè)時(shí)候需要選擇一個(gè)合適的容器,一次一次地往里面加水,讓水位保持原來的刻度,這樣的一個(gè)容器,就是PID中的比例。

      但存在的問題是很難找到一個(gè)合適的容器,讓每一次加的水都剛剛好,總會(huì)存在一些誤差,要么多一點(diǎn),要么少一點(diǎn),這個(gè)時(shí)候就需要再找一個(gè)新的容器,能夠進(jìn)一步縮小這個(gè)誤差,于是找來了一個(gè)漏斗,通過不斷實(shí)驗(yàn),終于找到了一個(gè)大小合適的漏斗,水通過漏斗進(jìn)來剛好可以保持原來的刻度,這個(gè)漏斗,就是積分。

      最后一個(gè)問題,不能確定這個(gè)水是一直保持勻速往外流,有時(shí)候它會(huì)流得快,有時(shí)候會(huì)流得慢,這就導(dǎo)致水位還是會(huì)有波動(dòng),這個(gè)時(shí)候額外再準(zhǔn)備一盆備用水,流得快了就直接往里倒,如果倒多了怎么辦?在水位刻度上方再打一個(gè)洞,當(dāng)水位漫過刻度,就讓水流出來。這相當(dāng)于有了預(yù)見性,這就是微分。

      總結(jié)一下,比例就是調(diào)節(jié)尺度的大小,對(duì)應(yīng)的是每次舀水的容器;積分就是將每次直接舀水的誤差進(jìn)行細(xì)分,增大或者減小進(jìn)水速度,對(duì)應(yīng)的是漏斗;微分就是對(duì)水位刻度做一個(gè)預(yù)判,高了就放水,低了就加水。

      2.PID巡線算法剖析

      首先要清楚巡線小車是如何巡線的。在單傳感器的情況下,小車應(yīng)沿著黑線邊緣走。不可以壓著黑線走的原因是一旦小車發(fā)生偏離,顏色傳感器的反射光強(qiáng)度讀數(shù)發(fā)生了較大的變化,小車將不知道自己的位置究竟是往哪個(gè)方向偏移了,因?yàn)樽笥覂蓚?cè)都不是黑線,小車無法確定糾正方向。如果沿著黑線邊緣走,當(dāng)小車發(fā)生偏移壓在黑線上,顏色傳感器反射光強(qiáng)度讀數(shù)變小,說明小車該向線的隨機(jī)一側(cè)糾正方向;當(dāng)小車發(fā)生偏移遠(yuǎn)離黑線,顏色傳感器反射光強(qiáng)度讀數(shù)變大,說明小車該向靠近黑線一側(cè)糾正方向。

      (1)比例調(diào)節(jié)

      清楚了巡線方式之后,要明白如何來調(diào)節(jié)小車轉(zhuǎn)向幅度,轉(zhuǎn)向幅度用T表示。在機(jī)器人巡線的過程中,總是希望機(jī)器人可以一直沿著線走,當(dāng)線發(fā)生較大彎曲時(shí),機(jī)器人有較大轉(zhuǎn)向,當(dāng)線發(fā)生較小彎曲時(shí),機(jī)器人有較小轉(zhuǎn)向。收集顏色傳感器反射光強(qiáng)度,用R表示。根據(jù)程序采集得到的數(shù)據(jù),當(dāng)機(jī)器人完全離開黑線時(shí),顏色傳感器測(cè)量的反射光強(qiáng)度有最大值,當(dāng)機(jī)器人完全壓在黑線上時(shí),顏色傳感器測(cè)量的反射光強(qiáng)度有最小值,取兩個(gè)極限值的中間數(shù),給它取個(gè)名字叫標(biāo)準(zhǔn)量,用S表示。期望的效果就是機(jī)器人在走直線的時(shí)候,傳感器的讀數(shù)一直都是S。如果遇到轉(zhuǎn)彎的時(shí)候,用傳感器測(cè)量到的值減去標(biāo)準(zhǔn)量會(huì)產(chǎn)生一個(gè)誤差量,用E表示,數(shù)學(xué)表達(dá)式如下:

      E=R-S

      誤差量可以用來表示糾正小車轉(zhuǎn)向的幅度。因?yàn)檗D(zhuǎn)向幅度越大,產(chǎn)生的誤差量也會(huì)越大,所以可以看成轉(zhuǎn)向幅度與誤差量成比例關(guān)系,數(shù)學(xué)表達(dá)式如下:

      T=KP·E

      在實(shí)際操作中,用兩個(gè)電機(jī),即A電機(jī)和B電機(jī),作為巡線機(jī)器人的驅(qū)動(dòng)系統(tǒng)。現(xiàn)在給定兩個(gè)電機(jī)一樣的初始功率P,當(dāng)誤差量E不為零的時(shí)候,給其中一個(gè)電機(jī)的功率值加上轉(zhuǎn)向幅度,給另外一個(gè)電機(jī)的功率值減去轉(zhuǎn)向幅度,即可達(dá)到實(shí)際轉(zhuǎn)向的效果,數(shù)學(xué)表達(dá)式如下:

      PowerA=PA+T

      PowerB=PB+T

      完成比例控制器后,機(jī)器人基本上已經(jīng)可以完成巡線任務(wù)了,很簡(jiǎn)單,但并不高效。

      (2)積分調(diào)節(jié)

      觀察發(fā)現(xiàn),機(jī)器人在沿著直線前進(jìn)的時(shí)候仍然會(huì)產(chǎn)生一定程度的擺動(dòng),產(chǎn)生擺動(dòng)就意味著在同樣速度的情況下會(huì)花費(fèi)更長(zhǎng)的時(shí)間去完成巡線,這并不高效。結(jié)合之前的實(shí)例分析,為什么機(jī)器人在巡直線的時(shí)候會(huì)產(chǎn)生這樣的擺動(dòng)。

      在給水缸注水的時(shí)候,無論找什么樣的容器,總是會(huì)存在多一點(diǎn)或者少一點(diǎn)的問題,現(xiàn)在機(jī)器人巡線也是這樣,無論比例怎么調(diào)節(jié),轉(zhuǎn)向總會(huì)存在多一點(diǎn)或者少一點(diǎn)的問題,這就是機(jī)器人產(chǎn)生擺動(dòng)的原因。所以,比例調(diào)節(jié)存在一個(gè)缺陷,它不能完全消除誤差,當(dāng)誤差保持恒定的時(shí)候,同時(shí)整個(gè)系統(tǒng)也維持恒定了,這種誤差叫穩(wěn)態(tài)誤差。這個(gè)時(shí)候要想辦法消除這種穩(wěn)態(tài)誤差,就要引入積分項(xiàng)。

      這里可以把積分理解為對(duì)誤差的累加,即:

      I=■Ei

      雖然之前比例調(diào)節(jié)導(dǎo)致每一次都會(huì)產(chǎn)生一個(gè)小的誤差,但是積分過后,小的誤差會(huì)變大,幾個(gè)連續(xù)小的誤差積分會(huì)完全改變機(jī)器人的運(yùn)行軌跡。隨著時(shí)間的推移,機(jī)器人產(chǎn)生的誤差會(huì)越來越小,理論上會(huì)達(dá)到完全消除的狀態(tài),即積分項(xiàng)為0。

      還存在一個(gè)問題,由于誤差有正有負(fù),所以積分項(xiàng)通常不會(huì)趨于無窮,但是如果機(jī)器人長(zhǎng)期處于線的一側(cè),尤其在轉(zhuǎn)彎的時(shí)候,那么積分項(xiàng)很快就會(huì)趨于無窮,產(chǎn)生一個(gè)非常大的轉(zhuǎn)向值,這會(huì)導(dǎo)致機(jī)器人“飛線”,即完全偏離軌跡,這時(shí)通常的處理方式是在每一次積分結(jié)束時(shí)都將積分項(xiàng)乘以一個(gè)小于1的常數(shù)來抑制積分。

      此時(shí),轉(zhuǎn)向幅度T可以表示為:

      T=KP·E+Ki·I

      積分調(diào)節(jié)可以看成是對(duì)過去誤差的糾正,可以讓機(jī)器人在巡線的過程中逐漸減小擺動(dòng)的幅度,使巡線效果逐漸趨于完善。

      (3)微分調(diào)節(jié)

      機(jī)器人能夠糾正過去的誤差還不夠,還希望機(jī)器人可以預(yù)測(cè)未來的誤差。比如當(dāng)機(jī)器人面臨一個(gè)很大的轉(zhuǎn)向的時(shí)候,可能比例加積分的調(diào)節(jié)方式不足以讓它完成轉(zhuǎn)向,因?yàn)檫@個(gè)彎的幅度太大且來得太突然了,要是可以提前預(yù)測(cè)就好了。微分,就是用來實(shí)現(xiàn)這個(gè)功能的。

      這里的微分可以看成導(dǎo)數(shù),是對(duì)兩個(gè)連續(xù)誤差之間的變化量的描述,即:

      D=CurrentE(error)-LastE(lastError)

      那么預(yù)測(cè)的下一個(gè)誤差可以表示為:

      NextE(nextError)=D+CurrentE(error)

      此時(shí),轉(zhuǎn)向幅度T可以表示為:

      T=KP·E+Ki·I+Kd·D

      預(yù)測(cè)下一次誤差有什么作用呢?假如下一次的誤差比之前一次更小,那么導(dǎo)數(shù)項(xiàng)的值也很小,對(duì)系統(tǒng)幾乎不起任何作用。但是要是下一次的誤差比當(dāng)前誤差大,而且大很多,這個(gè)時(shí)候系統(tǒng)就會(huì)去糾正這個(gè)誤差,因?yàn)閷?dǎo)數(shù)項(xiàng)會(huì)產(chǎn)生一個(gè)很大的值,糾正轉(zhuǎn)向,這一點(diǎn)在機(jī)器人面臨轉(zhuǎn)向的時(shí)候非常有用,可以有效地提高機(jī)器人的轉(zhuǎn)向速率,避免轉(zhuǎn)向不及時(shí)而產(chǎn)生“飛線”的現(xiàn)象。

      對(duì)應(yīng)的LEGO MINDSTORMS程序如圖1所示。

      (4)PID巡線算法總結(jié)

      實(shí)踐中,比例調(diào)節(jié)是機(jī)器人完成巡線任務(wù)的關(guān)鍵。當(dāng)?shù)貓D比較簡(jiǎn)單、轉(zhuǎn)向幅度較小時(shí),可以適當(dāng)將電機(jī)功率調(diào)大,將Kp值調(diào)小,這樣可以讓機(jī)器人盡快地完成巡線操作且擺動(dòng)幅度較小。如果情況相反,則應(yīng)該限制電機(jī)的功率。積分調(diào)節(jié)可以將比例調(diào)節(jié)中產(chǎn)生的誤差降得更低,即減少機(jī)器人在巡線過程中產(chǎn)生的震蕩。微分控制可以讓機(jī)器人“預(yù)測(cè)”未來可能產(chǎn)生的誤差,使機(jī)器人在遇到幅度較大的轉(zhuǎn)向時(shí)反應(yīng)更加靈敏。

      六、路口選擇算法

      在機(jī)器人競(jìng)賽中,地圖一般都不會(huì)是一條單一的黑線,往往會(huì)存在很多路口,如十字路口和丁字路口。在遇到這些路口的時(shí)候,要求機(jī)器人能夠按照期望的方向行進(jìn),即學(xué)會(huì)在路口處做出選擇而不是隨機(jī)轉(zhuǎn)彎。這里采用兩個(gè)邊路傳感器同時(shí)檢測(cè)到黑線的時(shí)候就將路口數(shù)做一次遞加,當(dāng)需要機(jī)器人在某一個(gè)路口向某一個(gè)方向轉(zhuǎn)彎時(shí),設(shè)定對(duì)應(yīng)的路口數(shù)字,單獨(dú)做一次轉(zhuǎn)彎子程序,轉(zhuǎn)彎后再跳出該轉(zhuǎn)彎子程序繼續(xù)巡線。

      1.路口計(jì)數(shù)功能實(shí)現(xiàn)

      首先設(shè)定路口初始數(shù)量為0。根據(jù)實(shí)時(shí)檢測(cè)到的兩個(gè)邊路傳感器的反射光線強(qiáng)度R1和R2,設(shè)定一個(gè)臨界值C,臨界值C表示傳感器探測(cè)到黑線時(shí)的值,如當(dāng)傳感器完全接觸黑線時(shí)有最小值M,經(jīng)過之前的計(jì)算有標(biāo)準(zhǔn)量S,臨界值應(yīng)當(dāng)介于S和M之間。當(dāng)R1和R2同時(shí)小于臨界值,即左右的兩個(gè)邊路傳感器同時(shí)檢測(cè)到了黑線,就將路口數(shù)量做一次遞加。

      這里還存在一個(gè)問題,計(jì)算機(jī)的運(yùn)算速度很快,黑線又有一定的寬度,當(dāng)機(jī)器人掃到黑線直到完全越過黑線需要一定的時(shí)間,在這一段時(shí)間里兩個(gè)邊路傳感器一直處于檢測(cè)到黑線的狀態(tài),路口計(jì)數(shù)會(huì)持續(xù)遞加,這會(huì)導(dǎo)致一個(gè)錯(cuò)誤結(jié)果。解決的辦法是在路口計(jì)數(shù)的子程序里面放一個(gè)等待模塊,起到延時(shí)的效果,即限定程序跑完一次所花費(fèi)的時(shí)間。

      對(duì)應(yīng)的LEGO MINDSTORMS程序如圖2所示。

      2.特定路口轉(zhuǎn)彎功能實(shí)現(xiàn)

      做路口計(jì)數(shù)的目的就是為了機(jī)器人能夠在特定的路口向設(shè)定的方向轉(zhuǎn)彎。如需要機(jī)器人在第一個(gè)路口向左轉(zhuǎn)彎,在第二個(gè)路口向右轉(zhuǎn)彎,在完成路口計(jì)數(shù)的功能后,需要單獨(dú)對(duì)機(jī)器人做轉(zhuǎn)彎操作。轉(zhuǎn)彎操作本身很簡(jiǎn)單,只需要調(diào)整好參數(shù)即可,但存在的問題是,當(dāng)機(jī)器人完成轉(zhuǎn)彎過后依然會(huì)檢測(cè)到路口數(shù)為要求轉(zhuǎn)彎的路口,這會(huì)導(dǎo)致機(jī)器人陷入一個(gè)循環(huán),即一直轉(zhuǎn)彎而不繼續(xù)巡線。

      解決這個(gè)問題的辦法就是要讓機(jī)器人在完成當(dāng)前轉(zhuǎn)彎操作之后就跳出轉(zhuǎn)彎的子程序,具體的做法是每完成一次轉(zhuǎn)彎,就給路口數(shù)再加一個(gè)小數(shù),這個(gè)小數(shù)相當(dāng)于對(duì)此次轉(zhuǎn)彎做了一個(gè)標(biāo)記,當(dāng)此次轉(zhuǎn)彎完成,就不需要轉(zhuǎn)彎了。對(duì)計(jì)算機(jī)而言,由于路口數(shù)在完成轉(zhuǎn)彎之后加上一個(gè)小數(shù),和轉(zhuǎn)彎之前的路口數(shù)不等了,就會(huì)跳出當(dāng)前循環(huán),繼續(xù)執(zhí)行巡線。

      對(duì)應(yīng)的LEGO MINDSTORMS程序如圖3所示。

      3.路口選擇算法總結(jié)

      本套算法的邏輯簡(jiǎn)潔明了,有利于數(shù)學(xué)基礎(chǔ)薄弱的中小學(xué)生理解。在實(shí)踐中,應(yīng)合理設(shè)置臨界值C和路口計(jì)數(shù)時(shí)的等待時(shí)間。若臨界值C的值過大或過小,都會(huì)導(dǎo)致路口計(jì)數(shù)功能上的缺失,使機(jī)器人不能正確地記錄經(jīng)過的路口數(shù)。若路口計(jì)數(shù)時(shí)的等待時(shí)間過長(zhǎng),會(huì)導(dǎo)致連續(xù)相近的兩個(gè)路口出現(xiàn)計(jì)數(shù)不及時(shí)的情況;若路口計(jì)數(shù)時(shí)的等待時(shí)間過短,會(huì)導(dǎo)致機(jī)器人因還未完全駛出路口而出現(xiàn)重復(fù)計(jì)數(shù)的情況。對(duì)特定路口轉(zhuǎn)彎子程序所做的小數(shù)標(biāo)記是為了避免程序陷入錯(cuò)誤循環(huán)所做的跳出操作。

      七、邊路傳感器的轉(zhuǎn)向輔助功能概述與實(shí)現(xiàn)

      在一些比賽地圖較復(fù)雜的競(jìng)賽中,會(huì)出現(xiàn)大量的銳角轉(zhuǎn)彎以及連續(xù)的S型路線,此時(shí)應(yīng)在保證機(jī)器人不“飛線”的前提下盡可能提高機(jī)器人的巡線速度。由于前面采用的單傳感器PID巡線方式,機(jī)器人巡線速度稍快就容易出現(xiàn)“飛線”的情況,此時(shí),兩個(gè)邊路傳感器的轉(zhuǎn)向輔助功能就顯得尤為重要。

      具體的做法是:同樣以子程序的方式,當(dāng)某一邊的傳感器檢測(cè)到了黑線,就讓機(jī)器人向該方向發(fā)生偏轉(zhuǎn),偏轉(zhuǎn)的角度為中路傳感器再次檢測(cè)到黑線為止,即使黑線重新處于機(jī)器人的中間位置。此時(shí)跳出該子程序,繼續(xù)執(zhí)行巡線。

      對(duì)應(yīng)的LEGO MINDSTORMS程序如圖4所示。

      八、結(jié)束語

      本文構(gòu)建的適用于中小學(xué)機(jī)器人競(jìng)賽的巡線技術(shù)模型能夠讓更多的學(xué)生掌握一種應(yīng)用于競(jìng)賽的巡線技術(shù),提高學(xué)生在競(jìng)賽中的參與度和真實(shí)水平,取得更好的成績(jī)。但該模型還存在部分尚需深入研究的問題,如PID巡線算法中每個(gè)部分的參數(shù)該如何確定,盡管已有不少文獻(xiàn)闡述了該如何確定參數(shù)部分的值,但煩瑣的推導(dǎo)過程仍舊不能為廣大中小學(xué)生所接受,后續(xù)還需要深入研究和探討。展示所用的LEGO MINDSTORMS程序并非適用于所有的中小學(xué)機(jī)器人競(jìng)賽,這里只做模型思路的其中一個(gè)具體應(yīng)用,不同的競(jìng)賽有不同的器材和編程環(huán)境要求,應(yīng)結(jié)合實(shí)際做具體的分析和實(shí)踐。

      參考文獻(xiàn):

      [1]上菲菲,劉鳳娟.欠發(fā)達(dá)地區(qū)中小學(xué)機(jī)器人教育研究——以漢中市為例[J].中國現(xiàn)代教育裝備,2018(16):63-66.

      [2]蒙慶華,藍(lán)日海,戴海清.機(jī)器人教育校本課程開發(fā)探究[J].教學(xué)與管理,2019(15):90-92.

      [3]才奕.PID控制器在樂高EV3巡線程序中的應(yīng)用[J].內(nèi)蒙古科技與經(jīng)濟(jì),2018(1):97-98,100.

      [4]任翠平,左毅鵬,盧軍.基于PID算法的巡線小車的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2016(12):251-252.

      [5]黃芹,陶云王,玉金等.中小學(xué)模塊化機(jī)器人教育探究[J].中國電化教育,2018(7):113-119.

      [6]張劍平,王益.機(jī)器人教育:現(xiàn)狀、問題與推進(jìn)策略[J].中國電化教育,2006(12):65-68.

      (編輯:王天鵬)

      猜你喜歡
      PID算法
      多軸電機(jī)同步運(yùn)動(dòng)控制器設(shè)計(jì)
      基于AVR單片機(jī)的旋轉(zhuǎn)倒立擺設(shè)計(jì)
      洞头县| 无为县| 蓝田县| 德庆县| 白水县| 北流市| 尉犁县| 锡林郭勒盟| 康平县| 阳山县| 丰原市| 和龙市| 海南省| 乐亭县| 芦溪县| 阳朔县| 嵩明县| 台中市| 花莲市| 宁津县| 渝中区| 类乌齐县| 无锡市| 高密市| 长乐市| 应城市| 五莲县| 长丰县| 湖州市| 扬中市| 台中市| 永州市| 铜陵市| 准格尔旗| 拉萨市| 高州市| 罗平县| 海阳市| 泾源县| 常宁市| 甘孜|