4.1. jog point and click
Prototype | StartJOG(ref,nb,dir,max_dis,vel=20.0,acc=100.0) |
description | jog dot motion |
Mandatory parameters |
|
Default Parameters |
|
Return Value | Error Code Success-0 Failure- errcode |
4.2. jog tap to decelerate and stop
Prototype | StopJOG(ref) |
description | jog nudging deceleration stop |
Mandatory parameters |
|
Default parameters | NULL |
Return Value | Error Code Success-0 Failure- errcode |
4.3. Immediate stop for jog taps
Prototype | ImmStopJOG() |
Description | jog nudging stops immediately |
Mandatory parameters | NULL |
Default parameters | NULL |
Return Value | Error Code Success-0 Failure- errcode |
4.4. Robot point control code example
from fairino import Robot
import time
# Establish a connection with the robot controller and return a robot object if the connection is successful
robot = Robot.RPC('192.168.58.2')
for i in range(6):
robot.StartJOG(0, i + 1, 0, 20.0, 20.0, 30.0)
time.sleep(1)
robot.ImmStopJOG()
time.sleep(1)
for i in range(6):
robot.StartJOG(2, i + 1, 0, 20.0, 20.0, 30.0)
time.sleep(1)
robot.ImmStopJOG()
time.sleep(1)
for i in range(6):
robot.StartJOG(4, i + 1, 0, 20.0, 20.0, 30.0)
time.sleep(1)
robot.StopJOG(5)
time.sleep(1)
for i in range(6):
robot.StartJOG(8, i + 1, 0, 20.0, 20.0, 30.0)
time.sleep(1)
robot.StopJOG(9)
time.sleep(1)
robot.CloseRPC()
4.5. Joint space motion
prototype | MoveJ(joint_pos, tool, user, desc_pos = [0.0,0.0,0.0,0.0,0.0,0.0,0.0], vel = 20.0, acc = 0.0, ovl = 100.0, exaxis_pos = [0.0,0.0,0.0,0.0], blendT = -1.0, offset_flag = 0, offset_pos = [0.0,0.0,0.0,0.0,0.0,0.0]) |
description | joint space motion |
Mandatory parameters |
|
Default parameters |
|
Return Value | Error Code Success-0 Failure- errcode |
4.6. Cartesian Space Linear Motion
New in version python: SDK-v2.1.5
Prototype | MoveL(desc_pos, tool, user, joint_pos=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], vel=20.0, acc=0.0, ovl=100.0,blendR=-1.0, blendMode = 0,exaxis_pos=[0.0, 0.0, 0.0, 0.0], search=0, offset_flag=0,offset_pos=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],oacc = 100.0,config=-1,velAccParamMode=0,overSpeedStrategy=0,speedPercent=10) |
Description | Cartesian Space Linear Motion |
Required Parameters |
|
Default Parameters |
|
Return Value | Error code 0-Success Error- errcode |
4.7. Cartesian Space Circular Arc Motion
New in version python: SDK-v2.1.5
Prototype | MoveC(desc_pos_p, tool_p, user_p, desc_pos_t, tool_t, user_t, joint_pos_p=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], joint_pos_t=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],vel_p=20.0, acc_p=100.0, exaxis_pos_p=[0.0, 0.0, 0.0, 0.0], offset_flag_p=0,offset_pos_p=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],vel_t=20.0, acc_t=100.0, exaxis_pos_t=[0.0, 0.0, 0.0, 0.0], offset_flag_t=0,offset_pos_t=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],ovl=100.0, blendR=-1.0,oacc=100.0,config=-1,velAccParamMode=0) |
Description | Cartesian Space Circular Arc Motion |
Required Parameters |
|
Default Parameters |
|
Return Value | Error code 0-Success Error- errcode |
4.8. Cartesian Space Full Circle Motion
New in version python: SDK-v2.1.5
Prototype | Circle(desc_pos_p, tool_p, user_p, desc_pos_t, tool_t, user_t, joint_pos_p=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],joint_pos_t=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],vel_p=20.0, acc_p=0.0, exaxis_pos_p=[0.0, 0.0, 0.0, 0.0], vel_t=20.0, acc_t=0.0,exaxis_pos_t=[0.0, 0.0, 0.0, 0.0],ovl=100.0, offset_flag=0, offset_pos=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], oacc=100.0, blendR=-1,config=-1,velAccParamMode=0) |
Description | Cartesian Space Full Circle Motion |
Required Parameters |
|
Default Parameters |
|
Return Value | Error code 0-Success Error- errcode |
4.9. Point-to-point motion in Cartesian space
Prototype | MoveCart(desc_pos, tool, user, vel = 20.0, acc = 0.0, ovl = 100.0, blendT = -1.0, config = -1) |
Description | Point-to-point motion in Cartesian space |
Mandatory parameters |
|
Default parameters |
|
Return Value | Error Code Success-0 Failure- errcode |
4.10. Sample robot basic motion commands code
from fairino import Robot
import time
robot = Robot.RPC('192.168.58.2')
j1 = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
j2 = [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255]
j3 = [-29.777, -84.536, 109.275, -114.075, -86.655, 74.257]
j4 = [-31.154, -95.317, 94.276, -88.079, -89.740, 74.256]
desc_pos1 = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
desc_pos2 = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
desc_pos3 = [-487.434, 154.362, 308.576, 176.600, 0.268, -14.061]
desc_pos4 = [-443.165, 147.881, 480.951, 179.511, -0.775, -15.409]
offset_pos = [0.0] * 6
epos = [0.0] * 4
tool = 0
user = 0
vel = 100.0
acc = 100.0
ovl = 100.0
oacc = 100.0
blendT = 0.0
blendR = 0.0
flag = 0
search = 0
blendMode = 0
velAccMode = 0
robot.SetSpeed(20)
rtn = robot.MoveJ(joint_pos=j1, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, exaxis_pos=epos, blendT=blendT, offset_flag=flag, offset_pos=offset_pos)
print(f"movej errcode:{rtn}")
rtn = robot.MoveL(desc_pos=desc_pos2, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, blendR=blendR, blendMode=blendMode, exaxis_pos=epos, search=search, offset_flag=flag, offset_pos=offset_pos,oacc=oacc, velAccParamMode=velAccMode)
print(f"movel errcode:{rtn}")
rtn = robot.MoveC(desc_pos_p=desc_pos3, tool_p=tool, user_p=user, vel_p=vel, acc_p=acc, exaxis_pos_p=epos, offset_flag_p=flag, offset_pos_p=offset_pos, desc_pos_t=desc_pos4, tool_t=tool, user_t=user, vel_t=vel,acc_t=acc, exaxis_pos_t=epos, offset_flag_t=flag, offset_pos_t=offset_pos, ovl=ovl, blendR=blendR, oacc=oacc, velAccParamMode=velAccMode)
print(f"movec errcode:{rtn}")
rtn = robot.MoveJ(joint_pos=j2, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, exaxis_pos=epos, blendT=blendT, offset_flag=flag, offset_pos=offset_pos)
print(f"movej errcode:{rtn}")
rtn = robot.Circle(desc_pos_p=desc_pos3, tool_p=tool, user_p=user, vel_p=vel, acc_p=acc, exaxis_pos_p=epos, desc_pos_t=desc_pos1, tool_t=tool, user_t=user, vel_t=vel, acc_t=acc, exaxis_pos_t=epos, ovl=ovl,offset_flag=flag, offset_pos=offset_pos, oacc=oacc, blendR=-1, velAccParamMode=velAccMode)
print(f"circle errcode:{rtn}")
rtn = robot.MoveCart(desc_pos=desc_pos4, tool=tool, user=user, vel=vel, acc=acc,ovl=ovl, blendT=blendT, config=-1)
print(f"MoveCart errcode:{rtn}")
rtn = robot.MoveJ(joint_pos=j1, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, exaxis_pos=epos, blendT=blendT, offset_flag=flag, offset_pos=offset_pos)
print(f"movej errcode:{rtn}")
rtn = robot.MoveL(desc_pos=desc_pos2, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, blendR=blendR, blendMode=blendMode, exaxis_pos=epos, search=search, offset_flag=flag, offset_pos=offset_pos, config=-1,velAccParamMode=velAccMode)
print(f"movel errcode:{rtn}")
rtn = robot.MoveC(desc_pos_p=desc_pos3, tool_p=tool, user_p=user, vel_p=vel, acc_p=acc, exaxis_pos_p=epos, offset_flag_p=flag, offset_pos_p=offset_pos, desc_pos_t=desc_pos4, tool_t=tool, user_t=user, vel_t=vel, acc_t=acc,exaxis_pos_t=epos, offset_flag_t=flag, offset_pos_t=offset_pos, ovl=ovl, blendR=blendR, config=-1, velAccParamMode=velAccMode)
print(f"movec errcode:{rtn}")
rtn = robot.MoveJ(joint_pos=j2, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, exaxis_pos=epos, blendT=blendT, offset_flag=flag, offset_pos=offset_pos)
print(f"movej errcode:{rtn}")
rtn = robot.Circle(desc_pos_p=desc_pos3, tool_p=tool, user_p=user, vel_p=vel, acc_p=acc, exaxis_pos_p=epos, desc_pos_t=desc_pos1, tool_t=tool, user_t=user, vel_t=vel, acc_t=acc, exaxis_pos_t=epos, ovl=ovl, offset_flag=flag,offset_pos=offset_pos, oacc=oacc, blendR=-1, velAccParamMode=velAccMode)
print(f"circle errcode:{rtn}")
robot.CloseRPC()
return 0
4.11. Spiral motion in Cartesian space
New in version python: SDK-v2.1.7
Prototype | NewSpiral(desc_pos, tool, user, param, joint_pos = [0.0,0.0,0.0,0.0,0.0,0.0,0.0], vel = 20.0, acc = 0.0, exaxis_pos = [0.0,0.0,0.0,0.0], ovl = 100.0, offset_flag = 0, offset_pos = [0.0,0.0,0.0,0.0,0.0,0.0], config = -1) |
Description | Spiral motion in Cartesian space |
Mandatory parameters |
|
Default parameters |
|
Return Value | Error Code Success-0 Failure- errcode |
4.12. code example
from fairino import Robot
# Establish a connection with the robot controller and return a robot object if the connection is successful
robot = Robot.RPC('192.168.58.2')
j = [67.957, -81.482, 87.595, -95.691, -94.899, -9.727]
desc_pos = [-123.142, -551.735, 430.549, 178.753, -4.757, 167.754]
offset_pos1 = [50.0, 0.0, 0.0, -30.0, 0.0, 0.0]
offset_pos2 = [50.0, 0.0, 0.0, -30.0, 0.0, 0.0]
epos = [0.0] * 4
sp = [2, 30.0, 50.0, 10.0, 10.0, 0, 1] # [circle_num, circle_angle, rad_init, rad_add, rotaxis_add, rot_direction, velAccMode]
tool = 0
user = 0
vel = 30.0
acc = 60.0
ovl = 100.0
blendT = -1.0
flag = 2
robot.SetSpeed(20)
rtn = robot.MoveJ(joint_pos=j, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, exaxis_pos=epos, blendT=blendT, offset_flag=flag, offset_pos=offset_pos1)
print(f"movej errcode:{rtn}")
rtn = robot.NewSpiral(desc_pos=desc_pos, tool=tool, user=user, vel=vel, acc=acc, exaxis_pos=epos, ovl=ovl, offset_flag=flag, offset_pos=offset_pos2, param=sp)
print(f"newspiral errcode:{rtn}")
robot.CloseRPC()
return 0
4.13. Start of servo motion
Prototype | ServoMoveStart() |
Description | Servo motion start, used with ServoJ, ServoCart commands |
Mandatory parameters | NULL |
Default parameters | NULL |
Return Value | Error Code Success-0 Failure- errcode |
4.14. End of servo motion
Prototype | ServoMoveEnd() |
Description | End of servo motion, used with ServoJ, ServoCart commands |
Mandatory parameters | NULL |
Default parameters | NULL |
Return Value | Error Code Success-0 Failure- errcode |
4.15. Joint space servo mode motion
Prototype | ServoJ(joint_pos, axisPos, acc = 0.0, vel = 0.0, cmdT = 0.008, filterT = 0.0, gain = 0.0, id=0) |
Description | Joint space servo mode motion |
Mandatory parameters |
|
Default parameter |
|
Return Value | Error Code Success-0 Failure- errcode |
4.16. Example of joint space servo mode motion code
from fairino import Robot
# Establish a connection with the robot controller and return a robot object if the connection is successful
robot = Robot.RPC('192.168.58.2')
j = [0.0] * 6
epos = [0.0] * 4
vel = 0.0
acc = 0.0
cmdT = 0.008
filterT = 0.0
gain = 0.0
flag = 0
count = 500
dt = 0.1
cmdID = 0
ret, j = robot.GetActualJointPosDegree(flag)
if ret == 0:
cmdID += 1
robot.ServoMoveStart()
while count:
robot.ServoJ(joint_pos=j,axisPos= epos,acc= acc,vel= vel, cmdT=cmdT, filterT=filterT, gain=gain, id=cmdID)
j[4] += dt
count -= 1
time.sleep(cmdT)
rtn,pkg = robot.GetRobotRealTimeState()
print(f"Servoj Count {pkg.servoJCmdNum}; last pos is {pkg.lastServoTarget[0]},{pkg.lastServoTarget[1]},{pkg.lastServoTarget[2]},{pkg.lastServoTarget[3]},{pkg.lastServoTarget[4]},{pkg.lastServoTarget[5]}")
if count < 50:
robot.MotionQueueClear()
print(f"After queue clear, Servoj Count {pkg.servoJCmdNum}; last pos is {pkg.lastServoTarget[0]},{pkg.lastServoTarget[1]},{pkg.lastServoTarget[2]},{pkg.lastServoTarget[3]},{pkg.lastServoTarget[4]},{pkg.lastServoTarget[5]}")
break
robot.ServoMoveEnd()
else:
print(f"GetActualJointPosDegree errcode:{ret}")
robot.CloseRPC()
4.17. Joint torque control begins
Prototype | ServoJTStart() |
Description | Joint torque control begins |
Mandatory parameters | NULL |
Default_parameters | NULL |
Return Value | Error Code Success-0 Failure- errcode |
4.18. Joint torque control
Prototype | ServoJT(torque, interval, checkFlag=0, jPowerLimit=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], jVelLimit=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) |
Description | Joint Torque Control |
Required Parameters |
|
Default Parameters | None |
Return Value | Error code Success-0 Failure- errcode |
4.19. Joint torque control is completed
Prototype | ServoJTEnd() |
Description | Joint torque control is completed |
Mandatory parameters | NULL |
Default_parameters | NULL |
Return Value | Error Code Success-0 Failure- errcode |
4.20. Sample code for joint torque control
from fairino import Robot
# Establish a connection with the robot controller and return a robot object if the connection is successful
robot = Robot.RPC('192.168.58.2')
robot.DragTeachSwitch(1)
# torques = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
error,torques = robot.GetJointTorques(1)
robot.ServoJTStart()
count = 100
while count > 0:
error = robot.ServoJT(torques, 0.001)
count -= 1
time.sleep(0.001)
error = robot.ServoJTEnd()
robot.DragTeachSwitch(0)
robot.CloseRPC()
4.21. Joint Torque Control Code Example with Overspeed Protection
from fairino import Robot
import time
robot = Robot.RPC('192.168.58.2')
robot.ResetAllError()
time.sleep(0.5)
torques = [0.0] * 6
rtn, torques = robot.GetJointTorques(1)
robot.ServoJTStart()
robot.DragTeachSwitch(1)
checkFlag = 3
jPowerLimit = [10.0, 10.0, 10.0, 10.0, 10.0, 10.0]
jVelLimit = [181,80,80,80,80,80]
count = 800000
error = 0
while count > 0:
torques[2] = torques[2] + 0.01
error = robot.ServoJT(torques, 0.008, checkFlag, jPowerLimit, jVelLimit)
print(f"ServoJT rtn is {error}")
count = count - 1
time.sleep(0.001)
rtn,pkg = robot.GetRobotRealTimeState()
print(f"maincode {pkg.main_code},subcode {pkg.sub_code}")
robot.DragTeachSwitch(0)
error = robot.ServoJTEnd()