状态数据
机器人状态获取
robot_state = lebai.get_robot_state()
返回当前机器人状态。
- 返回
robot_state
机器人状态
状态详情如下:
状态码 | 状态 | 说明 |
---|---|---|
-1 | ERROR | 机器人软件控制系统异常 |
0 | DISCONNECTED | 机器人硬件通讯故障 |
1 | ESTOP | 机器人处于急停状态,请确认安全性 |
2 | BOOTING | 机器人初始化中 |
3 | ROBOT_OFF | 机器人电源未开启 |
4 | ROBOT_ON | 机器人电源已开启 |
5 | IDLE | 机器人处于空闲状态 |
6 | PAUSED | 机器人处于暂停中状态 |
7 | MOVING | 机器人运动中 |
8 | UPDATING | 机器人系统更新中 |
9 | STARTING | 机器人初始化完成到空闲的启动过程中 |
10 | STOPPING | 机器人空闲状态转到停止状态 |
11 | TEACHING | 机器人处于示教模式中 |
12 | STOP | 机器人处于停止状态,非急停状态 |
注意
手臂是空闲状态时,当有场景调用,场景内执行非运动类指令,手臂状态仍是空闲状态,手臂状态和场景的执行有相对独立性。
示例程序
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
急停原因
状态码 | 状态 | 说明 |
---|---|---|
0 | None | 未急停 |
2 | System | 软件 |
3 | Manual | 手动调用接口 |
4 | HardEstop | 硬急停按钮 |
5 | Collision | 碰撞 |
6 | JointLimit | 关节限位 |
7 | Exceed | 超速 |
8 | TrajectoryError | 运动规划错误 |
11 | CommError | 通信故障 |
12 | CanError | CAN通信故障 |
13 | JointError | 关节故障 |
示例程序
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}