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.
Version: 1.0.0
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
- Calibration: None, Linear, Quadratic, Cubic
- GPS: ENU → GPS via pymap3d; frequency throttling; message type (GPS / Position / Both)
- Config: Python API only (no config files)
Installation
pip install multilat-localizer
Optional: pip install multilat-localizer[mqtt] (MQTT), multilat-localizer[ros2] (ROS2), .[dev] (development).
Quick Start
from multilat_solver import ConfigBuilder, MultiLatLocalizerApp, CalibrationType
from multilat_solver.common_types import MessageType
from multilat_solver.output_adapters import ConsoleOutputAdapter
import logging
logging.basicConfig(level=logging.INFO, format="%(levelname)s %(name)s: %(message)s")
config = (ConfigBuilder()
.with_localization(
anchor_positions={1: (0, 0, 0), 2: (3, 0, 0), 3: (0, 3, 0)},
calibration_type=CalibrationType.LINEAR,
calibration_params=[1.0, 0.0],
)
.with_serial_input(port="/dev/ttyUSB0", baud=460800)
.with_output("console", ConsoleOutputAdapter(format="human", message_type=MessageType.BOTH, frequency=10))
.build())
app = MultiLatLocalizerApp(config)
app.run()
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/basic_usage.py— Serial in, console/file/MAVLink outexamples/multi_output.py— Multiple outputsexamples/mavlink_input_with_sim.py— MAVLink distances in + simulatorexamples/uavcan_input_mavlink_output.py— Custom UAVCAN input → MAVLink out
Development
git clone https://github.com/Innopolis-UAV-Team/multilat_solver
cd multilat_localizer
pip install -e ".[dev]"
pytest
Layout: src/multilat_solver/ — core.py, config.py, app.py, input_adapters.py, output_adapters.py, common_types.py.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file multilat_localizer-0.1.0.tar.gz.
File metadata
- Download URL: multilat_localizer-0.1.0.tar.gz
- Upload date:
- Size: 33.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26e41deb0107923ceaf0fb987bb352b5abffa37788ae7b834d635fd5c1323aec
|
|
| MD5 |
b8ed4a134fa841a8c6694f2f7ab1f7f7
|
|
| BLAKE2b-256 |
5901717eba5a16b10c9e275e594f610fd80043d45ea9062a3db01e6d25f71988
|
File details
Details for the file multilat_localizer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: multilat_localizer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 31.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3813511db987ff43f18a585d390ebc1ed4419aa859b94207df05983c5455d116
|
|
| MD5 |
ba1f05860e68a9ef3f5cca4fbc6cd78c
|
|
| BLAKE2b-256 |
35ff4c38750a318707bbf2890ddbc181485a8ffbbc10519bbe5524aca583c808
|