Shove the duck
duck_pushPush the simulated duck by setting its trunk velocity to a specified magnitude (up to 2.0 m/s) and optional angle, to test recovery from external disturbances.
Instructions
Shove the duck: sets trunk velocity to magnitude m/s (max 2.0) in a
world-frame direction (random if angle_deg omitted). Tests push recovery.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| angle_deg | No | ||
| magnitude | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | ||
| rpy_deg | Yes | Trunk orientation [roll, pitch, yaw], degrees | |
| sitting | Yes | ||
| upright | Yes | False once tilted past ~45 deg. There is no self-recovery policy: if the duck falls, use duck_reset. | |
| vel_cmd | Yes | Current sticky velocity intent [vx, vy, wz] | |
| behavior | Yes | Episodic trick currently running, else null | |
| position_m | Yes | Trunk world position [x, y, z], meters | |
| sim_time_s | Yes | Sim clock, seconds. The sim runs in real time; this snapshot is stale on arrival. | |
| ground_pick | Yes | ||
| vel_body_mps | Yes | ||
| yaw_rate_rps | Yes | Yaw rate, rad/s, counterclockwise positive | |
| active_policy | Yes | Which ONNX policy is driving: standing, walking, sit, ground_pick, kick_left/right, roulade | |
| ball_position_m | No | Ball world position [x, y, z], meters (ball scene only) | |
| trunk_height_mm | Yes | Trunk height above floor, mm (~116 standing) |