下图是qgc任务飞行模式的软件框架


下图是qgc自带的获取高程的类和函数(仅限获取单点):

获取airmap高程数据的教程请参考: https://developers.airmap.com/docs/elevation-api
在plan页面点击Takeoff后,在地图上点击一个点,在点击左边工具栏的Waypoint按钮添加航点

在地图上添加航点后,调用了MissionController里面的insertSimpleMissionItem函数,在MissionController.cc文件里添加getElevation函数,在getgetElevation中,记录原来函数的参数,实例化一个TerrainAirMapQuery,调用它的成员函数请求坐标点的高程数据。
绑定“解析完成的信号”和“源码的插入航点函数”,信号要在TerrainQuery.h定义,并在TerrainQuery.cc里面TerrainAirMapQuery类的_parseCoordinateData函数中触发


接下来就是简单把起飞点的相对高度加上,在VisualMissionItem* MissionController::_insertSimpleMissionItemWorker(QGeoCoordinate coordinate, MAV_CMD command, int visualItemIndex, bool makeCurrentItem)函数里面是相加相对高度个海拔。

调试结果如下,起飞点设置的相对高度为50m,2号点的海拔为24m,则2号点的设置高度为74m

第一次发帖,只是为了记录学习过程!
本文档记录了如何在QGroundControl(QGC)中获取高程数据,通过MissionController插入航点,并调整相对高度。在Takeoff后点击地图添加航点,利用TerrainAirMapQuery类请求坐标点的高程,结合相对高度设置航点的高度。调试结果显示,起飞点相对高度50m,2号点海拔24m,因此2号点设置高度为74m。

352

被折叠的 条评论
为什么被折叠?



