This week I supported our efforts on getting the demo running. I worked on calibration and filtering. I made a script to run calibration of the accelerometer, but ultimately determined that the bias set from calibration at the factory was actually good enough for us. So I didn’t end up using the data I got from this work, which was a little frustrating I suppose, but still good learning. I did implement a real time gyro visualization which showed us that we needed to add filtering. Previously we had a visualization with matplotlib which was good, but it had a lot of delay so it was hard to really tell how accurate the visualization was to the actual movement of the IMU. I made a new visualization using pyqtgraph which had much much less delay, which was super helpful. It showed us that the gyro needed some filtering: we noticed some issues such as after moving the IMU quickly the following data would be inaccurate and it would fail to return to the same position (after holding it in one place, then moving it a bunch, then putting it back to original position, the visualization would show that it was off from the original orientation). I implemented this simple Mahony filter I got from a library, and it worked great. This was a huge step for us in helping us get more accurate data.
I also spent some time this week working on the physical prototype. It took me longer than expected to get the right dimensions and tolerances for making press fit holds for each part, each one took multiple iterations. I now have the right dimensions for each individual component (battery, IMU, and microcontroller). I don’t have access to the right size screws unfortunately since the techspark machine shop is closed on weekends, so I will need to wait until Monday to put it all together.
I am still lacking on the PCB design, it seems I may not be able to get the finished PCB in hand by demo day, but I will have the design for it finished and a model to show for it. I am hoping to have the final design done by EOD Tuesday.



