===== Robot CRS =====
Tento popis se týká dvou kusů robotu CRS umístěného v místnosti KNE-132, roboty jsou označeny podle dat výroby CRS93 a CRS97.
=== Popis hardwaru ===
* [[http://cmp.felk.cvut.cz/cmp/courses/ROB/labsmaterial/CRS/a465.pdf|Stručný popis a rozměrové schema robotu (PDF)]]
* [[http://cmp.felk.cvut.cz/cmp/courses/ROB/labsmaterial/CRS/Gripper_p_koty.gif|Okótované chapadlo robotu]]
* [[http://cmp.felk.cvut.cz/cmp/courses/ROB/labsmaterial/CRS/Gripper_situace.gif|Popsané chapadlo robotu]]
* {{help:common:prsty_c_93.step |Prsty pro CRS93}} (STEP formát)
* {{help:common:prsty_c_97.step |Prsty pro CRS97}} (STEP formát)
=== Řízení robotu ===
* [[http://cmp.felk.cvut.cz/cmp/courses/ROB/labsmaterial/CRS/Angles_02.gif|Definice Yaw, Pitch, Roll]] jako postupné otáčení okolo z, nové y, nové x.
* Řízení robotu - [[http://cmp.felk.cvut.cz/cmp/courses/ROB/labsmaterial/MARS8/robotdrive.pdf|blokové schema (PDF)]]
* Robot je řízen jednotkou MARS 8, popsanou v manuálu ([[http://cmp.felk.cvut.cz/~pisa/mars8/mars8_man_cz.html|HTML]], [[http://cmp.felk.cvut.cz/~pisa/mars8/mars8_man_cz.pdf|PDF]]).
* [[http://cmp.felk.cvut.cz/cmp/courses/ROB/labsmaterial/CRS/CRS-uvod.htm|Robot CRS, stručný popis]]
=== Řízení robotu z Matlabu nebo Pythonu ===
* Pro ovládání robotu lze použit Matlab Toolbox, původní verze [[help:common:bluebot_toolbox|BlueBot]], aktuální verze[[https://github.com/cvut/marocon|Marocon]] na CVUT GitHubu.
* Python knihovnu můžete stáhnout nebo naklonovat ze stránky [[https://github.com/cvut/pyrocon|Pyrocon]] na CVUT GitHubu (původní umístění GitHub [[https://github.com/petroolg/robo-spline|robo-spline/Pyrocon]] na stránkách autorky)
* Soubory přímo vidíte z v učebně instalovaných počítačů na cestě /bluebot/data/Marocon/src
nebo /bluebot/data/Pyrocon/
* Demonstrační program ovládaní z Matlabu je v souboru "test/bbdemo.m"
* Demonstrační program ovládaní z Pythonu je v souboru "test.py"
* Postupy při ovládání robotu jsou prakticky stejné pro oba jazyky. Lišit se budou pouze příkazy. Postupujte takto:
* zapněte robota červeným kolébkovým vypínačem na čelním panelu řídicí jednotky (vypínač se rozsvítí),
* stiskněte žluté tlačítko Arm Power (rozsvítí se nad ním žlutá dioda),
* pro zahájení komunikace a nezbytnou inicializaci spusťte příkazy: % Matlab
rob=bbopen('CRS93'); % nebo rob=bbopen('CRS97');
rob=bbinit(rob);
# Python
rob = robCRS93() # nebo rob = robCRS97()
c = Commander(rob)
c.open_comm(tty_dev) ???/dev/ttyUSB0 ???
c.init()
* po provedení inicializace pokračujte v práci s robotem,
* pro ukončení práci v Matlabu spusťte (robot se vrátí do pozice home) % Matlab
bbclose(rob);
# Python
c.soft_home()
c.rcon.close()
* vypněte robot červeným kolébkovým vypínačem na čelním panelu.
* Pokud chcete něco provést uvnitř ochranné klece:
* zastavte robota (vyčkejte zastavení pohybu),
* spusťte příkaz: % Matlab
bbrelease(rob);
# Python
c.release()
(robot se zabrzdí a rozpojí se zpětná vazba, rameno robotu přitom může mírně poklesnout, proto to nedělejte těsně nad podložkou),
* otevřete dveře klece (žlutá LED Arm Power zhasne).
* Pokud robot dělá něco, co nemá, okamžitě stiskněte tlačítko Emergency stop (červený hříbek).
* Návrat do původního stavu po aktivaci Emergency stop nebo po práci uvnitř klece:
* odjistěte emergency stop tlačítko (zmačknutím modrého tlačítka na boku "hříbku"), případně zavřete dveře klece,
* zmáčkněte červené tlačítko Motion Stop,
* zmáčkněte žluté tlačítko Arm Power (rozsvítí se žlutá kontrolní LED Arm Power),
* pokračujte posíláním příkazů pro pohyb robota.
* Motor se může dostat do chybového stavu, kdy nad písmenem motoru bliká zelená stavová LED a kromě toho svítí červená error LED. V tom případě je třeba spustit z Matlabu příkaz: % Matlab
bbresetmotors(rob);
# Python
c.reset_motors()
* Pokud nedojde k vypnutí řídicí jednotky, není nutné nikdy, tedy ani po stisknutí Emergency stop ani po otevření dveří klece, znovu homovat.
=== Pohyb po hladkých trajektoriích ===
* Toolbox BlueBot a knihovna Marocon obsahují funkce pro interpolace trajektorií spliny 2. a 3. řádu.
* Matlab-program demonstrující pohyb po splinech robotu CRS je v souboru "test/interp_demo.m"
* Pro demonstraci pohybu po splinech v Pythonu z příkazové řádky spusťte python test.py -a move
* Obecný postup pro interpolaci trajektorie
* Vytvořit předpis pro nějakou trajektorii v Kartézských souřadnicích (parametrickou nebo po částech lineární)
* Nasamplovat body trajektorie (s odstupem 1-5 cm)
* Převést body trajektorie do kloubových souřadnic v IRC jednotkách.
* Zavolat na body jednu ze tří funkcí pro interpolaci.
* Spočítané parametry použít pro pohyb.
=== Foto robotu ===
* [[http://cmp.felk.cvut.cz/cmp/courses/ROB/labsmaterial/CRS/CRSpredklon.png|Robot CRS v předklonu]]
* [[http://cmp.felk.cvut.cz/cmp/courses/ROB/labsmaterial/CRS/CRSpozor.png|Robot CRS v pozoru]]