# 09-30 RMSE average and outdoor use
This morning I implemented the RMSE averaging in the frontend. Due to complications with Vue.js, the frontend framework I am using, it took a while for me to defer state management (remembering RMSE values) to the browser's local storage. With Vue components all information is destroyed on rerendering, so it is impossible to persist the values across changes in the client data. Without a separate stateful store, the component mutates its own state on render. The state change causes it to rerender, which then starts the endless positive feedback loop.
Due to a break in the bad weather this week, I tested the IPS outdoors and deferred my initial tasks to a later date. My hope was that outdoor performance would be better because there are fewer obstacles and thus fewer multipath / shadowing possibilites. Here are the results, once again with average RMSE values measured at nine spots distributed evenly around the grid:
{width=60%}
The overall RMSE average of all areas in the field are 1.28m for the raw 1.01m for the interpolated positions. Interestingly this is considerable worse than the indoor results (RMSE avg 1.07m raw, 0.69m interpolated) ceteris paribus. The field size, device orientations and positions and measurement locations were identical. Thus follows that the accuracy of my IPS is worse in the parking lot in front of my house than indoors.
Here are some photos of the system fully set up and with me testing, because I think I never showed that on the blog:
{width=75%}
{width=75%}
Testing the system forces me to use it often, so it is easy for me to find broken things or stuff that needs improvement. I usually do this on the spot, so testing things can take a while. Calibration alone is roughly 20 minutes for 8 beacons, testing then is another 20 minutes. Setup and teardown outdoors was roughly 2 hours with troubleshooting and bug fixing included. Even though it does not look like much (1 graph), I have to remind myself how much work contributed to those 18 numbers. Then I don't feel so bad about them anymore.
# Next Steps
Tomorrow I will move everything back inside and play around with the parameters for averaging. Having three clients active means I should be able to use three times as many values in the backend to get an average without having the latency take a big hit. I also have to see about automating the detection of multiclient setups in case it is a success.