This was a part of my participation in a team of two at the Minidrone competition organized by Mathworks at EMEA ’21.
The problem statement was to perform line following and landing. We followed a pure pursuit approach for path tracking, which is known for its computational simplicity and good performance once tuned well. The design was conducted on Simulink using the hardware support package for the Parrot Minidrone.
The drone yaws till it discovers a traversable segment (hereafter referred to as track) and by using a simple arc mask, calculates the target point as needed by the pure pursuit algorithm. This is fed into the controller after suitable transformations taking into account the pose of the minidrone.
Landing site was detected by the Hough transform looking for circles. The center of the circle (in global coordinates) was established and relayed to the controller, upon reaching which was a soft landing commissioned.
It was ensured that the simplest data be exchanged between the controller/state estimator and the image processing block, which ran at different frequencies (200 Hz and 2 Hz respectively). The Simulink model was then used to generate C/C++ code successfully.