跳转到内容

躯干相关接口

TorsoFactoryPose4D 类用于创建躯干实例。

  • 方法原型:

    create_torso_from_config(config_path: str) -> TorsoInterfacePose4D
  • 参数说明:

    参数名称说明
    config_path

    配置文件路径。配置文件为 JSON 文件,包含以下键值对。

    {
    "torso_type":"ti5", # 躯干厂商
    "torso_name":"ti5_torso", # 躯干名称
    "torso_joint_num":4, # 躯干关节数
    "can_device":"can0", # CAN 设备名称
    "can_id":0, # CAN 节点 ID(0x00~0xFF)
    "motor_params": [ # 电机参数
    {
    "motor_id": 1, # 电机 ID
    "reduction_ratio": 121, # 减速比
    "position_max": 1.0, # 转动的最大角度
    "position_min":-68.0, # 转动的最小角度
    "speed_max": 30, # 转动的最大速度
    "speed_min":-30, # 转动的最小速度
    "acc_max": 10, # 转动的最大加速度
    "acc_min":-10 # 转动的最小加速度
    }
    ]
    }
  • 返回值:

    若创建成功,则返回 TorsoInterfacePose4D 实例;否则返回 None

TorsoInterfacePose4D 类提供了一系列用于控制躯干的公共方法,例如获取躯干关节角、控制躯干运动等。在使用前,请确保已创建躯干实例。

在创建躯干实例后,用户可通过如下方法与躯干建立连接。

  • 方法原型:

    connect(self) -> alphabot.core.AbcErrorCode
  • 返回值:

    AbcErrorCode.SUCCESS 表示成功;其他错误码,请参见 AbcErrorCode

用户可通过如下方法断开与躯干的连接。

  • 方法原型:

    disconnect(self) -> alphabot.core.AbcErrorCode
  • 返回值:

    AbcErrorCode.SUCCESS 表示成功;其他错误码,请参见 AbcErrorCode

在关节空间中规划一条运动轨迹,使躯干各关节运动至指定关节位置。

  • 方法原型:

    move_joint_position(
    self,
    joints: list[float],
    v: int,
    block: bool
    ) -> alphabot.core.AbcErrorCode
  • 参数说明:

    参数名称说明
    joints目标关节位置,单位为角度。
    v规划速度和加速度占关节最大线转速和加速度的百分比,取值范围为 0~100。
    block设置阻塞模式,取值为 FalseTrue
    - False:非阻塞模式。函数在成功将运动轨迹发送至控制器后立即返回。
    - True:阻塞模式。函数将等待,直到躯干完成运动或发生错误后才返回。
  • 返回值:

    AbcErrorCode.SUCCESS 表示成功;其他错误码,请参见 AbcErrorCode

在笛卡尔空间中规划一条直线运动轨迹,使躯干沿直线运动至指定位姿。

  • 方法原型:

    move_cartesian_linear(
    self,
    pose: alphabot.core.AbcTorsoPose4D,
    v: int,
    block: bool
    ) -> alphabot.core.AbcErrorCode
  • 参数说明:

    参数名称说明
    pose目标位姿,具体参见 AbcTorsoPose4D
    v规划速度和加速度占关节最大线转速和加速度的百分比,取值范围为 0~100。
    block设置阻塞模式,取值为 FalseTrue
    - False:非阻塞模式。函数在成功将运动轨迹发送至控制器后立即返回。
    - True:阻塞模式。函数将等待,直到躯干完成运动或发生错误后才返回。
  • 返回值:

    AbcErrorCode.SUCCESS 表示成功;其他错误码,请参见 AbcErrorCode

在关节空间中规划一条运动轨迹,使躯干运动至指定位姿。

  • 方法原型:

    move_joint_pose(
    self,
    pose: alphabot.core.AbcTorsoPose4D,
    v: int,
    block: bool
    ) -> alphabot.core.AbcErrorCode
  • 参数说明:

    参数名称说明
    pose目标位姿,具体参见 AbcTorsoPose4D
    v规划速度和加速度占关节最大角速度和角加速度的百分比,取值范围为 0~100。
    block设置阻塞模式,取值为 FalseTrue
    - False:非阻塞模式。函数在成功将运动轨迹发送至控制器后立即返回。
    - True:阻塞模式。函数将等待,直到躯干完成运动或发生错误后才返回。
  • 返回值:

    AbcErrorCode.SUCCESS 表示成功;其他错误码,请参见 AbcErrorCode

角度通过 CAN FD(Controller Area Network Flexible Data-rate)透传给躯干,不需控制器规划。若调用正确,躯干立即执行。

  • 方法原型:

    move_joint_position_canfd(self, joints: list[float]) -> alphabot.core.AbcErrorCode
  • 参数说明:

    参数名称类型说明
    joints输入参数目标关节位置,单位为角度。
  • 返回值:

    AbcErrorCode.SUCCESS 表示成功;其他错误码,请参见 AbcErrorCode

  • 方法原型:

    get_joint_degree(self) -> tuple[alphabot.core.AbcErrorCode, list[float]]
  • 返回值:

    包含两个元素的元组。

    元素数据类型说明
    AbcErrorCodeAbcErrorCode.SUCCESS 表示成功;其他错误码,请参见 AbcErrorCode
    list[float]当前关节角度。
  • 方法原型:

    get_error_flag(self) -> tuple[alphabot.core.AbcErrorCode, list[int]]
  • 返回值:

    包含两个元素的元组。

    元素数据类型说明
    AbcErrorCodeAbcErrorCode.SUCCESS 表示成功;其他错误码,请参见 AbcErrorCode
    list[int]反馈错误码。
  • 方法原型:

    forward_kinematics(
    self,
    joints: list[float]
    ) -> tuple[alphabot.core.AbcErrorCode, alphabot.core.AbcTorsoPose4D]
  • 参数说明:

    参数名称说明
    joints关节角数据。
  • 返回值:

    包含两个元素的元组。

    元素数据类型说明
    AbcErrorCodeAbcErrorCode.SUCCESS 表示成功;其他错误码,请参见 AbcErrorCode
    AbcTorsoPose4D正解的位姿,具体参见 AbcTorsoPose4D
  • 方法原型:

    inverse_kinematics(
    self,
    pose: alphabot.core.AbcTorsoPose4D,
    ref_joints: list[float],
    mode: int = 0
    ) -> tuple[alphabot.core.AbcErrorCode, list[float]]
  • 参数说明:

    参数名称说明
    pose位姿,具体参见 AbcTorsoPose4D
    ref_joints参考关节角度。
    mode求解方式,取值为 0 或 1。
    - 0:单步求解。
    - 1:遍历求解。
  • 返回值:

    包含两个元素的元组。

    元素数据类型说明
    AbcErrorCodeAbcErrorCode.SUCCESS 表示成功;其他错误码,请参见 AbcErrorCode
    list[float]逆解的关节角度。
  • 方法原型:

    set_torso_state_callback(self, arg0: typing.Callable) -> None
  • 参数说明:

    参数名称说明
    arg0当躯干状态更新时,系统会自动调用此回调函数。回调函数接收类型为 AbcTorsoState 的参数。
  • 返回值:

    None

  • 方法原型:

    get_name(self) -> str
  • 返回值:

    躯干名称。

属性数据类型说明
err_codelist[int]各关节错误码
joints_currentlist[float]各关节电流
joints_positionslist[float]各关节角度
joints_speedlist[float]各关节速度
timestamptyping.Any时间戳