> ## 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.

# IsaacHumanoid

## IsaacHumanoid

Inherits from: [`ZenohAgent`](/robot-api/reference/sim/zenoh/agent/ZenohAgent)

Isaac Sim humanoid implementation backed by Zenoh.

This class provides an interface to control a humanoid robot in Isaac Sim
through Zenoh clients for locomotion and arm control.

### Inherited methods

* From [`ZenohAgent`](/robot-api/reference/sim/zenoh/agent/ZenohAgent): `create_clients`, `getForce`, `getTorque`, `getImage`, `getPosition`, `getOrientation`, `sendVelocity`, `sendPose`, `publishMsg`, `getMsg`, `getJointAngles`, `setJointAngles`, `getJointVelocities`, `getJointStates`, `getObjectPose`, `setObjectPose`, `run`, `prompt`, `reset`
* From [`Robot`](/robot-api/reference/base/robot/robot/Robot): `addSensor`, `cleanup`

### **init**

```python theme={null}
IsaacHumanoid.__init__(config = default_isaac_config, control: str = 'both')
```

Initialize an IsaacHumanoid robot instance.

This configures locomotion control, arm control, or both based on the
selected control mode, and sets up the required Zenoh topics.

<ResponseField name="Arguments">
  <ParamField query="config (dict)" type="dict">
    Configuration dictionary containing Zenoh topics and settings. (default: default\_isaac\_config)
  </ParamField>

  <ParamField query="control (str)" type="str">
    Control mode ("locomotion", "arm", or "both"). (default: "both")
  </ParamField>
</ResponseField>

### moveByVelocity

```python theme={null}
IsaacHumanoid.moveByVelocity(linear_velocity: Velocity, angular_velocity: Velocity, frame: str = 'body', name: str = 'cmd_vel')
```

Move the robot by specifying linear and angular velocities.

Due to the nature of Isaac Sim, the robot will move in the direction/rotation
of the velocity vectors, but exact movement may vary. Use odometry feedback
with getPosition and/or getOrientation when you need precise distance or
angle control.

<ResponseField name="Arguments">
  <ParamField query="linear_velocity (Velocity)" type="Velocity" required>
    Linear velocity components.
  </ParamField>

  <ParamField query="angular_velocity (Velocity)" type="Velocity" required>
    Angular velocity components.
  </ParamField>

  <ParamField query="frame (str)" type="str">
    Reference frame for the velocity command. (default: "body")
  </ParamField>

  <ParamField query="name (str)" type="str">
    Name of velocity command. (default: "cmd\_vel")
  </ParamField>
</ResponseField>

### stop

```python theme={null}
IsaacHumanoid.stop(name: str = 'cmd_vel')
```

Stop the robot.

<ResponseField name="Arguments">
  <ParamField query="name (str)" type="str">
    Name of velocity command. (default: "cmd\_vel")
  </ParamField>
</ResponseField>

### getState

```python theme={null}
IsaacHumanoid.getState() -> dict
```

Get the current state of the humanoid.

<ResponseField name="Returns">
  <ResponseField name="dict" type="dict">
    Current state including base pose and arm states.
  </ResponseField>
</ResponseField>
