控制模块

能力概览

  • 底盘控制接口:支持底盘控制模式切换、全局位置移动、相对位置移动和前后速度控制,并提供虚拟零点设置、位姿、里程计及实时运动状态反馈。

  • 头部控制接口:支持头部俯仰和偏航姿态控制、姿态复位,并提供头部姿态、关节状态和电机状态反馈。

  • 机械臂控制接口:支持双臂控制模式配置、左右机械臂关节位置控制和末端位姿控制,并提供关节状态及末端位姿反馈。

  • 主臂控制接口:在机器人已配置主臂硬件及相关服务的情况下,支持左右主臂控制模式配置、关节位置和末端位姿控制,并提供关节状态、末端位姿及扳机输入反馈。

  • 夹爪控制接口:支持左右夹爪开合位置控制,并提供夹爪位置和关节状态反馈。

  • 腰部升降控制接口:支持腰部升降位置控制,并提供升降位置和关节状态反馈。

机器人控制接口

set_manipulator_control_mode 接口介绍
字段内容
函数名set_manipulator_control_mode()
函数原型def set_manipulator_control_mode(manipulator_control_mode_param: ManipulatorControlModeParam, timeout) -> ExecutionResult
功能概述设置机器人手臂控制模式
参数ManipulatorControlModeParam.mode:手臂控制模式MANIPULATOR_END_POSE:末端位姿控制模式;设置 SDK 模式时默认为该模式MANIPULATOR_JOINT_POSITIONS:关节角度控制模式
返回值ExecutionResult
备注当前不支持单独设置左臂或右臂的控制模式,需要通过 robot_control 调用。不能在运行过程中切换控制模式,否则会对电机造成冲击

示例:

robot.system.set_work_mode(
    RobotModeParam(mode=RobotWorkMode.SDK)
)
robot.robot_control.set_manipulator_control_mode(
    ManipulatorControlModeParam(
        mode=ManipulatorControlMode.MANIPULATOR_END_POSE
    )
)
get_manipulator_control_mode 接口介绍
字段内容
函数名get_manipulator_control_mode()
函数原型def get_manipulator_control_mode(timeout) -> ManipulatorControlModeParam
功能概述获取手臂控制模式
参数
返回值ManipulatorControlModeParam
备注

示例:

mode = robot.robot_control.get_manipulator_control_mode()
print(mode)
emergency_stop 接口介绍
字段内容
函数名emergency_stop()
函数原型
功能概述紧急停止机器人运动
参数
返回值ExecutionResult
备注

示例:

result = robot.robot_control.emergency_stop()
print(result.is_success)
recover_emergency_stop 接口介绍
字段内容
函数名recover_emergency_stop()
函数原型
功能概述从紧急停止状态恢复
参数
返回值ExecutionResult
备注

示例:

# 恢复
result = robot.robot_control.recover_emergency_stop()
print(result.is_success)
homing 接口介绍
字段内容
函数名homing()
函数原型
功能概述关节回零
参数
返回值ExecutionResult
备注

示例:

# 回零
result = robot.robot_control.homing()
print(result.is_success)

底盘控制接口

注意:请在一个相对空旷的场景下控制底盘,否则容易发生撞击。

set_control_mode 接口介绍
字段内容
函数名set_control_mode()
函数原型def set_control_mode(manipulator_control_mode_param: ChassisControlModeParam, timeout) -> ExecutionResult
功能概述设置底盘控制模式
参数ChassisControlModeParam.mode: ChassisControlMode - 控制模式
返回值ExecutionResult
备注控制模式:GLOBAL:全局绝对位置控制(相对于地图坐标系)RELATIVE:相对位置控制(相对于虚拟零点,推荐)VELOCITY:直接速度控制

示例(参考 examples 里的 chassis_control.py):

# 设置为相对位置控制模式
robot.chassis.set_control_mode(
    ChassisControlModeParam(mode=ChassisControlMode.RELATIVE)
)
robot.chassis.move_to_relative_position(
    ChassisPosition(x=0.25, y=0.0, yaw=0.0)
)

# 设置绝对位置控制模式
robot.chassis.set_control_mode(
    ChassisControlModeParam(mode=ChassisControlMode.GLOBAL)
)
robot.chassis.move_to_global_position(
    ChassisPosition(
        x=current_position.x + 0.25,
        y=current_position.y,
        yaw=current_position.yaw,
    )
)
get_control_mode 接口介绍
字段内容
函数名get_control_mode()
函数原型def get_control_mode(timeout) -> ChassisControlModeParam
功能概述获取当前底盘控制模式
参数
返回值ChassisControlModeParam
备注

