> ## Documentation Index
> Fetch the complete documentation index at: https://scaledfoundations-rebrand.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Isaac Humanoid

## IsaacHumanoid

Inherits from: [RosAgent](/robot-api/grid/comm/ros/agent#rosagent)

A ROS-based humanoid robot interface for Isaac Sim.

This class provides an interface to control a humanoid robot in Isaac Sim through ROS.
It supports both locomotion and arm control modes.

### IsaacHumanoid

```python
IsaacHumanoid(config, control: str)
```

Initialize an IsaacHumanoid robot instance.

This initializes either a locomotion-controlled or arm-controlled humanoid robot.
For arm control, it sets up left and right arms with appropriate ROS topics.
For locomotion control, it initializes a single locomotion controller.

<ResponseField name="Arguments">
  <ParamField query="config (dict), optional" type="">
    Configuration dictionary containing ROS topics and settings.
    Defaults to default\_isaac\_config.
  </ParamField>

  <ParamField query="control (str), optional" type="">
    Control mode - either "locomotion" or "arm".
    Defaults to "locomotion".
  </ParamField>
</ResponseField>

<Note>
  To use actuate this class please use the `IsaacHumanoid.locomotion` or `IsaacHumanoid.larm` and `IsaacHumanoid.rarm` attributes. See [IsaacLocomotion](/robot-api/grid/robot/locomotion/isaac_locomotion) and [IsaacArm](/robot-api/grid/robot/arm/isaac_arm) for more information.
</Note>

<Warning>
  For arm control you will need to specify the arm you want to use. For example:

  ```python
  humanoid = IsaacHumanoid(config, control="arm")
  humanoid.larm.getPosition() # Get the position of the left arm
  humanoid.rarm.getPosition() # Get the position of the right arm

  humanoid.larm.moveToDeltaPose(Position(0, 0, .1), Orientation(0, 0, 0, 1))
  humanoid.rarm.moveToDeltaPose(Position(0, 0, .1), Orientation(0, 0, 0, 1))
  ```
</Warning>

### getImage *(inherited)*

```python
IsaacHumanoid.getImage(name: str, image_type: str)
```

Get image from named image client.

<ResponseField name="Arguments">
  <ParamField query="name (str), optional" type="">
    Name of image client
  </ParamField>

  <ParamField query="image_type (str), optional" type="">
    Unused
  </ParamField>
</ResponseField>

<ResponseField name="Returns">
  [Image](/robot-api/grid/utils/types#image)

  Image object
</ResponseField>

### getPosition *(inherited)*

```python
IsaacHumanoid.getPosition(name: str)
```

Get position from named pose client.

<ResponseField name="Arguments">
  <ParamField query="name (str), optional" type="">
    Name of pose client
  </ParamField>
</ResponseField>

<ResponseField name="Returns">
  Position | list: Position object or raw position data
</ResponseField>

<Warning>
  This is only applicable to the locomotion controller.
</Warning>

### getOrientation *(inherited)*

```python
IsaacHumanoid.getOrientation(name: str)
```

Get orientation from named pose client.

<ResponseField name="Arguments">
  <ParamField query="name (str), optional" type="">
    Name of pose client
  </ParamField>
</ResponseField>

<ResponseField name="Returns">
  [Orientation](/robot-api/grid/utils/types#orientation)

  Orientation of agent as a quaternion
</ResponseField>

<Warning>
  This is only applicable to the locomotion controller.
</Warning>

### run *(inherited)*

```python
IsaacHumanoid.run()
```

Run all ROS clients
