7. Roboter-Sicherheitseinstellungen
7.1. Kollisionsstufe einstellen
Prototyp |
|
|---|---|
Beschreibung |
Kollisionsstufe einstellen |
Erforderliche Parameter |
|
Standardparameter |
Keine |
Rückgabewert |
Fehlercode: 0 = Erfolg, sonst Fehlercode |
7.2. Strategie nach Kollision einstellen
Prototyp |
|
|---|---|
Beschreibung |
Strategie nach Kollision einstellen |
Erforderliche Parameter |
|
Standardparameter |
|
Rückgabewert |
Fehlercode: 0 = Erfolg, sonst Fehlercode |
7.3. Benutzerdefinierte Kollisionserkennungsschwellwerte starten, Schwellwerte für Gelenk und TCP setzen
Neu in Version Python: SDK-v2.1.0
Prototyp |
|
|---|---|
Beschreibung |
Benutzerdefinierte Kollisionserkennungsschwellwerte starten, Schwellwerte für Gelenk und TCP setzen |
Erforderliche Parameter |
|
Standardparameter |
Keine |
Rückgabewert |
|
7.4. Benutzerdefinierte Kollisionserkennungsschwellwerte stoppen
Neu in Version Python: SDK-v2.1.0
Prototyp |
|
|---|---|
Beschreibung |
Benutzerdefinierte Kollisionserkennungsschwellwerte stoppen |
Erforderliche Parameter |
Keine |
Standardparameter |
Keine |
Rückgabewert |
|
7.5. Codebeispiel zum Einstellen der Roboter-Kollisionsstufe
1from fairino import Robot
2import time
3# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
4robot = Robot.RPC('192.168.58.2')
5mode = 0
6config = 1
7level1 = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
8level2 = [50.0, 20.0, 30.0, 40.0, 50.0, 60.0]
9rtn = robot.SetAnticollision(mode, level1, config)
10print(f"SetAnticollision mode 0 rtn is {rtn}")
11mode = 1
12rtn = robot.SetAnticollision(mode, level2, config)
13print(f"SetAnticollision mode 1 rtn is {rtn}")
14p1Joint = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
15p2Joint = [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255]
16p1Desc = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
17p2Desc = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
18exaxisPos = [0.0, 0.0, 0.0, 0.0]
19offdese = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
20robot.MoveL(desc_pos=p2Desc, tool=0, user=0, vel=100, blendR=2)
21robot.ResetAllError()
22safety = [5, 5, 5, 5, 5, 5]
23rtn = robot.SetCollisionStrategy(3, 1000, 150, 250, safety)
24print(f"SetCollisionStrategy rtn is {rtn}")
25jointDetectionThreshould = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
26tcpDetectionThreshould = [60, 60, 60, 60, 60, 60]
27rtn = robot.CustomCollisionDetectionStart(3, jointDetectionThreshould, tcpDetectionThreshould, 0)
28print(f"CustomCollisionDetectionStart rtn is {rtn}")
29robot.MoveL(desc_pos=p1Desc, tool=0, user=0, vel=100)
30robot.MoveL(desc_pos=p2Desc, tool=0, user=0, vel=100)
31rtn = robot.CustomCollisionDetectionEnd()
32print(f"CustomCollisionDetectionEnd rtn is {rtn}")
33robot.CloseRPC()
7.6. Positiven Endanschlag einstellen
Prototyp |
|
|---|---|
Beschreibung |
Positiven Endanschlag (weiche Grenze) einstellen |
Erforderliche Parameter |
|
Standardparameter |
Keine |
Rückgabewert |
Fehlercode: 0 = Erfolg, sonst Fehlercode |
7.7. Negativen Endanschlag einstellen
Prototyp |
|
|---|---|
Beschreibung |
Negativen Endanschlag (weiche Grenze) einstellen |
Erforderliche Parameter |
|
Standardparameter |
Keine |
Rückgabewert |
Fehlercode: 0 = Erfolg, sonst Fehlercode |
7.8. Weiche Gelenk-Endanschläge (Winkel) abrufen
Prototyp |
|
|---|---|
Beschreibung |
Weiche Gelenk-Endanschläge (Winkel) abrufen |
Erforderliche Parameter |
Keine |
Standardparameter |
|
Rückgabewert |
|
7.9. Codebeispiel zum Einstellen der Roboter-Endanschläge
1from fairino import Robot
2import time
3# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
4robot = Robot.RPC('192.168.58.2')
5plimit = [170.0, 80.0, 150.0, 80.0, 170.0, 160.0]
6robot.SetLimitPositive(plimit)
7nlimit = [-170.0, -260.0, -150.0, -260.0, -170.0, -160.0]
8robot.SetLimitNegative(nlimit)
9error,neg_deg = robot.GetJointSoftLimitDeg(0)
10print(f"pos limit deg: {neg_deg[1]}, {neg_deg[3]}, {neg_deg[5]}, {neg_deg[7]}, {neg_deg[9]}, {neg_deg[11]}")
11print(f"neg limit deg: {neg_deg[0]}, {neg_deg[2]}, {neg_deg[4]}, {neg_deg[6]}, {neg_deg[8]}, {neg_deg[10]}")
12robot.CloseRPC()
7.10. Roboter-Kollisionserkennungsmethode einstellen
Neu in Version Python: SDK-v2.1.2
Prototyp |
|
|---|---|
Beschreibung |
Roboter-Kollisionserkennungsmethode einstellen |
Erforderliche Parameter |
|
Standardparameter |
Keine |
Rückgabewert |
|
7.11. Kollisionserkennung im Stillstand ein-/ausschalten
Neu in Version Python: SDK-v2.0.5
Prototyp |
|
|---|---|
Beschreibung |
Kollisionserkennung im Stillstand ein-/ausschalten |
Erforderliche Parameter |
|
Standardparameter |
Keine |
Rückgabewert |
|
7.12. Codebeispiel zum Einstellen der Roboter-Kollisionserkennungsmethode
1from fairino import Robot
2import time
3# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
4robot = Robot.RPC('192.168.58.2')
5rtn = robot.SetCollisionDetectionMethod(0,0)
6rtn = robot.SetStaticCollisionOnOff(1)
7print(f"SetStaticCollisionOnOff On rtn is {rtn}")
8time.sleep(5)
9rtn = robot.SetStaticCollisionOnOff(0)
10print(f"SetStaticCollisionOnOff Aus rtn ist {rtn}")
11robot.CloseRPC()
7.13. Gelenk-Drehmoment-/Leistungsüberwachung
Neu in Version Python: SDK-v2.0.5
Prototyp |
|
|---|---|
Beschreibung |
Gelenk-Drehmoment-/Leistungsüberwachung |
Erforderliche Parameter |
|
Standardparameter |
Keine |
Rückgabewert |
|
7.14. Codebeispiel für Gelenk-Drehmoment-/Leistungsüberwachung
1from fairino import Robot
2import time
3# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
4robot = Robot.RPC('192.168.58.2')
5robot.DragTeachSwitch(1)
6robot.SetPowerLimit(1, 200)
7error,torques = robot.GetJointTorques(1)
8count = 100
9robot.ServoJTStart()
10while count > 0:
11 error = robot.ServoJT(torques, 0.001)
12 count -= 1
13 time.sleep(0.001) # 1ms Verzögerung
14error = robot.ServoJTEnd()
15robot.DragTeachSwitch(0)
16robot.CloseRPC()
7.15. Sicherheitsgeschwindigkeitsparameter einstellen
Prototyp |
|
|---|---|
Beschreibung |
Sicherheitsgeschwindigkeitsparameter einstellen |
Erforderliche Parameter |
|
Standardparameter |
Keine |
Rückgabewert |
|
7.16. SDK-Codebeispiel zum Einstellen der Sicherheitsgeschwindigkeitsparameter
1from time import sleep
2import time
3from fairino import Robot
4
5# Verbindung mit der Robotersteuerung herstellen
6robot = Robot.RPC('192.168.58.2')
7
8def TestSetVelReducePara(self):
9 # Gelenkposition, externe Achse und Offset initialisieren
10 j1 = [0, -90, 90, 0, 0, 0]
11 j2 = [90, -90, 90, 0, 0, 0]
12 epos = [0, 0, 0, 0]
13 offset_pos = [0, 0, 0, 0, 0, 0]
14
15 # Basisgeschwindigkeit einstellen
16 robot.SetSpeed(80)
17
18 # Test Parameterfehler (mode=2 ungültig?)
19 rtn = robot.SetVelReducePara(2, 30, 1)
20 print(f"SetVelReducePara param error rtn is {rtn}")
21
22 # Geschwindigkeitsreduzierung deaktivieren (mode=0, action=1 deaktiviert)
23 rtn = robot.SetVelReducePara(0, 30, 1)
24 print(f"SetVelReducePara disable reduce vel rtn is {rtn}")
25 robot.MoveJ(joint_pos=j1, tool=0, user=0, vel=100, acc=100, ovl=100,
26 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
27 robot.MoveJ(joint_pos=j2, tool=0, user=0, vel=100, acc=100, ovl=100,
28 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
29
30 # Geschwindigkeitsreduzierung aktivieren (mode=1, action=1)
31 rtn = robot.SetVelReducePara(1, 30, 1)
32 print(f"SetVelReducePara reduce vel rtn is {rtn}")
33 robot.MoveJ(joint_pos=j1, tool=0, user=0, vel=100, acc=100, ovl=100,
34 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
35 robot.MoveJ(joint_pos=j2, tool=0, user=0, vel=100, acc=100, ovl=100,
36 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
37
38 # Test action=2 (kann Not-Halt oder Deaktivierung bedeuten)
39 rtn = robot.SetVelReducePara(2, 30, 2)
40 print(f"SetVelReducePara disable robot rtn is {rtn}")
41 robot.MoveJ(joint_pos=j1, tool=0, user=0, vel=100, acc=100, ovl=100,
42 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
43 robot.MoveJ(joint_pos=j2, tool=0, user=0, vel=100, acc=100, ovl=100,
44 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
45
46 # Warten, Fehler zurücksetzen und Roboter wieder aktivieren
47 time.sleep(2)
48 robot.ResetAllError()
49 robot.RobotEnable(1)
50 time.sleep(1)
51
52 # Test action=0 (kann nur Fehler melden, keine Aktion bedeuten)
53 rtn = robot.SetVelReducePara(2, 30, 0)
54 print(f"SetVelReducePara report error rtn is {rtn}")
55 robot.MoveJ(joint_pos=j1, tool=0, user=0, vel=100, acc=100, ovl=100,
56 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
57 robot.MoveJ(joint_pos=j2, tool=0, user=0, vel=100, acc=100, ovl=100,
58 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
59
60 # Verbindung schließen
61 robot.CloseRPC()
62
63TestSetVelReducePara(robot)