ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Podobné dokumenty
Simulace v programu v-rep ovládané přes Spyder v jazyce python.

František Hudek. duben 2013

OBSAH. Stránka 1 z 11 INSTALACE THINPRINT RDP V POČÍTAČI KLIENTA STAŽENÁ Z WEBU 2

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

NÁVOD PRO PŘIPOJENÍ NA FTP SERVER PRO PŘENOS TISKOVÝCH DAT

Software pro vzdálenou laboratoř

Instalace a první spuštění Programu Job Abacus Pro

S2. Vytvoření Windows balíku pro vývoj na STM32 architektuře

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž.

Simluátor Trilobota. (projekt do předmětu ROB)

SDC aplikace. Podrobný návod na zprovoznění RS485 RTS vysílače

Matematika v programovacích

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Instalace ThinPrint RDP v počítači klienta s operačním systémem Windows (x86 nebo x64)

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

Nápověda k aplikaci EA Script Engine

NAS 323 NAS jako VPN Server

AIDA64 Extreme. Příručka k nastavení. v

ELEKTRONICKÉ PODÁNÍ OBČANA

Přechod na síťovou verzi programu

Rocrail. Nejprve: Obecný úvod. Instalace

Popis vývodů desek, jejich zapojování a spárování robota

František Hudek. červen ročník

Sada 1 CAD Stažení a instalace výukového SW firmy Autodesk

.NET Framework verze Program pro připojení ke vzdálené ploše (RDC) verze

SDC aplikace - návod k instalaci. Somfy Digital Control application

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Business Edition, ESET Remote Administrator

PROGRAM QUICK READER JE VE FÁZI CERTIFIKACE PRO POUŽITÍ SE ZAŘÍZENÍM SAVVY EKG.

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

Instrukce pro vzdálené připojení do učebny 39d

Postup získání licence programu DesignBuilder v4

Controlweb. Úvod. Specifikace systému

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Návod na stažení a instalaci programu Statistica. Návod na prodloužení programu Statistica. Upgrade z verze ENG 13 na 13.2

TECHNICKÁ PODPORA. Systémové požadavky Instalace Licencování a aktivace Náplň technické podpory Formy předplatného Kontakty

Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2

Ing. Michal Martin. Spojení PLC CLICK s NA-9289

ABRA Software a.s. ABRA on- line

Excel a externí data KAPITOLA 2

Robot BBC Micro:bit kódovaní v PXT Editoru

GX Remote Control - popis instalace

APS Administrator.GS

MIDAM Simulátor Verze 1.5

Úvod do programovacího jazyka Python

[Zadejte název společnosti.] Instalace. SOFTWARE 5P pro správu bytového fondu Oldřich Florian

C2184 Úvod do programování v Pythonu podzim Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita. Úvod.

simotion SIMOTION D435 a SINAMICS S120 praktická ukázka

Instalace MS SQL Server Express a MS SQL Server Management Express

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Úvod do programovacího jazyka Python

Použití programu uscope k simulaci výukového přípravku pro předmět PMP

Instalace SQL 2008 R2 na Windows 7 (64bit)

Návod připojení a základní práce s programem RT ToolBox

KP KP KP DIAGNOSTIKA KOTLŮ KP

BRICSCAD V15. Licencování

Vytvoření tiskové sestavy kalibrace

TACHOTel manuál 2015 AURIS CZ

Pro další je postup je důležité zjistit IP adresu zařízení. Její zjištění můžeme provést např. následovně:

Datavsuchu.cz zálohovací klient Microsoft Windows Instalační návod

MS OFFICE MS WORD. Editor rovnic - instalace

ZÁKLADNÍ POKYNY PRO INSTALACI PROID+ Z INSTALAČNÍHO MÉDIA

Kerio Administration Console

17. července :51 z moravec@yahoo.com

NÁVOD K POUŽITÍ. IP kamerový systém. Aplikace pro tablety a telefony: SW pro instalaci v PC můžete stáhnout zde:

Evidence majetku a Windows 8

Nastavení služby T-Mobile GPRS. pro přístup na Internet z počítače s operačním systémem Windows

1. Diagnostika kotle prostřednictvím řídící jednotky

PROPOJENÍ EASY-OPC SERVER A MICROSOFT EXCEL

Vložení expiračního kódu do spojů ALCOMA

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

NAS 208 WebDAV bezpečné sdílení souborů

3MA481 Propojení Accessu a Excelu David Hach

SDC aplikace - návod k instalaci. Somfy Digital Control application

Vstupní požadavky, doporučení a metodické pokyny

Střední odborná škola a Střední odborné učiliště, Hořovice

Instalace a konfigurace web serveru. WA1 Martin Klíma

Vložení expiračního kódu do spojů ALCOMA

Konfigurace Windows 7

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

Aplikace BSMS. Uživatelská příručka - 1 -

Krok č. 1. SAGEM 840. ADSL USB modem. Jednoduchý instalační návod

AUTOMATICKÉ ŘÍZENÍ S INTERNETOVOU KOMUNIKACÍ V PHP Automatic Control with Internet Communication in PHP

Automatické testování softwaru. Testujte svůj kód! Předpoklady: Příklad: sum_digits() Možnost 1: Zkusíme funkci použít v konzoli Pythonu.

XTB VPS. XTB Virtual Private Server manuál

1. POSTUP INSTALACE A KONTROLA NASTAVENÍ MICROSOFT SQL SERVERU 2005 EXPRESS:

Nápověda a postupy. Instalace a aktivace PDF-XChange Viewer Pro. Instalace a aktivace software. Nápověda a postupy. 1 z

Obrázek 3.1: Náhled konstrukce podsedáku

INSTALACE DATABÁZE ORACLE A SYSTÉMU ABRA NA OS WINDOWS

Instalace modemu AnyDATA ADU-770WH na Mac OS X

Signalizace a ovládací prvky. Konektory a připojení

Soft-PLC systémy ICP DAS se softwarem ISaGRAF

Instalace Microsoft SQL serveru 2012 Express

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Instrukce pro vzdálené připojení do učebny 39d

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Transkript:

FAKULTA STROJNÍ - Ústav přístrojové a řídicí techniky Propojení Pythonu a softwaru V-REP Ročník: 4 (zimní semestr) Rok: 2016 Jméno a příjmení Vojtěch Kadlec

Obsah ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Úvod... 3 1. Instalace softwaru a vývojové prostředí... 4 2. Propojení Pythonu s V-REPem... 4 2.1. Vytvoření scény ve V-REPu... 4 2.2. Spyder (python)... 6 2.2.1. Kód pro propojení... 6 2.2.2. Pohyb robota... 7 2.2.3. Kompletní kód... 10 3. Závěr... 11 2

Úvod V této seminární práci se budeme zabývat propojením softwaru V-REP s Pythnem. Python je vysokoúrovňový skriptovací programovací jazyk. Je vyvíjen jako open source projekt, který zdarma nabízí instalační balíky pro většinu běžných platforem (Unix, Windows, Mac OS). V-REP je robotický simulátor s integrovaným vývojovým prostředím. Každý model/objekt může být individuálně ovládán pomocí vloženého scriptu, pluginu, vzdáleného klienta API nebo vlastním řešením. Díky tomu je V-REP velmi univerzální. Řízení robotů pak může být napsáno v jazycích C/C++, Python, Java, Lua, Matlab nebo Octave. Pro jednoduché znázornění si nejprve projdeme, jak V-REP s Pythnem propojit a následně, po vytvoření jednoduché scény, rozhýbáme robota jednotlivými příkazy. 3

