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

# AerialDrone

## AerialDrone

Inherits from: [`Robot`](/robot-api/reference/base/robot/robot/Robot)

Abstract base class defining the interface for aerial drone robots.

This class extends the base Robot class with additional methods specific to
aerial robot tasks and control.

### Inherited methods

* From [`Robot`](/robot-api/reference/base/robot/robot/Robot): `addSensor`, `getImage`, `getState`, `getPosition`, `getOrientation`, `moveByVelocity`, `stop`, `cleanup`

### **init**

```python theme={null}
AerialDrone.__init__(server_port: int = 4774, enable_websocket: bool = True, client_timeout: float = 30.0) -> None
```

Initialize aerial drone robot.

<ResponseField name="Arguments">
  <ParamField query="server_port (int)" type="int">
    Port for WebSocket server (default 4774)
  </ParamField>

  <ParamField query="enable_websocket (bool)" type="bool">
    Whether to start the WebSocket server (default True)
  </ParamField>

  <ParamField query="client_timeout (float)" type="float">
    Client timeout in seconds (default 30.0)
  </ParamField>
</ResponseField>

<ResponseField name="Returns">
  <ResponseField name="returns" type="None" />
</ResponseField>

### takeoff

```python theme={null}
AerialDrone.takeoff() -> None
```

Command the drone to takeoff.

Initiates takeoff sequence and transitions the drone to hover mode
at a safe altitude.

<ResponseField name="Returns">
  <ResponseField name="returns" type="None" />
</ResponseField>

<ResponseField name="Raises">
  <ParamField query="NotImplementedError" type="">
    Must be implemented by subclasses
  </ParamField>
</ResponseField>

### land

```python theme={null}
AerialDrone.land() -> None
```

Command the drone to land.

Initiates controlled landing sequence and safely lands the drone
at the current position.

<ResponseField name="Returns">
  <ResponseField name="returns" type="None" />
</ResponseField>

<ResponseField name="Raises">
  <ParamField query="NotImplementedError" type="">
    Must be implemented by subclasses
  </ParamField>
</ResponseField>
