Jeffrey Cross
Jeffrey Cross

Početnička robotika: Razumijevanje rada jednostavnih senzora

Da bi se robot doista smatrao robotom, on mora biti sposoban osjetiti i utjecati na svoje okruženje. Zato su senzori toliko bitni za robotiku, a razumijevanje kako ih koristiti da bi robot učinio pametnim, od vitalne je važnosti za svakog robotičara. Nedavno sam pokrenuo Kickstarter i zapravo dajemo besplatne senzore sa svakim kompletom koji prodajemo, pa ga provjerite ovdje prije nego što završi!

U ovom Graditelju vještina vodit ću vas kroz operaciju robota koja se zove sense> think> act. To je operacija koja se široko koristi u robotici i izvrsno je mjesto za početak razumijevanja programiranja robota. Zaronimo u…

Odabir senzora

Dostupan je onoliko senzora koliko ima fizičkih stvari koje treba osjetiti, ali upotrijebimo HC-SR04 ultrazvučni senzor udaljenosti jer je jeftin, jednostavan i široko korišten u robotici (također ima vrlo zgodnu Arduino knjižnicu).

Definiranje modela robota

Ovaj senzor može otkriti udaljenosti, pa počnimo s jednostavnim robotom koji izbjegava sudare. Ovaj robot može se kretati naprijed i natrag i okretati se na licu mjesta u oba smjera. S prednje strane robota nalazi se senzor udaljenosti. Sada kada smo definirali našeg robota, počnimo s razmatranjem kako se ponašati.

Što je Sense, Think, Act?

Sense, Think, Act je odluka petlja koja se može koristiti za rješavanje mnogih robotskih problema, i to je iznimno jednostavan. U tom slučaju robot mora osjetiti ako ima bilo kakvih prepreka ispred njega. Zatim mora razmisliti može li krenuti naprijed, ili treba li se okrenuti ili preokrenuti, nakon čega će djelovati na tu odluku. Ta ista logika može se primijeniti na bilo kojeg robota, s bilo kojim senzorom za gotovo svako ponašanje.

Da bismo to pretvorili u kod koji možemo pisati za kontrolu robota, moramo biti određeniji. Napravimo jednostavno ponašanje robota kako slijedi ...

  1. Robot osjeća ako je bilo koja prepreka manja od 3 cm ispred.
  2. Ako nema prepreke, ona se kreće naprijed.
  3. Ako postoji prepreka, ona se vraća unatrag.

To bi bilo vrlo lako prevesti u kod, međutim, možda ćete shvatiti da bi to rezultiralo time da se robot "zaglavio" oscilirajući kad je dosegnuo zid. Pomicala bi se naprijed dok ne bi otkrila zid, a zatim se pomaknula unatrag sve dok to ne bi učinilo, a zatim ponovno naprijed i tako dalje. Izmijenimo ponašanje na sljedeći način.

  1. Robot osjeća ako je bilo koja prepreka manja od 3 cm ispred.
  2. Ako nema prepreke, ona se kreće naprijed.
  3. Ako postoji prepreka, skreće lijevo, a zatim natrag na korak 1.

To će se nastaviti sve dok robot ne pronađe smjer koji nema zid unutar 3 cm.

Sada imamo smisleni, misleći, djelujući model koji bi zapravo mogao pomoći našem robotu da izbjegne prepreke. To nije osobito sofisticirani model i mogli bismo dodati mnogo složenosti kako bismo poboljšali izbjegavanje prepreka.

Čak i sa jednostavnim robotom, vrlo složenim smislom mogu se osmisliti modeli koji stvaraju vrlo pametna ponašanja. To je bit robotike - pametna u softveru!

Naše sadašnje ponašanje je malo neučinkovito jer robot mora skrenuti lijevo tri puta, samo da skrene desno. Izmijenimo svoje ponašanje na sljedeći način, kao četvrti korak da slijedimo tri gore navedena koraka:

4. Ako postoji prepreka, skreće lijevo, a zatim natrag na korak 1.

  1. Robot osjeća ako je bilo koja prepreka manja od 3 cm ispred.
  2. Ako nema prepreke, ona se kreće naprijed.
  3. Ako postoji prepreka, skreće lijevo i ponovno osjeća.
  4. Ako nema prepreke, ona se pomiče naprijed i petlja se ponovno postavlja.
  5. Ako postoji prepreka, ona se ponovno okreće udesno i osjetila.
  6. Ako nema prepreke, ona se pomiče naprijed i petlja se ponovno postavlja.
  7. Ako postoji prepreka, robot se okreće udesno dok ne bude prepreke.

Sada će naš robot provjeriti oba smjera da vidi ima li zida, što znači da će se robot kretati učinkovitije. Primijetite kako čak i jednostavno ponašanje počinje biti složenije za ilustraciju, ali ako o takvom ponašanju mislimo kao o nizu smisla, razmišljanja, djelovanja, onda postaje mnogo lakše razumjeti!

I tu imate. Uzeli smo vrlo jednostavan slučaj Sense, Think, Act ponašanja i razradili ga u radni program izbjegavanja prepreka. To bi bio vrlo jednostavan zadatak prevesti to ponašanje u kod i početi se igrati s robotikom! I naravno, možete dodati više senzora udaljenosti, pa čak i različitih tipova senzora kako bi ponašanje bilo još sofisticiranije. Samo zapamtite da ga podijelite u Sense, Think, Act i moći ćete to riješiti. I naravno, ako tražite robotski komplet koji uključuje tone slobodnih senzora, pogledajte naš Kickstarter!

Udio

Ostavite Komentar