Warning
This page is located in archive.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
help:common:robot_crs [2017/11/09 16:37]
petroolg [Ovládání z Matlabu]
help:common:robot_crs [2018/10/03 20:23]
smutny
Line 1: Line 1:
 ===== Robot CRS ===== ===== Robot CRS =====
-Tento popis se týká dvou kusů robotu CRS umístěného v místnosti KNE-132+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 === === Popis hardwaru ===
Line 15: Line 15:
   * [[http://​cmp.felk.cvut.cz/​cmp/​courses/​ROB/​labsmaterial/​CRS/​CRS-uvod.htm|Robot CRS, stručný popis]]   * [[http://​cmp.felk.cvut.cz/​cmp/​courses/​ROB/​labsmaterial/​CRS/​CRS-uvod.htm|Robot CRS, stručný popis]]
  
-=== Ovládání ​z Matlabu ​=== +=== Ovládání ​robotu ​=== 
-  * Robot je z Matlabu většinou řízen prostřednictvím Toolboxu ​[[help:​common:​bluebot_toolbox|BlueBot]] +  * 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 FEL GitLabu
-  * Funkce pro řízení robotu CRS jsou v adresáři:\\ \\k333\appl\robots\tools\bluebot\\ V Matlabu stačí napsat \\ ''​addpath ​ +  ​* Python knihovnu můžete stáhnout nebo naklonovat ze stránek GitHub [[https://​github.com/​petroolg/​robo-spline|robo-spline/​Pyrocon]] 
-\\k333\appl\robots\tools\bluebot''​\\ ​ a budete je moci používat.  +  * Demonstrační program ​ovládaní z Matlabu ​je v souboru "test/bbdemo.m"​ 
-  * Demonstrační program je v souboru "​bbdemo.m"​ +  * Demonstrační program ovládaní z Pythonu je souboru "​test.py"​ 
-  * K odstranění varování ​Matlabu o change notification použijte příkaz <code matlab> system_dependent DirChangeHandleWarn Never; </​code>​ +  * Postupy při ovládání robotu ​jsou prakticky stejné pro oba jazyky. Lišit se budou pouze příkazy. Postupujte ​takto: 
-  * Při ovládání robotu ​postupujte ​takto: +    * zapněte robota červeným kolébkovým vypínačem na čelním panelu řídicí jednotky (vypínač se rozsvítí), 
-    * spusťte Matlab +    * stiskněte žluté tlačítko Arm Power (rozsvítí se nad ním žlutá dioda), 
-    * zapněte robota červeným kolébkovým vypínačem na čelním panelu řídicí jednotky (vypínač se rozsvítí) +    * pro zahájení komunikace a nezbytnou inicializaci spusťte příkazy<code matlab>% Matlab  
-    * stiskněte žluté tlačítko Arm Power (rozsvítí se nad ním žlutá dioda) +rob=bbopen('​CRS93'​);​ % nebo rob=bbopen('​CRS97'​);​ 
-    * pro zahájení komunikace a nezbytnou inicializaci spusťte ​z Matlabu ​příkazy <code matlab>​rob=bbopen('​CRS93'​);​ % nebo rob=bbopen('​CRS97'​);​ +rob=bbinit(rob);​</​code>​ <code python># Python 
-rob=bbinit(rob);</​code>​ +rob = robCRS93() # nebo rob = robCRS97() 
-    * po provedení inicializace pokračujte v práci s robotem +c = Commander(rob) 
-    * pro ukončení práci v Matlabu spusťte (robot se vrátí do pozice home) <code matlab>​bbclose(rob);</​code>​ +c.open_comm(tty_dev) 
-    * vypněte robot červeným kolébkovým vypínačem na čelním panelu+c.init()</​code>​ 
 +    * 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) <code matlab>% Matlab 
 +bbclose(rob);​</​code>​ <code python># Python 
 +c.soft_home() 
 +c.rcon.close()</​code>​ 
 +    * vypněte robot červeným kolébkovým vypínačem na čelním panelu.
   * Pokud chcete něco provést uvnitř ochranné klece:   * Pokud chcete něco provést uvnitř ochranné klece:
-    * zastavte robota (vyčkejte zastavení pohybu) +    * zastavte robota (vyčkejte zastavení pohybu), 
-    * spusťte příkaz <code matlab>​bbrelease(rob);</​code>​ (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)+    * spusťte příkaz<code matlab>% Matlab 
 +bbrelease(rob);​</​code>​ <code python># Python 
 +c.release()</​code>​ (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).     * 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).   * 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:   * 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 +    * 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 červené tlačítko Motion Stop, 
-    * zmáčkněte žluté tlačítko Arm Power (rozsvítí se žlutá kontrolní LED Arm Power) +    * 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 +    * 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: <code matlab> bbresetmotors(rob);</​code>​ +  * 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: <code matlab>% Matlab 
-  * Pokud nedojde k vypnutí řídicí jednotky, není nutné nikdy, tedy ani po stisknutí Emergency stop ani po otevření dveří klece, znovu homovat+bbresetmotors(rob);​</​code>​ <code python># Python 
 +c.reset_motors()</​code>​ 
 +  * 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í splinami 2. a 3. řadů. 
 +  * 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 <code python>​python test.py -a move</​code>​  
 +  * 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-5cm) 
 +    * Převést body trajektorie na IRC 
 +    * Zavolat na body jednu ze tří funkcí pro interpolaci 
 +    * Spočítané parametry použit 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/​CRSpredklon.png|Robot CRS v předklonu]]
   * [[http://​cmp.felk.cvut.cz/​cmp/​courses/​ROB/​labsmaterial/​CRS/​CRSpozor.png|Robot CRS v pozoru]]   * [[http://​cmp.felk.cvut.cz/​cmp/​courses/​ROB/​labsmaterial/​CRS/​CRSpozor.png|Robot CRS v pozoru]]
help/common/robot_crs.txt · Last modified: 2021/11/09 13:32 by smutny