原理说明
二维码降落原理
ArUco:
a minimal library for Augmented Reality applications based on OpenCV,是科尔多瓦大学"人工视觉应用"研究小组(A.V.A)设计开发的一个微型现实增强库。ArUco主要用于检测平面标记并估计相机位姿,Prometheus的二维码降落就是基于ArUco二维码实现的。
由cv::aruco::estimatePoseSingleMarkers函数基于二维码边长、2D坐标(像素坐标)、相机内参矩阵、相机畸变参数矩阵解得相机(无人机)与二维码之间的相对位置和相对姿态。得到的相对位置也即是当前位置和期望位置(二维码中心点)间的误差,乘以比例控制系数得到期望速度发送给飞控,使得无人机在降落过程中不断调整和二维码之间的相对位置,最终精准降落在二维码上。我们可以通过调整比例控制系数来调整二维码降落的效果。
我们降落板上使用的二维码如下图所示。里面包含了六个二维码。最终的无人机相对于降落板的位置是由各个检测到的二维码得到的相对位置求平均值算出。除开一个大二维码还有5个小二维码是为了方便无人机在距离降落板比较近的时候无法识别大二维码可以继续识别小二维码来进行自身定位。
节点图
室内二维码降落的节点图如下所示:
消息流
室内二维码降落消息流:
室外二维码降落消息流:
autonomous_landing是关键逻辑节点,订阅话题prometheus/object_detection/landpad_det ,也就是二维码检测的结果,包含无人机与二维码的相对位置,发布话题prometheus/control_command,包含期望速度,最终发送给飞控,来调整无人机降落过程中和二维码之间相对位置。
室内二维码降落实机操作
启动指令
首先启动基本vio脚本
roslaunch p450_experiment p450_vio_onboard.launch
然后再启动自主降落脚本
roslaunch p450_experiment p450_indoor_landing_static_target.launch
打开一个新的终端,将图像检测显示出来
rqt_image_view
起飞
先将无人机摆放在二维码附近,可放在二维码的前后左右上等位置,注意不要距离太远,否则起飞后USB摄像头可能无法捕捉到二维码。且机头方向注意要和二维码正方向一致,二维码正方向如下图所示。
先将遥控器切换到position模式,在运行自主降落脚本后板载计算机就一直在给飞机发送起飞指令,但是目前飞机还没有进入offboard模式和解锁,所以飞机是没有响应的。接着遥控器操作单杆内八进行解锁,最后拨动offboard飞行模式开关切入offboard模式,此时无人机会先起飞到起飞点上方0.8米高度(我们在自主降落代码中设定的高度为0.8m)
降落
飞到指定高度0.8米后,如果摄像头检测到二维码,无人机便会开始自主降落
降落完成后会无人机自动上锁
二维码降落建议选用视场角较大的USB摄像头,这样在降落过程中不容易丢失二维码。室外二维码降落操作可以参考室内二维码降落,具体操作和视频可以查看P450wiki。
室内降落wiki:https://prometheus-wiki.readthedocs.io/zh_CN/latest/docs/p450/5-%E8%BF%9B%E9%98%B6%E5%8A%9F%E8%83%BD-%E5%AE%A4%E5%86%85%E8%87%AA%E4%B8%BB%E9%99%8D%E8%90%BD.html
室外降落wiki:
https://prometheus-wiki.readthedocs.io/zh_CN/latest/docs/p450/5-%E8%BF%9B%E9%98%B6%E5%8A%9F%E8%83%BD-%E5%AE%A4%E5%A4%96%E8%87%AA%E4%B8%BB%E9%99%8D%E8%90%BD.html
作者:阿木实验室-新一、马熙
- End -
技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把无人机行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在无人机行业,就请关注我们的公众号,我们将持续发布无人机行业最有价值的信息和技术。
硬件咨询:haoyue199506
定制咨询:yanyue199506
课程咨询:jiayue199506
欢迎垂询~
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)