2. 机器人运动
2.1. 机器人点动
2.1.1. jog点动
原型 |
|
---|---|
描述 |
jog点动 |
必选参数 |
|
默认参数 |
|
返回值 |
错误码 成功-0 失败- errcode |
2.1.2. jog点动减速停止
原型 |
|
---|---|
描述 |
jog点动减速停止 |
必选参数 |
|
默认参数 |
无 |
返回值 |
错误码 成功-0 失败- errcode |
2.1.3. jog点动立即停止
原型 |
|
---|---|
描述 |
jog点动立即停止 |
必选参数 |
无 |
默认参数 |
无 |
返回值 |
错误码 成功-0 失败- errcode |
2.1.3.1. 代码示例
1from fairino import Robot
2import time
3# 与机器人控制器建立连接,连接成功返回一个机器人对象
4robot = Robot.RPC('192.168.58.2')
5# 机器人单轴点动
6robot.StartJOG(0,1,0,20.0,20.0,30.0) # 单关节运动,StartJOG为非阻塞指令,运动状态下接收其他运动指令(包含StartJOG)会被丢弃
7time.sleep(1)
8#机器人单轴点动减速停止
9ret = robot.StopJOG(1)
10print(ret)
11#机器人单轴点动立即停止
12robot.ImmStopJOG()
13robot.StartJOG(0,2,1,20.0)
14time.sleep(1)
15robot.ImmStopJOG()
16robot.StartJOG(0,3,1,20.0)
17time.sleep(1)
18robot.ImmStopJOG()
19robot.StartJOG(0,4,1,20.0,vel=40)
20time.sleep(1)
21robot.ImmStopJOG()
22robot.StartJOG(0,5,1,20.0,acc=50)
23time.sleep(1)
24robot.ImmStopJOG()
25robot.StartJOG(0,6,1,20.0,20.0,30.0)
26time.sleep(1)
27robot.ImmStopJOG()
28# 基坐标
29robot.StartJOG(2,1,0,20.0) #基坐标系下点动
30time.sleep(1)
31# #机器人单轴点动立即停止
32robot.ImmStopJOG()
33robot.StartJOG(2,1,1,20.0)
34time.sleep(1)
35robot.ImmStopJOG()
36robot.StartJOG(2,2,1,20.0)
37time.sleep(1)
38robot.ImmStopJOG()
39robot.StartJOG(2,3,1,20.0)
40time.sleep(1)
41robot.ImmStopJOG()
42robot.StartJOG(2,4,1,20.0)
43time.sleep(1)
44robot.ImmStopJOG()
45robot.StartJOG(2,5,1,20.0)
46time.sleep(1)
47robot.ImmStopJOG()
48robot.StartJOG(2,6,1,20.0)
49time.sleep(1)
50robot.ImmStopJOG()
51# 工具坐标
52robot.StartJOG(4,1,0,20.0,20.0,100.0) #工具坐标系下点动
53time.sleep(1)
54# #机器人单轴点动立即停止
55robot.ImmStopJOG()
56robot.StartJOG(4,1,1,20.0)
57time.sleep(1)
58robot.ImmStopJOG()
59robot.StartJOG(4,2,1,20.0)
60time.sleep(1)
61robot.ImmStopJOG()
62robot.StartJOG(4,3,1,20.0)
63time.sleep(1)
64robot.ImmStopJOG()
65robot.StartJOG(4,4,1,20.0,20.0,100.0)
66time.sleep(1)
67robot.ImmStopJOG()
68robot.StartJOG(4,5,1,20.0,vel=10.0,acc=20.0)
69time.sleep(1)
70robot.ImmStopJOG()
71robot.StartJOG(4,6,1,20.0,acc=40.0)
72time.sleep(1)
73robot.ImmStopJOG()
74# 工件坐标
75robot.StartJOG(8,1,0,20.0,20.0,100.0) #工件坐标系下点动
76time.sleep(1)
77# #机器人单轴点动立即停止
78robot.ImmStopJOG()
79robot.StartJOG(8,1,1,20.0)
80time.sleep(1)
81robot.ImmStopJOG()
82robot.StartJOG(8,2,1,20.0)
83time.sleep(1)
84robot.ImmStopJOG()
85robot.StartJOG(8,3,1,20.0)
86time.sleep(1)
87robot.ImmStopJOG()
88robot.StartJOG(8,4,1,20.0)
89time.sleep(1)
90robot.ImmStopJOG()
91robot.StartJOG(8,5,1,20.0,vel=30.0)
92time.sleep(1)
93robot.ImmStopJOG()
94robot.StartJOG(8,6,1,20.0,20.0,acc=90.0)
95time.sleep(1)
96robot.ImmStopJOG()
2.2. 关节空间运动
原型 |
|
---|---|
描述 |
关节空间运动 |
必选参数 |
|
默认参数 |
|
返回值 |
错误码 成功-0 失败- errcode |
2.2.1. 代码示例
1from fairino import Robot
2import time
3# 与机器人控制器建立连接,连接成功返回一个机器人对象
4robot = Robot.RPC('192.168.58.2')
5joint_pos4 = [-83.24, -96.476, 93.688, -114.079, -62, -100]
6joint_pos5 = [-43.24, -70.476, 93.688, -114.079, -62, -80]
7joint_pos6 = [-83.24, -96.416, 43.188, -74.079, -80, -10]
8tool = 0 #工具坐标系编号
9user = 0 #工件坐标系编号
10ret = robot.MoveJ(joint_pos4, tool, user, vel=30) #关节空间运动
11print("关节空间运动点4:错误码", ret)
12ret = robot.MoveJ(joint_pos5, tool, user)
13print("关节空间运动点5:错误码", ret)
14robot.MoveJ(joint_pos6, tool, user, offset_flag=1, offset_pos=[10,10,10,0,0,0])
15print("关节空间运动点6:错误码", ret)
2.3. 笛卡尔空间直线运动
原型 |
|
---|---|
描述 |
笛卡尔空间直线运动 |
必选参数 |
|
默认参数 |
|
返回值 |
错误码 成功-0 失败- errcode |
2.3.1. 代码示例
1from fairino import Robot
2import time
3# 与机器人控制器建立连接,连接成功返回一个机器人对象
4robot = Robot.RPC('192.168.58.2')
5desc_pos1 = [36.794,-475.119, 65.379, -176.938, 2.535, -179.829]
6desc_pos2 = [136.794,-475.119, 65.379, -176.938, 2.535, -179.829]
7desc_pos3 = [236.794,-475.119, 65.379, -176.938, 2.535, -179.829]
8tool = 0 #工具坐标系编号
9user = 0 #工件坐标系编号
10ret = robot.MoveL(desc_pos1, tool, user) #笛卡尔空间直线运动
11print("笛卡尔空间直线运动点1:错误码", ret)
12robot.MoveL(desc_pos2, tool, user, vel=20, acc=100)
13print("笛卡尔空间直线运动点2:错误码", ret)
14robot.MoveL(desc_pos3, tool, user, offset_flag=1, offset_pos=[10,10,10,0,0,0])
15print("笛卡尔空间直线运动点3:错误码", ret)
2.4. 笛卡尔空间圆弧运动
原型 |
|
---|---|
描述 |
笛卡尔空间圆弧运动 |
必选参数 |
|
默认参数 |
|
返回值 |
错误码 成功-0 失败- errcode |
2.4.1. 代码示例
1from fairino import Robot
2# 与机器人控制器建立连接,连接成功返回一个机器人对象
3robot = Robot.RPC('192.168.58.2')
4desc_pos1 = [236.794,-475.119, 65.379, -176.938, 2.535, -179.829]
5desc_posc1 = [266.794,-455.119, 65.379, -176.938, 2.535, -179.829] #MoveC过渡点
6desc_posc2 = [286.794,-475.119, 65.379, -176.938, 2.535, -179.829] #MoveC目标点
7tool = 0#工具坐标系编号
8user = 0 #工件坐标系编号
9ret = robot.MoveL(desc_pos1, tool, user, vel=30, acc=100)
10print("笛卡尔空间直线运动:错误码", ret)
11ret = robot.MoveC(desc_posc1, tool, user, desc_posc2,tool, user) #笛卡尔空间圆弧运动
12print("笛卡尔空间圆弧运动:错误码", ret)
2.5. 笛卡尔空间整圆运动
原型 |
|
---|---|
描述 |
笛卡尔空间整圆运动 |
必选参数 |
|
默认参数 |
|
返回值 |
错误码 成功-0 失败- errcode |
2.5.1. 代码示例
1from fairino import Robot
2# 与机器人控制器建立连接,连接成功返回一个机器人对象
3robot = Robot.RPC('192.168.58.2')
4desc_pos2 = [236.794,-475.119, 65.379, -176.938, 2.535, -179.829]
5desc_posc3 = [256.794,-435.119, 65.379, -176.938, 2.535, -179.829] #Circle路径点
6desc_posc4 = [286.794,-475.119, 65.379, -176.938, 2.535, -179.829] #Circle目标点
7tool = 0#工具坐标系编号
8user = 0 #工件坐标系编号
9robot.MoveL(desc_pos2, tool, user, vel=40, acc=100)
10print("笛卡尔空间直线运动:错误码", ret)
11ret = robot.Circle(desc_posc3, tool, user, desc_posc4, tool, user, vel_t=40, offset_flag=1, offset_pos=[5,10,15,0,0,1]) #笛卡尔空间圆弧运动
12print("笛卡尔空间圆弧运动:错误码", ret) #笛卡尔空间整圆运动
2.6. 笛卡尔空间螺旋线运动
原型 |
|
---|---|
描述 |
笛卡尔空间螺旋线运动 |
必选参数 |
|
默认参数 |
|
返回值 |
错误码 成功-0 失败- errcode |
2.6.1. 代码示例
1from fairino import Robot
2# 与机器人控制器建立连接,连接成功返回一个机器人对象
3robot = Robot.RPC('192.168.58.2')
4desc_pos_spiral= [236.794,-475.119, -65.379, -176.938, 2.535, -179.829]#Spiral目标点
5#螺旋线参数[circle_num,circle_angle,rad_init,rad_add,rotaxis_add,rot_direction]
6# circle_num:螺旋圈数,circle_angle:螺旋倾角,rad_init:螺旋初始半径,rad_add:半径增量,
7# rotaxis_add:转轴方向增量,rot_direction:旋转方向,0-顺时针,1-逆时针
8param = [5.0,10,30,10,5,0]
9tool = 0#工具坐标系编号
10user = 0 #工件坐标系编号
11ret = robot.NewSpiral(desc_pos_spiral, tool, user, param,vel=40 ) #笛卡尔空间螺旋线运动
12print("笛卡尔空间螺旋线运动:错误码", ret)
2.7. 伺服运动开始
原型 |
|
---|---|
描述 |
伺服运动开始,配合ServoJ、ServoCart指令使用 |
必选参数 |
无 |
默认参数 |
无 |
返回值 |
错误码 成功-0 失败- errcode |
2.8. 伺服运动结束
原型 |
|
---|---|
描述 |
伺服运动结束,配合ServoJ、ServoCart指令使用 |
必选参数 |
无 |
默认参数 |
无 |
返回值 |
错误码 成功-0 失败- errcode |
2.9. 关节空间伺服模式运动
原型 |
|
---|---|
描述 |
关节空间伺服模式运动 |
必选参数 |
|
默认参数 |
|
返回值 |
错误码 成功-0 失败- errcode |
2.10. 笛卡尔空间伺服模式运动
原型 |
|
---|---|
描述 |
笛卡尔空间伺服模式运动 |
必选参数 |
|
默认参数 |
|
返回值 |
错误码 成功-0 失败- errcode |
2.10.1. 代码示例
1from fairino import Robot
2import time
3# 与机器人控制器建立连接,连接成功返回一个机器人对象
4robot = Robot.RPC('192.168.58.2')
5error,joint_pos = robot.GetActualJointPosDegree()
6print("机器人当前关节位置",joint_pos)
7joint_pos = [joint_pos[0],joint_pos[1],joint_pos[2],joint_pos[3],joint_pos[4],joint_pos[5]]
8error_joint = 0
9count =100
10error = robot.ServoMoveStart() #伺服运动开始
11print("伺服运动开始错误码",error)
12while(count):
13 error = robot.ServoJ(joint_pos) #关节空间伺服模式运动
14 if error!=0:
15 error_joint =error
16 joint_pos[0] = joint_pos[0] + 0.1 #每次1轴运动0.1度,运动100次
17 count = count - 1
18 time.sleep(0.008)
19print("关节空间伺服模式运动错误码",error_joint)
20error = robot.ServoMoveEnd() #伺服运动结束
21print("伺服运动结束错误码",error)
22mode = 2 #[0]-绝对运动(基坐标系),[1]-增量运动(基坐标系),[2]-增量运动(工具坐标系)
23n_pos = [0.0,0.0,0.5,0.0,0.0,0.0] #笛卡尔空间位姿增量
24error,desc_pos = robot.GetActualTCPPose()
25print("机器人当前笛卡尔位置",desc_pos)
26count = 100
27error_cart =0
28error = robot.ServoMoveStart() #伺服运动开始
29print("伺服运动开始错误码",error)
30while(count):
31 error = robot.ServoCart(mode, n_pos, vel=40) #笛卡尔空间伺服模式运动
32 if error!=0:
33 error_cart =error
34 count = count - 1
35 time.sleep(0.008)
36print("笛卡尔空间伺服模式运动错误码", error_cart)
37error = robot.ServoMoveEnd() #伺服运动开始
38print("伺服运动结束错误码",error)
2.11. 笛卡尔空间点到点运动
原型 |
|
---|---|
描述 |
笛卡尔空间点到点运动 |
必选参数 |
|
默认参数 |
|
返回值 |
错误码 成功-0 失败- errcode |
2.11.1. 代码示例
1from fairino import Robot
2import time
3# 与机器人控制器建立连接,连接成功返回一个机器人对象
4robot = Robot.RPC('192.168.58.2')
5desc_pos7 = [236.794,-475.119, 65.379, -176.938, 2.535, -179.829]
6desc_pos8 = [236.794,-575.119, 165.379, -176.938, 2.535, -179.829]
7desc_pos9 = [236.794,-475.119, 265.379, -176.938, 2.535, -179.829]
8tool = 0 #工具坐标系编号
9user = 0 #工件坐标系编号
10robot.MoveCart(desc_pos7, tool, user)
11print("笛卡尔空间点到点运动点7:错误码", ret)
12robot.MoveCart(desc_pos8, tool, user, vel=30)
13print("笛卡尔空间点到点运动点8:错误码", ret)
14robot.MoveCart(desc_pos9, tool, user,)
15print("笛卡尔空间点到点运动点9:错误码", ret)
2.12. 机器人样条运动
2.12.1. 样条运动开始
原型 |
|
---|---|
描述 |
样条运动开始 |
必选参数 |
无 |
默认参数 |
无 |
返回值 |
错误码 成功-0 失败- errcode |
2.12.2. 样条运动PTP
原型 |
|
---|---|
描述 |
样条运动PTP |
必选参数 |
|
默认参数 |
|
返回值 |
|
2.12.3. 样条运动结束
原型 |
|
---|---|
描述 |
样条运动结束 |
必选参数 |
无 |
默认参数 |
无 |
返回值 |
错误码 成功-0 失败- errcode |
2.12.3.1. 代码示例
1from fairino import Robot
2# 与机器人控制器建立连接,连接成功返回一个机器人对象
3robot = Robot.RPC('192.168.58.2')
4tool = 0 #工具坐标系编号
5user = 0 #工件坐标系编号
6joint_pos1 = [116.489,-85.278,111.501,-112.486,-85.561,24.693]
7joint_pos2 = [86.489,-65.278,101.501,-112.486,-85.561,24.693]
8joint_pos3 = [116.489,-45.278,91.501,-82.486,-85.561,24.693]
9ret = robot.SplineStart() #样条运动开始
10print("样条运动开始:错误码", ret)
11ret = robot.SplinePTP(joint_pos1, tool, user) #样条运动PTP
12print("样条运动PTP运动点1:错误码", ret)
13ret = robot.SplinePTP(joint_pos2, tool, user) #样条运动PTP
14print("样条运动PTP运动点2:错误码", ret)
15ret = robot.SplinePTP(joint_pos3, tool, user) #样条运动PTP
16print("样条运动PTP运动点3:错误码", ret)
17ret = robot.SplineEnd() #样条运动结束
18print("样条运动结束:错误码", ret)
2.13. 机器人新样条运动
2.13.1. 新样条运动开始
在 python 版本发生变更: SDK-v2.0.3
原型 |
|
---|---|
描述 |
新样条运动开始 |
必选参数 |
|
默认参数 |
|
返回值 |
错误码 成功-0 失败- errcode |
2.13.2. 新样条运动结束
原型 |
|
---|---|
描述 |
新样条运动结束 |
必选参数 |
无 |
默认参数 |
无 |
返回值 |
|
2.13.3. 新样条指令点
原型 |
|
---|---|
描述 |
新样条指令点 |
必选参数 |
|
默认参数 |
|
返回值 |
错误码 成功-0 失败- errcode |
2.13.3.1. 代码示例
1from fairino import Robot
2# 与机器人控制器建立连接,连接成功返回一个机器人对象
3robot = Robot.RPC('192.168.58.2')
4tool = 0 #工具坐标系编号
5user = 0 #工件坐标系编号
6lastFlag= 0 # 是否为最后一个点,0-否,1-是
7desc_pos4 = [236.794,-375.119, 65.379, -176.938, 2.535, -179.829]
8desc_pos5 = [236.794,-275.119, 165.379, -176.938, 2.535, -179.829]
9desc_pos6 = [286.794,-375.119, 265.379, -176.938, 2.535, -179.829]
10ret = robot.NewSplineStart(1) #新样条运动开始
11print("新样条运动开始:错误码", ret)
12ret = robot.NewSplinePoint(desc_pos4, tool, user, lastFlag)#新样条指令点
13print("新样条指令点4:错误码", ret)
14ret = robot.NewSplinePoint(desc_pos5, tool, user, lastFlag, vel=30)#新样条指令点
15print("新样条指令点5:错误码", ret)
16lastFlag = 1
17ret = robot.NewSplinePoint(desc_pos6, tool, user, lastFlag, vel=30)#新样条指令点
18print("新样条指令点6:错误码", ret)
19ret = robot.NewSplineEnd() #新样条运动结束
20print("新样条运动结束:错误码", ret)
2.14. 机器人终止运动
原型 |
|
---|---|
描述 |
终止运动,使用终止运动需运动指令为非阻塞状态 |
必选参数 |
无 |
默认参数 |
无 |
返回值 |
错误码 成功-0 失败- errcode |
2.14.1. 代码示例
1from fairino import Robot
2# 与机器人控制器建立连接,连接成功返回一个机器人对象
3robot = Robot.RPC('192.168.58.2')
4desc_pos1 = [-187.519, 319.248, 397, -157.278, -31.188, 107.199]
5desc_pos2 = [-187.519, 310.248, 297, -157.278, -31.188, 107.199]
6joint_pos1 = [-83.24, -96.476, 93.688, -114.079, -62, -100]
7tool = 0 #工具坐标系编号
8user = 0 #工件坐标系编号
9ret = robot.MoveL(desc_pos1, tool, user, joint_pos=joint_pos1) #笛卡尔空间直线运动
10print("笛卡尔空间直线运动点1:错误码", ret)
11ret = robot.StopMotion() #终止运动
12print("终止运动:错误码", ret)
13robot.MoveL(desc_pos2, tool, user, vel=40, acc=100)
14print("笛卡尔空间直线运动点2:错误码", ret)
2.15. 机器人点位整体偏移
2.15.1. 点位整体偏移开始
原型 |
|
---|---|
描述 |
点位整体偏移开始 |
必选参数 |
|
默认参数 |
无 |
返回值 |
错误码 成功-0 失败- errcode |
2.15.2. 点位整体偏移结束
原型 |
|
---|---|
描述 |
点位整体偏移结束 |
必选参数 |
无 |
默认参数 |
无 |
返回值 |
错误码 成功-0 失败- errcode |
2.15.2.1. 代码示例
1from fairino import Robot
2# 与机器人控制器建立连接,连接成功返回一个机器人对象
3robot = Robot.RPC('192.168.58.2')
4desc_pos3 = [-127.519, 256.248, 312, -147.278, -51.588, 107.199]
5desc_pos4 = [-140.519, 219.248, 300, -137.278, -11.188, 127.199]
6desc_pos5 = [-187.519, 319.248, 397, -157.278, -31.188, 107.199]
7desc_pos6 = [-207.519, 229.248, 347, -157.278, -31.188, 107.199]
8tool = 0 #工具坐标系编号
9user = 0 #工件坐标系编号
10flag = 1 #0-基坐标系下/工件坐标系下偏移,2-工具坐标系下偏移
11offset_pos = [10,20,30,0,0,0] #位姿偏移量
12ret = robot.PointsOffsetEnable(flag,offset_pos)
13print("点位整体偏移开始:错误码", ret)
14robot.MoveL(desc_pos3, tool, user, offset_flag=1, offset_pos=[10,10,10,0,0,0])
15print("笛卡尔空间直线运动点3:错误码", ret)
16robot.MoveL(desc_pos4, tool, user, vel=30, acc=100)
17print("笛卡尔空间直线运动点4:错误码", ret)
18robot.MoveL(desc_pos5, tool, user)
19print("笛卡尔空间直线运动点5:错误码", ret)
20ret = robot.PointsOffsetDisable()
21print("点位整体偏移结束:错误码", ret)