Skip to main content

WebSocket drone client for AeroSim

Project description

aerosim_drone

Simple WebSocket client for AeroSim Drone.

Installation

pip install aerosim_drone

Usage

from aerosim_drone import Drone

drone = Drone()
drone.connect()
drone.arm()

Drone Class Methods

Models

Drone Class Methods


arm

Arms the drone
:return: None

Example

from aerosim_drone import Drone

drone = Drone()
drone.arm()

connect

No description provided.

Example

from aerosim_drone import Drone

drone = Drone()
drone.connect()

Disconnect

No description provided.

Example

from aerosim_drone import Drone

drone = Drone()
drone.disconnect()

get_detections

Get current detections

Detections
└── detections: List[GateDetection]
    ├── index: int
    ├── distance: float
    ├── gate: Gate
    │   ├── type: GateType
    │   │   ├── Square (0)
    │   │   ├── Cone (1)
    │   │   ├── EmptySquare (2)
    │   │   └── Arc (3)
    │   └── color: GateColor
    │       ├── Red (0)
    │       └── Green (1)
    └── position: Position
        ├── x: float
        ├── y: float
        └── z: float

Returns: Detections

Example

from aerosim_drone import Drone

drone = Drone()
drone.Connect()
drone.Arm()
detections = drone.get_detections()

get_telemetry

Get current telemetry

Telemetry
├── connected: bool
├── armed: bool
├── mode: FlightMode
│   ├── StabilizedManual (0)
│   ├── Acro (1)
│   ├── Rattitude (2)
│   ├── Altctl (3)
│   ├── Posctl (4)
│   ├── Offboard (5)
│   ├── AutoMission (6)
│   ├── AutoRtl (7)
│   └── AutoLand (8)
├── x: float
├── y: float
├── z: float
├── lat: float
├── lon: float
├── alt: float
├── vx: float
├── vy: float
├── vz: float
├── roll: float
├── pitch: float
├── yaw: float
├── roll_rate: float
├── pitch_rate: float
├── yaw_rate: float
├── voltage: float
└── cell_voltage: float

Returns: Telemetry

Example

from aerosim_drone import Drone

drone = Drone()
drone.Connect()
drone.Arm()
telemetry = drone.get_telemetry()

land

Lands the drone
:return: None

Example

from aerosim_drone import Drone

drone = Drone()
drone.land()

navigate

Fly to the designated point in a straight line.

:param x: Coordinate x
:param y: Coordinate y
:param z:Coordinate z
:param speed: Flight speed (setpoint speed) (m/s)
:param auto_arm: Switch the drone to OFFBOARD and arm automatically (the drone will take off)
:return: None

Parameters

Name Type Default
x float ``
y float ``
z float ``
speed float ``
auto_arm bool False

Example

from aerosim_drone import Drone

drone = Drone()
drone.navigate(x, y, z, speed, auto_arm)

set_yaw

Change the desired yaw angle (and its coordinate system), keeping the previous command in effect.

:param yaw: Yaw angle (radians)
:return: None

Parameters

Name Type Default
yaw float ``

Example

from aerosim_drone import Drone

drone = Drone()
drone.set_yaw(yaw)

take_off

Take off drone
:param y: Coordinate y
:return: None

Parameters

Name Type Default
y float ``

Example

from aerosim_drone import Drone

drone = Drone()
drone.take_off(z=1.0)

Models


Telemetry

Telemetry
├── connected: bool
├── armed: bool
├── mode: FlightMode
│   ├── StabilizedManual (0)
│   ├── Acro (1)
│   ├── Rattitude (2)
│   ├── Altctl (3)
│   ├── Posctl (4)
│   ├── Offboard (5)
│   ├── AutoMission (6)
│   ├── AutoRtl (7)
│   └── AutoLand (8)
├── x: float
├── y: float
├── z: float
├── lat: float
├── lon: float
├── alt: float
├── vx: float
├── vy: float
├── vz: float
├── roll: float
├── pitch: float
├── yaw: float
├── roll_rate: float
├── pitch_rate: float
├── yaw_rate: float
├── voltage: float
└── cell_voltage: float

