Skip to main content

Universal MultiLateration Localization System with flexible input/output adapters

Project description

MultiLat Localizer

Universal multilateration localization with pluggable input/output adapters for distance measurements and position output.

Features

  • Inputs: Serial (UWB/RTK-DW1000), MQTT, UDP, File; custom adapters via with_input()
  • Outputs: MAVLink, MAVROS (ROS2), UDP, File, Console; multiple outputs at once, custom adapterd via 'with_output()'
  • Calibration: None, Linear, Quadratic, Cubic;
  • GPS: ENU → GPS via pymap3d; frequency throttling; message type (GPS / Position / Both)
  • Config: Python API or YAML config file; CLI: multilat_solver --config config.yaml

Installation

pip install multilat_solver

Optional: pip install multilat_solver[mqtt] (MQTT), multilat_solver[ros2] (ROS2), .[dev] (development).

Run from YAML config

multilat_solver --config config.yaml
multilat_solver --config config.yaml --logs /path/to/logs

Config specifies anchors, origin, input/output adapters, optional logging.dir / logging.level, and optional structured telemetry at logging.telemetry. Default log directory: ~/.multilat_solver/logs. Example: config_examples/example_cli.yaml. See Quick Start.

Telemetry Preview

Set logging.telemetry.enabled: true to write structured JSONL under <logging.dir>/telemetry/<session_id>/events.jsonl. Open that file in the Svelte preview app:

cd frontend
npm install
npm run dev

Documentation

Adapters

Input Description
Serial Binary protocol (UWB/RTK-DW1000)
MQTT JSON over MQTT [mqtt]
UDP JSON over UDP
File JSON file polling
Output Description
MAVLink ArduPilot/PX4
MAVROS ROS2 topics [ros2]
UDP JSON over UDP
File JSONL file
Console Human or JSON

Examples

  • examples/send_data.py + examples/for_docs.py — UDP distance simulator + localizer (run send_data first, then for_docs); see Quick Start
  • examples/basic_usage.py — Serial in, console/file/MAVLink out
  • examples/multi_output.py — Multiple outputs
  • examples/mavlink_input_with_sim.py — MAVLink distances in + simulator
  • examples/uavcan_input_mavlink_output.py — Custom UAVCAN input → MAVLink out

Development

git clone https://github.com/Innopolis-UAV-Team/multilat_solver
cd multilat_solver
pip install -e ".[dev]"
pytest

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

multilat_solver-2.1.0.tar.gz (90.4 kB view details)

Uploaded Source

Built Distribution

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

multilat_solver-2.1.0-py3-none-any.whl (44.5 kB view details)

Uploaded Python 3

File details

Details for the file multilat_solver-2.1.0.tar.gz.

File metadata

  • Download URL: multilat_solver-2.1.0.tar.gz
  • Upload date:
  • Size: 90.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for multilat_solver-2.1.0.tar.gz
Algorithm Hash digest
SHA256 a96c738a734c35f1a77c5bf15ea7a0f648cadfd481497c84933238d9c10c6910
MD5 83615002302e366504b6a1cb510ef3ac
BLAKE2b-256 e6a4ed825be22842bfeefd93ef174ec0ae5c12acfe28ebcf4d166196eda40a1e

See more details on using hashes here.

File details

Details for the file multilat_solver-2.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for multilat_solver-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 09c14b7e28cad4deb463e7bca25497e4af3878ca5fb827fc095ecf2f95908a0e
MD5 3c96f9bb0f64f847609ec653ebe0d411
BLAKE2b-256 42e1d7a4ac2d199bd6682e4623a7c96eb647c51e6e6b624e8b6f88ecc0976970

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