示例:

mode = robot.chassis.get_control_mode()
move_to_global_position 接口介绍
字段内容
函数名move_to_global_position()
函数原型def move_to_global_position(chassis_position: ChassisPosition, timeout) -> ExecutionResult
功能概述移动到全局位置(需先设置为 GLOBAL 模式)
参数position: ChassisPosition - 目标位置 (x, y, yaw)
返回值ExecutionResult
备注该接口使用机器人内置导航模式,第一次调用时需要先建图和保存地图。

示例:

position = ChassisPosition(x=1.0, y=0.5, yaw=0.0)
result = robot.chassis.move_to_global_position(position)
move_to_relative_position 接口介绍
字段内容
函数名move_to_relative_position()
函数原型def move_to_relative_position(chassis_position: ChassisPosition, timeout) -> ExecutionResult
功能概述移动到相对位置(需先设置为 RELATIVE 模式并设置虚拟零点)
参数position: ChassisPosition - 目标位置 (x, y, yaw)
返回值ExecutionResult
备注该接口使用机器人内置导航模式,第一次调用时需要先建图和保存地图。

示例:

current_position = robot.chassis.get_global_position()
print(
    f"全局位置: x={current_position.x}, "
    f"y={current_position.y}, yaw={current_position.yaw}"
)

robot.chassis.set_virtual_zero_point(current_position)
robot.chassis.set_control_mode(
    ChassisControlModeParam(mode=ChassisControlMode.RELATIVE)
)
robot.chassis.move_to_relative_position(
    ChassisPosition(x=0.25, y=0.0, yaw=0.0)
)
set_velocity 接口介绍
字段内容
函数名set_velocity()
函数原型def set_velocity(chassis_velocity: ChassisVelocity, timeout) -> ExecutionResult
功能概述设置速度控制(需先设置为 VELOCITY 模式)。量子1号底盘只支持 x 方向,即前进或后退的线速度控制。
参数velocity: ChassisVelocity - 速度 (vel_x, vel_y, vel_yaw),单位为 m/s、rad/s
返回值ExecutionResult
备注参数限制范围:[-2.0, 2.0]出于安全考虑,底盘速度控制命令的发送频率需要大于 10 Hz,机器人才会响应,用户需自主控制发送频率。机器人处于充电状态时,无法通过该接口控制底盘移动。

示例:

# 设置速度:x 方向 0.25 m/s,持续 2 秒
for i in range(40):
    cur_velocity = ChassisVelocity(
        vel_x=0.25,
        vel_y=0.0,
        vel_yaw=0.0,
    )
    robot.chassis.set_velocity(cur_velocity)
    time.sleep(0.05)

time.sleep(0.5)
set_virtual_zero_point 接口介绍
字段内容
函数名set_virtual_zero_point()
函数原型def set_virtual_zero_point(chassis_position: ChassisPosition, timeout) -> ExecutionResult
功能概述设置虚拟零点,即相对运动的原点
参数position: ChassisPosition - 目标位置 (x, y, yaw)
返回值ExecutionResult
备注

示例:

current_position = robot.chassis.get_global_position()
print(
    f"全局位置: x={current_position.x}, "
    f"y={current_position.y}, yaw={current_position.yaw}"
)
robot.chassis.set_virtual_zero_point(current_position)
get_virtual_zero_point 接口介绍
字段内容
函数名get_virtual_zero_point()
函数原型def get_virtual_zero_point(timeout) -> ChassisPosition
功能概述获取虚拟零点
参数
返回值ChassisPosition
备注

示例:

position = robot.chassis.get_virtual_zero_point()
get_global_position 接口介绍
字段内容
函数名get_global_position()
函数原型def get_global_position(timeout) -> ChassisPosition
功能概述获取全局位置
参数
返回值ChassisPosition
备注调用前需要先开启定位

示例:

current_position = robot.chassis.get_global_position()
print(
    f"全局位置: x={current_position.x}, "
    f"y={current_position.y}, yaw={current_position.yaw}"
)
get_relative_position 接口介绍
字段内容
函数名get_relative_position()
函数原型def get_relative_position(timeout) -> ChassisPosition
功能概述获取相对位置
参数
返回值ChassisPosition
备注

示例(按接口名称整理):

