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

# IsaacLocomotion

## IsaacLocomotion

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

Isaac Sim locomotion implementation backed by Zenoh.

This class provides a minimal base locomotion interface using Zenoh
velocity commands for Isaac Sim robots.

### 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}
IsaacLocomotion.__init__(config = default_isaac_config, clients: Union[dict, None] = None)
```

Initialize an Isaac Sim locomotion interface.

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

  <ParamField query="clients (Union[dict, None])" type="Union[dict, None]">
    Pre-created Zenoh clients to reuse instead of creating new ones. (default: None)
  </ParamField>
</ResponseField>

### moveByVelocity

```python theme={null}
IsaacLocomotion.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}
IsaacLocomotion.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}
IsaacLocomotion.getState()
```

Get the current state of the robot.

<ResponseField name="Returns">
  <ResponseField name="dict" type="">
    A dictionary containing the position and orientation of the robot.
  </ResponseField>
</ResponseField>
