站立姿态
set_stand_pose()
Python
set_stand_pose(delta_z: float, delta_pitch: float, delta_yaw: float)
设置 GR-W 策略任务的站姿输入。仅在 grw_policy_task(状态 3)下生效,在其他状态下调用无效果。
GR-W 当前部署不消费站姿偏移
当前 GR-W 部署未运行消费站姿偏移命令的 PdStand 类任务。在状态 3 下发送 set_stand_pose(-0.02, 0.0, 0.0) 这类非零偏移时:命令可发布、无异常,但 get_stand_pose() 读数保持 [0.0, 0.0, 0.0, 0],也无可见姿态变化。请勿将它用于底盘高度、俯仰或偏航控制;高度/俯仰调整请使用手柄方向键(策略任务输入)。
| 参数 | 类型 | 说明 |
|---|---|---|
delta_z | float | 高度偏移(m),负值降低重心 |
delta_pitch | float | 俯仰角偏移(rad),正值前倾 |
delta_yaw | float | 偏航角偏移(rad),正值左转 |
具体输入范围以机器人上的 grw_policy_task 配置为准。
示例
Python
import os
import time
os.environ.setdefault("FASTDDS_BUILTIN_TRANSPORTS", "UDPv4") # 机器人上运行必须设置
from fourier_aurora_client import AuroraClient
client = AuroraClient.get_instance(domain_id=123, robot_name="grw")
try:
time.sleep(1.0)
if not client.set_fsm_state(3):
raise RuntimeError("状态切换请求未受理")
deadline = time.monotonic() + 4.0
while client.get_fsm_state() != 3:
if time.monotonic() >= deadline:
raise RuntimeError("未切换到 grw_policy_task")
time.sleep(0.05)
client.set_stand_pose(0.0, 0.0, 0.0) # 零偏移(当前部署下唯一可用的取值)
print(f"stand pose: {client.get_stand_pose()}, stable: {client.get_stable_level()}")
finally:
client.close()
get_stand_pose()
Python
get_stand_pose() -> list[float]
返回当前站立姿态数据,格式为 [delta_z, delta_pitch, delta_yaw, stable_level]。GR-W 当前部署下三个偏移保持 0.0,不镜像 set_stand_pose() 的命令值。
| 索引 | 说明 |
|---|---|
[0] | 当前高度偏移 delta_z(m) |
[1] | 当前俯仰角偏移 delta_pitch(rad) |
[2] | 当前偏航角偏移 delta_yaw(rad) |
[3] | 稳定等级(见 get_stable_level()) |
get_stable_level()
Python
get_stable_level() -> bool
返回稳定等级服务请求是否成功:成功为 True,未收到成功响应为 False。当前实现不会返回数值稳定等级;数值状态如需读取,请使用 get_stand_pose() 返回值的第 4 个元素。