The Telemetry class is a data model designed to store and manage drone state information within the aerosim_drone library.

Data Attributes

System Info

  • connected (bool): True if linked to the flight controller.
  • armed (bool): True if motors are active/armed.
  • mode (FlightMode): The current flight mode enum member.

Spatial Position & Velocity

  • x, y, z (float): Local coordinates (m).
  • lat, lon (float): Global WGS84 coordinates (deg).
  • alt (float): Altitude (m).
  • vx, vy, vz (float): Linear velocity (m/s).

Orientation & Dynamics

  • roll, pitch, yaw (float): Orientation in Radians.
  • roll_rate, pitch_rate, yaw_rate (float): Angular velocity in Rad/s.

Power Systems

  • voltage (float): Main battery voltage (V).
  • cell_voltage (float): Average per-cell voltage (V).

FlightMode (Enum)

Defines the operational modes of the flight controller:

Value Name Description
0 StabilizedManual Manual control with self-leveling.
1 Acro Rate control (no auto-level).
2 Rattitude Combined rate/attitude control.
3 Altctl Altitude hold mode.
4 Posctl Position hold mode (GPS dependent).
5 Offboard External API/Companion computer control.
6 AutoMission Automatic waypoint navigation.
7 AutoRtl Return to Launch.
8 AutoLand Automated landing.

Detections

Detections
└── detections: List[GateDetection]
    ├── index: int
    ├── distance: float
    ├── gate: Gate
    │   ├── type: GateType
    │   │   ├── Square (0)
    │   │   ├── Cone (1)
    │   │   ├── EmptySquare (2)
    │   │   └── Arc (3)
    │   └── color: GateColor
    │       ├── Red (0)
    │       └── Green (1)
    └── position: Position
        ├── x: float
        ├── y: float
        └── z: float

This module defines the data structures for gate detection within the aerosim_drone simulation environment. It handles spatial data, gate classification, and collection of active detections.

Enumerations

GateType

Defines the physical shape of the detected gate.

  • Square (0): Standard square racing gate.
  • Cone (1): Obstacle or marker cone.
  • EmptySquare (2): Hollow square frame.
  • Arc (3): Curved/Arc-shaped gate.

GateColor

Defines the visual color of the gate.

  • Red (0): Red colored gate.
  • Green (1): Green colored gate.

Supporting Classes

Position

Represents a 3D coordinate in the world frame.

  • Attributes: x, y, z (float, meters).

Gate

Describes the static physical properties of a gate.

  • Attributes: type (GateType), color (GateColor).

GateDetection

Represents a specific detection instance in the current frame.

  • Attributes:
    • gate (Gate): The physical description.
    • distance (float): Distance from the drone to the gate (m).
    • position (Position): 3D center coordinates.
    • index (int): Gate index relative to the track order.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aerosim_drone-0.1.12.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aerosim_drone-0.1.12-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

Details for the file aerosim_drone-0.1.12.tar.gz.

File metadata

  • Download URL: aerosim_drone-0.1.12.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for aerosim_drone-0.1.12.tar.gz
Algorithm Hash digest
SHA256 c77957ca524daabae1eedb3a4059a8e55811109a8f486c06c1107329f1790f5b
MD5 f93c832be3f81b59011041da6a26bbfd
BLAKE2b-256 bafba3b686db2bd5a9c7560434b9fb756a80060556a809d9c554cd34154f00b8

See more details on using hashes here.

File details

Details for the file aerosim_drone-0.1.12-py3-none-any.whl.

File metadata

  • Download URL: aerosim_drone-0.1.12-py3-none-any.whl
  • Upload date:
  • Size: 20.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for aerosim_drone-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 b7366d1afdccc58e7e4b303be4b48f2f656f16ecd5393cd062b9e5c5d0cd639f
MD5 fa6bf28aed82666178fbea099a8c6288
BLAKE2b-256 59970c7fd2c032d35899e70a9146dec48792678e6ca5188870c43f0c50737e8f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page