DJI开发之航线重叠率的计算

简介: DJI开发之航线重叠率的计算

介绍


无人机在规划一块区域的时候,我们需要手动的给予一些参数来影响无人机飞行,对于一块地表,无人机每隔N秒在空中间隔的拍照地表的一块区域,在整个任务执行结束后,拍到的所有区域照片能够完整的表达出一块地表,那这次任务就是成功的。 当然,如果想完整的把一块地表拍下来也很简单,我们完全可以不停的去拍照,飞行的间隔特别小,但这不是我们想要的,因为这种方式比较浪费资源,我们想要的是在可能的情况下,以最少的航线规划、最少的图片数量来诠释这块地表,毕竟wayPoint最多只能执行99个。

重叠率



重叠率又分航向重叠率和旁向重叠率:


  • 航向重叠率:指无人机在一条航线前进拍照时,第一次拍照的图片与第二次重叠的概率
  • 旁向重叠率:指无人机在第一条航线拍的照片与第二条航线拍的照片重叠的概率


航向重叠率


image.png


用一张图来表示,绿色图块是第一次拍照拍到的地表区域,红色图块是第二次拍照拍到的地表区域,他俩重叠的部分的区域相对于他们自己来说就叫做航向重叠率。假设我们现在设置这次无人机飞行的航向重叠率为50%,那么重叠的部分正好是他们自身的一半,那么能不能设置重叠率为100%呢?当然不行,这样话,绿色块和红色块就是一个完美的重合,也就意味着第一次拍照和第二次拍照都在同一个地方,无人机就根本不会往前飞行了,而是停留在那。


旁向重叠率



image.png


绿色块是我们在第一条航线中拍到的区域,红色块是我们第二条航线拍到的区域,他俩重叠的部分相对于他们自己来说就叫做旁向重叠率,旁向重叠率是影响航线规划间隔的唯一因素,我们需要通过重叠率来计算出飞行路径的间隔,当然,此处的重叠率也不能设置为100%,如果设置100%的话,那么红色块就会和绿色块重叠,也意味着第一条航线和第二条航线重叠,无人机也就只会在一条航线上来来回回的飞行。


焦距与画幅


如果想知道一张图片所拍到的区域真实面积的话,那么焦距与画幅是离开不的因素。

image.png

如图所示,当前无人机是正向向我们飞过来的,我们需要求 拍摄到的真实的距离 ,其实看到图我们就能猜到,这是一个相似三角形的运算,计算公式:


image.png


那么,也就意味着我们需要知道焦距、画幅、无人机高度这些已知值,才能计算出拍摄到的真实距离。


焦距


焦距的获取Dji已经给出了API,我们可以直接获取。


public static Aircraft getAircraft() {
        BaseProduct product = getProduct();
        if (product != null && product.isConnected()) {
            if (product instanceof Aircraft) {
                return (Aircraft) product;
            }
        }
        return null;
}
Camera camera=getAircraft().getCamera();
//如果camera不为空,并且当前drone支持焦距
if (camera != null&&camera.isOpticalZoomSupported()) {
        camera.getOpticalZoomFocalLength(new CommonCallbacks.CompletionCallbackWith<Integer>() {
                    @Override
                    public void onSuccess(Integer integer) {
                        //获取到焦距值
                    }
                    @Override
                    public void onFailure(DJIError djiError) {
                    }
                });
}else{
    //如果不支持焦距的话,则可以给个默认的焦距值 24(单位为毫米)
}
复制代码


画幅



画幅是一个固定值,分为长画幅与短画幅,上图中仅仅只是一个平面图,无法表示长画幅与短画幅的意思,我们对上图再做个立体图也就知晓了


image.png


画幅其实是一个矩形,也正好对应我们拍摄到的照片是一张矩形的照片,画幅的默认值为。


  • 长画幅:35mm(单位毫米),与旁向重叠率相关
  • 短画幅:24mm(单位毫米),与航向重叠率相关

计算



由于每次在规划航线时,无人机高度是用户自由进行选择拖动的,所以也是一个已知值,每次拖动无人机高度,航线会重新进行规划


非重叠距离公式


下面是一个通用的计算公式,计算出非重叠部分的真实距离


