7. Ustawienia bezpieczeństwa robota
7.1. Ustawianie poziomu kolizji
Prototyp |
|
|---|---|
Opis |
Ustawianie poziomu kolizji |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
7.2. Ustawianie strategii po kolizji
Prototyp |
|
|---|---|
Opis |
Ustawianie strategii po kolizji |
Parametry wymagane |
|
Parametry domyślne |
|
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
7.3. Rozpoczęcie funkcji niestandardowego progu detekcji kolizji, ustawienie progów detekcji kolizji dla strony przegubów i strony TCP
Dodane w wersji python: SDK-v2.1.0
Prototyp |
|
|---|---|
Opis |
Rozpoczęcie funkcji niestandardowego progu detekcji kolizji, ustawienie progów detekcji kolizji dla strony przegubów i strony TCP |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
7.4. Zakończenie funkcji niestandardowego progu detekcji kolizji
Dodane w wersji python: SDK-v2.1.0
Prototyp |
|
|---|---|
Opis |
Zakończenie funkcji niestandardowego progu detekcji kolizji |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
7.5. Przykład kodu ustawiania poziomu kolizji robota
1from fairino import Robot
2import time
3# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
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. Ustawianie dodatniego ograniczenia
Prototyp |
|
|---|---|
Opis |
Ustawianie dodatniego ograniczenia |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
7.7. Ustawianie ujemnego ograniczenia
Prototyp |
|
|---|---|
Opis |
Ustawianie ujemnego ograniczenia |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
7.8. Pobieranie kątów miękkiego ograniczenia przegubów
Prototyp |
|
|---|---|
Opis |
Pobieranie kątów miękkiego ograniczenia przegubów |
Parametry wymagane |
Brak |
Parametry domyślne |
|
Wartość zwracana |
|
7.9. Przykład kodu ustawiania ograniczeń robota
1from fairino import Robot
2import time
3# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
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. Ustawianie metody detekcji kolizji robota
Dodane w wersji python: SDK-v2.1.2
Prototyp |
|
|---|---|
Opis |
Ustawianie metody detekcji kolizji robota |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
7.11. Włączanie/wyłączanie detekcji kolizji w stanie statycznym
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Włączanie/wyłączanie detekcji kolizji w stanie statycznym |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
7.12. Przykład kodu ustawiania metody detekcji kolizji robota
1from fairino import Robot
2import time
3# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
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 Off rtn is {rtn}")
11robot.CloseRPC()
7.13. Detekcja momentu obrotowego i mocy przegubów
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Detekcja momentu obrotowego i mocy przegubów |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
7.14. Przykład kodu detekcji momentu obrotowego i mocy przegubów
1from fairino import Robot
2import time
3# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
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) # opóźnienie 1 ms
14error = robot.ServoJTEnd()
15robot.DragTeachSwitch(0)
16robot.CloseRPC()
7.15. Ustawianie parametrów bezpiecznej prędkości
Prototyp |
|
|---|---|
Opis |
Ustawia parametry prędkości bezpieczeństwa |
Parametry Wymagane |
|
Parametry Domyślne |
Brak |
Wartość Zwracana |
|
7.16. Przykład kodu SDK ustawiania parametrów bezpiecznej prędkości
1from fairino import Robot
2import time
3
4def main():
5 robot = Robot.RPC('192.168.58.2')
6 time.sleep(0.5)
7
8 j1 = [10.220, -11.121, -118.086, -46.739, 82.036, 131.503]
9 j2 = [89.782, -11.122, -118.086, -46.740, 82.036, 131.504]
10
11 epos = [0.0, 0.0, 0.0, 0.0]
12 offset_pos = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
13
14 robot.SetSpeed(20)
15
16 maxJointVel = [100.0, 100.0, 100.0, 100.0, 100.0, 100.0]
17
18 rtn = robot.SetVelReducePara(0, 200, 0, maxJointVel)
19 robot.MoveJ(joint_pos=j2, tool=1, user=2, vel=100, acc=100, ovl=100,
20 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
21
22 rtn = robot.SetVelReducePara(2, 200, 0, maxJointVel)
23 print(f"SetVelReduceParaA param error rtn is {rtn}")
24
25 robot.MoveJ(joint_pos=j1, tool=1, user=2, 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=1, user=2, vel=100, acc=100, ovl=100,
28 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
29
30 maxJointVel = [20.0, 20.0, 20.0, 20.0, 20.0, 20.0]
31 rtn = robot.SetVelReducePara(2, 200, 0, maxJointVel)
32 print(f"SetVelReduceParaB reduce vel rtn is {rtn}")
33
34 robot.MoveJ(joint_pos=j1, tool=1, user=2, vel=100, acc=100, ovl=100,
35 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
36 robot.MoveJ(joint_pos=j2, tool=1, user=2, vel=100, acc=100, ovl=100,
37 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
38
39 robot.CloseRPC()
40
41if __name__ == "__main__":
42 main()
7.17. Pobieranie Sumy Kontrolnej Parametrów Konfiguracji Bezpieczeństwa
Prototyp |
|
|---|---|
Opis |
Pobiera sumę kontrolną parametrów konfiguracji bezpieczeństwa |
Parametry Wymagane |
|
Parametry Domyślne |
Brak |
Wartość Zwracana |
|
7.18. Weryfikacja Hasła Operacji Bezpieczeństwa
Prototyp |
|
|---|---|
Opis |
Weryfikacja hasła operacji bezpieczeństwa |
Parametry Wymagane |
|
Parametry Domyślne |
Brak |
Wartość Zwracana |
|
7.19. Przykład Kodu Weryfikacji Hasła Parametrów Konfiguracji Bezpieczeństwa
1from time import sleep
2import time
3from fairino import Robot
4
5# Nawiązanie połączenia z kontrolerem robota
6robot = Robot.RPC('192.168.58.2')
7
8
9def test(self):
10 error, status, hex_code = robot.GetSafetyParamsCheckSum()
11 print(f"GetSafetyParamsChecksum: error={error}, status={status}, hex_code={hex_code}")
12 time.sleep(3)
13 error = robot.SafetyOPPasswordCheck(0, "12345678")
14 print(f"SafetyOPPasswordCheck: error={error}")
15
16 if error == 0:
17 error = robot.SetAnticollision(mode=0, level=[2.0, 2.0, 2.0, 2.0, 2.0, 2.0], config=1)
18 print(f"SetAnticollision: error={error}")
19
20 error = robot.SetCollisionStrategy(strategy=0, safeTime=1000, safeDistance=150,
21 safetyMargin=[10, 10, 10, 10, 10, 10])
22 print(f"SetCollisionStrategy: error={error}")
23
24 time.sleep(1)
25
26 error, status, hex_code = robot.GetSafetyParamsCheckSum()
27 print(f"GetSafetyParamsChecksum(again): error={error}, status={status}, hex_code={hex_code}")
28
29
30test(robot)