current_position = robot.chassis.get_relative_position()
print(
    f"相对位置: x={current_position.x}, "
    f"y={current_position.y}, yaw={current_position.yaw}"
)
get_odometry 接口介绍
字段内容
函数名get_odometry()
函数原型def get_odometry(timeout) -> nav_msgs_.Odometry
功能概述获取里程计
参数
返回值Odometry
备注

示例:

current_odometry = robot.chassis.get_odometry()
print(current_odometry)
get_odometry_stream 接口介绍
字段内容
函数名get_odometry_stream()
函数原型def get_odometry_stream(timeout) -> Iterator[nav_msgs_.Odometry]
功能概述获取里程计数据流
参数
返回值Odometry 迭代器
备注

示例:

stream = robot.chassis.get_odometry_stream()
for msg in stream:
    print(msg)
get_pose_stream 接口介绍
字段内容
函数名get_pose_stream()
函数原型def get_pose_stream(timeout) -> Iterator[geometry_msgs_.PoseStamped]
功能概述获取位姿数据流
参数
返回值PoseStamped 迭代器
备注

示例:

stream = robot.chassis.get_pose_stream()
for msg in stream:
    print(msg)

头部控制接口

set_pose 接口介绍
字段内容
函数名set_pose()
函数原型def set_pose(head_pose: HeadPose, timeout) -> ExecutionResult
功能概述设置头部姿态
参数pose: HeadPose - 头部姿态(pitch、yaw)
返回值ExecutionResult
备注参数限制范围:pitch:[-0.06, 0.9]yaw:[-1.20, 1.20]

示例:

robot.head.set_pose(HeadPose(yaw=0.0, pitch=0.0))
get_pose 接口介绍
字段内容
函数名get_pose()
函数原型def get_pose(timeout) -> HeadPose
功能概述获取头部姿态
参数
返回值HeadPose
备注

示例:

head_state = robot.head.get_pose()
print(head_state)
reset 接口介绍
字段内容
函数名reset()
函数原型def reset(timeout) -> ExecutionResult
功能概述重置头部状态,使 pitch=0.0、yaw=0.0
参数
返回值ExecutionResult
备注

示例:

robot.head.reset()
get_joint_states_stream 接口介绍
字段内容
函数名get_joint_states_stream()
函数原型def get_joint_states_stream(timeout) -> Iterator[sensor_msgs_.JointState]
功能概述获取头部关节状态数据流
参数
返回值JointState 迭代器
备注

示例:

stream = robot.head.get_joint_states_stream()
for msg in stream:
    print(msg)

机械臂控制接口

set_joint_positions 接口介绍
字段内容
函数名set_joint_positions()
函数原型def set_joint_positions(joint_positions: JointPositions, timeout) -> ExecutionResult
功能概述控制机械臂关节角度,需先设置为 SDK 工作模式和 MANIPULATOR_JOINT_POSITIONS 控制模式
参数positions: JointPositions - 6 个关节角度,单位为弧度
返回值ExecutionResult
备注参数范围限制:关节顺序从肩膀到手腕。以左臂为例:left_arm_joint1:[-2.792, 2.792]left_arm_joint2:[0.0, 3.44]left_arm_joint3:[-3.14, 0.0]left_arm_joint4:[-1.57, 1.57]left_arm_joint5:[-1.4, 1.4]left_arm_joint6:[-1.745, 1.745]如果目标角度和当前角度差距过大,可能会引起较大抖动,建议基于当前位置逐步累加至目标位置。

示例:

robot.system.set_work_mode(
    RobotModeParam(mode=RobotWorkMode.SDK)
)

robot.robot_control.set_manipulator_control_mode(
    ManipulatorControlModeParam(
        mode=ManipulatorControlMode.MANIPULATOR_JOINT_POSITIONS
    )
)

joint_state = robot.right_arm.get_joint_states()
target_positions = list(joint_state.position)
target_positions[5] += 0.01

result = robot.right_arm.set_joint_positions(
    JointPositions(positions=target_positions)
)
print(result)
set_end_pose 接口介绍
字段内容
函数名set_end_pose()
函数原型def set_end_pose(pose: geometry_msgs_.Pose, timeout) -> ExecutionResult
功能概述控制机械臂末端执行器位姿,需先设置为 SDK 工作模式和 MANIPULATOR_END_POSE 控制模式
参数pose: Pose - 目标位姿,包括位置和姿态
返回值ExecutionResult
备注参数范围限制:position.x:[-5.0, 5.0]position.y:[-5.0, 5.0]position.z:[-5.0, 5.0]orientation.x:[-1, 1]orientation.y:[-1, 1]orientation.z:[-1, 1]orientation.w:[-1, 1]如果目标位姿和当前位姿差距过大,可能会引起较大抖动,建议基于当前位姿逐步累加至目标位置。

