Python SDK

位置和位姿

正解

cart = lebai.kinematics_forward(jpose)

通过机器人正向运动学将关角度坐标转成笛卡尔位置和姿态表达的坐标。

  • 参数

    • jpose 关节位置
  • 返回

    • cart 笛卡尔空间位置和姿态

反解

joints = lebai.kinematics_inverse(pose, joints)

通过机器人逆向运动学反解,将笛卡尔位置和姿态转换成关节角度。计算结果与当前 TCP 设置和当前关节位置有关。

  • 参数

    • pose 笛卡尔位置和姿态
    • joints 反解参考的关节位置。可选,默认为当前反馈关节位置
  • 返回

    • joints 关节位置

位姿特征坐标系转换

c = lebai.pose_trans(a, b)

a 为一个相对机器人底座世界坐标系变换后的新坐标系 {A},b 是相对于坐标系 {A} 的位姿描述。最后返回b相对于机器人世界坐标系的位姿描述。

  • 参数

    • a 位姿 A
    • b 位姿 B
  • 返回

    • c 位姿 C=AB

位姿的逆

c = lebai.pose_inverse(a)

用于求位姿 a 对应的齐次矩阵 A,A的逆的位姿描述。可用于求解位姿方程。

  • 参数

    • a 输入位姿
  • 返回

    • c A的逆矩阵对应的笛卡尔位置和位姿

位姿的加

pose = lebai.pose_add(base, delta, frame)

从base位置,往frame方向移动delta后的位姿。

  • 参数

    • base 起始位姿
    • delta 位姿偏移量
    • frame 位姿偏移量方向,仅姿态部分有效。可空,默认基座方向
  • 返回

    • pose 移动后的位姿

机器人配置

设置 TCP

lebai.set_tcp(tcp)

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

  • 参数
    • tcp 相对于法兰的偏移量,包含 x、y、z、rx、ry、rz

获取当前TCP

tcp = lebai.get_tcp()
  • 返回
    • tcp 当前机器人工具中心点(TCP)设置

设置速度因子

lebai.set_velocity_factor(factor)

以手臂运动命令的速度为基准,设置实际速度为运动命令速度的对应百分比。

  • 参数
    • factor 速度因子百分比,范围 0~100

设置机器人末端负载

lebai.set_payload(mass, cog)

当负载的重量或者重量分布发生变化时,必须调用该方法更新。

  • 参数
    • mass 负载质量,单位:kg。可选,默认不更新
    • cog 质心,相对于法兰的偏移量。可选,默认不更新

设置重力方向

lebai.set_gravity(gravity)

设置机器人重力加速度的方向。

  • 参数
    • gravity 重力加速度的方向

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

信号量交互

系统内置 256 个信号量,下标从 0 开始到 255。每个信号量都可以存储一个 32 位整数类型值,取值范围 -2147483648~2147483647。系统重新启动后,所有信号量都会被重新置为 0。

设置信号量

lebai.set_signal(index, value)

设置对应信号量的值。

  • 参数
    • index 信号量下标
    • value 设置的信号量值

获取信号量

value = lebai.get_signal(index)

获取对应信号量的值。

  • 参数

    • index 信号量下标
  • 返回

    • value 对应信号量的值