Skip to content

Config Models

config

Centralized configuration for drone_api.

Default SDK settings are loaded from package-shipped JSON files in pypack/config/. User-supplied config values are merged over those defaults, but only for fields that were explicitly provided.

DroneConfig

Bases: ConfigModel

Root configuration containing all config sections.

network class-attribute instance-attribute

network: NetworkConfig = Field(default_factory=NetworkConfig)

protocol class-attribute instance-attribute

protocol: ProtocolConfig = Field(default_factory=ProtocolConfig)

physics class-attribute instance-attribute

physics: DronePhysicsConfig = Field(default_factory=DronePhysicsConfig)

flight class-attribute instance-attribute

flight: FlightConfig = Field(default_factory=FlightConfig)

maze class-attribute instance-attribute

maze: MazePhysicsConfig = Field(default_factory=MazePhysicsConfig)

controller class-attribute instance-attribute

controller: ControllerConfig = Field(default_factory=ControllerConfig)

video class-attribute instance-attribute

video: VideoConfig = Field(default_factory=VideoConfig)

timeouts class-attribute instance-attribute

timeouts: TimeoutConfig = Field(default_factory=TimeoutConfig)

battery class-attribute instance-attribute

battery: BatteryConfig = Field(default_factory=BatteryConfig)

media class-attribute instance-attribute

media: MediaConfig = Field(default_factory=MediaConfig)

NetworkConfig

Bases: ConfigModel

Network connection settings.

drone_ip class-attribute instance-attribute

drone_ip: str = '192.168.100.1'

tcp_port class-attribute instance-attribute

tcp_port: int = 8888

udp_command_port class-attribute instance-attribute

udp_command_port: int = 8085

udp_status_port class-attribute instance-attribute

udp_status_port: int = 8668

udp_optitrack_port class-attribute instance-attribute

udp_optitrack_port: int = 8688

rtp_base_port class-attribute instance-attribute

rtp_base_port: int = 9000

web_port class-attribute instance-attribute

web_port: int = 5000

http_port class-attribute instance-attribute

http_port: int = 12346

ProtocolConfig

Bases: ConfigModel

MAVLink protocol settings.

command_protocol class-attribute instance-attribute

command_protocol: str = 'tcp'

serial_baudrate class-attribute instance-attribute

serial_baudrate: int = 921600
mavlink_system_id: int = 1
mavlink_component_id: int = 2
mavlink_component_file_id: int = 1

DronePhysicsConfig

Bases: ConfigModel

Drone physical dimensions (F09-lite: 189.3 x 184.6 x 51.4 mm).

drone_width_cm class-attribute instance-attribute

drone_width_cm: float = 18.93

drone_depth_cm class-attribute instance-attribute

drone_depth_cm: float = 18.46

min_altitude_cm class-attribute instance-attribute

min_altitude_cm: float = 30.0

max_altitude_cm class-attribute instance-attribute

max_altitude_cm: float = 200.0

FlightConfig

Bases: ConfigModel

Default flight parameters.

default_takeoff_height_cm class-attribute instance-attribute

default_takeoff_height_cm: int = 80

default_flight_height_cm class-attribute instance-attribute

default_flight_height_cm: int = 100

default_speed_cms class-attribute instance-attribute

default_speed_cms: int = 100

position_tolerance_cm class-attribute instance-attribute

position_tolerance_cm: float = 5.0

yaw_tolerance_deg class-attribute instance-attribute

yaw_tolerance_deg: float = 3.0

ControllerConfig

Bases: ConfigModel

PD flight controller gains and limits.

kp_xy class-attribute instance-attribute

kp_xy: float = 2.0

kd_xy class-attribute instance-attribute

kd_xy: float = 0.5

kp_z class-attribute instance-attribute

kp_z: float = 3.0

kd_z class-attribute instance-attribute

kd_z: float = 0.8

kp_yaw class-attribute instance-attribute

kp_yaw: float = 5.0

kd_yaw class-attribute instance-attribute

kd_yaw: float = 1.0

max_horizontal_output class-attribute instance-attribute

max_horizontal_output: float = 800

max_vertical_output class-attribute instance-attribute

max_vertical_output: float = 600

max_yaw_output class-attribute instance-attribute

max_yaw_output: float = 500

control_rate_hz class-attribute instance-attribute

control_rate_hz: float = 20.0

VideoConfig

Bases: ConfigModel

Video streaming configuration.

timeout_sec class-attribute instance-attribute

timeout_sec: float = 30.0

buffer_size class-attribute instance-attribute

buffer_size: int = 10

jpeg_quality class-attribute instance-attribute

jpeg_quality: int = 80

max_fps class-attribute instance-attribute

max_fps: float = 30.0

detection_confidence class-attribute instance-attribute

detection_confidence: float = 0.5

nms_iou_threshold class-attribute instance-attribute

nms_iou_threshold: float = 0.45

TimeoutConfig

Bases: ConfigModel

Timeout values for various operations.

command_timeout_sec class-attribute instance-attribute

command_timeout_sec: float = 4.0

tcp_connect_timeout_sec class-attribute instance-attribute

tcp_connect_timeout_sec: float = 5.0

tcp_recv_timeout_sec class-attribute instance-attribute

tcp_recv_timeout_sec: float = 1.0

udp_timeout_sec class-attribute instance-attribute

udp_timeout_sec: float = 1.0

fly_to_timeout_sec class-attribute instance-attribute

fly_to_timeout_sec: float = 30.0

BatteryConfig

Bases: ConfigModel

Battery level thresholds.

warning_threshold class-attribute instance-attribute

warning_threshold: int = 15

critical_threshold class-attribute instance-attribute

critical_threshold: int = 10

min_operational_threshold class-attribute instance-attribute

min_operational_threshold: int = 20

MediaConfig

Bases: ConfigModel

Default local storage paths for downloaded media.

base_dir class-attribute instance-attribute

base_dir: Path | str = Path('media')

photo_dir class-attribute instance-attribute

photo_dir: Path | str | None = None

video_dir class-attribute instance-attribute

video_dir: Path | str | None = None

log_dir class-attribute instance-attribute

log_dir: Path | str | None = None