状态数据

机器人状态获取

robot_state = lebai.get_robot_state()

返回当前机器人状态。

  • 返回
    • robot_state 机器人状态

状态详情如下:

状态码状态说明
-1ERROR机器人软件控制系统异常
0DISCONNECTED机器人硬件通讯故障
1ESTOP机器人处于急停状态,请确认安全性
2BOOTING机器人初始化中
3ROBOT_OFF机器人电源未开启
4ROBOT_ON机器人电源已开启
5IDLE机器人处于空闲状态
6PAUSED机器人处于暂停中状态
7MOVING机器人运动中
8UPDATING机器人系统更新中
9STARTING机器人初始化完成到空闲的启动过程中
10STOPPING机器人空闲状态转到停止状态
11TEACHING机器人处于示教模式中
12STOP机器人处于停止状态,非急停状态

注意

手臂是空闲状态时,当有场景调用,场景内执行非运动类指令,手臂状态仍是空闲状态,手臂状态和场景的执行有相对独立性。

示例程序
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()

robot_ip = "192.168.22.103" 
lebai = lebai_sdk.connect(robot_ip, False) 
print('机器人状态:',lebai.get_robot_state())  # 输出机器人状态: IDLE

获取急停原因

reason = lebai.get_estop_reason()

返回机器人导致急停的原因。

  • 返回
    • reason 急停原因
状态码状态说明
0None未急停
2System软件
3Manual手动调用接口
4HardEstop硬急停按钮
5Collision碰撞
6JointLimit关节限位
7Exceed超速
8TrajectoryError运动规划错误
11CommError通信故障
12CanErrorCAN通信故障
13JointError关节故障
示例程序
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.22.103" 
lebai = lebai_sdk.connect(robot_ip, False) 
print('机器人急停原因:',lebai.get_estop_reason())    

获取当前运动数据

kin_data = lebai.get_kin_data()

返回当前机器人位置信息和速度信息等。

  • 返回
    • kin_data 包含运动数据的字典

返回字典包含以下内容:

  • actual_joint_pose 反馈关节位置
  • actual_joint_speed 反馈关节速度
  • actual_joint_acc 关节反馈加速度
  • actual_joint_torque 关节反馈力矩
  • target_joint_pose 规划关节位置
  • target_joint_speed 规划关节速度
  • target_joint_acc 关节规划加速度
  • target_joint_torque 关节规划力矩
  • actual_tcp_pose 反馈工具位置
  • target_tcp_pose 规划工具位置
  • actual_flange_pose 反馈法兰位置
示例程序
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) 
status_dic = lebai.get_kin_data()  
print('反馈关节位置',status_dic['actual_joint_pose'])  
print('反馈笛卡尔位置',status_dic['actual_tcp_pose'])
# 输出
# 反馈关节位置 [1.2506737111230115, -0.7450352939162074, 1.673956534780206, -3.81232575309279, -1.855829131943897, -0.16701215828104918]
# 反馈笛卡尔位置 {'x': -0.05377600646795382, 'y': -0.4710049716677433, 'z': 0.27203923572072963, 'rx': -1.82541291265244, 'ry': -0.2336434403164556, 'rz': 2.587395211267338}

获取手臂物理数据

data = lebai.get_phy_data()

返回手臂关节温度和电压,以及末端法兰电压。

  • 返回
    • data 包含物理数据的字典

字典包含参数如下:

  • joint_temp 各个关节温度
  • joint_voltage 各个关节电压
  • flange_voltage 法兰盘电压
示例程序
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) 
data = lebai.get_phy_data()  
print(data)
# 输出
# {'joint_temp': [34.0, 39.0, 35.0, 38.0, 41.0, 40.0], 'joint_voltage': [48.07, 47.94, 48.25, 47.86, 47.96, 48.09], 'flange_voltage': 23.33}