Ifeanyi’s Status Report for 02/24/2024

After the team picked up our UWB boards for localization, we needed to set them up and program them. This week, I read the full documentation of both the boards themselves as well as the kit they came in. I downloaded and installed the many softwares required to program the boards, and since the kit sellers flashed a starter code on the chips, I had to reflash the chip to remove them. Then I setup the special IDE used to program the chips, and wrote my first starter program, that simply prints a “Hello, World!” message from the boards to my Mac Terminal over UART. I also researched a self-localization technique that involves using 4 or more anchors to calculate a scale-accurate point cloud of all anchor positions relative to each other.

I am personally on-schedule, as at this time, I am supposed to be setting up the hardware for my part of the project (developing the anchors). Since the hardware is acquired and everything to do with the coding environment is now set up, I can begin that development immediately.

In the next week, I hope to complete the self-localization routine, by solving a simultaneous equation for all anchor positions. This means that when mapping, all we have to do is align this 3d anchor point cloud with the real building layout by standing at a few sample positions (I think 2 is all that is required) and marking them on the building map.

Team Status Report for 02/24/2024

Significant Risks

This week we found we were able to successfully program the DWM1001 development boards as well as measure distances between them.

There is a risk in the fact that there could be difficulties in setting up an ultrawideband network of DWM1001 boards communicating amongst each other. We need to ensure we can create this network of devices, as well as find the limit (if there is one) to the number of devices the tag can communicate with at any given time. We would like to have these figured out next week so we know the limits of the devices relatively early on into the development cycle. If it turns out that there is a limit to the number of devices communicating, our contingencies consist of opting towards utilizing multiple UWB channels for our communication networks.

We also need to make sure that the DWM1001 boards can be connected to the internet so we can communicate data to the user. To do this, we need to make sure to set up a Gateway using a RPi. If there are issues in getting the RPi to interface with the DWM1001, we can try to use a ESP32 UWB as our gateway instead.

Changes to System Design

Because our initial progress with the development of both the web application and the DWM1001-Dev boards seemed to be overall positive, we did not make any changes to the design of the system.

Schedule

We made some slight changes to our schedule to accurately describe our tasks. Some existing tasks were reorganized.

18500 Gantt Chart 2-24

Next week’s goals:

Jeff: Continue development of the web application, making improvements to the building view to add functionality for navigation.

Weelie (also Ifeanyi): Accomplish a full “network test” this week to get unique distances from multiple devices. Is there a limit to how many devices we can talk to?

Ifeanyi (also Weelie): Put in an order form for a RPi. Then see if you can use the RPi to talk to the internet while interfacing with the DWM board. Research a good IMU (or use the one already on the DWM1001 board) to use with the RPI.

Team: work on Design Report.

Web App progress

Jeff’s Status Report for 02/24/2024

What did I do this week?

This week I spent time rehearsing the Design Presentation before delivering it on Monday.

I spent time putting together several of the views of the web application, keeping in mind the need to make it as mobile-friendly as possible.

I set up a Google Maps API key so I could embed a map centered over the CMU campus, as well as working on customizing the map such that it would display fewer types of “default” pins. I followed the best case practice of utilizing a proxy on the webserver to load the map instead of including it on the client javascript to prevent unauthorized access to the API key. A header was also added, using Bootstrap to display a menu.

I worked on two models, a “Location” and a “Floor” to represent pins in the database. I added an API endpoint on the server to fetch the data for the locations, before adding client-side javascript to fetch the data using an AJAX call before creating the HTML necessary for the pins. Overall, the current map page (as viewed on a phone) looks something like this:

I also started working on another view to display the floor of the building. Current functionality allows the user to drag the image around, though I would like the image to sit in its own frame before adding javascript to move it around, and UI elements to allow the user to select a room to go to.

I worked on the Design Review Report, writing drafts of several sections such as the Use Case Requirements and Design Trade Studies.

Is my progress on schedule?

Yes, I was able to all of the Django web application tasks I wanted to accomplish this week, particularly with regards to setting up some of the main frontend pieces we need as, well as developing some models.

Next week’s deliverables:

Next week I will be working with my team to finish the Design Review Report. More research needs to be done for some of the contents, as well as a nontrivial amount of writeup.

For the web application, I hope to work on the display of the buildings. I need to work on the HTML to put the image in its own container with no overflow, along with some javascript to manipulate the position of the image.

