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

## IsaacLocomotion

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

### IsaacLocomotion

```python
IsaacLocomotion(config, clients: Union[dict, None])
```

Initialize an IsaacLocomotion robot instance.

<ResponseField name="Arguments">
  <ParamField query="config (optional, dict)" type="" required>
    defaults to default isaac config.
    Configuration dictionary containing camera and sensor settings. Defaults to default isaac config.
  </ParamField>

  <ParamField query="clients (optional, dict)" type="" required>
    defaults to None.
    Dictionary of ROS clients. Defaults to None.
  </ParamField>
</ResponseField>

<ResponseField name="Returns" />

### moveByVelocity

```python
IsaacLocomotion.moveByVelocity(linear_velocity: Velocity, angular_velocity: Velocity, duration: float | None, name: str)
```

<Warning>
  This command will latch the velocity command to the robot causing it to move with the specified velocity indefinitely. Using
  `duration` will cause this command to block until the motion is complete.
</Warning>

Move the robot by specifying linear and angular velocities.

<ResponseField name="Arguments">
  <ParamField query="linear_velocity (Velocity)" type="" required>
    [Velocity](/robot-api/grid/utils/types#velocity)

    Linear velocity components
  </ParamField>

  <ParamField query="angular_velocity (Velocity)" type="" required>
    [Velocity](/robot-api/grid/utils/types#velocity)

    Angular velocity components
  </ParamField>

  <ParamField query="duration (float), optional" type="">
    Duration of motion in seconds, this will cause this command to block until the motion is complete.
  </ParamField>

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

### getImage *(inherited)*

```python
IsaacLocomotion.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
IsaacLocomotion.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>

### getOrientation *(inherited)*

```python
IsaacLocomotion.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>

### run *(inherited)*

```python
IsaacLocomotion.run()
```

Run all ROS clients
