跳到主要内容

机器人移动与步态控制接口

KUAVO SDK 提供了全面的机器人移动和步态控制接口,支持多种运动模式和步态切换。这些接口被封装在 KuavoRobot 类中,为开发者提供简单直观的调用方式。


基础移动接口

walk

函数名函数原型
功能概述控制机器人连续行走
参数
linear_xfloat: x轴方向线速度,范围 [-0.4, 0.4] m/s
linear_yfloat: y轴方向线速度,范围 [-0.2, 0.2] m/s
angular_zfloat: z轴角速度,范围 [-0.4, 0.4] rad/s
返回值bool: 控制成功返回 True,失败返回 False

step_by_step

函数名函数原型
功能概述控制机器人单步行走到目标位置
参数
target_poselist: 目标位姿 [x, y, z, yaw](单位:米, 弧度)
dtfloat: 每步时间间隔,默认 0.4
is_left_first_defaultbool: 是否左脚先迈步,默认 True
collision_checkbool: 是否进行碰撞检查,默认 True
返回值bool: 控制成功返回 True,失败返回 False

步态模式接口

stance

函数名函数原型
功能概述使机器人进入站立模式
返回值bool: 切换成功返回 True,失败返回 False
注意可调用 KuavoRobotState.wait_for_stance() 等待进入站立模式

trot

函数名函数原型
功能概述使机器人进入小跑步态
返回值bool: 切换成功返回 True,失败返回 False
注意可调用 KuavoRobotState.wait_for_walk() 等待进入小跑模式

stop

函数名函数原型
功能概述停止机器人所有运动
返回值bool: 控制成功返回 True,失败返回 False
注意紧急情况下应立即调用此函数停止机器人

squat

函数名函数原型
功能概述控制机器人下蹲高度和俯仰角
参数
heightfloat: 相对于正常站立高度的偏移量(单位:米),范围 [-0.3, 0.0]
pitchfloat: 躯干俯仰角(单位:弧度),范围 [-0.4, 0.4]
返回值bool: 控制成功返回 True,失败返回 False

使用示例

from kuavo_humanoid_sdk import KuavoSDK, KuavoRobot
import time

def main():
# 初始化SDK
if not KuavoSDK().Init():
print("SDK初始化失败!")
return

robot = KuavoRobot()

# 进入站立模式
robot.stance()
time.sleep(2)

# 进入小跑模式
robot.trot()
time.sleep(1)

# 向前行走4秒
duration = 4.0
speed = 0.3
start_time = time.time()
while (time.time() - start_time < duration):
robot.walk(linear_x=speed, linear_y=0.0, angular_z=0.0)
time.sleep(0.1)
robot.stance()
if __name__ == "__main__":
main()

详细示例请参考SDK示例代码:

  • 速度控制: <kuavo-ros-opensource>/src/kuavo_humanoid_sdk/examples/motion_example.py
  • 单步控制: <kuavo-ros-opensource>/src/kuavo_humanoid_sdk/examples/step_control_example.py

注意事项

初始化要求

  • 使用控制接口前必须调用 KuavoSDK().Init() 进行初始化

速度限制

  • 前后速度 (linear_x): [-0.4, 0.4] m/s
  • 左右速度 (linear_y): [-0.2, 0.2] m/s
  • 转向速度 (angular_z): [-0.4, 0.4] rad/s

单步行走模式

  • 确保目标位置安全可达
  • 建议开启碰撞检查
  • target_pose 必须包含 [x, y, z, yaw] 4个元素

步态切换建议

  • 切换前确保机器人状态稳定
  • 添加适当延时等待切换完成
  • 使用 wait_for_xxx() 函数确保切换完成(如 wait_for_stance())