Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.generalrobotics.dev/llms.txt

Use this file to discover all available pages before exploring further.

Quadrupeds use airgen.LeggedClient. The current GRID builds ship with the Ghost V60 and Unitree Go2 models. Commands operate in world or body frames depending on the helper you choose.
import airgen

client = airgen.LeggedClient()
client.enableApiControl(True, robot_name="quadruped0")
client.armDisarm(True, robot_name="quadruped0")

moveByVelocityAsync

Command body velocities in the world frame. Positive Z moves downward; use negative values to step upward.
client.moveByVelocityAsync(
    vx=1.0,
    vy=0.0,
    vz=0.0,
    duration=2.5,
    yaw_rate=45.0,
    robot_name="quadruped0",
).join()

moveByVelocityBodyFrameAsync

Walk relative to the torso orientation with the body-frame helper. This is especially useful when the quadruped is dynamically reorienting while tracking a path.
client.moveByVelocityBodyFrameAsync(
    vx=0.6,   # forward pace in the robot's frame
    vy=0.2,   # sidestep to the right relative to the torso
    vz=0.0,
    duration=3.0,
    yaw_rate=30.0,
    robot_name="quadruped0",
).join()
Use moveByVelocityBodyFrameAsyncV() when you already have a Vector3r velocity vector.