← Back to Projects

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

Python library and Blender pipeline for 3D localization: estimate a tag’s position from known anchor positions and measured distances. Supports trilateration (3 coplanar anchors), multilateration (4+ anchors via least-squares or closed-form), and brute-force optimization. Blender scripts export scene data to CSV; demos read CSV and run the solvers; results feed into the Baretag positioning pipeline. Demonstrates numerical geometry (Cayley–Menger, least-squares), Python scientific stack, and Blender scripting for validation.

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.