Tarsoly Sándor és Galambos Péter
robotkonfiguráció:
- mozgás
- I/O
- megszakítások
technológia ---> cella ---> művelet és ---> kódolt
utasítás terv logikai terv program
ipari robotalkalmazás setén feladatot megoldó elhatárolt (1...n) robot egység a robot cella
- Pascal alapú:
- Karen
- AES
- ASEA
- rapid
- KUKA -> KRL
- sunrise
- moonrise
- universal
- URCAP
- URSCRIPT
- fanuctp
- robodk offline
- val3
robot nyelvek feladata:
- mozzgási funkciók jól átgondolt ésszerű funkciók esetén
- mozgás sebessége
- gyorsulás
- interpolációs üzemmódok
- csuklóinterpoláció
- nem kooridnált
- körintelpoláció
- technológiai utasítás: kapuk, terek, leírás, megfogalmazás
- cella terv: gépész munka robot kiválasztás
- logikai terv: állapot - átmenet gráf, lépésenkénti teszt
- robot program: programozás után lépésenkénti teszt
önálló, vagy összetett robotrendszer - megoldható problémák:
- struktúrált: egy robottal megoldható
- nem struktúrált: több robot szükséges
I/O csatornák
- analóg - 0-10V /-10+10V /420V
- digitális - 24V
gyártók:
-
peperland flux
-
omron
-
badlux
-
szenzorok:
- jelnelét érzékelők; lehet: optikai, ultrahang, digitális, stb
- közelség érzékelők; lehet: optikai, ultrahang, digitális, stb
- kamerák: lidar, rgb, pontfelhő, stb
-
aktivátorok:
- megfogó pneumatikus
- egyszeres, kétszeres működésű
- elektromos működésű
- motoros
- solenoidos
- servo
- vákuumos
- rotációs
- többujjas - dextrose gripper
-
csatolók:
- ethenet
- TCP/UDP
- kafka, mqtt, grpc, znq, rest, mosquito
- TCP/UDP
- UART
- RS32
- RS485
- ethenet
elosztott szolgáltatások:
MQTT:
- QoS 0 - nem baj ha kiesik egy üzenet
- QoS 1 - lgealább egyszer visszaigazolás az üzenetküldésről
- QoS 2 - pontosan egyszer érkezzen meg az üzenet
- formalizált kontraktus
- interface definíció
- függvény prototípusok melyeket átadunk
- google adatközpontban kezdték el fejleszteni
- a gRPChez hasonló
- fizetős
- ROS2.0 alapon free
- párhuzamos üzenetküldés akárp árhuzamos hardwaren
- nagy méretű csomagok küldése
- node.js alapú kommunikáció konffigurátor
- műhelyben a robotra elkészítjük a programot
- könnyű robotalkalmazást fejleszetni olcsóbban
- egy virtualizált környezetben készítjük el a robot programot
- a modellben kipróbáljuk a működését
- kell hozzá:
- logikai modell
- geometriei modell
- modellezésben lehet tesztelni
- a végén a műhely programozással kell végigvenni a digitális modell pontatlanságait és eltéréseit
- csökkenthető a minimális idő a projektkezdéstől a gyártásig
- pont-pont működés alapján betanítás
- a kezelő által adott utasítások rögzülnek és köhögi vissza a robot
- learning by demostration: mikor a feladatokat tanítjuk be a robotnak
- alacsony késleltetésű nagy sávszélű hálózatok
- elosztott szoftverrendszerek
- felhő alapú számítások
- LiDARok, térérzékelés, kinect
- VR / AR
- fogalmi szintű következtetés, ontológiák, nlp
- gépi tanulás
- akkumlátor technológiák
- http://www.robothalloffame.org/
- https://everydayrobots.com/
- https://www.unlimited-robotics.com/
- https://www.flr.io/
komponens rendszerek:
- Robot Technology Middleware:
- https://www.corba.org/
- RTC 1.1
- point-point komunikációs modell
- name service IP címre küldhető adatfolyamok
- microsoft robotics developer studio
- SOAP
- statefull kapcsolatra épít
- 2015-ben leállt
- ROS
- XMLRPC http://wiki.ros.org/xmlrpcpp
- tipizált topicok
moduláris keretrendsterek kommunikációi:
- data flow
- egyirányú
- pipeline
- ROS-ban publish-subscribe filozófián alapul
- remote procedure call
- a fogyasztó használja a szolgáltató általa adott szolgáltatásokat
- szerializáltan történik
- adattípusok és interfészek nyelvfüggetlen kódolása
- protocol buffer
- felhasználás pl: adatstreamek visual servoingnál
komponensk keretrendszerke kapcsialktait tekintve a ROS és az RTM kapcsolatai megfeleltethetőek egymásnak
Interface definition language (IDL)
ROS1 | ROS2 |
---|---|
ros core | DDS - service discovery, interoparibilitás |
ros modulok -> paraméter szerver | ros modulok -> leterjednek a változtatások a nodeokba a paraméter szerverből |
- a robot pálya csuklótér beli lineáris interpolációval történik
- Descartesi térben csak egyenest rajzolunk a térben
ahol
q1 = [q1A q2A]
q2 = [q1B q2B]
A kérdés az, hogy mennyi idő alatt teljesíti a csuklótér beli mozgást
Ezzel szemben ha cartesian térben maradok akkor a két pont között egy pályamenti sebesség profilt (trapezoid speed profiling)
Peter Corke féle Matlab toolboxal modellezhető.
- Aktivátor szintű irányítás: mikor az impulzusok maguk fognak eljutni a kar végéig
- TOR(Task oriented robot programming): task oritned runtimban van a szemtanikus technológiai leírás -> létrejön runtimeban a robot utasításokat ->
- szemantikus robot képes lehet a task oriented robot programozásra
Virca: http://www.virca.hu/
Hogy aktív legyen a robot modell mindenképp be kell kapcsolni a robotkart a Robot Status menüben.
- payload tömege nem lehet üres
- a robotkar súlyát is bele kell számolni
- startpozíció
- mozgáscsoportok - egy csopportban 9 lehet
- nyitott megfogóval kell indítani !
- mozgás adott pozícióba koordináták szerint
- mozgáspontnak lehet neve
- joint interpolációt használunk a mozgáspontoknál
- control path-t használunk amozgás útja során
- kis kocka jelzi a tömeg változást
- adott pozícióban a megfogók állapotát meg kell adni
- várakozás is szükséges a megfogó mozgatás beállítása során amíg a megfogó mozog.
SubProgram
-okba kiszervezésmqtt_init("tcp_address")
- el lehet inputra/outputra várakozni, vagy szenzort beolvasnimqtt_qos = 2
29900
as porton kapcsolódik
-
- RPC (Remote Procedure Call method): XML-RPC is a Remote Procedure Call method that uses XML to transfer data between programs over sockets. With it, the UR controller can call methods/functions (with parameters) on a remote program/server and get back structured data. By using it, a complex calculation which is not available in URScript can be performed. In addition, other software packages can be combined with URScript.
- RTDE (Real-Time Data Exchange): RTDE is designed as robust replacement for the real-time interface. This allows UR controller to transmit custom state data and accept custom set-points and register data.
-
a robot kotorller mindig a biztonsági kerítésen kívűl helyezkedik el
-
fanucnál egy robotkontorller több robotkart is vezérelhet, URnál egy robotkontroller csak egy kart vezérelhet.
-
kulcsos kapcsoló állása:
- auto: automata verzió
- T1: van sebesség biztonsági korlátozás
- T2: nincs sebesség biztonsági korlát
-
kontorlleren biztonsági gombok is vannak amiket a betaníás ideje alatt nyomva tartunk
-
group mask feladata, hogy adott mozgáspontokban az álapotokat definiáljuk
-
robot kar szabadságfoka is állapota a robot pozíciónak, ezeket a pozíció utáni számokkal jelöljük
- aktív és passzív elemek is megadhatóak, mint asztalok, emberek, kerítések, munkadarabok, eszközök, gépek.
ha koordináta rendszert szerkesztünk és hozunk létre akkor fontos, hogy a többi eszközzel használható legyen.
loopban fut mint az arduino
- Fanuc webcontrol: https://github.com/ABC-iRobotics/fanuc-webcontrol
- fanuc webcontrol programozás natívan: https://github.com/ABC-iRobotics/fanuc-webcontrol/tree/master/karel
A roboguide használható akkor is ha nincs teach pad amivel közvetlen lehet
Edit
- a legutóbb szerkesztett programra ugrik- kódban
--
a komment
webcontrollerhttps://github.com/ABC-iRobotics/fanuc-webcontrol)
Karel progrramok már nem tartalmaznak mozgásutasításokat.
Enable vision
engedélyezése szükséges.
kalibrálás:
- kalibrációs pontokhoz tudjuk ráirányítani a robot fejét.
- tized miliméternél nem lesz jobb eredmény várhatóan egy valós ipari környezetben
debian alapon: https://wiki.ros.org/noetic
/opt/ros/noetic
- workspace
- package
- node1
- node2
- ...
- package
roscore
-> ROS launch
file amivel a nodeok indíthatóak
catkin create pkg [packagename] [dependency]
catkin node
ROS master -> ROS node -> node1: publish topic1 -> node2: subscribe topic2
Minden node több topicba is tud publikálni, de előbb a masternél feliratkozik rá, és szolgáltatásokat végezhet/kérhet le, pl: subscribe, publish
debian alapon: https://docs.ros.org/en/humble/
/opt/ros/humble
- workspace
- package
- node1
- node2
- ...
- package
ros2 launch package launch.py
file amivel a nodeok indíthatóak
ros2 pkg [packagename] [dependency]
Csak azonos hálózaton kell legyenek a nodeok és a kommunikáció megoldott a nodeok között, csak az alap beállításokat módosítani kell.
https://www.youtube.com/watch?v=aeOS9xqblrg
subscribe példa: http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29
összeköthető rvizel is, ami egy robotvizualizációs eszköz