示例:

robot.system.set_work_mode(
    RobotModeParam(mode=RobotWorkMode.SDK)
)

robot.robot_control.set_manipulator_control_mode(
    ManipulatorControlModeParam(
        mode=ManipulatorControlMode.MANIPULATOR_END_POSE
    )
)

pose = Pose()
pose.position = Point(x=0.0, y=0.0, z=0.0)
pose.orientation = Quaternion(x=0.0, y=0.0, z=0.0, w=1.0)

pose.position.z += 0.03
robot.right_arm.set_end_pose(pose)
time.sleep(0.2)
get_joint_states 接口介绍
字段内容
函数名get_joint_states()
函数原型def get_joint_states(timeout) -> sensor_msgs_.JointState
功能概述获取机械臂关节状态信息
参数
返回值JointState
备注

示例:

joint_state = robot.left_arm.get_joint_states()
print(f"关节名称: {joint_state.name}")
print(f"关节位置: {joint_state.position}")
print(f"关节速度: {joint_state.velocity}")
print(f"关节力矩: {joint_state.effort}")
get_end_pose 接口介绍
字段内容
函数名get_end_pose()
函数原型def get_end_pose(timeout) -> geometry_msgs_.PoseStamped
功能概述获取机械臂末端位姿
参数
返回值PoseStamped
备注原示例最后一行缺少右括号,已在下方示例中补齐。

示例:

cur_pose = robot.left_arm.get_end_pose()
print(f"current_position: {cur_pose}")
get_joint_states_stream 接口介绍
字段内容
函数名get_joint_states_stream()
函数原型def get_joint_states_stream(timeout) -> Iterator[sensor_msgs_.JointState]
功能概述获取机械臂关节状态流
参数
返回值JointState 迭代器
备注

示例:

stream = robot.left_arm.get_joint_states_stream()
for msg in stream:
    print(msg)
get_end_pose_stream 接口介绍
字段内容
函数名get_end_pose_stream()
函数原型def get_end_pose_stream(timeout) -> Iterator[geometry_msgs_.PoseStamped]
功能概述获取机械臂末端位姿流
参数
返回值PoseStamped 迭代器
备注

示例:

stream = robot.left_arm.get_end_pose_stream()
for msg in stream:
    print(msg)

主臂控制接口

重点提示:主臂接口用于读取和控制主臂侧设备。SDK 客户端入口为 robot.master_left_arm 和 robot.master_right_arm,不要和从臂执行器 robot.left_arm、robot.right_arm 混用。量子 1 号是否可以使用主臂写控制,取决于机器人端是否部署主臂硬件、主臂服务和对应控制模式配置。若机器人端只支持主臂读取或未配置写控制 topic,调用写接口会返回错误。主臂控制模式由左右主臂对象各自提供的 set_control_mode() 接口设置,参数复用 ManipulatorControlModeParam,不通过 robot.robot_control.set_manipulator_control_mode() 设置。

set_control_mode 接口介绍
字段内容
函数名set_control_mode()
函数原型def set_control_mode(manipulator_control_mode_param: ManipulatorControlModeParam, timeout) -> ExecutionResult
功能概述设置主臂控制模式,用于切换后续主臂写控制命令的解释方式
参数mode: ManipulatorControlModeParam - 主臂控制模式
返回值ExecutionResult
备注控制模式:MANIPULATOR_END_POSE:主臂末端位姿控制模式,后续 set_end_pose() 按主臂末端目标位姿解释MANIPULATOR_JOINT_POSITIONS:主臂关节角度控制模式,后续 set_joint_positions() 按 6 个主臂关节目标角度解释MANIPULATOR_GRAVITY_COMPENSATION:主臂重力补偿模式,可用于自主接管不要在主臂运动过程中频繁切换控制模式。左右主臂服务均提供该接口,建议在执行写控制前先确认当前模式。

示例:

from x2robot.sdk import (
    ManipulatorControlMode,
    ManipulatorControlModeParam,
)

