机器人移动与步态控制接口
KUAVO SDK 提供了全面的机器人移动和步态控制接口,支持多种运动模式和步态切换。这些接口被封装在 KuavoRobot
类中,为开发者提供简单直观的调用方式。
基础移动接口
walk
函数名 | 函数原型 |
---|---|
功能概述 | 控制机器人连续行走 |
参数 | |
linear_x | float : x轴方向线速度,范围 [-0.4, 0.4] m/s |
linear_y | float : y轴方向线速度,范围 [-0.2, 0.2] m/s |
angular_z | float : z轴角速度,范围 [-0.4, 0.4] rad/s |
返回值 | bool : 控制成功返回 True ,失败返回 False |
step_by_step
函数名 | 函数原型 |
---|---|
功能概述 | 控制机器人单步行走到目标位置 |
参数 | |
target_pose | list : 目标位姿 [x, y, z, yaw] (单位:米, 弧度) |
dt | float : 每步时间间隔,默认 0.4 秒 |
is_left_first_default | bool : 是否左脚先迈步,默认 True |
collision_check | bool : 是否进行碰撞检查,默认 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
函数名 | 函数原型 |
---|---|
功能概述 | 控制机器人下蹲高度和俯仰角 |
参数 | |
height | float : 相对于正常站立高度的偏移量(单位:米),范围 [-0.3, 0.0] |
pitch | float : 躯干俯仰角(单位:弧度),范围 [-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())