Weelie’s Status Report for 2/24/2024

What did I do last week?

Last week I started to work on UWB 1001. First of all, I tested the range of the UWB devices to check if that could fit our MVP requirements and use case requirements. I used two UWB devices that are seperated around 25 meters. And there were also some walls that could mitigate the signal strength. I set one of the devices as the sending and the other device as the receiver. At the last, I found that even with such distance and block, the receiver can still receive the signals from the sender. After that, I programmed the devices to measure the distances between two UWB devices. For the protocol of the two devices, I used RTT to measure and calculate the distances between two devices. And I made a Github Repository to keep all of our codes for UWB.  After uploaded onto the devices, I get that the accuracy of the distance measuring is very high, and is about 10 centimeters differences.

https://github.com/weelieguo/18500-dw1001

My process is on schedule as decribed on the Gantt Chart.

What will I do next week?

Next week, I will work on making the tag devices to be able to receive multiple distances and implement the localization algorithms for the tag devices. Also, since we might acquire a Raspi, I could also implement on the interfacing between UWB devices and Raspi.

Weelie’s Status Report for 2/17/2024

What did I do last week?

Since we decided to use UWB instead of WIFI to calculate distance, I looked more into UWB32 Pro, and how it could combine with IMU to provide more precise localization technique. I looked more into the algorithm for the fusion of UWB and IMU. Here are some of the papers I found:

https://iopscience.iop.org/article/10.1088/1742-6596/2369/1/012092

https://ieeexplore.ieee.org/document/8483323

https://www.mdpi.com/1424-8220/23/13/5918

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10422251/

https://link.springer.com/chapter/10.1007/978-3-031-34776-4_4

I also looked into how to setup UWB devices based on the following tutorial.

My process is good based on the schedule.

What will I do next week?

Since this week we have already acquired the UWB development kit, I will work on setting the UWB devices up and implementing the localization algorithms.

Ifeanyi’s Status Report for 02/17/2024

This week I did extensive research into optical localization algorithms to consider as an alternative to wireless localization methods. I learned about SIFT, SURF, ORB, and Optical Flow as approaches to tracking the position and orientation of a camera in space from its video feed. I was able to put together such a working demo, placing 3 imaginary points in space that stayed in place in the world as the camera moved. Ultimately, we decided to continue on the path of the Wi-Fi and Ultrawideband-based methods, with a possible use of optical methods as a fallback or for sensor fusion.

My progress is currently ahead of schedule, as I will be working on the hardware of the user’s tag device, the major component of which turned out to  be in the department inventory. So that saved a lot of time against ordering it online and having to wait for it.

In the coming week, I plan to setup the hardware for the user tag and learn how to program and interface with the board. This way, when it comes time to implement the signal-based localization algorithms, I will be familiar with both the software and hardware.

Team Status Report for 02/17/2024

The most significant risks that could jeopardize the success of the project are difficulties in programming the DWM1001-DEV boards, as well as UWB being less robust than we initially assumed. The DWM1001 development boards use the nRF52832 microcontroller, and programming it with the functionality that we want might be more difficult due to possible lack of support in areas such as maintaining a larger network of devices or accurately calibrating for antenna delays. If these aspects seem to interfere with our project, we can either work on implementing some of the capabilities ourselves or try pivoting to using a different microcontroller with the DWM1001 boards, such as the ATMega328p, which could have more library support. Additionally, UWB could be less robust than initially assumed, providing less accurate readings indoors. The possible contingencies we are thinking of right now are to add more sensor fusion from IMUs, or in the worst case pivoting towards using a different technology altogether.

 

This week we finished flushing out a design of the system using UWB instead of Wi-Fi, and we were able to create an updated block diagram that more precisely reflects our understanding of the design. 

 

Last week we said that we were going to include a new schedule, and this week we spent some time developing it. 

18500 Gantt Chart 2-17

 

Goals for the next week

Put in order forms for all the all the components we want. 

Run initial testing DWM-1001 MDEK boards. Try to find distance between an anchor and a tag using to way ranging time on arrival (TOA) and make sure that it is accurate.

Continue working on setting up the webapp. 

 

Status Report Prompt: A was written by Ifeanyi, B was written by Jeff, and C was written by Weelie. 

 

