速度控制
set_velocity_source()
Python
set_velocity_source(source: int) -> bool
设置速度命令来源。在调用 set_velocity() 之前必须先将来源设置为 2(Navigation),否则速度命令会被静默忽略。
| 值 | 来源 | 说明 |
|---|---|---|
| 0 | Joystick | 手柄控制 |
| 1 | Handheld | 手持设备(APP) |
| 2 | Navigation | 客户端控制 |
返回:成功返回 True,超时返回 False。
示例
Python
client.set_velocity_source(2) # 切换到客户端控制
get_velocity_source()
Python
get_velocity_source() -> int
返回当前速度命令来源的数值。
get_velocity_source_name()
Python
get_velocity_source_name() -> str
返回当前速度命令来源的名称字符串,例如 "Navigation"。
set_velocity()
Python
set_velocity(vx: float, vy: float, yaw: float, duration: float = 1.0)
向机器人发布速度命令。命令在 duration 秒内有效,超时后机器人将停止移动。
| 参数 | 类型 | 说明 |
|---|---|---|
vx | float | X 方向线速度(前进为正,m/s) |
vy | float | Y 方向线速度(左移为正,m/s) |
yaw | float | Z 轴角速度(左转为正,rad/s) |
duration | float | 命令有效时长(s),默认 1.0 |
示例
Python
client.set_velocity_source(2)
client.set_fsm_state(3) # 切换到 RL Locomotion
time.sleep(1.0)
client.set_velocity(0.5, 0.0, 0.0, 3.0) # 以 0.5 m/s 向前走 3 秒
time.sleep(3.0)
client.set_velocity(0.0, 0.0, 0.0, 1.0) # 停止