跳到主要内容

站立姿态

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_zfloat高度偏移(m),负值降低重心
delta_pitchfloat俯仰角偏移(rad),正值前倾
delta_yawfloat偏航角偏移(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 个元素。