1. Instalace softwaru a vývojové prostředí Python je možné stáhnout zdarma přímo od výrobce, protože se jedná o open source. Na oficiálních stránkách v záložce Download si můžeme vybrat verzi pythonu. Pro naše účely se bude více hodit verze 2.7.13. http://www.python.org Také si ale Python můžeme stáhnou jako součást již připraveného balíčku, v kterém se mimo jiné nachází mnoho potřebných knihoven a software s vývojovým prostředím. Takovými jsou například Anaconda, WinPython nebo Python(x,y). (Při vybírání instalačního balíčku je třeba dbát na správnou bitovou verzi. Po zkušenosti je lepší použít 32-bitovou verzi, která dokáže bez problému komunikovat s V-REPem.) V-REP je možné stáhnou také přímo z oficiálních stránek. Pro naše účely bude stačit neomezená volná verze pro vzdělávání. V-REP PRO EDU V3.3.2 rev3 http://www.coppeliarobotics.com/download.html 2. Propojení Pythonu s V-REPem Po úspěšné instalaci obou těch to prvků zkopírujeme obsah složky umístěné zde C:\Program Files\V-REP3\V-REP_PRO_EDU\programming\remoteApiBindings\python\python do námi vytvořené složky např. myvrep. Další soubor, který je zapotřebí zkopírovat do naší složky, se nachází zde C:\Program Files\V-REP3\V- REP_PRO_EDU\programming\remoteApiBindings\lib\lib\32Bit. Tímto jsme si připravili základ pro propojení. 2.1. Vytvoření scény ve V-REPu Ve V-REPu vytvoříme jednoduchou scénu viz obrázek 2.1. Scéna. Parametry objektů: Robot PhantomPincher Kvádrová stojna 2x (větší) X: 0.2m (Rozměry v daných osách) Y: 0.2m Z: 0.7m 4

Kvádrová stojna 1x (menší) X: 0.2m Y: 0.2m Z: 0.5m Přenášená krychle 1x X,Y,Z: 0.035m 2.1. Scéna Každý robot v základní sadě V-REPu má přidělený základní skript, díky kterému se nějak pohybuje. To je ovšem pro nás v tuto chvíli nežádoucí, protože mi chceme, aby se robot hýbal dle našeho scriptu, který budeme psát v Pythonu. Poroto je zapotřebí tyto základní skripty vypnout, to zajistíme ve V-REPu tak, že v levé části programu poklepeme na Scripts ( ) a v další nabídce vybereme skripty, které chceme vypnout (zaškrtnou políčko 5

Disabled). To tedy provedeme u těchto skriptů: Threaded child script (PhantomXPincher), Non-threaded child script (PhantomXPincher_gripperClose_joint). Posledním krokem ve V-REPu bude vložit regular API functions simextremoteapistart(19999) do naší scény. Pro vložení funkce musíme přidělit nějakému objektu v naší scéně skript. Například kameře, která snímá naši scénu. (Pravým tlačítekem poklepene na kameru v seznamu > Add > Associated child script > Threaded child script). Funkci do skriptu vložíme dle obrázku 2.1. Threaded child script (Default Camera). Aby propojení fungovalo, musíme spustit simulaci a nechat ji běžet. 2.1. Threaded child script (Default Camera) 2.2. Spyder (python) 2.2.1. Kód pro propojení Nyní si otevřeme software Spyder, který je součástí jednoho z instalačních balíčků viz. výše. Nový soubor uložíme do naší složky a pojmenujeme ji např. pythonvrep.py. Následně můžeme začít psát samotný kód. Nejprve naimportujeme knihovnu vrep a knihovnu systémových specifických parametrů a funkcí (sys). Modul sys obsahuje informace o konstantech, funkcích a metod Python interpret. import vrep import sys 6

