乐白机器人

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

基类:Exception

Base class for exceptions in this module.

class lebai.type.IODeviceType(value)

基类:enum.Enum

IO设备类型

FLANGE = 1

法兰

GRIPPER = 2

手爪

HOST = 0

主机箱

MODBUS_TCP = 3

MODBUS/TCP

class lebai.type.IOItem(pin: int, value: float)

基类:object

pin: int

针脚

value: float

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)

基类:lebai.type.Error

class lebai.type.RobotData(res)

基类:lebai.type.RobotPoseData

机器人数据

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

停止