The ctrlWrapper should be the only one able to communicate with the hardware. It is supposed to be the junction point between the algorithms' output and remote-controller's output, and the drone itself.
VFH #27, PF #45 and Altitude Control #67 need sensors to compute their output. So does Yaw Control # 66 and Inclination Control #68 which need on-board sensors information (heading and pitch).
Therefore, the ctrlWrapper should be gathering that info, and offering to its Prioritized Controllers in case they may need it.
The ctrlWrapper should be the only one able to communicate with the hardware. It is supposed to be the junction point between the algorithms' output and remote-controller's output, and the drone itself. VFH #27, PF #45 and Altitude Control #67 need sensors to compute their output. So does Yaw Control # 66 and Inclination Control #68 which need on-board sensors information (heading and pitch).
Therefore, the ctrlWrapper should be gathering that info, and offering to its Prioritized Controllers in case they may need it.