Dále vložíme část kódu pro připojení: vrep.simxfinish(-1) # tato funkce nám uzavře všechny otevřené spoje clientid=vrep.simxstart('127.0.0.1',19999,true,true,5000,5) # Připojení do V-REPu if clientid!=-1: print ('Připojeno') else: print ('Nepřipojeno') sys.exit('nemohl se připojit') Pro správné fungování V-REPovských funkcí je třeba k nim psát předponu vrep.daná funkce. vrep.simxstart funkce pro navázání spojení s V-REP serverem. (IP adresa, kde je server umítěn; číslo portu pro připojení; pokud bude zapsáno TRUE, funkce vyčká než proběhne připojení nebo po zadanou dobu (5000); doba vyčkávání; počet opakování připojování (5)). Díky odpovědi z následujícímu ifu zjistíme, zda jme připojeni či nikoliv. 2.2.2. Pohyb robota Načtení jednotlivých proměnných robota, díky kterým budeme moci pohybovat s robotem. errorcode,rk1=vrep.simxgetobjecthandle(clientid,'phantomxpincher_joi nt1',vrep.simx_opmode_oneshot_wait) # Pohyb kloubu č.1 errorcode,rk2=vrep.simxgetobjecthandle(clientid,'phantomxpincher_joi nt2',vrep.simx_opmode_oneshot_wait) # Pohyb kloubu č.2 errorcode,rk3=vrep.simxgetobjecthandle(clientid,'phantomxpincher_joi nt3',vrep.simx_opmode_oneshot_wait) # Pohyb kloubu č.3 errorcode,rk4=vrep.simxgetobjecthandle(clientid,'phantomxpincher_joi nt4',vrep.simx_opmode_blocking) # Pohyb kloubu č.4 7

errorcode,rcc=vrep.simxgetobjecthandle(clientid,'phantomxpincher_gri pperclose_joint',vrep.simx_opmode_oneshot_wait) # Pohyb čelistí vrep.simxgetobjecthandle funkce, díky které načteme informaci o části objektu do naší proměnné (clientid vychází z funkce simxstart; název objektu; operační mód (viz. doporučené hodnoty: http://www.coppeliarobotics.com/helpfiles/en/remoteapifunctionspython.htm )) # 1. Sada příkazů pro uchopení kostky vrep.simxsetjointtargetvelocity(clientid,r1cc,0.02,vrep.simx_opmode_ streaming) # Otevření čelistí vrep.simxsetjointtargetposition(clientid,r1k2,0.5,vrep.simx_opmode_s treaming) # Pohyb kloubu č.2 vrep.simxsetjointtargetposition(clientid,r1k4,- 0.7,vrep.simx_opmode_streaming) # Pohyb kloubu č.4 vrep.simxsetjointtargetposition(clientid,r1k3,1.9,vrep.simx_opmode_s treaming) # Pohyb kloubu č.3 vrep.simxsetjointtargetvelocity(clientid,r1cc,- 1,vrep.simx_opmode_streaming) # Sevření čelistí (kostky) # 2. Sada příkazů pro přenesení kostky vrep.simxsetjointtargetposition(clientid,r1k2,- 0.5,vrep.simx_opmode_streaming) vrep.simxsetjointtargetposition(clientid,r1k4,0.7,vrep.simx_opmode_s treaming) vrep.simxsetjointtargetposition(clientid,r1k3,- 1.9,vrep.simx_opmode_streaming) # 3. Sada příkazů pro uvolnění kostky a navrácení robota do původní polohy vrep.simxsetjointtargetvelocity(clientid,r1cc,1,vrep.simx_opmode_str eaming) # Otevření čelistí (uvolnění kostky vrep.simxsetjointtargetposition(clientid,r1k2,0,vrep.simx_opmode_str eaming) vrep.simxsetjointtargetposition(clientid,r1k4,0,vrep.simx_opmode_str eaming) 8

