"Affordable" indoor positioning using ESP32 UWB modules

I think it is safe to say that every robot builder wants the robot to know where it is and where it is headed, without human input. Companies like Pozyx offer systems to do this, which work well and are Arduino-compatible, but are prohibitively expensive for hobbyists.

Several years ago, Decawave announced inexpensive ($20), ultra wide band 3-6 GHz transceiver modules capable of indoor ranging with +/- 10 cm accuracy. Although a DW1000 Arduino library has been developed, to date, I’ve seen only one ranging example suitable for hobby applications, and none that are capable of true indoor localization, i.e. accurately and unambiguously determining the (x, y) or (x, y, z) position of a tag.

Recently, Makerfabs began offering a small ESP32 bluetooth/WiFi development board with a clone or close relative of the DW1000 module: https://www.makerfabs.com/esp32-uwb-ultra-wideband.html

Four of these form the minimum setup required to do true 2D indoor localization on the scale of a large room (five or more are better: four anchors and a tag can accurately report a robot’s position in 2D or 3D). So, a few weeks ago, I sent off for five ESP32 UWB modules. I am delighted with their build quality and ease of use.

I’ve done the work required to demonstrate a complete system for indoor localization and tracking. I demonstrate that it is capable of localizing a tag to +/- 10 cm accuracy, anywhere in a large (say, 10m x 10m) room and possibly quite a bit larger.

I don’t have a video demonstrating the operation, but all the important details, including source code, test code and test results are posted on my Github site: https://github.com/jremington/UWB-Indoo … on_Arduino

There is plenty of work to do, so I look forward to seeing efforts to repeat the work and welcome comments and suggestions. I would also welcome efforts to advance the technology from the application code perspective.

This is awesome! Thanks for sharing

I will be using this personally :slight_smile: