This week, I made progress on both the UWB and the occupancy portions of this project.
For the UWB localization, I received the DWM1001 dev boards, which I successfully set to collect distance metrics from each other, capable of being accessed within a Python program. Since I didn’t want to order all 4 components before testing a pair first, the other UWB anchors are on the way. But the process to set them up should be identical, so I don’t anticipate any roadblocks with this.
Once I have all the distances from the anchors I can get the tag’s coordinates using triangulation.
I also began working on the UI for both calibrating the anchors, as well as setting the target destination. Calibration is done using reverse triangulation:
.
Setting the target destination is as simple as dropping a pin on the map:
I also helped with the data processing for the occupancy matrix. Once the map is converted to a pixelated grid, I wanted to add a buffer space around the obstacles. To do this, I implemented a downsizing function which uses higher overlap to achieve a halo effect around each obstacle. The red pixels highlight the difference:
I think our project is more on track now, as the individual components are working as expected. Next week, we will have interim demos. I plan on beginning integration. If the remaining UWB anchors arrive, I hope to complete the entire localization pipeline.