6. Ustawienia ogólne robota

6.1. Ustawianie punktu odniesienia narzędzia - metoda sześciu punktów

Prototyp

SetToolPoint(point_num)

Opis

Ustawianie punktu odniesienia narzędzia - metoda sześciu punktów

Parametry wymagane

  • point_num: Numer punktu, zakres [1~6]

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.2. Obliczanie układu współrzędnych narzędzia - metoda sześciu punktów

Prototyp

ComputeTool()

Opis

Obliczanie układu współrzędnych narzędzia - metoda sześciu punktów (obliczenia po ustawieniu sześciu punktów odniesienia narzędzia)

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • tcp_pose=[x,y,z,rx,ry,rz]: Układ współrzędnych narzędzia

6.3. Ustawianie punktu odniesienia narzędzia - metoda czterech punktów

Prototyp

SetTcp4RefPoint(point_num)

Opis

Ustawianie punktu odniesienia narzędzia - metoda czterech punktów

Parametry wymagane

point_num: Numer punktu, zakres [1~4]

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • tcp_pose=[x,y,z,rx,ry,rz]: Układ współrzędnych narzędzia

6.4. Obliczanie układu współrzędnych narzędzia - metoda czterech punktów

Prototyp

ComputeTcp4()

Opis

Obliczanie układu współrzędnych narzędzia - metoda czterech punktów (obliczenia po ustawieniu czterech punktów odniesienia narzędzia)

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • tcp_pose=[x,y,z,rx,ry,rz]: Układ współrzędnych narzędzia

6.5. Obliczanie układu współrzędnych narzędzia na podstawie informacji o punktach

Nowe w wersji python: SDK-v2.0.8

Prototyp

ComputeToolCoordWithPoints(method, pos)

Opis

Obliczanie układu współrzędnych narzędzia na podstawie informacji o punktach

Parametry wymagane

  • method: Metoda obliczeniowa; 0-metoda czterech punktów; 1-metoda sześciu punktów

  • pos: Grupa pozycji przegubów, długość tablicy wynosi 4 dla metody czterech punktów, 6 dla metody sześciu punktów

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • tcp_offset=[x,y,z,rx,ry,rz]: Układ współrzędnych narzędzia obliczony na podstawie informacji o punktach, jednostka [mm][°]

6.6. Ustawianie układu współrzędnych narzędzia

Prototyp

SetToolCoord(id,t_coord,type,install,toolID,loadNum)

Opis

Ustawianie układu współrzędnych narzędzia

Parametry wymagane

  • id: Numer układu współrzędnych, zakres [1~15];

  • t_coord: Pozycja środka narzędzia względem środka kołnierza końcowego, jednostka [mm][°];

  • type: 0-układ współrzędnych narzędzia, 1-układ współrzędnych czujnika;

  • install: Pozycja montażu, 0-koniec robota, 1-na zewnątrz robota

  • toolID: ID narzędzia

  • loadNum: Numer obciążenia

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.7. Ustawianie listy układów współrzędnych narzędzia

Prototyp

SetToolList(id,t_coord ,type, install, loadNum)

Opis

Ustawianie listy układów współrzędnych narzędzia

Parametry wymagane

  • id: Numer układu współrzędnych, zakres [1~15];

  • t_coord: [x,y,z,rx,ry,rz] Pozycja środka narzędzia względem środka kołnierza końcowego, jednostka [mm][°];

  • type: 0-układ współrzędnych narzędzia, 1-układ współrzędnych czujnika;

  • install: Pozycja montażu, 0-koniec robota, 1-na zewnątrz robota

  • loadNum: Numer obciążenia

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.8. Pobieranie bieżącego układu współrzędnych narzędzia

Prototyp

GetTCPOffset(flag=1)

Opis

Pobieranie bieżącego układu współrzędnych narzędzia

Parametry wymagane

Brak

Parametry domyślne

flag: 0-blokujący, 1-nieblokujący, domyślnie 1

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • tcp_offset=[x,y,z,rx,ry,rz]: Bieżąca względna pozycja układu współrzędnych narzędzia, jednostka [mm][°]

6.9. Przykład kodu operacji na układzie współrzędnych narzędzia robota

 1from fairino import Robot
 2import time
 3import threading
 4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 5robot = Robot.RPC('192.168.58.2')
 6p1Desc = [186.331, 487.913, 209.850, 149.030, 0.688, -114.347]
 7p2Desc = [69.721, 535.073, 202.882, -144.406, -14.775, -89.012]
 8p3Desc = [146.861, 578.426, 205.598, 175.997, -36.178, -93.437]
 9p4Desc = [136.284, 509.876, 225.613, 178.987, 1.372, -100.696]
10p5Desc = [138.395, 505.972, 298.016, 179.134, 2.147, -101.110]
11p6Desc = [105.553, 454.325, 232.017, -179.426, 0.444, -99.952]
12p1Joint = [-127.876, -75.341, 115.417, -122.741, -59.820, 74.300]
13p2Joint = [-101.780, -69.828, 110.917, -125.740, -127.841, 74.300]
14p3Joint = [-112.851, -60.191, 86.566, -80.676, -97.463, 74.300]
15p4Joint = [-116.397, -76.281, 113.845, -128.611, -88.654, 74.299]
16p5Joint = [-116.814, -82.333, 109.162, -118.662, -88.585, 74.302]
17p6Joint = [-115.649, -84.367, 122.447, -128.663, -90.432, 74.303]
18exaxisPos = [0, 0, 0, 0]
19offdese = [0, 0, 0, 0, 0, 0]
20posJ = [p1Joint, p2Joint, p3Joint, p4Joint, p5Joint, p6Joint]
21rtn,coordRtn = robot.ComputeToolCoordWithPoints(1, posJ)
22print(f"ComputeToolCoordWithPoints    {rtn}  coord is {coordRtn[0]} {coordRtn[1]} {coordRtn[2]} {coordRtn[3]} {coordRtn[4]} {coordRtn[5]}")
23robot.MoveJ(joint_pos=p1Joint,tool=0, user=0, vel=100)
24robot.SetToolPoint(1)
25robot.MoveJ(joint_pos=p2Joint,tool=0, user=0, vel=100)
26robot.SetToolPoint(2)
27robot.MoveJ(joint_pos=p3Joint,tool=0, user=0, vel=100)
28robot.SetToolPoint(3)
29robot.MoveJ(joint_pos=p4Joint,tool=0, user=0, vel=100)
30robot.SetToolPoint(4)
31robot.MoveJ(joint_pos=p5Joint,tool=0, user=0, vel=100)
32robot.SetToolPoint(5)
33robot.MoveJ(joint_pos=p6Joint,tool=0, user=0, vel=100)
34robot.SetToolPoint(6)
35rtn,coordRtn = robot.ComputeTool()
36print(f"6 Point ComputeTool        {rtn}  coord is {coordRtn[0]} {coordRtn[1]} {coordRtn[2]} {coordRtn[3]} {coordRtn[4]} {coordRtn[5]}")
37robot.SetToolList(1, coordRtn, 0, 0, 0)
38robot.MoveJ(joint_pos=p1Joint,tool=0, user=0, vel=100)
39robot.SetTcp4RefPoint(1)
40robot.MoveJ(joint_pos=p2Joint,tool=0, user=0, vel=100)
41robot.SetTcp4RefPoint(2)
42robot.MoveJ(joint_pos=p3Joint,tool=0, user=0, vel=100)
43robot.SetTcp4RefPoint(3)
44robot.MoveJ(joint_pos=p4Joint,tool=0, user=0, vel=100)
45robot.SetTcp4RefPoint(4)
46rtn,coordRtn = robot.ComputeTcp4()
47print(f"4 Point ComputeTool        {rtn}  coord is {coordRtn[0]} {coordRtn[1]} {coordRtn[2]} {coordRtn[3]} {coordRtn[4]} {coordRtn[5]}")
48robot.SetToolCoord(2, coordRtn, 0, 0, 1, 0)
49rtn,getCoord = robot.GetTCPOffset(0)
50print(f"GetTCPOffset    {rtn}  coord is {getCoord[0]} {getCoord[1]} {getCoord[2]} {getCoord[3]} {getCoord[4]} {getCoord[5]}")
51robot.CloseRPC()

