Multilateration 3D Positioning
3D multilateration and localization algorithms with Python implementation and Blender-based simulation; feeds into Baretag device positioning.
View on GitHub →Overview
Python library to estimate 3D tag position from anchor positions and distances: trilateration (3 coplanar anchors), multilateration (4+ anchors, least-squares or closed-form), and brute-force optimization. Blender script exports scene data to CSV; demos read CSV and run solvers.
Description
multilat_lib.py Core solvers.
trilateration(anchors, distances) uses three anchors (same Z unless ignore=True): builds a triangle, computes volume via a Cayley–Menger–style determinant, then tag height and position from the plane normal. multilateration_minimum_squared does Larsson-style linear least squares; multilateration_closed_form solves exactly for 4 anchors. brute_force minimizes squared distance error (optionally fixing x,y and solving for z). geo_to_local_xyz / local_to_geo convert between lat/lon/alt and local ENU (meters).trilateration.py Demo that reads
tag_data.csv, builds anchor positions and distances to the tag (Sphere), calls trilateration(), and prints estimated vs actual position and error in Z.tag_response.py and demos
tag_response.py is a Blender script (bpy): it reads Sphere and Cube objects, computes Euclidean distances from the sphere to each cube, and writes a CSV (Point, X, Y, Z, Distance to Sphere) for use by the Python solvers. Other scripts (real_geodata.py, multilateration.py) use the same library and CSV/geodetic conventions for real-world or multi-anchor demos.Demo
No live demo available for this project. See the repo for setup and run instructions.
Tech & tools
- Python
- Blender
- 3D localization
- Multilateration
Highlights
- 3D multilateration/localization algorithm implementation
- Blender-based simulation and visualization pipeline
- Validation and accuracy analysis for positioning
- Integration path with Baretag for real-world deployment
More projects
WorldWide Rover
HackUMass XII — Best Embedded System. Autonomous, globally accessible rover: web interface for real-time control, maze navigation, obstacle avoidance. Python/Flask backend, Raspberry Pi, Arduino, React, ngrok.
Buffet
Trading AI: paper and live trading on Alpaca, strategy optimization, signal processing, and Qiskit-based quantum optimization. Python, TensorFlow, Alpaca API.
Pong on Assembly
Interactive Pong on FPGA (Duke ECE 550). Hardware VGA/PS2 implementation plus full assembly version (pong.s) for custom 32-bit processor ISA.
Custom Single-Cycle 32-Bit Processor
Custom ISA and single-cycle datapath in Verilog; synthesis-ready design used as the execution target for Pong assembly (Pong-on-Assembly repo).
Baretag iOS App
iOS app (Swift) for real-time device tracking and management; Flask/Ngrok backend and 3D localization validated in Blender.
RISC-V Encryption
Low-level encryption on RISC-V: assembly and C implementations for algorithms and analysis on a RISC-V toolchain.
PUF Tester
Hardware tooling for testing and characterizing Physically Unclonable Functions (PUFs); supports security and fingerprinting use cases.
tinyTemp
Temperature display on ATtiny85: reads sensor via ADC and shows °F and °C on SSD1306 OLED (ECE 304, Spring 2024).
WorldWide Rover
HackUMass XII — Best Embedded System. Autonomous, globally accessible rover: web interface for real-time control, maze navigation, obstacle avoidance. Python/Flask backend, Raspberry Pi, Arduino, React, ngrok.
Buffet
Trading AI: paper and live trading on Alpaca, strategy optimization, signal processing, and Qiskit-based quantum optimization. Python, TensorFlow, Alpaca API.