Companion Computer Thoughts
We have tested the image processing code on the Raspberry Pi and have found that performance is greatly impacted due to the Raspberry Pi’s processor paired with its RAM and GPU being subpar compared with a laptop. On a laptop, the image processing took some time, however on the Raspberry Pi it caused it to hang as the computing time was taking too long for each frame.
There are two solutions to solving this problem, by either daisy-chaining multiple Raspberry Pis to carry out parallel processing via the use of multi-threading and multi-processing. The second option would be to make use of the transmitted video from the FPV on the ground station to carry out all the image processing, and transmitting the relevant velocity vectors back to the drone.
In that case, the Raspberry Pi on the drone would only be required to run ROS for the purpose of sensor data collection and for controlling the drone. It would not have to execute any image processing functions as it eats up a lot of computing time and would impact the efficacy of the obstacle avoidance algorithm, which is vital for the drone’s flight. The largest negative effect this has on the current setup is in terms of responsiveness. Due to transmission being necessary, the further away the drone is, the longer it takes for the signal to be transmitted. This means that as the drone travels further and further away from the ground station, it becomes less and less responsive to the immediate changes in the environment.
We have decided to not carry out on-board live image processing due to the priority being keeping the drone flying. We are still carrying out on-board image processing, however it is not processing live images. Live images are only being processed during precision landing, where all it is doing is detecting the color red. To improve on the drone’s robustness, a more powerful companion computer should be used such as the ODROID-XU4, a heterogeneous multi-processing (HMP) octa core Linux computer.
If we were to repeat the project again, we would have purchased a more powerful companion computer as stated above, the ODROID-XU4, which would far improve the robustness of the drone.