6.10. Ustawianie punktu odniesienia zewnętrznego narzędzia - metoda trzech punktów

Prototyp

SetExTCPPoint(point_num)

Opis

Ustawianie punktu odniesienia zewnętrznego narzędzia - metoda trzech punktów

Parametry wymagane

  • point_num: Numer punktu, zakres [1~3]

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.11. Obliczanie zewnętrznego układu współrzędnych narzędzia - metoda trzech punktów

Prototyp

ComputeExTCF(point_num)

Opis

Obliczanie zewnętrznego układu współrzędnych narzędzia - metoda trzech punktów (obliczenia po ustawieniu trzech punktów odniesienia)

Parametry wymagane

point_num: Numer punktu, zakres [1~3]

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • etcp=[x,y,z,rx,ry,rz]: Zewnętrzny układ współrzędnych narzędzia

6.12. Ustawianie zewnętrznego układu współrzędnych narzędzia

Prototyp

SetExToolCoord(id,etcp,etool)

Opis

Ustawianie zewnętrznego układu współrzędnych narzędzia

Parametry wymagane

  • id: Numer układu współrzędnych, zakres [0~14];

  • etcp: Zewnętrzny układ współrzędnych narzędzia, jednostka [mm][°];

  • etool: Końcowy układ współrzędnych narzędzia, jednostka [mm][°];

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.13. Ustawianie listy zewnętrznych układów współrzędnych narzędzia

Prototyp

SetExToolList(id,etcp ,etool)

Opis

Ustawianie listy zewnętrznych układów współrzędnych narzędzia

Parametry wymagane

  • id: Numer układu współrzędnych, zakres [0~14];

  • etcp: Zewnętrzny układ współrzędnych narzędzia, jednostka [mm][°];

  • etool: Końcowy układ współrzędnych narzędzia, jednostka [mm][°];

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.14. Przykład kodu operacji na zewnętrznym układzie współrzędnych narzędzia robota

 1from fairino import Robot
 2import time
 3import threading
 4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 5robot = Robot.RPC('192.168.58.2')
 6p1Desc = [-89.606, 779.517, 193.516, 178.000, 0.476, -92.484]
 7p1Joint = [-108.145, -50.137, 85.818, -125.599, -87.946, 74.329]
 8p2Desc = [-24.656, 850.384, 191.361, 177.079, -2.058, -95.355]
 9p2Joint = [-111.024, -41.538, 69.222, -114.913, -87.743, 74.329]
10p3Desc = [-99.813, 766.661, 241.878, -176.817, 1.917, -91.604]
11p3Joint = [-107.266, -56.116, 85.971, -122.560, -92.548, 74.331]
12exaxisPos = [0, 0, 0, 0]
13offdese = [0, 0, 0, 0, 0, 0]
14posTCP = [p1Desc, p2Desc, p3Desc]
15robot.MoveJ(joint_pos=p1Joint,tool=1, user=0, vel=50)
16robot.SetExTCPPoint(1)
17robot.MoveJ(joint_pos=p2Joint,tool=1, user=0, vel=50)
18robot.SetExTCPPoint(2)
19robot.MoveJ(joint_pos=p3Joint,tool=1, user=0, vel=50)
20robot.SetExTCPPoint(3)
21rtn,coordRtn = robot.ComputeExTCF()
22print(f"ComputeExTCF {rtn}  coord is {coordRtn[0]} {coordRtn[1]} {coordRtn[2]} {coordRtn[3]} {coordRtn[4]} {coordRtn[5]}")
23robot.SetExToolCoord(1, coordRtn, offdese)
24robot.SetExToolList(1, coordRtn, offdese)
25robot.CloseRPC()

6.15. Ustawianie punktu odniesienia przedmiotu - metoda trzech punktów

Prototyp

SetWObjCoordPoint(point_num)

Opis

Ustawianie punktu odniesienia przedmiotu - metoda trzech punktów

Parametry wymagane

point_num: Numer punktu, zakres [1~3]

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.16. Obliczanie układu współrzędnych przedmiotu - metoda trzech punktów

Prototyp

ComputeWObjCoord(method, refFrame)

Opis

Obliczanie układu współrzędnych przedmiotu - metoda trzech punktów (obliczenia po ustawieniu trzech punktów odniesienia);

Parametry wymagane

  • method: Sposób obliczania 0: punkt początkowy - oś X - oś Z, 1: punkt początkowy - oś X - płaszczyzna XY

  • refFrame: Układ odniesienia

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • wobj_pose=[x,y,z,rx,ry,rz]: Układ współrzędnych przedmiotu

6.17. Ustawianie układu współrzędnych przedmiotu

Prototyp

SetWObjCoord(id, coord, refFrame)

Opis

Ustawianie układu współrzędnych przedmiotu

Parametry wymagane

  • id: Numer układu współrzędnych, zakres [0~14];

  • coord: Pozycja układu współrzędnych przedmiotu względem środka kołnierza końcowego, jednostka [mm][°]

  • refFrame: Układ odniesienia

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.18. Ustawianie listy układów współrzędnych przedmiotu

Prototyp

SetWObjList(id, coord, refFrame)

Opis

Ustawianie listy układów współrzędnych przedmiotu

Parametry wymagane

  • id: Numer układu współrzędnych, zakres [0~14];

  • coord: Pozycja układu współrzędnych przedmiotu względem środka kołnierza końcowego, jednostka [mm][°]

  • refFrame: Układ odniesienia

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.19. Obliczanie układu współrzędnych przedmiotu na podstawie informacji o punktach

Nowe w wersji python: SDK-v2.0.8

Prototyp

ComputeWObjCoordWithPoints(method, pos, refFrame)

Opis

Obliczanie układu współrzędnych przedmiotu na podstawie informacji o punktach

Parametry wymagane

  • method: Metoda obliczeniowa; 0: punkt początkowy - oś X - oś Z, 1: punkt początkowy - oś X - płaszczyzna XY

  • pos: Grupa trzech pozycji TCP

  • refFrame: Układ odniesienia

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • wobj_offset=[x,y,z,rx,ry,rz]: Układ współrzędnych przedmiotu obliczony na podstawie informacji o punktach, jednostka [mm][°]

6.20. Pobieranie bieżącego układu współrzędnych przedmiotu

Prototyp

GetWObjOffset(flag=1)

Opis

Pobieranie bieżącego układu współrzędnych przedmiotu

Parametry wymagane

Brak

Parametry domyślne

flag: 0-blokujący, 1-nieblokujący, domyślnie 1

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • wobj_offset=[x,y,z,rx,ry,rz]: Bieżąca względna pozycja układu współrzędnych przedmiotu, jednostka [mm][°]

6.21. Przykład kodu operacji na układzie współrzędnych przedmiotu robota

 1from fairino import Robot
 2# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 3robot = Robot.RPC('192.168.58.2')
 4p1Desc = [-89.606, 779.517, 193.516, 178.000, 0.476, -92.484]
 5p2Desc = [-24.656, 850.384, 191.361, 177.079, -2.058, -95.355]
 6p3Desc = [-99.813, 766.661, 241.878, -176.817, 1.917, -91.604]
 7p1Joint = [-108.145, -50.137, 85.818, -125.599, -87.946, 74.329]
 8p2Joint = [-111.024, -41.538, 69.222, -114.913, -87.743, 74.329]
 9p3Joint = [-107.266, -56.116, 85.971, -122.560, -92.548, 74.331]
10exaxisPos = [0, 0, 0, 0]
11offdese = [0, 0, 0, 0, 0, 0]
12posTCP = [p1Desc, p2Desc, p3Desc]
13rtn,coordRtn = robot.ComputeWObjCoordWithPoints(1, posTCP, 0)
14print(f"ComputeWObjCoordWithPoints    {rtn}  coord is {coordRtn[0]} {coordRtn[1]} {coordRtn[2]} {coordRtn[3]} {coordRtn[4]} {coordRtn[5]}")
15robot.MoveJ(joint_pos=p1Joint,tool=1, user=0, vel=100)
16robot.SetWObjCoordPoint(1)
17robot.MoveJ(joint_pos=p2Joint,tool=1, user=0, vel=100)
18robot.SetWObjCoordPoint(2)
19robot.MoveJ(joint_pos=p3Joint,tool=1, user=0, vel=100)
20robot.SetWObjCoordPoint(3)
21rtn,coordRtn = robot.ComputeWObjCoord(1, 0)
22print(f"ComputeWObjCoord   {rtn}  coord is {coordRtn[0]} {coordRtn[1]} {coordRtn[2]} {coordRtn[3]} {coordRtn[4]} {coordRtn[5]}")
23robot.SetWObjCoord(1, coordRtn, 0)
24robot.SetWObjList(1, coordRtn, 0)
25rtn,getWobjDesc = robot.GetWObjOffset(0)
26print(f"GetWObjOffset    {rtn}  coord is {getWobjDesc[0]} {getWobjDesc[1]} {getWobjDesc[2]} {getWobjDesc[3]} {getWobjDesc[4]} {getWobjDesc[5]}")
27robot.CloseRPC()

6.22. Ustawianie prędkości globalnej

Prototyp

SetSpeed(vel)

Opis

Ustawianie prędkości globalnej

Parametry wymagane

  • vel: Procent prędkości, zakres [0~100]

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.23. Ustawianie przyspieszenia robota

Nowe w wersji python: SDK-v2.0.4

Prototyp

SetOaccScale(acc)

Opis

Ustawianie przyspieszenia robota

Parametry wymagane

  • acc: Procent przyspieszenia robota

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.24. Pobieranie domyślnej prędkości

Prototyp

GetDefaultTransVel()

Opis

Pobieranie domyślnej prędkości

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • vel: Domyślna prędkość, jednostka [mm/s]

6.25. Ustawianie ciężaru obciążenia końcowego

Prototyp

SetLoadWeight(loadNum, weight)

Opis

Ustawianie ciężaru obciążenia końcowego, nieprawidłowe ustawienie ciężaru obciążenia może spowodować utratę kontroli nad robotem w trybie przeciągania

Parametry wymagane

  • loadNum: Numer obciążenia

  • weight: Jednostka [kg]

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.26. Ustawianie współrzędnych środka ciężkości obciążenia końcowego

Prototyp

SetLoadCoord(x,y,z,loadNum = 0)

Opis

Ustawianie współrzędnych środka ciężkości obciążenia końcowego, nieprawidłowe ustawienie środka ciężkości obciążenia może spowodować utratę kontroli nad robotem w trybie przeciągania

Parametry wymagane

  • x: Współrzędna środka ciężkości, jednostka [mm]

  • y: Współrzędna środka ciężkości, jednostka [mm]

  • z: Współrzędna środka ciężkości, jednostka [mm]

Parametry domyślne

  • loadNum: Numer obciążenia, domyślnie 0

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.27. Pobieranie ciężaru bieżącego obciążenia

Prototyp

GetTargetPayload(flag=1)

Opis

Pobieranie masy bieżącego obciążenia

Parametry wymagane

Brak

Parametry domyślne

flag: 0-blokujący, 1-nieblokujący, domyślnie 1

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • weight: Bieżący ciężar obciążenia, jednostka [kg]

6.28. Pobieranie środka ciężkości bieżącego obciążenia

Prototyp

GetTargetPayloadCog(flag=1)

Opis

Pobieranie środka ciężkości bieżącego obciążenia

Parametry wymagane

Brak

Parametry domyślne

flag: 0-blokujący, 1-nieblokujący, domyślnie 1

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • cog=[x,y,z]: Bieżące współrzędne środka ciężkości, jednostka [mm]

6.29. Ustawianie sposobu montażu robota - montaż stały

Prototyp

SetRobotInstallPos(method)

Opis

Ustawianie sposobu montażu robota - montaż stały, nieprawidłowe ustawienie sposobu montażu może spowodować utratę kontroli nad robotem w trybie przeciągania

Parametry wymagane

  • method: 0-montaż poziomy, 1-montaż boczny, 2-montaż sufitowy

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.30. Ustawianie kąta montażu robota - montaż swobodny

Prototyp

SetRobotInstallAngle(yangle,zangle)

Opis

Ustawianie kąta montażu robota - montaż swobodny, nieprawidłowe ustawienie kąta montażu może spowodować utratę kontroli nad robotem w trybie przeciągania

Parametry wymagane

  • yangle: Kąt pochylenia

  • zangle: Kąt obrotu

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.31. Pobieranie kąta montażu robota

Prototyp

GetRobotInstallAngle()

Opis

Pobieranie kąta montażu robota

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • [yangle,zangle]: yangle-kąt pochylenia, zangle-kąt obrotu

6.32. Ustawianie wartości zmiennej systemowej

Prototyp

SetSysVarValue(id,value)

Opis

Ustawianie zmiennej systemowej

Parametry wymagane

  • id: Numer zmiennej, zakres [1~20];

  • value: Wartość zmiennej

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.33. Pobieranie wartości zmiennej systemowej

Prototyp

GetSysVarValue(id)

Opis

Pobieranie wartości zmiennej systemowej

Parametry wymagane

  • id: Numer zmiennej systemowej, zakres [1~20]

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • var_value: Wartość zmiennej systemowej

6.34. Przykład kodu ustawień ogólnych robota

 1from fairino import Robot
 2# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 3robot = Robot.RPC('192.168.58.2')
 4for i in range(1, 100):
 5    robot.SetSpeed(i)
 6    robot.SetOaccScale(i)
 7    time.sleep(0.03)
 8error,defaultVel = robot.GetDefaultTransVel()
 9print(f"GetDefaultTransVel is {defaultVel}")
10for i in range(1, 21):
11    robot.SetSysVarValue(i, i + 0.5)
12    time.sleep(0.1)
13for i in range(1, 21):
14    value = robot.GetSysVarValue(i)
15    print(f"sys value {i} is: {value}")
16    time.sleep(0.1)
17robot.SetLoadWeight(0, 2.5)
18robot.SetLoadCoord(3.0,4.0,5.0)
19time.sleep(1)
20error,getLoad = robot.GetTargetPayload(0)
21error,getLoadTran = robot.GetTargetPayloadCog(0)
22print(f"get load is {getLoad}; get load cog is {getLoadTran[0]} {getLoadTran[1]} {getLoadTran[2]}")
23robot.SetRobotInstallPos(0)
24robot.SetRobotInstallAngle(15.0, 25.0)
25error,[anglex, angley] = robot.GetRobotInstallAngle()
26print(f"GetRobotInstallAngle x: {anglex}; y: {angley}")
27robot.CloseRPC()

6.35. Przełącznik kompensacji tarcia przegubów

Prototyp

FrictionCompensationOnOff(state)

Opis

Przełącznik kompensacji tarcia przegubów

Parametry wymagane

  • state: 0-wył., 1-wł.

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.36. Ustawianie współczynnika kompensacji tarcia przegubów - montaż poziomy

Prototyp

SetFrictionValue_level(coeff)

Opis

Ustawianie współczynnika kompensacji tarcia przegubów - montaż stały - montaż poziomy

Parametry wymagane

  • coeff=[j1,j2,j3,j4,j5,j6]: Współczynniki kompensacji dla sześciu przegubów

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.37. Ustawianie współczynnika kompensacji tarcia przegubów - montaż boczny

Prototyp

SetFrictionValue_wall(coeff)

Opis

Ustawianie współczynnika kompensacji tarcia przegubów - montaż stały - montaż boczny

Parametry wymagane

  • coeff=[j1,j2,j3,j4,j5,j6]: Współczynniki kompensacji dla sześciu przegubów

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.38. Ustawianie współczynnika kompensacji tarcia przegubów - montaż sufitowy

Prototyp

SetFrictionValue_ceiling(coeff)

Opis

Ustawianie współczynnika kompensacji tarcia przegubów - montaż stały - montaż sufitowy

Parametry wymagane

  • coeff=[j1,j2,j3,j4,j5,j6]: Współczynniki kompensacji dla sześciu przegubów

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.39. Ustawianie współczynnika kompensacji tarcia przegubów - montaż swobodny

Prototyp

SetFrictionValue_freedom(coeff)

Opis

Ustawianie współczynnika kompensacji tarcia przegubów - montaż swobodny

