Stand Pose
set_stand_pose()β
set_stand_pose(delta_z: float, delta_pitch: float, delta_yaw: float)
Sets stand-pose inputs for the GR-W policy task. Only effective in grw_policy_task (state 3); calls in other states have no effect.
The current GR-W deployment does not run a PdStand-type task that consumes stand-pose offset commands. Sending a non-zero offset such as set_stand_pose(-0.02, 0.0, 0.0) in state 3 publishes without error, but get_stand_pose() keeps returning [0.0, 0.0, 0.0, 0] and no posture change occurs. Do not use it for base height, pitch, or yaw control; adjust height/pitch with the joystick D-pad (policy task inputs).
| Parameter | Type | Description |
|---|---|---|
delta_z | float | Height offset (m), negative lowers the center of gravity |
delta_pitch | float | Pitch angle offset (rad), positive leans forward |
delta_yaw | float | Yaw angle offset (rad), positive turns left |
Use the limits configured by grw_policy_task on the robot.
Example
import os
import time
os.environ.setdefault("FASTDDS_BUILTIN_TRANSPORTS", "UDPv4") # required on the robot
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("state change request not accepted")
deadline = time.monotonic() + 4.0
while client.get_fsm_state() != 3:
if time.monotonic() >= deadline:
raise RuntimeError("did not switch to grw_policy_task")
time.sleep(0.05)
client.set_stand_pose(0.0, 0.0, 0.0) # zero offset (only usable value in the current deployment)
print(f"stand pose: {client.get_stand_pose()}, stable: {client.get_stable_level()}")
finally:
client.close()
get_stand_pose()β
get_stand_pose() -> list[float]
Returns the current stand pose data as [delta_z, delta_pitch, delta_yaw, stable_level]. In the current GR-W deployment the three offsets stay 0.0 and do not mirror the set_stand_pose() command value.
| Index | Description |
|---|---|
[0] | Current height offset delta_z (m) |
[1] | Current pitch offset delta_pitch (rad) |
[2] | Current yaw offset delta_yaw (rad) |
[3] | Stability level (see get_stable_level()) |
get_stable_level()β
get_stable_level() -> bool
Returns whether the stability-level service request succeeded: True on success, False when no successful response arrives. The current implementation does not return a numeric stability level; read element 4 of get_stand_pose() for the numeric value instead.