乐白机器人¶
Lebai Robot Python SDK
- class lebai.type.CartesianPose(x=0, y=0, z=0, rz=0, ry=0, rx=0, base=None)¶
基类:
object空间位置
笛卡尔坐标描述的位姿
- property rx¶
- property ry¶
- property rz¶
- property x¶
- property y¶
- property z¶
- exception lebai.type.Error¶
基类:
ExceptionBase class for exceptions in this module.
- class lebai.type.IODeviceType(value)¶
基类:
enum.EnumIO设备类型
- FLANGE = 1¶
法兰
- GRIPPER = 2¶
手爪
- HOST = 0¶
主机箱
- MODBUS_TCP = 3¶
MODBUS/TCP
- class lebai.type.JointPose(*j)¶
基类:
object关节位置,关节旋转角度描述的机器人姿态
- class lebai.type.PVAT(duration: float, q: list, v: list, acc: list)¶
基类:
object移动请求参数
- acc: list¶
关节加速度列表 float 数组
- duration: float¶
总运动时间
- q: list¶
关节位置列表 float 数组
- v: list¶
关节速度列表 float 数组
- exception lebai.type.RequestError(res)¶
- class lebai.type.RobotData(res)¶
-
机器人数据
- actual_acc: list¶
实际加速度 float 数组
- actual_torque: list¶
实际力矩 float 数组
- actual_vel: list¶
实际关节速度 float 数组
- target_acc: list¶
加速度 float 数组
- target_torque: list¶
理论力矩 float 数组
- target_vel: list¶
目标关节速度 float 数组
- temp: list¶
关节温度 float 数组
- class lebai.type.RobotIOData(io)¶
基类:
object- ai: list¶
所有模拟量输入值 IOItem 数组
- ao: list¶
所有模拟量输出值 IOItem 数组
- di: list¶
所有数字量的输入值 IOItem 数组
- do: list¶
所有数字量的输出值 IOItem 数组
- flange_di: list¶
所有tcp数字量的输入值 IOItem 数组
- flange_do: list¶
所有tcp数字量的输出值 IOItem 数组
- class lebai.type.RobotPoseData(res)¶
基类:
object机器人姿态数据
- actual_joint: list¶
实际关节位置 float 数组
- actual_pose: list¶
实际tcp位置 float 数组
- target_joint: list¶
目标关节位置 float 数组
- target_pose: list¶
目标tcp位置 float 数组
- class lebai.type.RobotState(value)¶
基类:
enum.Enum机器人状态
- BOOTING = 2¶
启动中
- DISCONNECTED = 0¶
已断开连接
- ESTOP = 1¶
急停停止状态
- FINETUNING = 13¶
微调中
- IDLE = 5¶
空闲中
- PAUSED = 6¶
暂停中
- ROBOT_OFF = 3¶
电源关闭
- ROBOT_ON = 4¶
电源开启
- RUNNING = 7¶
机器人运动运行中
- STARTING = 9¶
启动中
- STOP = 12¶
普通停止
- STOPPING = 10¶
停止中
- TEACHING = 11¶
示教中
- UPDATING = 8¶
更新固件中
- class lebai.type.TaskInfo(res)¶
基类:
object任务信息
- comment: str¶
备注
- consume_time: int¶
单位秒
- create_time: str¶
创建时间
- end_time: str¶
任务结束时间
- execute_count: int¶
执行次数
- executed_count: int¶
已执行次数
- id: int¶
任务ID
- name: int¶
任务名
- scene_id: int¶
场景ID
- start_time: str¶
任务开始时间
- status: lebai.type.TaskStatus¶
运行成功 4:用户主动停止 5:异常停止
- Type
任务状态。1
- Type
运行中 3
- update_time: str¶
更新时间
- class lebai.type.TaskStatus(value)¶
基类:
enum.Enum任务状态
- ABORTED = 5¶
异常终止
- IDLE = 0¶
空闲
- PAUSED = 2¶
暂停
- RUNNING = 1¶
运行中
- STOPPED = 4¶
停止
- SUCCESS = 3¶
运行完成
- class lebai.type.TasksResult(res)¶
基类:
object任务列表信息
- pi: int¶
页索引
- ps: int¶
页大小
- records: list¶
任务列表 TaskInfo数组
- total: int¶
总数
- class lebai.robot.LebaiRobot(ip, sync=True)¶
基类:
object- add_signal(pin: int, value: int) → None¶
添加信号
- Pin
针脚
- Value
值
- disable_joint_limits() → None¶
关闭关节限位检测
- enable_joint_limits() → None¶
启用关节限位检测
- end_teach_mode() → None¶
关闭示教模式
- estop() → None¶
急停
- execute_lua_code(task_name: str, code: str, execute_count: int = 1, clear: bool = True) → int¶
- 参数
task_name – 任务名称
code – lua 代码
execute_count – 执行数量,0 表示一直循环运行
clear – 是否强制关闭正在运行的任务
- 返回
任务Id
- get_actual_joint_positions() → lebai.type.JointPose¶
获取实际关节位置
- 返回
关节位置
- get_actual_joint_speeds() → list¶
获得所有关节的实际角速度
- 返回
所有关节的实际角速度
- get_actual_joint_torques() → list¶
获取实际力矩
- 返回
实际力矩
- get_actual_tcp_pose() → lebai.type.CartesianPose¶
获取实际空间位置
- 返回
空间位置
- get_ai(pin: int) → float¶
获取模拟输入
- 参数
pin – 针脚
- 返回
模拟输入值
- get_ai_mode(pin: int) → int¶
获取模拟输入端口工作模式
- 参数
pin – 针脚
- get_ao_mode(pin: int) → int¶
获取模拟输出端口工作模式
- 参数
pin – 针脚
- 返回
0:电压,1:电流
- get_claw_aio(pin: str) → float¶
获取手爪参数
- 参数
pin – ‘force’:手爪力,’weight’:手爪重量
- 返回
根据参数,获取手爪力或者重量
示例: >>> claw_force = robot.get_claw_aio(“force”) >>> claw_weight = robot.get_claw_aio(“weight”)
- get_di(pin: int) → int¶
获取数字输入
- 参数
pin – 针脚
- 返回
数字输入值
- get_flange_di(pin: int) → int¶
获取法兰数字输出
- 参数
pin – 针脚
- 返回
值
- get_gravity() -> (<class 'float'>, <class 'float'>, <class 'float'>)¶
获取重力
- 返回
重力,类型:tuple,(x,y,z)
- get_joint_temp(joint: int) → float¶
获取关节温度
- 参数
joint – 关节序号
- 返回
关节当前温度 (℃)
- get_joint_temperatures() → list¶
获取关节温度
- 返回
关节温度
- get_joint_torques() → list¶
获得每个关节的扭矩值
- 返回
每个关节的扭矩值
- get_payload() -> ((<class 'float'>, <class 'float'>, <class 'float'>), <class 'float'>)¶
获取负荷
- 返回
负荷信息,类型:tuple,((x, y, z), 负荷的质量)
- get_payload_cog() -> (<class 'float'>, <class 'float'>, <class 'float'>)¶
获取负荷的质心
- 返回
质心,类型:tuple,(x,y,z)
- get_payload_mass() → float¶
获取负荷的质量
- 返回
负荷的质量
- get_robot_data() → lebai.type.RobotData¶
获取机器人数据
- 返回
机器人数据
- get_robot_io_data() → Iterator[lebai.type.RobotIOData]¶
获取机器人IO数据
- 返回
机器人IO数据
- get_robot_mode() → lebai.type.RobotState¶
获取机器人状态
- 返回
机器人状态
- get_robot_poses() → lebai.type.RobotPoseData¶
获取机器人姿态信息
- 返回
机器人姿态信息
- get_signal(pin: int) → int¶
获取信号
- 参数
pin – 针脚
- get_target_joint_positions() → lebai.type.JointPose¶
获得所有关节的期望角度位置
- 返回
所有关节的期望角度位置
- get_target_joint_speeds() → list¶
获得所有关节的期望角速度
- 返回
所有关节的期望角速度
- get_target_joint_torques() → list¶
获取理论力矩
- 返回
理论力矩
- get_target_tcp_pose() → lebai.type.CartesianPose¶
获得TCP的期望的姿态/位置
- 返回
TCP的期望的姿态/位置
- get_task(id: int) → Optional[lebai.type.TaskInfo]¶
获取任务信息
- 参数
id – 任务Id
- 返回
任务信息
- get_tasks(pi: int, ps: int) → Optional[lebai.type.TasksResult]¶
获取任务列表
- 参数
pi – 页码
ps – 页大小
- 返回
任务列表
- get_tcp() → lebai.type.CartesianPose¶
获取TCP
- 返回
TCP坐标
- get_velocity_factor() → float¶
获取速度因子
- 返回
速度因子
- is_connected() → bool¶
是否连接
- 返回
- kinematics_forward(*p: list) → lebai.type.CartesianPose¶
机器人正解
- 参数
p – 关节位置,类型:list[float]
- 返回
空间位置
示例: >>> certesianPose = robot.kinematics_forward(JointPose(0, -0.5, math.pi / 6, 0, 0, 0))
- kinematics_inverse(*p: list)¶
机器人反解
- 参数
p – 空间位置,类型:list[float]
- 返回
关节位置
示例: >>> certesianPose = robot.kinematics_forward(JointPose(0, -0.5, math.pi / 6, 0, 0, 0)) >>> jointPose = robot.kinematics_inverse(certesianPose)
- move_pt(p: list, t: float) → None¶
指定位置和时间的伺服移动,速度和加速度将自动计算。
- 参数
p – 关节位置列表 (rad),类型:list[float]
t – 总运动时间 (s)
- move_pts(pt_iter: list) → None¶
指定位置和时间的伺服移动,速度和加速度将自动计算。
- 参数
pt_iter – 类型:list[PVAT]
- 返回
- move_pvat(p: list, v: list, a: list, t: float) → None¶
指定位置、速度、加速度、时间的伺服移动
- 参数
p – 关节位置列表 (rad),类型:list[float]
v – 关节速度列表 (rad/s),类型:list[float]
a – 关节加速度列表 (rad/s^2),类型:list[float]
t – 总运动时间 (s)
- move_pvats(pvt_iter: list) → None¶
move_pvat的流版本
@param pvt_iter: 类型:list[PVAT] @type pvt_iter: list[PVAT]
- move_pvt(p: list, v: list, t: float) → None¶
指定位置、速度、时间的伺服移动, 加速度将自动计算。
- 参数
p – 关节位置列表 (rad),类型:list[float],
v – 关节速度列表 (rad/s),类型:list[float],
t – 总运动时间 (s)
- move_pvts(pvt_iter: list)¶
指定位置、速度、时间的伺服移动, 加速度将自动计算。
- 参数
pvt_iter – 类型:list[PVAT]
- 返回
- movec(via: object, p: object, rad: int = 0, a: int = 0, v: int = 0, t: int = 0, r: int = 0, is_joint: Optional[bool] = None) → None¶
圆弧移动(工具空间)
- 参数
via – 途经位置。传入JointPose或CartesianPose,JointPose` 关节位置,CartesianPose 空间位置(将通过运动学反解转为关节位置)
p – 目标位置。入JointPose或CartesianPose,JointPose` 关节位置,CartesianPose 空间位置(将通过运动学反解转为关节位置)
rad – 路径圆弧的弧度 (rad)
a – 工具空间加速度 (m/s2)
v – 工具空间速度 (m/s)
t – 运动时间 (s)
r – 交融半径 (m)
is_joint – 已弃用
示例 >>> robot.movec(JointPose(0.2, 0.5, 0.4, 0, 0, 1.57),CartesianPose(0.1,0.2,0.2,0.3,0.1,0.2),0,1,0.2,0)
- movec_until(via, p, rad=0, a=0, v=0, t=0, cb=None) → None¶
todo: 待实现
- movec_until_rt(via, p, rad=0, a=0, v=0, t=0, logic='AND', io={}, cb=None) → None¶
todo: 待实现
- movej(p: object, a: int = 0, v: int = 0, t: int = 0, r: int = 0, is_joint=None) → None¶
线性移动(关节空间)
- P
传入JointPose或CartesianPose,JointPose` 关节位置,CartesianPose 空间位置(将通过运动学反解转为关节位置)
- A
主轴的关节加速度 (rad/s)
- V
主轴的关节速度 (rad/s)
- T
运动时间 (s)
- R
交融半径 (m)
- Is_joint
已弃用
示例 >>> robot.movej(JointPose(0, -0.7853981633974483, 1.5707963267948966, -0.7853981633974483, 1.5707963267948966, 0),1.23,1.23)
- movej_until(p, a=0, v=0, t=0, cb=None) → None¶
todo: 待实现
- movej_until_rt(p, a=0, v=0, t=0, logic='AND', io={}, cb=None) → None¶
todo: 待实现
- movel(p: object, a: int = 0, v: int = 0, t: int = 0, r: int = 0, is_joint: Optional[bool] = None) → None¶
线性移动(工具空间)
- P
传入JointPose或CartesianPose,JointPose` 关节位置,CartesianPose 空间位置(将通过运动学反解转为关节位置)
- A
轴的关节加速度 (rad/s)
- V
主轴的关节速度 (rad/s)
- T
运动时间 (s)
- R
交融半径 (m)
- Is_joint
已弃用
示例 >>> robot.movel(JointPose(0, -0.7853981633974483, 1.5707963267948966, -0.7853981633974483, 1.5707963267948966, 0),1.23,1.23)
- movel_until(p, a=0, v=0, t=0, cb=None) → None¶
todo: 待实现
- movel_until_rt(p, a=0, v=0, t=0, logic='AND', io={}, cb=None) → None¶
todo: 待实现
- pause() → None¶
暂停机器人
- pose_inverse() → None¶
todo: 待实现
- pose_times() → None¶
todo: 待实现
- powerdown() → None¶
关闭电源
- rerun_task(task_id: int, execute_count: int = 1, clear: bool = True) → int¶
运行任务
- 参数
task_id – 任务Id
execute_count – 执行数量,0 表示一直循环运行
clear – 是否强制关闭正在运行的任务
- 返回
任务Id
- resume() → None¶
恢复机器人
- run_scene(scene_id: int, execute_count: int = 1, clear: bool = True) → int¶
运行场景
- 参数
scene_id – 场景Id
execute_count – 执行数量,0 表示一直循环运行
clear – 是否强制关闭正在运行的任务
- 返回
任务Id
- set_ai_mode(pin: int, mode: int) → None¶
设置模拟输入端口工作模式
- 参数
pin – 针脚
mode – 0:电压,1:电流
- set_ao(pin: int, value: float) → None¶
设置模拟输出
- 参数
pin – 针脚
value – 值
- set_ao_mode(pin: int, mode: int) → None¶
设置模拟输出端口工作模式
- 参数
pin – 针脚
mode – 0:电压,1:电流
- set_claw(force: float = 0, amplitude: float = 0) → None¶
设置手爪
- 参数
force – 手爪力
amplitude – 手爪重量
- set_claw_aio(pin: str, value: float = 0) → None¶
设置手爪参数
- 参数
pin – ‘force’:手爪力,’weight’:手爪重量
示例: >>> robot.set_claw_aio(“force”,0) >>> robot.set_claw_aio(“weight”,1)
- set_do(pin: int, value: int) → None¶
设置数字输出
- 参数
pin – 针脚
value – 值
- set_fan(fan: int) → None¶
设置风扇
- 参数
fan – 1:关闭、 2:开启
- set_flange_do(pin: int, value: int) → None¶
设置法兰数字输出
- 参数
pin – 针脚
value – 值
- set_gravity(x: float = 0, y: float = 0, z: float = - 9.8) → None¶
设置重力
- 参数
x – 重力X
y – 重力Y
z – 重力Z
- set_led(mode: int, speed: float, color: list) → None¶
设置LED灯状态
- 参数
mode – 1:关闭、2:常亮、3:呼吸、4:均分旋转、5:同色旋转、6:闪烁
speed – 速度 分三个等级,1:快速、2:正常、3:慢速
color – 颜色,最多包含4个 0 ~ 15 之间的整数,类型:list[int]
- set_payload(x: float = 0, y: float = 0, z: float = - 9.8, mass: float = 0) → None¶
设置负荷
- 参数
x – 负荷X
y – 负荷Y
z – 负荷Z
mass – 负荷的质量
- set_payload_cog(x: float = 0, y: float = 0, z: float = 0) → None¶
设置负荷的质心
- 参数
x – 质心X
y – 质心Y
z – 质心Z
- set_payload_mass(mass: float) → None¶
设置负荷的质量
- 参数
mass – 负荷的质量
- set_signal(pin: int, value: int) → None¶
设置信号
- 参数
pin – 针脚
value – 值
- set_tcp(x: float = 0, y: float = 0, z: float = 0, rz: float = 0, ry: float = 0, rx: float = 0) → None¶
设置工具中心点(TCP)坐标,坐标值相对于工具坐标系。
- 参数
x – TCP 坐标 x
y – TCP 坐标 y
z – TCP 坐标 z
rz – 旋转角度 rz
ry – 旋转角度 ry
rx – 旋转角度 rx
- set_velocity_factor(factor: float) → None¶
设置速度因子
- 参数
factor – 速度因子
- set_voice(voice: int, volume: int) → None¶
设置声音
- Voice
声音列表 0~10
- Volume
音量 分四个等级,0:静音、1:低、2:正常、3:高
- sleep(time: int) → None¶
等待
- 参数
time – 等待时间,单位毫秒
- start_sys() → None¶
启动
- stop() → None¶
停止程序
- stop_move() → None¶
停止当前移动
- stop_sys() → None¶
关闭
- sync() → None¶
同步,等待指定命令执行完成
- teach_mode() → None¶
开启示教模式
- class lebai.scene.LebaiScene(ip, scene_id=0, task_id=0)¶
基类:
object- action(cmd: str, data: Optional[object] = None, sleep: float = 0) → object¶
调用命令
- 参数
cmd – 机器人命令
data – 机器人命令参数
sleep –
- 返回
命令的返回数据
- done() → bool¶
获取是否停止了执行
- 返回
是否停止了执行
- pause() → None¶
暂停执行
- result() → lebai.type.TaskInfo¶
获取任务信息
- 返回
任务信息
- resume() → None¶
恢复执行
- run(loop: int = 1) → str¶
运行任务或者场景,直到运行完成,返回lua代码
- 参数
loop –
- 返回
返回执行了的lua代码,没有执行lua代码则返回空
- start(execute_count: int = 1, clear: bool = True) → None¶
开始执行
- 参数
execute_count – 执行次数,0表示无限循环
clear – 是否停止当前正在执行的任务
- status() → lebai.type.TaskStatus¶
获取任务状态
- 返回
任务状态
- stop() → None¶
停止