圆检测流程:
1,利用高斯滤波做预处理。
2,边界检测部分用到了自适应Canny检测。
3,将边界分为凹弧和凸弧,根据输入参数筛选弧段。
4,利用弧段来估计椭圆参数,交叉验算得出椭圆中心点,计算出椭圆得分。
5,利用圆心、长短轴和旋转角度聚类。
检测会得到圆心在相机坐标系中的坐标。对于相机坐标系说明:从相机往前看,物体在相机右方x为正,下方y为正,前方z为正。再结合被检测圆的实际半径即可得到圆在现实中和相机(无人机)的相对位置。
节点图与消息流
飞室内圆框跟踪的时候的系统节点图如下:
室内圆框跟踪消息流如下图所示:
室外圆框跟踪消息流如下图所示:
室内室外圆框跟踪的区别是,室内无人机位置数据来自于T265,室外无人机位置数据来自于GPS。
核心逻辑节点是circle_crossing,此节点会订阅圆形识别检测结果/prometheus/object_detection/ellipse_det
即相对位置,基于此无人机发送速度控制指令
/prometheus/control_command来调整无人机相对于圆心的位置。具体速度由PID控制环输出得到,可以改变相应PID参数来调整圆框跟踪的效果。
室内圆框跟踪实机操作
首先启动基本vio脚本roslaunch p450_experiment p450_vio_onboard.launch
然后再启动跟踪脚本
roslaunch p450_experiment p450_indoor_circle_tracking.launch
打开一个新的终端,将图像检测显示出来rqt_image_view
起飞
先将遥控器切换到position模式
然后通过控制终端输入1并敲回车,表示发送起飞指令,这时候板载计算机会给无人机飞控一直发送起飞指令,但是目前无人机还没有进入offboard模式和解锁,所以无人机是没有响应的。
输完1并敲回车之后,接着遥控器操作单杆“内八”进行解锁,最后拨动offboard飞行模式开关。无人机就会慢慢起飞起来,保持在1m高度。(我们在自主跟踪代码中设定的起飞高度为1m)
跟踪
等待无人机起飞完成,高度保持在1m左右,且视野内识别到目标圆之后,再输入 1 并敲回车,无人机开始进行圆跟踪。
无人机会稳定在圆心前一固定距离处
(此距离可设置)
此时可以移动目标圆,无人机会进行跟踪,跟在圆心前一固定距离处。
结束实验
在想要结束室内自主跟踪实验时候,记得遥控器先退出offboard模式,
然后慢慢降低油门,直至无人机安全着地,进入怠速,自动上锁。
关闭所有终端,结束实验。
室外圆框跟踪操作步骤可以参考室内的,具体步骤和视频可以参考P450wiki。
作者:阿木实验室-新一、马熙
- End -
技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把无人机行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在无人机行业,就请关注我们的公众号,我们将持续发布无人机行业最有价值的信息和技术。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)