Staň se na den expertem na umělou inteligenci

Úvodem

  • Mechanika + elektronika + vnímání (senzory) + řízení + umělá inteligence = robotika.
    • Každá ze zmíněných disciplín je zajímavá sama o sobě, na FEL ČVUT se můžete naučit každé z nich.
  • Umělá inteligence má v robotice mnoho využití, například:
    • Plnit zadaný úkol, prioritizovat úkoly, detekovat nové úkoly.
    • Plánovat a vykonávat pohyb a akce tak, aby se zadaný úkol splnil.
    • Rozpoznávat, detekovat, mapovat, sbírat data.
    • Učit se, využívat nová data ke zlepšení svého chování.
    • Kooperovat a komunikovat s ostatními roboty nebo lidmi.
    • Rozhodovat se - autonomně, bez cizího zásahu.
    • Reagovat na situace, adaptovat se na změny v prostředí.
  • Na tomto stanovišti naučíme robot pohybovat se za svým cílem a zároveň reagovat na překážky a vyhýbat se jim.

Robot a jeho popis

  • Robot je složen z
    • aktuátorů (motorů, servomotorů, jiných zásahových členů),
    • senzorů (akcelerace, polohy, obrazu, tlaku, odražených paprsků, …),
    • výpočetní jednotky (Raspberry PI, Intel NUC, Arduino, …),
    • zdroje energie (baterie, solární panely, externí zdroj, …),
    • těla (LEGO, Merkur, 3D tištěné součástky, …).
  • Existuje mnoho typů mobilních robotů: Kolové, létající, kráčející, pásové, které se líší principem pohybu.

cras-robots.jpg

  • U všech mobilních robotů můžeme jejich polohu a orientaci popsat souřadnicemi vůči nějaké vztažné soustavě.
    • V našem případě vystačíme s určením polohy v rovině X a Y, orientace určená úhlem sevřeným vůči kladnému směru osy X.
  • Univerzální rychlostní příkaz (velocity command) může ovládat libovolný typ robotu, pokud pro něj existuje řídicí algoritmus, který jej dle tohoto příkazu správně rozpohybuje.
    • Náš šestinohý robot má každou nohu složenou ze tří aktuátorů, řídicí algoritmus tak generuje 18 hodnot, které se mění v čase.
Samotné generování takových signálů je možné řešit různým způsobem, např., centrálním generátorem vzorů chůze, neboť robot vlastně vykonová každou nohou stejný pohyb. (Nohu zvedá a pohybuje jí dopředu za současného posunu těla vpřed.) Základní vzor chůze (tripod gait) si můžeme představit jako střídání dvou trojic nohou tak, že těžiště robotu je vždy v podpůrném trojúhelníku, definovaném nohami, o které se robot právě opírá.

Simulace

  • Na počítačích je připraven operační systém Ubuntu se všemi potřebnými programy.
  • Přihlašte se podle přiřazeného lístečku.
  • Budeme používat robotický simulátor CoppeliaSim.
    • (Simulátor si můžete stáhnout a používat doma.)
    • Otevřete terminál, např. klávesovou zkratkou Ctrl+Alt+T.
    • Spusťte simulátor příkazem /opt/CoppeliaSim_Edu_V4_3_0_Ubuntu20_04/coppeliaSim.sh.
  • Stáhněte si podklady pro simulaci: aed23_resource_pack.zip.
    • Podklady obsahují model scény, model šestinohého robotu a skripty, které robot ovládají.
    • Rozbalte stažený zip soubor.
    • V simulátoru načtěte scénu. (FilesOpen scene…~/Downloads/aed23_resource_pack/scenes/aed23.ttt.)
  • Robot je v simulaci ovládaný skriptem v jazyce Python.
    • Otevřete druhý terminál (Ctrl+Alt+T).
    • Spusťte příkaz cd ~/Downloads/aed23_resource_pack; ./main.py.
    • Robot by nyní měl kráčet na místě.

Navigace naslepo

  • Chceme, aby robot postupně navštívil dva cílové body , zvýrazněné zelenou tečkou.
  • Robot zná svoji aktuální lokalizaci (bod R), zná svůj cíl (bod W), avšak potřebuje spočítat rychlostní příkaz.
  • Pomocí editoru otevřete skript, který definuje chování robotu.
    • /opt/VSCode-linux-x64/code ~/Downloads/aed23_resource_pack/hexapod_robot/HexapodController.py
  • Nejprve smažte return result_command na řádku 28.
  • Robot se musí otočit tak, aby šel rovně za cílem. Ve vyznačeném místě implementujte výpočet směru k cíli.

desired_heading_radian = math.atan2(dy,dx)

Reakce na překážky

  • V souboru main.py změňte typ kontroléru na goto_reactive.
  • Tento kontrolér využívá konceptu Braitenbergových vozidel.
Vozidlo 2a Vozidlo 2b Vozidlo 3a Vozidlo 3b
breitenberg_2a.jpg breitenberg_2b.jpg breitenberg_3a.jpg breitenberg_3b.jpg
Spojení excitační excitační inhibiční inhibiční
Chování strach agrese láska průzkum
Vlastnosti Štítí se stimulu. Útočí na stimul. Zastaví čelem ke stimulu. Zastaví čelem od stimulu.
  • Dálkoměrný senzor (LiDAR ) je pro nás stimulem. Čím blíže jsme k překážce, tím více nás odpuzuje.
  • Zkuste měnit různé parametry, experimentujte s různými repulsními funkcemi.

Děkujeme za pozornost

… a těšíme se na shledanou!

courses/crl-courses/aed23.txt · Last modified: 2023/03/10 07:31 by zoulamar