/**
     * @param height 无人机高度,单位米(m)
     * @param frame  画幅
     * @param focal  焦距
     * @param ratio  重叠率
     */
    public static double get(double height, double frame, double focal, double ratio) {
        //todo 如果focal焦距为0的话,则使用默认值值24毫米
        focal = focal == 0 ? 24 : focal;
        //单位换成米
        focal = focal / 1000;
        frame = frame / 1000;
        //设呈现的真实距离为x
        double x;
        //拍摄到的距离
        x = frame * height / focal;
        //设重叠距离
        double d;
        //重叠部分的距离
        d = ratio * x;
        //非重叠部分的距离 (单位米)
        d = x - d;
        return d;
    }
复制代码


航向重叠计算


已知短画幅=24mm,假设从无人机拿到的焦距是26mm,高度设置的是100米,重叠率设置80%,则无人机真正拍摄到的距离差为:


double distance=get(100,24,26,0.8)
复制代码


现在计算出了无人机在拍摄照片的时候,拍摄第一张的位置与拍摄第二张的位置的距离差,那么计算这个距离值拿来干什么用呢,我们知道,距离=速度*时间 ,我们拍照的时间间隔是固定的,假设我们设计的时间是每隔2s进行一次拍照,那么,我们就可以根据 这个公式计算出 速度 ,然后将这个速度设置给 wayPoint , 当然,这个速度不能超过无人机的最大速度(10m/s),我们可以在此做个判断,如果超过无人机最大速度,则设置无人机最大速度为 wayPoint 的速度,如果没有,则反之。我们可能在想,假设公式计算出来的最大速度是20m/s,如果我给他设置了最大速度10m/s的话,不会有影响吗?其实不然,我们假设飞行的距离是40m,我以20m/s的速度进行飞行,那么也就是2s就飞完了,如果这时候我下调到10m/s进行飞行,也就是需要4s才能飞完,已知无人机每隔2s进行一次拍照,那么20m/s的速度只需要拍一张就足够了,10m/s的就需要拍摄两张,这并不会影响拍摄的区域,只不过拍摄的照片比预期多了而已。


旁向重叠计算


旁向重叠的计算影响航线的的间隔,对于一块固定地表,间隔越宽,则飞行的航线就越少,间隔越窄,则飞行的航线就越多,主要影响间隔的就是重叠率。 已知长画幅=35mm,假设从无人机拿到的焦距是26mm,高度设置的是100米,重叠率设置80%,则航线间距离为:


double distance=get(100,24,26,0.8)
复制代码


最终将航线距离丢给航线路径规划公式,计算出任务所执行的航点

目录
相关文章
|
6月前
|
机器学习/深度学习 数据可视化 数据库
R语言广义线性模型索赔频率预测:过度分散、风险暴露数和树状图可视化
R语言广义线性模型索赔频率预测:过度分散、风险暴露数和树状图可视化
配电网三相不平衡潮流计算【隐式Zbus高斯法】【可设定变压器数量、位置、绕组方式】
配电网三相不平衡潮流计算【隐式Zbus高斯法】【可设定变压器数量、位置、绕组方式】
|
6月前
|
机器学习/深度学习 搜索推荐 数据挖掘
回归树模型分析纪录片播放量影响因素|数据分享
回归树模型分析纪录片播放量影响因素|数据分享
|
6月前
R语言用GAM广义相加模型研究公交专用道对行程时间变异度数据的影响
R语言用GAM广义相加模型研究公交专用道对行程时间变异度数据的影响
基于贝叶斯推理估计稳态 (ST) 和非稳态 (NS) LPIII 模型分布拟合到峰值放电(Matlab代码实现)
基于贝叶斯推理估计稳态 (ST) 和非稳态 (NS) LPIII 模型分布拟合到峰值放电(Matlab代码实现)
|
6月前
R语言量化:合成波动率指数移动平均策略分析标准普尔500波动率指数(VIX)
R语言量化:合成波动率指数移动平均策略分析标准普尔500波动率指数(VIX)
|
6月前
|
数据可视化
R语言时变面板平滑转换回归模型TV-PSTR分析债务水平对投资的影响
R语言时变面板平滑转换回归模型TV-PSTR分析债务水平对投资的影响
ArcGIS:如何使用成本距离分析确定学校距离目标点的最短成本距离?
ArcGIS:如何使用成本距离分析确定学校距离目标点的最短成本距离?
211 0
率失真函数的性质
率失真函数的性质
151 0