robot.master_left_arm.set_control_mode(
    ManipulatorControlModeParam(
        mode=ManipulatorControlMode.MANIPULATOR_END_POSE
    )
)
get_control_mode 接口介绍
字段内容
函数名get_control_mode()
函数原型def get_control_mode(timeout) -> ManipulatorControlModeParam
功能概述获取当前主臂控制模式
参数
返回值ManipulatorControlModeParam
备注如果当前机器人端控制链路不在主臂关节控制或主臂末端控制模式下,接口可能返回错误。执行主臂写控制前,建议先调用 set_control_mode() 切换到对应模式。

示例:

mode = robot.master_left_arm.get_control_mode()
print(mode)
set_joint_positions 接口介绍
字段内容
函数名set_joint_positions()
函数原型def set_joint_positions(joint_positions: JointPositions, timeout) -> ExecutionResult
功能概述设置主臂各关节的目标位置,需先通过主臂 set_control_mode() 设置为 MANIPULATOR_JOINT_POSITIONS 模式
参数positions: JointPositions - 6 个主臂关节角度,单位为弧度。
主臂关节顺序为 master_left_arm_joint1~master_left_arm_joint6 或 master_right_arm_joint1~master_right_arm_joint6。joint1:[-2.7925, 2.7925]joint2:[0.0, 3.6652]joint3:[-2.7925, 0.0]joint4:[-1.5708, 1.5708]joint5:[-1.5708, 1.5708]joint6:[-1.9199, 1.9199]
返回值ExecutionResult
备注SDK 会检查关节数量、数值是否有限以及是否在关节范围内。result.is_success=True 表示 SDK Server 已接受该命令并发布到机器人端控制链路,不表示动作已经完成或已经到达目标位置。

示例:

from x2robot.sdk import (
    JointPositions,
    ManipulatorControlMode,
    ManipulatorControlModeParam,
)

master_arm = robot.master_left_arm
master_arm.set_control_mode(
    ManipulatorControlModeParam(
        mode=ManipulatorControlMode.MANIPULATOR_JOINT_POSITIONS
    )
)

joint_state = master_arm.get_joint_states()
target = list(joint_state.position)
target[0] += 0.01

result = master_arm.set_joint_positions(
    JointPositions(positions=target)
)
print(result.is_success, result.error_message)
set_end_pose 接口介绍
字段内容
函数名set_end_pose()
函数原型def set_end_pose(pose: geometry_msgs_.Pose, timeout) -> ExecutionResult
功能概述设置主臂末端目标位姿,需先通过主臂 set_control_mode() 设置为 MANIPULATOR_END_POSE 模式
参数pose: Pose - 主臂末端目标位姿
返回值ExecutionResult
备注set_end_pose() 发送主臂末端绝对位姿命令,位姿解释遵循控制器内部的主臂绝对位姿约定。SDK 会检查位置和四元数是否为有效数值,并检查四元数模长是否接近 1。result.is_success=True 只表示命令已被 SDK Server 接受并发布,不表示 IK 成功、控制器到位或动作完成。

示例:

from x2robot.geometry_msgs import Pose, Point, Quaternion
from x2robot.sdk import (
    ManipulatorControlMode,
    ManipulatorControlModeParam,
)

master_arm = robot.master_left_arm
master_arm.set_control_mode(
    ManipulatorControlModeParam(
        mode=ManipulatorControlMode.MANIPULATOR_END_POSE
    )
)

current = master_arm.get_end_pose()
pose = Pose()
pose.position = Point(
    x=current.pose.position.x,
    y=current.pose.position.y,
    z=current.pose.position.z + 0.002,
)
pose.orientation = Quaternion(
    x=current.pose.orientation.x,
    y=current.pose.orientation.y,
    z=current.pose.orientation.z,
    w=current.pose.orientation.w,
)

result = master_arm.set_end_pose(pose)
print(result.is_success, result.error_message)
get_joint_states 接口介绍
字段内容
函数名get_joint_states()
函数原型def get_joint_states(timeout) -> sensor_msgs_.JointState
功能概述获取主臂关节状态信息
参数
返回值JointState
备注

示例:

joint_state = robot.master_left_arm.get_joint_states()
print(f"关节名称: {joint_state.name}")
print(f"关节位置: {joint_state.position}")
print(f"关节速度: {joint_state.velocity}")
print(f"关节力矩: {joint_state.effort}")
get_end_pose 接口介绍
字段内容
函数名get_end_pose()
函数原型def get_end_pose(timeout) -> geometry_msgs_.PoseStamped
功能概述获取主臂末端位姿
参数
返回值PoseStamped
备注

示例:

cur_pose = robot.master_left_arm.get_end_pose()
print(f"current_position: {cur_pose}")
get_gripper_position 接口介绍
字段内容
函数名get_gripper_position()
函数原型def get_gripper_position(timeout) -> GripperPosition
功能概述获取主臂扳机输入值。主臂侧该值表示抓取输入量,不表示从臂夹爪的实际物理位置。
参数
返回值GripperPosition
备注主臂扳机输入值通常为 [0, 1]。当前主臂扳机只支持读取,不支持通过 SDK 设置主臂扳机位置。

示例:

trigger = robot.master_left_arm.get_gripper_position()
print(trigger.position)
get_joint_states_stream 接口介绍
字段内容
函数名get_joint_states_stream()
函数原型def get_joint_states_stream(timeout) -> Iterator[sensor_msgs_.JointState]
功能概述获取主臂关节状态流
参数
返回值JointState 迭代器
备注

示例:

stream = robot.master_left_arm.get_joint_states_stream()
for msg in stream:
    print(msg)
get_end_pose_stream 接口介绍
字段内容
函数名get_end_pose_stream()
函数原型def get_end_pose_stream(timeout) -> Iterator[geometry_msgs_.PoseStamped]
功能概述获取主臂末端位姿流
参数
返回值PoseStamped 迭代器
备注

示例:

stream = robot.master_left_arm.get_end_pose_stream()
for msg in stream:
    print(msg)
get_gripper_state_stream 接口介绍
字段内容
函数名get_gripper_state_stream()
函数原型def get_gripper_state_stream(timeout) -> Iterator[GripperPosition]
功能概述获取主臂扳机输入流
参数
返回值GripperPosition 迭代器
备注主臂还保留 get_gripper_joint_states_stream() 兼容接口,用于读取主臂夹爪或扳机相关的关节状态流。新开发建议优先使用 get_gripper_state_stream() 获取扳机输入值。

示例:

stream = robot.master_left_arm.get_gripper_state_stream()
for msg in stream:
    print(msg.position)

夹爪控制接口

set_position 接口介绍
字段内容
函数名set_position()
函数原型def set_position(gripper_position: GripperPosition, timeout) -> ExecutionResult
功能概述设置夹爪位置,即电机旋转弧度值,需先设置为 SDK 工作模式
参数position: GripperPosition
返回值ExecutionResult
备注position 参数范围(单位:rad):H 夹爪 [0.0, 4.5];G 夹爪 [0.0, 1.89]。

示例:

robot.system.set_work_mode(
    RobotModeParam(mode=RobotWorkMode.SDK)
)

robot.right_gripper.set_position(
    GripperPosition(position=0.5)
)
sleep(0.05)

position = robot.right_gripper.get_position()
print(position)
get_position 接口介绍
字段内容
函数名get_position()
函数原型def get_position(timeout) -> GripperPosition
功能概述获取夹爪位置
参数
返回值GripperPosition
备注

示例:

position = robot.left_gripper.get_position()
print(position)
get_joint_states_stream 接口介绍
字段内容
函数名get_joint_states_stream()
函数原型def get_joint_states_stream(timeout) -> Iterator[sensor_msgs_.JointState]
功能概述获取夹爪关节状态流
参数
返回值JointState
备注

示例:

stream = robot.left_gripper.get_joint_states_stream()
for msg in stream:
    print(msg)

腰部控制接口

set_lift_position 接口介绍
字段内容
函数名set_lift_position()
函数原型def set_lift_position(lift_position: LiftPosition, timeout) -> ExecutionResult
功能概述设置腰部升降位置,需先设置为 SDK 工作模式
参数position: LiftPosition
返回值ExecutionResult
备注position 参数范围:[0.0, 0.78]

示例:

cur_position = robot.lift.get_lift_position()
print(f"current_position: {cur_position}")

lift_position = LiftPosition(
    position=cur_position.position + 0.2
)
robot.lift.set_lift_position(lift_position)
get_lift_position 接口介绍
字段内容
函数名get_lift_position()
函数原型def get_lift_position(timeout) -> LiftPosition
功能概述获取腰部升降位置
参数
返回值LiftPosition
备注

示例:

position = robot.lift.get_lift_position()
get_joint_states_stream 接口介绍
字段内容
函数名get_joint_states_stream()
函数原型def get_joint_states_stream(timeout) -> Iterator[sensor_msgs_.JointState]
功能概述获取腰部关节状态流
参数
返回值JointState
备注

示例:

stream = robot.lift.get_joint_states_stream()
for msg in stream:
    print(msg)

本页内容