vrep.simxsetjointtargetposition(clientid,r1k3,0,vrep.simx_opmode_str eaming) vrep.simxsetjointtargetposition funkce, která určuje pozici natočení kloubu (clientid vychází z funkce simxstart; název proměnné,kloubu; pozice; operační mód) vrep.simxsetjointtargetvelocity funkce, která určuje pozici/rychlost otevírání/zavíraní čelistí (clientid vychází z funkce simxstart; název proměnné,kloubu; pozice; operační mód) Pro správný pohyb robota je zapotřebí zadat sady příkazů jednotlivě, nikoliv naráz. 2.2.2. 1. Sada příkazů, 2. Sada příkazů, 3. Sada příkazů 9

2.2.3. Kompletní kód import vrep import sys vrep.simxfinish(-1) # tato funkce nám uzavře všechny otevřené spoje clientid=vrep.simxstart('127.0.0.1',19999,true,true,5000,5) # Připojení do V-REPu if clientid!=-1: print ('Připojeno') else: print ('Nepřipojeno') sys.exit('nemohl se připojit') #---------------------Načtení proměnných---------------------------- --- errorcode,rk1=vrep.simxgetobjecthandle(clientid,'phantomxpincher_joi nt1',vrep.simx_opmode_oneshot_wait) # Pohyb kloubu č.1 errorcode,rk2=vrep.simxgetobjecthandle(clientid,'phantomxpincher_joi nt2',vrep.simx_opmode_oneshot_wait) # Pohyb kloubu č.2 errorcode,rk3=vrep.simxgetobjecthandle(clientid,'phantomxpincher_joi nt3',vrep.simx_opmode_oneshot_wait) # Pohyb kloubu č.3 errorcode,rk4=vrep.simxgetobjecthandle(clientid,'phantomxpincher_joi nt4',vrep.simx_opmode_blocking) # Pohyb kloubu č.4 errorcode,rcc=vrep.simxgetobjecthandle(clientid,'phantomxpincher_gri pperclose_joint',vrep.simx_opmode_oneshot_wait) # Pohyb čelistí #---------------------Pohyb Prvního motoru-------------------------- ----- 10

# 1. Sada příkazů pro uchopení kostky vrep.simxsetjointtargetvelocity(clientid,rcc,0.02,vrep.simx_opmode_s treaming) # Otevření čelistí vrep.simxsetjointtargetposition(clientid,rk2,0.5,vrep.simx_opmode_st reaming) # Pohyb kloubu č.2 vrep.simxsetjointtargetposition(clientid,rk4,- 0.7,vrep.simx_opmode_streaming) # Pohyb kloubu č.4 vrep.simxsetjointtargetposition(clientid,rk3,1.9,vrep.simx_opmode_st reaming) # Pohyb kloubu č.3 vrep.simxsetjointtargetvelocity(clientid,rcc,- 1,vrep.simx_opmode_streaming) # Sevření čelistí (kostky) # 2. Sada příkazů pro přenesení kostky vrep.simxsetjointtargetposition(clientid,rk2,- 0.5,vrep.simx_opmode_streaming) vrep.simxsetjointtargetposition(clientid,rk4,0.7,vrep.simx_opmode_st reaming) vrep.simxsetjointtargetposition(clientid,rk3,- 1.9,vrep.simx_opmode_streaming) # 3. Sada příkazů pro uvolnění kostky a navrácení robota do původní polohy vrep.simxsetjointtargetvelocity(clientid,rcc,1,vrep.simx_opmode_stre aming) # Otevření čelistí (uvolnění kostky) vrep.simxsetjointtargetposition(clientid,rk2,0,vrep.simx_opmode_stre aming) vrep.simxsetjointtargetposition(clientid,rk4,0,vrep.simx_opmode_stre aming) vrep.simxsetjointtargetposition(clientid,rk3,0,vrep.simx_opmode_stre aming) 3. Závěr Tímto jsme si prošli, jak propojit V-REP s Pythonem a jak rozpohybovat základními příkazy robota. Je to ovšem jen základ z toho, co je možné provádět. Dalším pokračováním této práce by mohlo být zautomatizování dávkování příkazů tak, aby následující příkaz počkal na dokončení předchozí operace. 11