
今天,我们将自主无人机控制程序与球检测程序结合在一起,以便利用自主无人机使球爆裂。
在之前的文章中,我们研究了自主虚拟和真实无人机的发射,以及定义和传递太空球坐标的ROS节点的开发。 现在,我们将重新制作无人机控制程序,使其自动尝试使球破裂。
程序飞舞
飞向球的程序是基于与手动控制程序相同的速度控制周期的。
区别在于,无人机速度矢量不是由键盘上的控制键来控制,而是由从主题/baloon_detector/twist
获得的有关球位置的信息控制。
setvel_forward
速度和setvel_forward
矢量,以使无人驾驶飞机向球右飞。
如果无人机在超过0.2秒的时间内没有看到球,我们认为我们会将其炸开并将无人机置于着陆模式。
该程序的全文如下:(crash_baloon.py) 调试建议
为了进行调试,我们建议选择一个开放空间,将球固定在底座上,并确保附近没有红色物体,以免制导程序出现误报。
飞行前,应使用192.168.11.1:8080的浏览器检查制导程序的运行情况:

如果正确配置了所有程序,则程序必须放心地辨别球,并且不会引起误报。

在制导程序开始时,可以理解的是,无人机应该在起飞后看到球。 否则,无人驾驶飞机会认为球已经破裂,并将切换到着陆模式。
将来,您可以修改程序-例如使用AUTO.MISSION模式使球接近。 并在到达所需的GPS点后,切换到视觉搜索模式。
在程序主循环中选择速度的系数是针对特定无人机通过实验进行的。
在比赛中,尝试将球炸开如下:
对于那些试图重复我们的实验的人的评论和问题,我将不胜感激。
程序的源代码已上传到Github 。