Part A: With regards to health, safety and welfare, our project relieves anxiety related to being lost in unknown parts of campus. This anxiety can be especially severe when one is alone, as there would be nobody to ask for directions. And even in the presence of others, finding somebody willing to lead you all the way to a class can be hard, and time consuming, much like the alternative solution of wandering the building until the desired room is found by trial and error. In general, our project greatly aids the mental well-being of students by providing convenient access to anywhere they need to go, as well as saving students from the stress of arriving to events late by saving them time in the room-finding process.

 

Part B: One way our project could affect social factors is to help students navigate campus better, which could bolster or provide an incentive for students to explore campus. Some students may often feel stressed when they are tasked with going to a new building, and this device may alleviate some of the negative feelings those students may have. Our mapping software could help students save time looking for classrooms or offices, making their schedules more efficient. 

Our device could lead to privacy concerns for students, as it would consist of placing a tracking device on every student. A bad actor would be able to see the locations of students using the device. It would be important to avoid this from occurring by placing safeguards so that the privacy rights of students are respected. The device could also create dependency of students on the navigational technologies, hindering their abilities to navigate among rooms on campus without it. 

 

Part C: We use 12 different UWB devices for anchors, IMU and esp32 for the tag. The tag itself is not expensive, which may only take 15 dollars. However, combining with UWB devices, since each floor probably needs 12 UWB devices, for a whole building, this could be pretty expensive. For a 3 floor building, the total cost could be over 1,000 dollars. For individual users, the tag itself is easy to buy and for distribution. But for all of the anchors, it’s better for a company or the owner of the building to buy the whole system, and provide services for individual users. Since companies can also charge users for buying their services, depending on different companies, this could save their cost. For individual users, their cost will increase if they need to buy the services from companies, but it should not be as expensive as purchasing a single anchor($33). 

Jeff’s Status Report for 02/17/2024

This week I spent time researching how exactly UWB works, especially focusing on how most devices use it for calculating distances using TDOA and TOA. My findings concluded we would most likely be using TOA with Two Way Ranging to find distances.

https://link.springer.com/article/10.1007/s11277-017-4734-x

I also looked into how much it would cost to develop our own UWB tags using a DWM1000 board with an ATMega328p microcontroller.  Unfortunately or not, it appears it would be cheaper to use the preexisting DWM1001 development boards, as they are $25 apiece as opposed to at least $26.5.

I also briefly setup a Django webserver for the web application. Finally, I worked on several slides of the design presentation and created several figures for it.

My progress is overall on track for what I would have liked to accomplish this week.

Next week I will be presenting the Design presentation. Then, I will work on developing the backend of the Django webapp to include all of the models we would need for the project. I would also work on some front end templates to include a mobile-friendly version of a map.

Ifeanyi’s Status Report for 02/10/2024

This week I reviewed the questions that were raised when I presented the project. I researched solutions to the problems of non-radial Wi-Fi signals, potentially easier solutions to localization involving IMUs, as well as what it would take to make the idea work with CMU’s existing wireless access points, rather than us having to design our own. After meeting as a team, and looking at certain logistical and price challenges associated with us using special WIFI access points, I raised the suggestion of using optical tracking, where a video stream coming in from a camera could be used to estimate both the position and orientation of the user. As we were not yet sure of the feasibility of this as a technical solution, I have since researched a few longstanding approaches in the field of optical localization.

https://x-io.co.uk/oscillatory-motion-tracking-with-x-imu/

https://arxiv.org/pdf/2211.11988.pdf

My progress is currently on schedule as I am still helping design the project and finalize what parts to order.

Next week I plan to make a small demo of optical localization to practically explore its feasibility with regards to the use case and target customer.

Team Status Report for 02/10/2024

This week we spent time researching the various technologies and algorithms that could be useful in indoor localization and navigation. Overall, our findings reveal that high localization accuracy indoors might be able to be achieved in reality.

The project is still in an early planning phase, hence, we have chosen to pivot from using Wi-Fi to using UWB due to the hopes of being able to achieve higher accuracy and precision in localization. Finally, we also discussed the complexity of the project and are possibly investigating methods that could expand the scope of the project. For example, other localization techniques, such as doing computer vision on the surroundings of the user, could also accurately localize the user. Effecting such sensor fusion of UWB and CV could improve the accuracy of localization.

We are still in the midst of discussing how best to go forward and will create an updated schedule for next week.