大疆无人机实现目标定位
大疆无人机回传的实时视频可以帮助飞友观察发现美景,就称为目标吧,你偏偏对目标很感兴趣,迫切想知道目标的位置,最好是经纬度坐标。你查找大疆Document,欣喜地发现大疆提供了定位机体本身的定位方法(通过FlightController.setStateCallback重写Update函数即可),不过并没有定位目标的现成函数。
实际上,屏幕上的像素与实地坐标存在一一对应的关系,找到这个关系就能实现实地目标的定位。
建模条件:①地面为水平平面;②相机视角θ(大疆X3为94度);③飞机相对高度droneHeight,经纬度(droneLat,droneLng),机头朝向droneHeading;④屏幕分辨率deviceWidth、deviceHeight;⑤屏幕以左上角为原点(0,0),向右向下为正;⑥相机垂直地面;⑦不考虑目标的高度和图像形变。
则任意屏幕的像素点(x,y),对应的实地经纬度坐标为唯一的,假设为(xLng,yLat),从而可以用大疆SDK提供的函数在地图中标定。
基于上述模型,得到从像素点到实地位置的计算过程:
1、根据飞机高度和相机视角,计算屏幕中的图像对应实地的长度(Height1)和宽度(Width1):
Width1