Parametry wymagane

  • coeff=[j1,j2,j3,j4,j5,j6]: Współczynniki kompensacji dla sześciu przegubów

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.40. Przykład kodu ustawiania kompensacji tarcia przegubów robota

 1from fairino import Robot
 2# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 3robot = Robot.RPC('192.168.58.2')
 4lcoeff = [0.9, 0.9, 0.9, 0.9, 0.9, 0.9]
 5wcoeff = [0.4, 0.4, 0.4, 0.4, 0.4, 0.4]
 6ccoeff = [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
 7fcoeff = [0.5, 0.5, 0.5, 0.5, 0.5, 0.5]
 8rtn = robot.FrictionCompensationOnOff(1)
 9print(f"FrictionCompensationOnOff rtn is {rtn}")
10rtn = robot.SetFrictionValue_level(lcoeff)
11print(f"SetFrictionValue_level rtn is {rtn}")
12rtn = robot.SetFrictionValue_wall(wcoeff)
13print(f"SetFrictionValue_wall rtn is {rtn}")
14rtn = robot.SetFrictionValue_ceiling(ccoeff)
15print(f"SetFrictionValue_ceiling rtn is {rtn}")
16rtn = robot.SetFrictionValue_freedom(fcoeff)
17print(f"SetFrictionValue_freedom rtn is {rtn}")
18robot.CloseRPC()

6.41. Sprawdzanie kodu błędu robota

Prototyp

GetRobotErrorCode()

Opis

Sprawdzanie kodu błędu robota

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • [maincode subcode]: Kod błędu robota, maincode-główny kod błędu, subcode-podrzędny kod błędu

6.42. Czyszczenie stanu błędu

Prototyp

ResetAllError()

Opis

Czyszczenie stanu błędu, można wyczyścić tylko błędy, które można zresetować

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.43. Przykład kodu pobierania stanu awarii i czyszczenia błędu 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')
 5p1Joint = [-108.145, -50.137, 85.818, -125.599, -87.946, 74.329]
 6robot.MoveJ(joint_pos=p1Joint, tool=5, user=2, vel=50)
 7time.sleep(1)
 8error,[maincode, subcode] = robot.GetRobotErrorCode()
 9print(f"robot maincode is {maincode}; subcode is {subcode}")
10time.sleep(1)
11robot.ResetAllError()
12time.sleep(1)
13error,[maincode, subcode] = robot.GetRobotErrorCode()
14print(f"robot maincode is {maincode}; subcode is {subcode}")
15robot.CloseRPC()

6.44. Ustawianie parametrów monitorowania temperatury i prędkości wentylatora szerokonapięciowej skrzynki kontrolnej

Nowe w wersji python: SDK-v2.1.3

Prototyp

SetWideBoxTempFanMonitorParam(enable, period)

Opis

Ustawianie parametrów monitorowania temperatury i prędkości wentylatora szerokonapięciowej skrzynki kontrolnej

Parametry wymagane

  • enable: 0-niewłączone monitorowanie; 1-włączone monitorowanie

  • period: Okres monitorowania (s), zakres 1-100

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.45. Pobieranie parametrów monitorowania temperatury i prędkości wentylatora szerokonapięciowej skrzynki kontrolnej

Nowe w wersji python: SDK-v2.1.3

Prototyp

GetWideBoxTempFanMonitorParam()

Opis

Pobieranie parametrów monitorowania temperatury i prędkości wentylatora szerokonapięciowej skrzynki kontrolnej

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • enable: 0-niewłączone monitorowanie; 1-włączone monitorowanie

  • period: Okres monitorowania (s), zakres 1-100

6.46. Przykład kodu pobierania temperatury i prądu wentylatora szerokonapięciowej skrzynki kontrolnej

 1from fairino import Robot
 2import time
 3import threading
 4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 5robot = Robot.RPC('192.168.58.2')
 6robot.SetWideBoxTempFanMonitorParam(1, 2)
 7error, enable, period = robot.GetWideBoxTempFanMonitorParam()
 8print(f"GetWideBoxTempFanMonitorParam enable is:{enable},period is:{period}")
 9for i in range(100):
10    error, pkg = robot.GetRobotRealTimeState()
11    print(f"robot ctrl box temp is:{pkg.wideVoltageCtrlBoxTemp},fan current is:{pkg.wideVoltageCtrlBoxFanCurrent}")
12    time.sleep(0.1)
13rtn = robot.SetWideBoxTempFanMonitorParam(0, 2)
14print(f"SetWideBoxTempFanMonitorParam rtn is:{rtn}")
15error, enable, period = robot.GetWideBoxTempFanMonitorParam()
16print(f"GetWideBoxTempFanMonitorParam enable is:{enable},period is:{period}")
17for i in range(100):
18    error, pkg = robot.GetRobotRealTimeState()
19    print(f"robot ctrl box temp is:{pkg.wideVoltageCtrlBoxTemp},fan current is:{pkg.wideVoltageCtrlBoxFanCurrent}")
20    time.sleep(0.1)
21robot.CloseRPC()

6.47. Ustawianie punktu kalibracji ogniska

Nowe w wersji python: SDK-v2.1.4

Prototyp

SetFocusCalibPoint(pointNum, point)

Opis

Ustawianie punktu kalibracji ogniska

Parametry wymagane

  • pointNum: Numer punktu kalibracji ogniska 1-8

  • point: Współrzędne punktu kalibracyjnego

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.48. Obliczanie wyniku kalibracji ogniska

Nowe w wersji python: SDK-v2.1.4

Prototyp

ComputeFocusCalib(pointNum)

Opis

Obliczanie wyniku kalibracji ogniska

Parametry wymagane

  • pointNum: Liczba punktów kalibracyjnych

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • resultPos: Wynik kalibracji XYZ

  • accuracy: Błąd dokładności kalibracji

6.49. Rozpoczęcie śledzenia ogniska

Nowe w wersji python: SDK-v2.1.4

Prototyp

FocusStart(kp=50.0, kpredic=19.0, aMax=1440, vMax=180, type=0)

Opis

Rozpoczęcie śledzenia ogniska

Parametry wymagane

Brak

Parametry domyślne

  • kp: Parametr proporcjonalny, domyślnie 50.0

  • kpredic: Parametr sprzężenia przedniego, domyślnie 19.0

  • aMax: Maksymalne ograniczenie przyspieszenia kątowego, domyślnie 1440°/s^2

  • vMax: Maksymalne ograniczenie prędkości kątowej, domyślnie 180°/s

  • type: Blokowanie kierunku osi X (0-odniesienie do wektora wejściowego; 1-poziomo; 2-pionowo), domyślnie 0

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.50. Zatrzymanie śledzenia ogniska

Nowe w wersji python: SDK-v2.1.4

Prototyp

FocusEnd()

Opis

Zatrzymanie śledzenia ogniska

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.51. Ustawianie współrzędnych ogniska

Nowe w wersji python: SDK-v2.1.4

Prototyp

SetFocusPosition(pos)

Opis

Ustawianie współrzędnych ogniska

Parametry wymagane

  • pos: Współrzędne ogniska XYZ

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.52. Przykład kodu śledzenia ogniska robota

 1from fairino import Robot
 2import time
 3import threading
 4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 5robot = Robot.RPC('192.168.58.2')
 6p1Desc = [186.331, 487.913, 209.850, 149.030, 0.688, -114.347]
 7p1Joint = [-127.876, -75.341, 115.417, -122.741, -59.820, 74.300]
 8p2Desc = [69.721, 535.073, 202.882, -144.406, -14.775, -89.012]
 9p2Joint = [-101.780, -69.828, 110.917, -125.740, -127.841, 74.300]
10p3Desc = [146.861, 578.426, 205.598, 175.997, -36.178, -93.437]
11p3Joint = [-112.851, -60.191, 86.566, -80.676, -97.463, 74.300]
12p4Desc = [136.284, 509.876, 225.613, 178.987, 1.372, -100.696]
13p4Joint = [-116.397, -76.281, 113.845, -128.611, -88.654, 74.299]
14p5Desc = [138.395, 505.972, 298.016, 179.134, 2.147, -101.110]
15p5Joint = [-116.814, -82.333, 109.162, -118.662, -88.585, 74.302]
16p6Desc = [105.553, 454.325, 232.017, -179.426, 0.444, -99.952]
17p6Joint = [-115.649, -84.367, 122.447, -128.663, -90.432, 74.303]
18exaxisPos = [0, 0, 0, 0]
19offdese = [0, 0, 100, 0, 0, 0]
20robot.MoveJ(joint_pos=p1Joint,tool=0,user=0,vel=100,acc=100,ovl=100,exaxis_pos=exaxisPos,blendT=-1,offset_flag=0,offset_pos=offdese)
21robot.SetTcp4RefPoint(1)
22robot.MoveJ(joint_pos=p2Joint,tool=0,user=0,vel=100,acc=100,ovl=100,exaxis_pos=exaxisPos,blendT=-1,offset_flag=0,offset_pos=offdese)
23robot.SetTcp4RefPoint(2)
24robot.MoveJ(joint_pos=p3Joint,tool=0,user=0,vel=100,acc=100,ovl=100,exaxis_pos=exaxisPos,blendT=-1,offset_flag=0,offset_pos=offdese)
25robot.SetTcp4RefPoint(3)
26robot.MoveJ(joint_pos=p4Joint,tool=0,user=0,vel=100,acc=100,ovl=100,exaxis_pos=exaxisPos,blendT=-1,offset_flag=0,offset_pos=offdese)
27robot.SetTcp4RefPoint(4)
28rtn,coordRtn = robot.ComputeTcp4()
29print(f"4 Point ComputeTool {rtn} coord is {coordRtn[0]} {coordRtn[1]} {coordRtn[2]} "
30      f"{coordRtn[3]} {coordRtn[4]} {coordRtn[5]}")
31robot.SetToolCoord(1, coordRtn, 0, 0, 1, 0)
32error, p1Desc = robot.GetForwardKin(p1Joint)
33error, p2Desc = robot.GetForwardKin(p2Joint)
34error, p3Desc = robot.GetForwardKin(p3Joint)
35robot.SetFocusCalibPoint(1, p1Desc)
36robot.SetFocusCalibPoint(2, p2Desc)
37robot.SetFocusCalibPoint(3, p3Desc)
38rtn, resultPos, accuracy = robot.ComputeFocusCalib(pointNum=3)
39print(f"ComputeFocusCalib coord is {rtn} {resultPos[0]} {resultPos[1]} {resultPos[2]} accuracy is {accuracy}")
40rtn = robot.SetFocusPosition(resultPos)
41error, p5Desc = robot.GetForwardKin(p5Joint)
42error, p6Desc = robot.GetForwardKin(p6Joint)
43robot.MoveL(desc_pos=p5Desc,tool=1,user=0,vel=10,acc=100,ovl=100,blendR=-1,blendMode=0,exaxis_pos=exaxisPos,search=0,offset_flag=1,offset_pos=offdese)
44robot.MoveL(desc_pos=p6Desc,tool=1,user=0,vel=10,acc=100,ovl=100,blendR=-1,blendMode=0,exaxis_pos=exaxisPos,search=0,offset_flag=1,offset_pos=offdese)
45robot.FocusStart(50, 19, 710, 90, 0)
46robot.MoveL(desc_pos=p5Desc,tool=1,user=0,vel=10,acc=100,ovl=100,blendR=-1,blendMode=0,exaxis_pos=exaxisPos,search=0,offset_flag=1,offset_pos=offdese)
47robot.MoveL(desc_pos=p6Desc,tool=1,user=0,vel=10,acc=100,ovl=100,blendR=-1,blendMode=0,exaxis_pos=exaxisPos,search=0,offset_flag=1,offset_pos=offdese)
48robot.FocusEnd()
49robot.CloseRPC()

6.53. Włączenie funkcji kalibracji czułości czujnika momentu obrotowego przegubów

Nowe w wersji python: SDK-v2.1.7

Prototyp

JointSensitivityEnable(status)

Opis

Włączenie funkcji kalibracji czułości czujnika momentu obrotowego przegubów

Parametry wymagane

  • status: 0-wyłączone; 1-włączone

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.54. Zbieranie danych czułości czujnika momentu obrotowego przegubów

Nowe w wersji python: SDK-v2.1.7

Prototyp

JointSensitivityCollect()

Opis

Zbieranie danych czułości czujnika momentu obrotowego przegubów

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.55. Pobieranie wyniku kalibracji czułości czujnika momentu obrotowego przegubów

Nowe w wersji python: SDK-v2.1.7

Prototyp

JointSensitivityCalibration()

Opis

Pobieranie wyniku kalibracji czułości czujnika momentu obrotowego przegubów

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • calibResult: Czułość przegubów j1~j6 [0-1]

  • linearityn: Liniowość przegubów j1~j6 [0-1]

6.56. Pobieranie błędu histerezy czujnika momentu obrotowego przegubów

Prototyp

JointHysteresisError()

Opis

Pobieranie błędu histerezy czujnika momentu obrotowego przegubów

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • hysteresisError: Błąd histerezy przegubów j1~j6

6.57. Pobieranie powtarzalności czujnika momentu obrotowego przegubów

Prototyp

JointRepeatability()

Opis

Pobieranie powtarzalności czujnika momentu obrotowego przegubów

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • repeatability: Powtarzalność przegubów j1~j6

6.58. Ustawianie parametrów czujnika siły przegubów

Prototyp

SetAdmittanceParams(M, B, K, threshold, sensitivity, setZeroFlag)

Opis

Ustawianie parametrów czujnika siły przegubów

Parametry wymagane

  • M: Współczynniki masy J1-J6 [0.001 ~ 10]

  • B: Współczynniki tłumienia J1-J6 [0.001 ~ 10]

  • K: Współczynniki sztywności J1-J6 [0.001 ~ 10]

  • threshold: Próg sterowania siłą, Nm

  • sensitivity: Czułość, Nm/V, [0 ~ 10]

  • setZeroFlag: Flaga włączenia funkcji; 0-wyłączona; 1-włączona; 2-rejestracja punktu zerowego w pozycji 1; 3-rejestracja punktu zerowego w pozycji 2

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

6.59. Przykład kodu automatycznej kalibracji czułości czujnika momentu obrotowego przegubów

  1from fairino import Robot
  2import time
  3robot = Robot.RPC('192.168.58.2')
  4rtn = robot.JointSensitivityEnable(0)
  5rtn = robot.JointSensitivityEnable(1)
  6print(f"JointSensitivityEnable rtn is {rtn}")
  7curJPos = [0.0] * 6
  8rtn, curJPos = robot.GetActualJointPosDegree(0)
  9epos = [0.0] * 4
 10offset_pos = [0.0] * 6
 11jointPos1 = [curJPos[0], 0.0, 0.0, -90.0, 0.02, curJPos[5]]
 12descPos1 = [0.0] * 6
 13rtn, descPos1 = robot.GetForwardKin(jointPos1)
 14robot.MoveJ(joint_pos=jointPos1, desc_pos=descPos1, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 15time.sleep(0.2)
 16rtn = robot.JointSensitivityCollect()
 17print(f"JointSensitivityCollect 1 rtn is {rtn}")
 18time.sleep(0.1)
 19jointPos2 = [curJPos[0], -30.0, 0.0, -90.0, 0.02, curJPos[5]]
 20descPos2 = [0.0] * 6
 21rtn, descPos2 = robot.GetForwardKin(jointPos2)
 22robot.MoveJ(joint_pos=jointPos2, desc_pos=descPos2, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 23time.sleep(0.1)
 24rtn = robot.JointSensitivityCollect()
 25print(f"JointSensitivityCollect 2 rtn is {rtn}")
 26time.sleep(0.1)
 27jointPos3 = [curJPos[0], -60.0, 0.0, -90.0, 0.02, curJPos[5]]
 28descPos3 = [0.0] * 6
 29rtn, descPos3 = robot.GetForwardKin(jointPos3)
 30robot.MoveJ(joint_pos=jointPos3, desc_pos=descPos3, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 31time.sleep(0.1)
 32rtn = robot.JointSensitivityCollect()
 33print(f"JointSensitivityCollect 3 rtn is {rtn}")
 34time.sleep(0.1)
 35jointPos4 = [curJPos[0], -90.0, 0.0, -90.0, 0.02, curJPos[5]]
 36descPos4 = [0.0] * 6
 37rtn, descPos4 = robot.GetForwardKin(jointPos4)
 38robot.MoveJ(joint_pos=jointPos4, desc_pos=descPos4, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 39time.sleep(0.1)
 40rtn = robot.JointSensitivityCollect()
 41print(f"JointSensitivityCollect 4 rtn is {rtn}")
 42time.sleep(0.1)
 43jointPos5 = [curJPos[0], -120.0, 0.0, -90.0, 0.02, curJPos[5]]
 44descPos5 = [0.0] * 6
 45rtn, descPos5 = robot.GetForwardKin(jointPos5)
 46robot.MoveJ(joint_pos=jointPos5, desc_pos=descPos5, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 47time.sleep(0.1)
 48rtn = robot.JointSensitivityCollect()
 49print(f"JointSensitivityCollect 5 rtn is {rtn}")
 50time.sleep(0.1)
 51jointPos6 = [curJPos[0], -150.0, 0.0, -90.0, 0.02, curJPos[5]]
 52descPos6 = [0.0] * 6
 53rtn, descPos6 = robot.GetForwardKin(jointPos6)
 54robot.MoveJ(joint_pos=jointPos6, desc_pos=descPos6, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 55time.sleep(0.1)
 56rtn = robot.JointSensitivityCollect()
 57print(f"JointSensitivityCollect 6 rtn is {rtn}")
 58time.sleep(0.1)
 59jointPos7 = [curJPos[0], -180.0, 0.0, -90.0, 0.02, curJPos[5]]
 60descPos7 = [0.0] * 6
 61rtn, descPos7 = robot.GetForwardKin(jointPos7)
 62robot.MoveJ(joint_pos=jointPos7, desc_pos=descPos7, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 63time.sleep(0.1)
 64rtn = robot.JointSensitivityCollect()
 65print(f"JointSensitivityCollect 7 rtn is {rtn}")
 66time.sleep(0.1)
 67robot.MoveJ(joint_pos=jointPos6, desc_pos=descPos6, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 68time.sleep(0.1)
 69rtn = robot.JointSensitivityCollect()
 70print(f"JointSensitivityCollect 8 rtn is {rtn}")
 71time.sleep(0.1)
 72robot.MoveJ(joint_pos=jointPos5, desc_pos=descPos5, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 73time.sleep(0.1)
 74rtn = robot.JointSensitivityCollect()
 75print(f"JointSensitivityCollect 9 rtn is {rtn}")
 76time.sleep(0.1)
 77robot.MoveJ(joint_pos=jointPos4, desc_pos=descPos4, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 78time.sleep(0.1)
 79rtn = robot.JointSensitivityCollect()
 80print(f"JointSensitivityCollect 10 rtn is {rtn}")
 81time.sleep(0.1)
 82robot.MoveJ(joint_pos=jointPos3, desc_pos=descPos3, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 83time.sleep(0.1)
 84rtn = robot.JointSensitivityCollect()
 85print(f"JointSensitivityCollect 11 rtn is {rtn}")
 86time.sleep(0.1)
 87robot.MoveJ(joint_pos=jointPos2, desc_pos=descPos2, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 88time.sleep(0.1)
 89rtn = robot.JointSensitivityCollect()
 90print(f"JointSensitivityCollect 12 rtn is {rtn}")
 91time.sleep(0.1)
 92robot.MoveJ(joint_pos=jointPos1, desc_pos=descPos1, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
 93time.sleep(0.2)
 94rtn = robot.JointSensitivityCollect()
 95print(f"JointSensitivityCollect 13 rtn is {rtn}")
 96time.sleep(0.1)
 97calibResult = [0.0] * 6
 98linearity = [0.0] * 6
 99rtn,calibResult, linearity = robot.JointSensitivityCalibration()
100print(f"JointSensitivityCalibration rtn is {rtn}")
101rtn = robot.JointSensitivityEnable(0)
102print(f"JointSensitivityEnable rtn is {rtn}")
103print(f"jointSensor Calib result is {calibResult[0]},{calibResult[1]},{calibResult[2]},{calibResult[3]},{calibResult[4]},{calibResult[5]}")
104print( f"jointSensor linearity is {linearity[0]},{linearity[1]},{linearity[2]},{linearity[3]},{linearity[4]},{linearity[5]}")
105hysteresisError = [0.0] * 6
106rtn,hysteresisError = robot.JointHysteresisError()
107print(f"JointHysteresisError result is {hysteresisError[0]},{hysteresisError[1]},{hysteresisError[2]},{hysteresisError[3]},{hysteresisError[4]},{hysteresisError[5]}")
108repeatability = [0.0] * 6
109rtn,repeatability = robot.JointRepeatability()
110print(f"JointRepeatability result is {repeatability[0]},{repeatability[1]},{repeatability[2]},{repeatability[3]},{repeatability[4]},{repeatability[5]}")
111M = [1.0] * 6
112B = [1.0] * 6
113K = [0.0] * 6
114threshold = [1.0] * 6
115setZeroFlag = 1
116rtn = robot.SetAdmittanceParams(M, B, K, threshold, calibResult, setZeroFlag)
117print(f"SetAdmittanceParams rtn is {rtn}")
118robot.CloseRPC()

6.60. Pobieranie liczby błędnych ramek dla 8 portów węzłów podrzędnych robota

Nowe w wersji python: SDK-v2.1.7

Prototyp

GetSlavePortErrCounter()

Opis

Pobieranie liczby błędnych ramek dla 8 portów węzłów podrzędnych robota

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • inRecvErr: Liczba błędnych ramek odebranych na wejściu

  • inCRCErr: Liczba błędnych ramek CRC na wejściu

  • inTransmitErr: Liczba błędnych ramek transmitowanych na wejściu

  • inLinkErr: Liczba błędów łącza na wejściu

  • outRecvErr: Liczba błędnych ramek odebranych na wyjściu

  • outCRCErr: Liczba błędnych ramek CRC na wyjściu

  • outTransmitErr: Liczba błędnych ramek transmitowanych na wyjściu

  • outLinkErr: Liczba błędów łącza na wyjściu

6.61. Zerowanie licznika błędnych ramek portu węzła podrzędnego

Nowe w wersji python: SDK-v2.1.7

Prototyp

JointSensitivityEnable(slaveID)

Opis

Zerowanie licznika błędnych ramek portu węzła podrzędnego

Parametry wymagane

  • slaveID: Numer węzła podrzędnego 0~7

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.62. Przykład kodu pobierania błędnych ramek portu węzła podrzędnego

 1from fairino import Robot
 2import time
 3import threading
 4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 5robot = Robot.RPC('192.168.58.2')
 6inRecvErr = [0] * 8
 7inCRCErr = [0] * 8
 8inTransmitErr = [0] * 8
 9inLinkErr = [0] * 8
10outRecvErr = [0] * 8
11outCRCErr = [0] * 8
12outTransmitErr = [0] * 8
13outLinkErr = [0] * 8
14rtn,inRecvErr, inCRCErr, inTransmitErr, inLinkErr, outRecvErr, outCRCErr, outTransmitErr, outLinkErr = robot.GetSlavePortErrCounter()
15for i in range(8):
16    if inRecvErr[i] != 0:
17        print(f"inRecvErr {i} is {inRecvErr[i]}")
18    if inCRCErr[i] != 0:
19        print(f"inCRCErr {i} is {inCRCErr[i]}")
20    if inTransmitErr[i] != 0:
21        print(f"inTransmitErr {i} is {inTransmitErr[i]}")
22    if inLinkErr[i] != 0:
23        print(f"inLinkErr {i} is {inLinkErr[i]}")
24    if outRecvErr[i] != 0:
25        print(f"outRecvErr {i} is {outRecvErr[i]}")
26    if outCRCErr[i] != 0:
27        print(f"outCRCErr {i} is {outCRCErr[i]}")
28    if outTransmitErr[i] != 0:
29        print(f"outTransmitErr {i} is {outTransmitErr[i]}")
30    if outLinkErr[i] != 0:
31        print(f"outLinkErr {i} is {outLinkErr[i]}")
32print("others has no err!")
33for i in range(8):
34    robot.SlavePortErrCounterClear(i)
35robot.CloseRPC()

6.63. Ustawianie współczynnika sprzężenia przedniego prędkości dla każdej osi

Nowe w wersji python: SDK-v2.1.7

Prototyp

SetVelFeedForwardRatio(radio)

Opis

Ustawianie współczynnika sprzężenia przedniego prędkości dla każdej osi

Parametry wymagane

  • radio: Współczynnik sprzężenia przedniego prędkości dla każdej osi

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

6.64. Pobieranie współczynnika sprzężenia przedniego prędkości dla każdej osi

Nowe w wersji python: SDK-v2.1.7

Prototyp

GetVelFeedForwardRatio()

Opis

Pobieranie współczynnika sprzężenia przedniego prędkości dla każdej osi

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • radio: Współczynnik sprzężenia przedniego prędkości dla każdej osi

6.65. Przykład kodu współczynnika sprzężenia przedniego prędkości robota

 1from fairino import Robot
 2import time
 3import threading
 4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 5robot = Robot.RPC('192.168.58.2')
 6setRadio = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
 7robot.SetVelFeedForwardRatio(setRadio)
 8getRadio = [0.0] * 6
 9rtn,getRadio = robot.GetVelFeedForwardRatio()
10print(f"{getRadio[0]},{getRadio[1]},{getRadio[2]},{getRadio[3]},{getRadio[4]},{getRadio[5]}")
11robot.CloseRPC()

6.66. Kalibracja TCP czujnika fotoelektrycznego - obliczanie RPY narzędzia

Prototyp

TCPComputeRPY(Btool, Etool, sensor, radius, dz)

Opis

Kalibracja TCP czujnika fotoelektrycznego - obliczanie RPY narzędzia

Parametry wymagane

  • Btool: Pozycja kartezjańska robota

  • Etool: Bieżąca wartość układu współrzędnych narzędzia

  • Btsenserool: Bieżąca wartość układu współrzędnych czujnika (tymczasowo niedostępne)

  • radius: Promień ruchu po okręgu mm (tymczasowo niedostępne)

  • dz: Odległość ruchu wzdłuż ujemnego kierunku osi Z układu bazowego; gdy dz = 10000, funkcja bezpośrednio zwraca RPY narzędzia

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

6.67. Kalibracja TCP czujnika fotoelektrycznego - obliczanie XYZ narzędzia

Prototyp

TCPComputeXYZ(select, originDirection, pos1, pos2, pos3, pos4)

Opis

Kalibracja TCP czujnika fotoelektrycznego - obliczanie XYZ narzędzia

Parametry wymagane

  • select: 0-obliczanie TCP narzędzia; 1-obliczanie punktu początkowego czujnika; 2-obliczanie postawy czujnika; 3-bezpośrednie zwrócenie TCP narzędzia; 4-rejestracja bieżącego układu współrzędnych przedmiotu i narzędzia

  • originDirection: 0-kierunek X; 1-kierunek Y; 2-kierunek Z

  • pos1: Pozycja kartezjańska robota 1

  • pos2: Pozycja kartezjańska robota 2

  • pos3: Pozycja kartezjańska robota 3

  • pos4: Pozycja kartezjańska robota 4

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • Wartość zwracana (w przypadku pomyślnego wywołania) Wartości XYZ TCP narzędzia

6.68. Kalibracja TCP czujnika fotoelektrycznego - rozpoczęcie rejestracji pozycji środka kołnierza końcowego

Prototyp

TCPRecordFlangePosStart()

Opis

Kalibracja TCP czujnika fotoelektrycznego - rozpoczęcie rejestracji pozycji środka kołnierza końcowego

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

6.69. Kalibracja TCP czujnika fotoelektrycznego - zatrzymanie rejestracji pozycji środka kołnierza końcowego

Prototyp

TCPRecordFlangePosEnd()

Opis

Kalibracja TCP czujnika fotoelektrycznego - zatrzymanie rejestracji pozycji środka kołnierza końcowego

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

6.70. Kalibracja TCP czujnika fotoelektrycznego - pobieranie pozycji środka narzędzia końcowego

Prototyp

TCPGetRecordFlangePos()

Opis

Kalibracja TCP czujnika fotoelektrycznego - pobieranie pozycji środka narzędzia końcowego

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • Wartość zwracana (w przypadku pomyślnego wywołania) Pozycja środka narzędzia końcowego (x,y,z)

6.71. Kalibracja TCP czujnika fotoelektrycznego

Prototyp

PhotoelectricSensorTCPCalibration(self, luaFile, offsetX)

Opis

Kalibracja TCP czujnika fotoelektrycznego

Parametry wymagane

  • luaFile: Nazwa programu lua do automatycznej kalibracji: np. FR_CalibrateTheToolTcp.lua

  • offsetX: Przesunięcie punktu nauczania (x,y,z) mm

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • Wartość zwracana (w przypadku pomyślnego wywołania) Wartości XYZ TCP narzędzia

6.72. Przykład kodu kalibracji TCP czujnika fotoelektrycznego

1from fairino import Robot
2import time
3robot = Robot.RPC('192.168.58.2')
4offset = [10.0, 10.0, 3.0]
5TCP = [0.0] * 6
6rtn, TCP = robot.PhotoelectricSensorTCPCalibration("FR_CalibrateTheToolTcp.lua", offset)
7print(f"PhotoelectricSensorTCPCalibration rtn is {rtn},{TCP[0]},{TCP[1]},{TCP[2]},{TCP[3]},{TCP[4]},{TCP[5]}")
8robot.CloseRPC()
9return 0