Līdz šim rakstos par algoritmiem, kas tiek izmantoti, pārvietojoties pa līniju, šāda metode tika uzskatīta, kad gaismas sensors it kā sekoja tā kreisajai vai labajai robežai: tiklīdz robots pārcēlās uz lauka balto daļu, kontrolieris atgrieza robotu uz robežas, sensors sāka virzīties dziļi melnajās līnijās - regulators to iztaisnoja atpakaļ.
Neskatoties uz to, ka iepriekš redzamais attēls ir paredzēts releja kontrollerim, vispārējais proporcionālā (P-regulatora) kustības princips būs tāds pats. Kā jau minēts, šādas kustības vidējais ātrums nav īpaši liels, un tika veikti vairāki mēģinājumi to palielināt, nedaudz sarežģījot algoritmu: vienā gadījumā tika izmantota "mīkstā" bremzēšana, otrā papildus pagriezieniem tika ieviesta kustība uz priekšu.
Lai robots varētu virzīties uz priekšu atsevišķos apgabalos, gaismas sensora radīto vērtību diapazonā tika iedalīta šaura sadaļa, ko nosacīti varētu saukt par "sensors atrodas uz līnijas robežas". Šai pieejai ir neliels trūkums - ja robots "seko" līnijas kreisajai robežai, tad labajā pagriezienā šķiet, ka tas uzreiz nenosaka trajektorijas izliekumu un rezultātā vairāk laika pavada līnijas meklējumos. un pagriežot. Turklāt var droši teikt, ka jo stāvāks pagrieziens, jo ilgāka ir šī meklēšana.
Nākamajā attēlā redzams, ka, ja sensors atrastos nevis apmales kreisajā pusē, bet gan labajā pusē, tad tas jau uztvertu trajektorijas izliekumu un sāktu veikt pagrieziena manevrus.
![]() |
![]() |
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/095_two_sensors.png)
![](https://i1.wp.com/prorobot.ru/lego/line-following-2-sensors/096_two_sensors_3_states.png)
![](https://i2.wp.com/prorobot.ru/lego/line-following-2-sensors/097_two_sensors_2_more_states.png)
- kreisais sensors, kā arī labais, atrodas virs gaišas virsmas
- kreisais sensors virs gaišas virsmas, labais sensors virs tumšās virsmas
- kreisais sensors virs tumšas virsmas, labais sensors virs gaismas
- abi sensori atrodas virs tumšās virsmas
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/098_two_sensors_possible_states.png)
- Ja abi sensori atrodas virs baltās virsmas, tad tā ir normāla situācija, kad līnija ir starp sensoriem, tāpēc robotam jādodas taisni.Ja kreisais sensors joprojām atrodas virs gaismas virsmas, bet labais sensors jau atrodas virs gaismas virsmas. tumšs, tad robots ar labo pusi uzbrauca uz līnijas, kas nozīmē, ka viņam jāpagriežas pa labi, lai līnija atkal atrastos starp sensoriem. Ja kreisais sensors atrodas virs tumšās virsmas, bet labais joprojām ir virs gaišais, tad robotam jāpagriežas pa kreisi, lai izlīdzinātu Ja abi sensori atrodas virs tumšās virsmas, tad kopumā robots atkal turpina iet taisni.
![](https://i2.wp.com/prorobot.ru/lego/line-following-2-sensors/099_two_sensors_with_moves.png)
![](https://i1.wp.com/prorobot.ru/lego/line-following-2-sensors/100_two_sens_prog01.png)
![](https://i1.wp.com/prorobot.ru/lego/line-following-2-sensors/101_two_sens_prog02.png)
![](https://i1.wp.com/prorobot.ru/lego/line-following-2-sensors/102_two_sens_prog03.png)
![](https://i2.wp.com/prorobot.ru/lego/line-following-2-sensors/103_two_sens_prog04.png)
![](https://i1.wp.com/prorobot.ru/lego/line-following-2-sensors/104_two_sens_prog05.png)
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/105_two_sens_prog06.png)
Daži atsevišķi vārdi jāsaka arī par sensoru izvietojumu uz robota. Acīmredzot uz šo divu sensoru izvietojumu attiecībā pret riteņiem attieksies tie paši ieteikumi kā vienam sensoram, tikai segmenta vidusdaļa, kas savieno divus sensorus, tiek ņemta par trijstūra virsotni. Arī pats attālums starp sensoriem ir jāizvēlas no trases īpašībām: jo tuvāk sensori atrodas viens otram, jo biežāk robots izlīdzināsies (veic salīdzinoši lēnus pagriezienus), bet, ja sensori ir izvietoti pietiekami plati. , tad pastāv risks izlidot no trases, tāpēc taisnēs nāksies veikt stingrākus pagriezienus un lēnāku kustību.
Apskatīsim vienkāršāko algoritmu, lai pārvietotos pa melnu līniju uz vienas krāsas sensora EV3.
Šis algoritms ir lēnākais, bet visstabilākais.
Robots nepārvietosies stingri pa melno līniju, bet gan pa tās robežu, griežoties vai nu pa kreisi, vai pa labi un pakāpeniski virzoties uz priekšu.
Algoritms ir ļoti vienkāršs: ja sensors redz melnu, tad robots griežas vienā virzienā, ja balts - otrā.
Ieviešana Lego Mindstorms EV3 vidē
Abos kustību blokos izvēlieties "iespējot" režīmu. Slēdzis ir iestatīts uz krāsu sensoru - mērījums - krāsa. Apakšā neaizmirstiet nomainīt "bez krāsas" uz baltu. Turklāt jums ir pareizi jānorāda visi porti.
Neaizmirstiet pievienot cilpu, bez tās robots nekur netiks.
Pārbaudiet. Lai iegūtu labākos rezultātus, mēģiniet mainīt stūres un jaudas iestatījumus.
Kustība ar diviem sensoriem:
Jūs jau zināt algoritmu robota pārvietošanai pa melno līniju, izmantojot vienu sensoru. Šodien mēs apsvērsim kustību pa līniju, izmantojot divus krāsu sensorus.
Sensori jāuzstāda tā, lai starp tiem būtu melnā līnija.
Algoritms būs šāds:
Ja abi sensori redz baltu, mēs virzāmies uz priekšu;
Ja viens no sensoriem redz baltu, bet otrs melnu, mēs pagriežamies uz melno;
Ja abi sensori redz melnu, mēs atrodamies krustojumā (piemēram, apstājieties).
Lai ieviestu algoritmu, mums ir jāseko abu sensoru rādījumiem un tikai pēc tam jāiestata robots kustēties. Lai to izdarītu, mēs izmantosim slēdžus, kas ievietoti citā slēdžā. Tādējādi mēs vispirms aptaujāsim pirmo sensoru, un pēc tam, neatkarīgi no pirmā sensora rādījumiem, mēs aptaujāsim otro sensoru, pēc kura mēs iestatīsim darbību.
Pievienojiet kreiso sensoru portam #1, labo sensoru portam #4.
Programma ar komentāriem:
Neaizmirstiet, ka mēs iedarbinām motorus režīmā "Iespējot", lai tie darbotos tik ilgi, cik nepieciešams, pamatojoties uz sensoru rādījumiem. Tāpat bieži tiek aizmirsta nepieciešamība pēc cilpas – bez tās programma uzreiz beigsies.
http://studrobots.ru/
Tā pati programma NXT modelim:
Izpētiet kustību programmu. Programmējiet robotu. Augšupielādējiet modeļa testa video
Darba teksts ievietots bez attēliem un formulām.
Pilna darba versija ir pieejama cilnē "Darba faili" PDF formātā
Lego Mindstorms EV3
Sagatavošanas posms
Programmas izveide un kalibrēšana
Secinājums
Literatūra
1. Ievads.
Robotika ir viena no nozīmīgākajām zinātnes un tehnoloģiju progresa jomām, kurā mehānikas un jauno tehnoloģiju problēmas saskaras ar mākslīgā intelekta problēmām.
Pēdējos gados robotikas un automatizēto sistēmu sasniegumi ir mainījuši mūsu dzīves personīgās un biznesa jomas. Roboti tiek plaši izmantoti transportā, zemes un kosmosa izpētē, ķirurģijā, militārajā rūpniecībā, laboratorijas pētījumos, drošībā, rūpniecisko un patēriņa preču masveida ražošanā. Par robotiem var uzskatīt arī daudzas ierīces, kas pieņem lēmumus, balstoties uz datiem, kas saņemti no sensoriem – tādi, piemēram, lifti, bez kuriem mūsu dzīve jau nav iedomājama.
Mindstorms EV3 konstruktors aicina iekļūt aizraujošajā robotu pasaulē, iegremdēties sarežģītajā informācijas tehnoloģiju vidē.
Mērķis: iemācīties ieprogrammēt robotu kustēties pa taisnu līniju.
Iepazīsties ar Mindstorms EV3 konstruktoru un tā programmēšanas vidi.
Uzrakstiet programmas robota kustībai taisnā līnijā 30 cm, 1 m 30 cm un 2 m 17 cm.
Mindstorms EV3 konstruktors.
Dizaineru daļas - 601 gab., servomotors - 3 gab., krāsu sensors, kustības sensors, infrasarkanais sensors un pieskāriena sensors. EV3 mikroprocesora bloks ir LEGO Mindstorms smadzenes.
Par robota kustību ir atbildīgs liels servomotors, kas savienojas ar EV3 Brick un liek robotam kustēties: iet uz priekšu un atpakaļ, apgriezties un braukt pa noteiktu trajektoriju. Šim servomotoram ir iebūvēts rotācijas sensors, kas ļauj ļoti precīzi kontrolēt robota kustību un tā ātrumu.
Varat likt robotam veikt kādu darbību, izmantojot EV3 programmatūru. Programma sastāv no dažādiem vadības blokiem. Strādāsim ar kustību bloku.
Kustības bloks vada robota motorus, ieslēdz, izslēdz, liek darboties atbilstoši uzdevumiem. Jūs varat ieprogrammēt kustību uz noteiktu apgriezienu skaitu vai grādiem.
Sagatavošanas posms.
Tehniskās jomas izveide.
Atzīmēsim robota darba lauku, izmantojot elektrisko lenti un lineālu izveidosim trīs līnijas 30 cm garumā - zaļu līniju, 1 m 15 cm - sarkanu un 2 m 17 cm - melnu līniju.
Nepieciešamie aprēķini:
Robota riteņa diametrs - 5 cm 7 mm = 5,7 cm.
Viens robota riteņa apgrieziens ir vienāds ar apļa apkārtmēru, kura diametrs ir 5,7 cm. Apkārtmēru nosaka pēc formulas
Kur r ir riteņa rādiuss, d ir diametrs, π = 3,14
l = 5,7 * 3,14 = 17,898 = 17,9.
Tie. Uz vienu riteņa apgriezienu robots nobrauc 17,9 cm.
Aprēķiniet apgriezienu skaitu, kas nepieciešams, lai izietu:
N = 30: 17,9 = 1,68.
1m 30cm = 130cm
N = 130: 17,9 = 7,26.
2 m 17 cm = 217 cm.
N = 217: 17,9 = 12,12.
Programmas izveide un kalibrēšana.
Mēs izveidosim programmu pēc šāda algoritma:
Algoritms:
Programmatūrā Mindstorms EV3 atlasiet kustības bloku.
Ieslēdziet abus motorus norādītajā virzienā.
Pagaidiet, līdz viena motora rotācijas sensora rādījums mainīsies uz norādīto vērtību.
Izslēdziet motorus.
Gatavā programma tiek ielādēta robota vadības blokā. Noliekam robotu uz lauka un nospiežam starta pogu. EV3 brauc pāri laukam un apstājas noteiktās līnijas beigās. Bet, lai iegūtu precīzu apdari, ir jāveic kalibrēšana, jo ārējie faktori ietekmē kustību.
Laukums ierīkots uz studentu galdiem, tāpēc iespējama neliela virsmas izliece.
Laukuma virsma ir gluda, tāpēc nav izslēgta robota riteņu slikta saķere ar lauku.
Aprēķinot apgriezienu skaitu, mums bija jānoapaļo skaitļi, un tāpēc, mainot apgriezienu simtdaļas, mēs sasniedzām nepieciešamo rezultātu.
5. Secinājums.
Spēja ieprogrammēt robotu kustēties pa taisnu līniju noderēs sarežģītāku programmu veidošanā. Robotikas sacensību nolikumā parasti ir norādīti visi kustību izmēri. Tie ir nepieciešami, lai programma netiktu pārslogota ar loģiskiem nosacījumiem, cilpām un citiem sarežģītiem vadības blokiem.
Nākamajā iepazīšanās posmā ar Lego Mindstorms EV3 robotu uzzināsiet, kā programmēt pagriezienus noteiktā leņķī, kustību pa apli, spirāles.
Ir ļoti interesanti strādāt ar dizaineri. Uzzinot vairāk par tā iespējām, jūs varat atrisināt visas tehniskas problēmas. Un nākotnē, iespējams, izveidojiet savus interesantus Lego Mindstorms EV3 robota modeļus.
Literatūra.
Koposovs D. G. "Pirmais solis robotikā 5.-6. klasei." - M.: Binoms. Zināšanu laboratorija, 2012 - 286 lpp.
Filippovs S. A. "Robotika bērniem un vecākiem" - "Zinātne" 2010
Interneta resursi
http://lego. rkc-74.ru/
http://www.9151394.ru/projects/lego/lego6/beliovskaya/
http://www. lego. com/education/
Viena no pamata kustībām legokonstrukcijā ir sekošana melnajai līnijai.
Vispārīgā teorija un konkrēti programmas izveides piemēri ir aprakstīti vietnē wroboto.ru
Es aprakstīšu, kā mēs to ieviešam EV3 vidē, jo ir atšķirības.
Pirmā lieta, kas robotam jāzina, ir “ideālā punkta” vērtība, kas atrodas uz melnā un baltā robežas.
Sarkanā punkta atrašanās vieta attēlā tieši atbilst šai pozīcijai.
Ideāls aprēķina variants ir izmērīt melnbalto vērtību un ņemt vidējo aritmētisko.
To var izdarīt manuāli. Bet mīnusi ir redzami uzreiz: pat īsā laikā apgaismojums var mainīties, un aprēķinātā vērtība izrādīsies nepareiza.
Tātad jūs varat likt robotam to izdarīt.
Eksperimentu gaitā noskaidrojām, ka nav nepieciešams mērīt gan melno, gan balto. Var izmērīt tikai balto. Un ideālā punkta vērtību aprēķina kā balto vērtību dalītu ar 1,2 (1,15), atkarībā no melnās līnijas platuma un robota ātruma.
Aprēķinātā vērtība ir jāieraksta mainīgajā, lai tai piekļūtu vēlāk.
“Ideālā punkta” aprēķins
Nākamais kustībā iesaistītais parametrs ir pagrieziena attiecība. Jo lielāks tas ir, jo asāk robots reaģē uz apgaismojuma izmaiņām. Taču pārāk liela vērtība izraisīs robota šūpošanos. Vērtība tiek eksperimentāli izvēlēta individuāli katram robota dizainam.
Pēdējais parametrs ir motoru bāzes jauda. Tas ietekmē robota ātrumu. Kustības ātruma palielināšanās palielina robota reakcijas laiku uz apgaismojuma izmaiņām, kas var izraisīt novirzīšanos no trajektorijas. Vērtība tiek izvēlēta arī eksperimentāli.
Ērtības labad šos parametrus var ierakstīt arī mainīgajos.
Stūres attiecība un bāzes jauda
Pārvietošanās pa melno līniju loģika ir šāda: tiek mērīta novirze no ideālā punkta. Jo lielāks tas ir, jo spēcīgāk robotam jācenšas tajā atgriezties.
Lai to izdarītu, mēs aprēķinām divus skaitļus - katra motora B un C jaudas vērtību atsevišķi.
Formulas formā tas izskatās šādi:
Kur Isens ir gaismas sensora rādījumu vērtība.
Visbeidzot, ieviešana EV3. Visērtāk ir izsniegt atsevišķa bloka veidā.
Algoritma realizācija
Šis ir algoritms, kas tika ieviests vidējās kategorijas WRO 2015 robotā
Šis uzdevums ir klasisks, idejiski vienkāršs, to var atrisināt daudzas reizes, un katru reizi atklāsi ko jaunu.
Ir daudzas pieejas, lai atrisinātu sekojošo problēmu. Viena no tām izvēle ir atkarīga no konkrētā robota konstrukcijas, no sensoru skaita, to izvietojuma attiecībā pret riteņiem un vienam pret otru.
Mūsu piemērā trīs robotu piemēri tiks izjaukti, pamatojoties uz galveno Robot Educator apmācības modeli.
Sākumā mēs saliekam Robot Educator pamata modeli, šim nolūkam varat izmantot MINDSTORMS EV3 programmatūrā sniegtos norādījumus.
Tāpat, piemēram, mums ir nepieciešami EV3 gaismas krāsu sensori. Šie gaismas sensori, kā neviens cits, ir vislabāk piemēroti mūsu uzdevumam, strādājot ar tiem, mums nav jāuztraucas par apkārtējās gaismas intensitāti. Šim sensoram programmās izmantosim atstarotās gaismas režīmu, kurā tiek novērtēts sensora sarkanā apgaismojuma atstarotās gaismas daudzums. Sensoru rādījumu robežas ir attiecīgi 0 - 100 vienības "bez atstarošanas" un "pilnīga atstarošana".
Piemēram, mēs analizēsim 3 programmu piemērus, lai pārvietotos pa melnu ceļu, kas attēlots uz vienmērīga, gaiša fona:
· Viens sensors ar P regulatoru.
· Viens sensors, ar PK regulatoru.
· Divi sensori.
1. piemērs. Viens sensors ar P regulatoru.
Dizains
Gaismas sensors ir uzstādīts uz stara, kas ērti atrodas modelī.
Algoritms
Algoritma darbība balstās uz to, ka atkarībā no pārklāšanās pakāpes, sensora apgaismojuma stars ar melnu līniju, sensora atgrieztie rādījumi mainās gradientā. Robots saglabā gaismas sensora pozīciju uz melnās līnijas robežas. Pārveidojot gaismas sensora ievades datus, vadības sistēma ģenerē robota pagrieziena ātruma vērtību.
Tā kā uz reālas trajektorijas sensors ģenerē vērtības visā savā darbības diapazonā (0-100), vērtība, uz kuru robots tiecas, ir 50. Šajā gadījumā vērtības, kas tiek pārraidītas uz rotācijas funkciju, tiek veidotas diapazonā. -50 - 50, taču ar šīm vērtībām nepietiek stāvai trajektorijas rotācijai. Tāpēc diapazons ir jāpaplašina pusotru reizi līdz -75 - 75.
Visbeidzot, programmā kalkulatora funkcija ir vienkāršs proporcionālais kontrolieris. kura funkcija ( (a-50)*1,5 ) gaismas sensora darbības diapazonā ģenerē rotācijas vērtības saskaņā ar grafiku:
Algoritma piemērs
2. piemērs. Viens sensors ar PK kontrolieri.
Šis piemērs ir apkopots uz tā paša dizaina.
Jūs droši vien pamanījāt, ka iepriekšējā piemērā robots pārāk daudz šūpojās, kas neļāva tam pietiekami paātrināties. Tagad mēs mēģināsim šo situāciju nedaudz uzlabot.
Mūsu proporcionālajam kontrollerim mēs pievienojam arī vienkāršu kuba kontrolieri, kas papildinās kontroliera funkciju. Tas samazinās robota šūpošanos vēlamās trajektorijas robežas tuvumā, kā arī veiks spēcīgākus grūdienus lielā attālumā no tā.