Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

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