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 [2011/10/03 14:50]
smutny
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 \\k333\appl\robots\tools\bluebot''​\\ ​ a budete je moci používat.  +  * Python knihovnu můžete stáhnout nebo naklonovat ze stránek GitHub [[https://github.com/​petroolg/​robo-spline|robo-spline/​Pyrocon]] 
-  * Demonstrační program je v souboru "​bbdemo.m"​ +  * Demonstrační program ​ovládaní z Matlabu ​je v souboru "test/bbdemo.m"​ 
-  * K odstranění varování ​Matlabu o change notification použijte příkaz \\ " ​system_dependent DirChangeHandleWarn Never; ​+  * Demonstrační program ovládaní z Pythonu je souboru ​"test.py
-  * Při ovládání robotu ​postupujte ​takto: +  * Postupy při ovládání robotu ​jsou prakticky stejné pro oba jazyky. Lišit se budou pouze příkazy. Postupujte ​takto: 
-    * spusťte Matlab, +    * zapněte robota červeným kolébkovým vypínačem na čelním panelu řídicí jednotky ​(vypínač se rozsvítí),
-    * zapněte robota červeným kolébkovým vypínačem na čelním panelu řídicí jednotkyvypínač se rozsvítí,+
     * stiskněte žluté tlačítko Arm Power (rozsvítí se nad ním žlutá dioda),     * stiskněte žluté tlačítko Arm Power (rozsvítí se nad ním žlutá dioda),
-    * v Matlabu se spustí \\ " ​rob=bbopen('​CRS93'​) ​" ​nebo " ​rob=bbopen('​CRS97'​) ​"​\\  ​(inicializuje se komunikace z Matlabu), +    * pro zahájení komunikace a nezbytnou inicializaci spusťte příkazy: <code matlab>% Matlab  
-    * v Matlabu se spustí \\ " ​rob=bbinit(rob) "​\\  ​(robot nalezne referenční pozici), +rob=bbopen('​CRS93'​); % nebo rob=bbopen('​CRS97'​)
-    * normálně pracujete ​s robotem, +rob=bbinit(rob);</​code>​ <code python># Python 
-    * pokud chcete ​ukončit práci v Matlabu ​spustíte \\ " ​bbclose(rob) ​"​\\  ​(robot najede do referenční pozicea+rob = robCRS93() # nebo rob = robCRS97() 
 +c = Commander(rob) 
 +c.open_comm(tty_dev) 
 +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.     * 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 ​"bbrelease(rob)" ​(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 
-    * otevřte dveře klece (žlutá LED Arm Power zhasne).+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).
   * 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:
-    * odjiště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, 
-    * zmačkněte červené tlačítko Motion Stop, +    * zmáčkněte červené tlačítko Motion Stop, 
-    * zmač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á LED Err. V tom případě je třeba spustit z Matlabu příkaz: ​\\ " ​bbresetmotors(rob) ​"\\+  * 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 
 +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.   * 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