Lego Spike Prime Līnijsekotāju Meistarklase
Sensoru kalibrēšana
Sāksim ar kalibrēšanu
Lai robots precīzi sekotu līnijai, tam vispirms ir "jāiemācās redzēt". Mūsu acis un smadzenes automātiski pielāgojas dažādiem apgaismojuma apstākļiem, bet robotam tas ir jāiemāca. Šo procesu sauc par kalibrēšanu.
Galvenais rīks šajā uzdevumā ir krāsu sensors, kas mēra (Reflected Light Intensity). Tas ir skaitlis, kas parāda, cik daudz gaismas no sensora iebūvētās lampiņas atstarojas atpakaļ. Balta virsma atstaro daudz gaismas (liels skaitlis), savukārt melna līnija gaismu absorbē (mazs skaitlis). Problēma ir tā, ka šie skaitļi mainās atkarībā no istabas apgaismojuma. Kalibrēšana ļauj robotam noteikt konkrētās "melnā" un "baltā" vērtības tieši pirms braukšanas.
Melns, balts un viss pa vidu
Kalibrēšanas procesā mums ir jānosaka divas galējās vērtības: minimālā gaismas intensitāte (kad sensors ir virs melnās līnijas) un maksimālā (kad tas ir virs baltā laukuma). Lai saglabātu šīs vērtības, mēs izmantosim mainīgos – nosauksim tos par melns un balts.
Process ir vienkāršs:
- Novietojiet sensoru tieši virs melnās līnijas.
- Nolasiet sensora rādījumu un saglabājiet to mainīgajā
melns. - Novietojiet sensoru tieši virs baltā laukuma blakus līnijai.
- Nolasiet sensora rādījumu un saglabājiet to mainīgajā
balts.
Spike Prime vidē tas izskatītos apmēram šādi:
# Izveidojam mainīgos, lai saglabātu vērtības
set melns to (color sensor reflected light)
set balts to (color sensor reflected light)
Sliekšņa aprēķināšana
Kad mums ir zināmas melnās un baltās krāsas vērtības, ir jāatrod viduspunkts. Šo viduspunktu sauc par (threshold). Tas ir lēmuma pieņemšanas punkts: ja sensora rādījums ir zemāks par slieksni, robots uzskata, ka atrodas uz melnās līnijas. Ja rādījums ir augstāks, tas atrodas uz baltā laukuma.
Slieksni aprēķina, saskaitot abas vērtības un izdalot ar divi. Šo rezultātu mēs saglabāsim jaunā mainīgajā ar nosaukumu slieksnis.
Ja sensora rādījums ir lielāks par slieksni, mēs esam uz baltā. Ja mazāks – uz melnā. Tieši tik vienkārši.
Spike Prime vidē šī darbība izskatās šādi:
# Aprēķinām slieksni, izmantojot iepriekš saglabātās vērtības
set slieksnis to ((melns + balts) / 2)
Tagad, kad kalibrēšana ir pabeigta un slieksnis ir aprēķināts, robots ir gatavs pieņemt lēmumus. Visos turpmākajos algoritmos mēs salīdzināsim pašreizējo sensora rādījumu ar šo vienu skaitli, lai saprastu, kur tas atrodas.
Kas ir kalibrēšana robota līnijas sekošanas kontekstā?
Kādu vērtību mēra krāsu sensors, lai atšķirtu melnu līniju no balta laukuma?
Precīza kalibrēšana ir pamats veiksmīgam līnijsekotājam. Nākamajā sadaļā mēs izmantosim šo sliekšņa vērtību, lai izveidotu pirmo vienkāršo līniju sekošanas algoritmu.
