During the week of Oct 10-16 we set about creating the MVP for our project, while working on the design report. This version of the device was made of Foam core, because the material is lightweight and easy to modify. I helped fabricate the housing by tracing, cutting and gluing various pieces. We decided early on that three propellers was the minimum necessary to achieve omnidirectional movement, so we chose a hexagonal shape for the body. This would achieve less air resistance and a symmetrical design. The design had three arms to extend the propellers outwards, so that airflow would not be obstructed by hitting the sides of the housing. The goal was to see how far our propulsion system could move the object during a drop test. The week culminated in another drop test which was unsuccessful, because the device spun during most of the fall.
Meanwhile, we performed final tests which helped us rule out directional antennas as our perception method. The new WiFi board had arrived, so we tested it out with the directional antenna. Daniel and I went out to the grassy area outside Hamerschlag to find at what distances and angles a phone hotspot would produce higher RSSI. The signal was stronger in a usable horizontal angle of about 30 degrees, but only within 20 feet. The range of the vertical angle where the phone could be detected was very narrow. Lastly, the back of the antenna also had some range where the signal was as strong as in the front. This meant the antennas were not practical for perception for much of our use case, it would not be possible to detect relative direction based on these antenna data. At the end of the week we decided to switch to computer vision instead of antennas for perception.
During the week of Oct 17-23 we continued working on our device. I am now in charge of computer vision instead of signal processing because we have switched to cameras. We decided to use circle detection, so that the use case would remain simple. The user would only have to place a circle marker on the ground. I implemented a circle detection script in Python with OpenCV. The script converts the frame from a camera feed to black and white, applies median blur, then HoughCircles (from cv2 library). The result was the coordinates and radii of the circles in the image. Daniel and I integrated this code with the Raspberry Pi camera, and found that the detection was robust. What remains to be done is to find out the latency associated with the code, we may consider using C++ to remove some of it. We also want to go outside and see whether it works at a distance of about 40 feet and with different lighting conditions. I may have to adjust the parameters, such as circle radius and blur kernel, based on these tests.