机器人配置

设置 TCP

设置工具中心点(TCP)坐标,坐标值相对于法兰盘末端工具坐标系。仅在运动学上有意义。

lebai.set_tcp(tcp)
  • 参数说明: tcp 相对于法兰的偏移量的参数介绍:

    参数类型说明
    xintX 方向偏移量,单位 m
    yintY 方向偏移量,单位 m
    zintZ 方向偏移量,单位 m
    rxint绕 Z 轴旋转角度,单位 rad
    ryint绕 Y 轴旋转角度,单位 rad
    rzint绕 Z 轴旋转角度,单位 rad
  • 返回值:无返回值。

  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)
tcp = {'x' : 0, 'y' : 0, 'z' : 0, 'rz' : 0, 'ry' : 0, 'rx' : 0} 
lebai.set_tcp(tcp) 
flange_pose = lebai.get_kin_data()['actual_tcp_pose'] #不设置tcp 当前末端坐标,是反馈法兰盘中心坐标
print(flange_pose)

tcp = {'x' : 0, 'y' : 0, 'z' : 0.175, 'rz' : 0, 'ry' : 0, 'rx' : 0}  #末端工具夹爪,相对于法兰中心的偏移量,从而计算真实的末端的工具中心坐标
lebai.set_tcp(tcp) 

actual_tcp_pose  = lebai.get_kin_data()['actual_tcp_pose'] #反馈工具位置
print(actual_tcp_pose)

获取当前TCP

tcp = lebai.get_tcp()
  • 返回值:dict类型。返回当前机器人工具中心点(TCP)设置。仅具有运动学意义。
  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)
tcp0 = {'x' : 0, 'y' : 0, 'z' : 0, 'rz' : 0, 'ry' : 0, 'rx' : 0} 
lebai.set_tcp(tcp0) 
tcp00 = lebai.get_tcp() 
print(tcp00)

tcp1 = {'x' : 0, 'y' : 0, 'z' : 0.175, 'rz' : 0, 'ry' : 0, 'rx' : 0}  
lebai.set_tcp(tcp1) 
tcp11 = lebai.get_tcp() 
print(tcp11)

设置速度因子

lebai.set_velocity_factor(factor)
  • 参数说明: 以手臂运动命令的速度为基准,设置实际速度为运动命令速度的对应百分比,如 100 表示运动命令速度的 100%,10 表示运动命令速度的 10%。
    参数类型说明
    factorint速度因子百分比,范围 0~100
  • 返回值:无返回值。
  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import time
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)

joint_pose = [0,-1.05,1.05,0,1.57,0]
lebai.movej(joint_pose,a,v,t,r) 
lebai.wait_move()

lebai.set_velocity_factor(100) 
joint_pose1 = [0.6,-1.05,1.05,0,1.57,0]  
a = 5 #关节加速度 (rad/s2)
v = 1.5 #关节速度 (rad/s)
t = 0   #运动时间 (s)。 当 t > 0 时,参数速度 v 和加速度 a 无效
r = 0.5   #交融半径 (m)。用于指定路径的平滑效果
lebai.movej(joint_pose1,a,v,t,r)  
time.sleep(3)

lebai.movej(joint_pose,a,v,t,r) 
lebai.wait_move()

lebai.set_velocity_factor(50) 
lebai.movej(joint_pose1,a,v,t,r)

获取速度因子

factor = lebai.get_velocity_factor()
  • 返回值:int 类型。返回速度因子百分比,范围 0~100。
  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)

lebai.set_velocity_factor(90) 
velocity_factor = lebai.get_velocity_factor() 
print(velocity_factor)

设置机器人末端负载

lebai.set_payload(mass, cog)
  • 参数说明: 当负载的重量或者重量分布发生变化时,必须调用该方法更新。比如当机器人捡起或者放下一个较重的物体时。

    参数类型说明
    massint负载质量,单位:kg。可选,默认不更新
    cogdict质心,相对于法兰的偏移量。可选,默认不更新

    注意:该设置会影响拖动示教体验。请务必确保设置与机器人实际情况一致。

  • 返回值:无返回值。

  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import time
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)

mass = 0.5
cog = {'x':0,'y':0,'z':0.176} #相对于末端法兰盘的位置,沿着法兰z轴0.176m的地方作为末端重量的质心
lebai.set_payload(mass, cog)

获取末端负载

payload = lebai.get_payload()
  • 返回值:dict类型。返回当前机器人末端负载的质量和质心。
  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import time
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)

mass = 0.5
cog = {'x':0,'y':0,'z':0.176} #相对于末端法兰盘的位置,沿着法兰z轴0.176m的地方作为末端重量的质心
lebai.set_payload(mass, cog)
payload = lebai.get_payload() #{"mass": 0.2, "cog": {}}
print(payload)

设置重力方向

lebai.set_gravity(gravity)
  • 参数说明: 设置机器人重力加速度的方向。当机器人固定好后,这个对应的是与地球中心相反的加速方向。

    参数类型说明
    gravitydict重力加速度的方向

    注:正装方向:{"x": 0, "y": 0, "z": -9.8} ; 侧装方向:{"x": 0, "y": -9.8, "z": 0} ;倒装方向:{"x": 0, "y": 0, "z": 9.8}

  • 返回值:无返回值。

  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import time
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)
 
gravity = {"x": 0, "y": 0, "z": -9.8} #正装
lebai.set_gravity(gravity)

获取重力方向

gravity = lebai.get_gravity()
  • 返回值:dict类型。返回机器人重力加速度的方向。
  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import time
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)

gravity = {"x": 0, "y": 0, "z": -9.8} #正装
lebai.set_gravity(gravity)
gravity = lebai.get_gravity() 
print(gravity)