1. 上云 API 2 FAQ
上云 API 2 知识库
  • 上云 API 2 FAQ
    • 上云 API 2 航线编辑器地图中机库位置与实际位置不一致
    • k3s 安装失败报错:x509: certificate signed by unknown authority
    • RC Pro 安装 Pilot 2 APP 时报错:未安装应用
    • 上云 API 2 中调用 SDK 的 getDeviceList 接口报错 404
    • 上云 API 2 在安装底座管理平台时报错:set password into system management failed: send request failed
    • 上云 API 2 安装底座报错:container loki is unhealthy
    • 在服务器手动部署 上云 API 2 底座后,访问底座管理平台报错:无法访问此网站
    • 在上云 API 2 管理平台更改一些配置后点击保存,一段时间后发现部分容器处于 Created 状态
    • 上云 API 2 在航线编辑器组件中创建航线报错:提交失败,请重试
    • 上云 API 2 执行 CodeMeter 安装脚本失败,提示 dpkg: error processing package codemeter-lite
    • 可视化部署底座时报错:install system management failed: exit status 1
    • 上云 API 2 底座安装 4G 增强图传服务后,4G 网络无法正常连接,设备无法通过 4G 链路上云
    • 上云 API 2 底座可视化部署安装过程中,提示缺少必要依赖包
    • 上云 API 2 航线编辑器,点击左上角返回按钮,无法退回上一级页面
    • 上云 API 2 订阅 subscribeDroneOpenProgress / CloseProgress 接口收不到数据
    • 上云 API 2 驾驶舱组件无法开启机场和无人机直播
    • 上云 API 2 通过 SDK 上传固件超时,提示连接失败
    • 上云 API 2 通过 SDK 提交固件升级后,查询进度无返回,前端组件页面进度停留在 0%
    • 上云 API 2 可视化部署安装底座,上传证书提示错误代码 7011:检测为非法证书
    • 使用上云 API 2 航线编辑组件创建航线保存失败,F12 控制台报错 ERR_CONNECTION_RESET
    • 使用上云 API 2 SDK 接口 createReconstruction 创建建模任务时需要传参 FolderId,这个 id 如何获取
    • 创建建模任务后 监听状态变更接口 listenReconstructionStatusChanged 返回的 state(建图文件状态)一直卡在 12(等待 Terra Cloud 资源中)
    • 如何使用上云 API 2 SDK 接口计算飞机镜头在地面上的覆盖面积
    • 将上云 API 2 航线预览页面封装成 Vue 组件后,切换路由再次进入时页面无法正常渲染
    • 上云 API 2 前端组件在开发环境正常,但部署到生产环境后页面报错 crypto.randomUUID is not a function
    • 使用上云 API 2 SDK 三维重建接口 createReconstruction 如何传参才能生成点云(LAS)?
    • 调用上云 API 2 SDK 接口 liveModule.start 开启直播偶现报错 213003 是什么原因
    • 运行上云 API 2 的 SDK Demo 失败,报错缺少 libatomic.so.1
    • 使用上云 API 2 SDK 接口 subscribeLiveStream() 订阅无人机直播视频帧,一段时间后直播卡顿或 SDK 收不到帧数据
    • 上云 API 2 SDK 初始化失败,日志报错 libVolcEngineRTC.so 加载失败
    • 在 上云 API 2 SDK 回调线程中调用 Future.get() 导致查询超时
    • 卸载上云 API2 底座后 AIO 管理后台仍可访问
    • 前端引入上云 API 2 前端组件的 paas.js 后,控制台输入 window.FH2 返回 undefined
    • 使用上云 API 2 SDK 收不到订阅的监听回调,日志报错 ws is not open / error -3
    • 使用上云 API 2 SDK 接口 createCustomizedFlightAreas 创建多边形限飞区失败,日志报错 err -5、230001
    • 在上云 API 2 前端设备管理组件上传固件失败,网页报错 TimeoutError
    • 建模任务创建后 listenReconstructionStatusChanged 立即回失败态(state=8)
    • 使用上云 API SDK 接口 getFlightTaskList 查询任务列表,传入空 sn 列表查不到任务数据
    • 使用上云 API 2 SDK 接口 createReconstruction 建模成功,但 getModelFileUrl 一直返回空 URL,成果 ZIP 无法生成
    • 一键起飞后实际飞行高度与设置预期不符,飞行器先爬升再下降
    • 上云 API 2 航线编辑器编辑保存后没有 Promise 回调,业务逻辑应写在哪里
    • 访问上云 API 2 前端组件的官方 HTML Demo 驾驶舱页面正常,改为 Vue 项目后驾驶舱页面能加载完成但显示状态异常
    • 前端组件在开发环境可以正常使用,但部署到生产环境后,部分 SDK 资源加载失败
    • 可视化页面部署安装时 「Terra 建模服务」下的「SERVER_IP」应该填内网 IP 还是外网 IP?
    • 飞行任务结束后媒体文件没有正常回传,调用 SDK 接口 getMediaFilesList 查询不到照片
    • 上云 API 2 如何设置航线编辑器组件的地图默认加载中心点
    • 上云 API 2 SDK 初始化正常但获取设备列表返回 ERROR_OPERATION_FAILED(httpCode=0 / errno=113 connect failed)
    • 使用上云 API 2 SDK 接口 getDroneInstance 获取不到飞行器实例
    • 已通过 SDK 获取负载控制权但负载操控接口返回 -6、负载监听无消息
    • 如何使用上云 API 2 SDK 接口 createReconstruction 生成高斯泼溅(3DGS)成果?
    • 使用上云 API 2 航线编辑器组件创建航线后未自动进入航线编辑界面,如何继续编辑航线?
    • 调用 getWaylineList 后业务接口已返回,异步查询结果还未回调
    • 在上云 API 2 可视化页面部署底座时设置密码后点击确定后页面无响应
    • 服务器异常停电,重启上云 API 2 底座服务容器之后报错:container pf-atc-service is unhealthy
    • 管理后台的密码忘记了怎么办?怎么修改管理后台的密码?
    • 在上云 API 2 底座安装包下的 env 文件中修改启用 HTTPS 相关配置后执行 ./setuptools update 报错
    • 在上云 API 2 的管理后台配置三方 Minio 后媒体管理航线管理异常
    • 使用上云 API 2 建模成功但调用 getQualityReport 接口返回状态始终为"质量报告生成中"
    • 在上云 API 2 可视化页面部署成功后 无法正常进入 AIO 管理后台,页面提示:请先激活再使用系统
    • 上云 API 2 底座部署过程中部分容器报错:unhealthy
    • 上云 API 2 手飞设备如何上云
    • 上云 API 2 底座管理平台首次激活扫码无反应,无法扫出激活码
  • 上云 API 2 常见 QA
    • 产品能力和设备运行与管控底座
    • 许可证相关
    • 安装部署
    • 设备上云
    • 前端组件
    • SDK
      • 01 接入与初始化
      • 02 飞行任务
      • 03 设备状态
      • 04 飞行控制
      • 05 媒体文件与建模
      • 06 直播与录制
      • 07 航线管理
      • 08 固件·RTK·飞行区
      • 09 信号地图
  1. 上云 API 2 FAQ

一键起飞后实际飞行高度与设置预期不符,飞行器先爬升再下降

说明:本文档中,应用运行与设备管控底座以下统一简称为底座。

问题现象#

调用一键起飞(Drone.takeoff(TakeoffParams, callback))后,飞行器实际到达高度与预期对不上,常见表现:
飞行器先爬升到很高,再下降到较低高度悬停;
实际飞行高度远高于 targetHeight 设定值;
通过 Drone.listenAircraftLocation 拿到的 AircraftLocation.getHeight() 明显超过 targetHeight。

问题原因#

TakeoffParams 各高度字段的参考基准不一致,把不同基准的值混填导致。实时位置数据通过 Drone.listenAircraftLocation(AircraftLocationCallback) 订阅,回调返回 AircraftLocation,其中 getHeight() 是椭球高度、getElevation() 是相对起飞点高度。各字段基准对应关系:
字段 / 接口参考基准
TakeoffParams.targetHeight(目标点高度,2–10000m)WGS84 椭球高(绝对高)
TakeoffParams.commanderFlightHeight(指点飞行高度,20–1500m)相对起飞点
TakeoffParams.securityTakeoffHeight(安全起飞高度,8–1500m)相对起飞点
TakeoffParams.rthAltitude(返航高度,15–1500m)相对起飞点
AircraftLocation.getHeight()(实时高度)WGS84 椭球高(与 targetHeight 同基准)
AircraftLocation.getElevation()(实时高度)相对起飞点高度
飞行过程:飞行器先爬升到 securityTakeoffHeight 与 commanderFlightHeight 中数值更大的那个(相对起飞点),平飞到目标点上方,再调整到 targetHeight(椭球高)。
因此把 targetHeight 当成"离地/相对起飞点 N 米"来填,就会和相对基准的 commanderFlightHeight/securityTakeoffHeight 对不上:转场是相对高、目标是椭球高,两段基准不同,到目标点时按椭球高重新调整,就出现"爬得比目标点高、到点再下降"。
换算关系:
commanderFlightHeight(相对) = targetHeight(椭球高) − 起飞点椭球高
起飞点椭球高 = 飞行器地面静止时 AircraftLocation.getHeight() 的值
只要 起飞点椭球高 > 50,示例里 targetHeight=100(椭球高)换算成相对起飞点就 < 50m,比转场的 50m 还低,到点自然下降。
说明:即使 commanderFlightHeight 设置正确,爬升阶段 AircraftLocation.getHeight()(椭球高)仍会高于 targetHeight,到目标区域再降到目标高度悬停——这是正常行为,不是异常。

解决步骤#

1.
先拿到起飞点椭球高:飞行器地面静止时,通过 Drone.listenAircraftLocation 读回调里 AircraftLocation.getHeight() 的值,记为 G。
2.
按"想让飞机最终离地 H 米作业"反推参数,让转场高度与目标椭球高对齐:
targetHeight = H + G(椭球高)
commanderFlightHeight = targetHeight − G = H(相对起飞点)
securityTakeoffHeight:设成够避开起飞点周边障碍即可(相对起飞点)
例:G 实测 60m,想离地作业 100m → targetHeight = 160、commanderFlightHeight = 100、securityTakeoffHeight = 50。
3.
排查已有配置时,重点看 commanderFlightHeight 是否误填成了椭球高——这是最常见的错误。它应是相对起飞点的高度,不是 WGS84 椭球高。
4.
验证实际离地高度用 AircraftLocation.getElevation()(相对起飞点),不要用 getHeight()(椭球高,绝对值会显得很高)。
上一页
使用上云 API 2 SDK 接口 createReconstruction 建模成功,但 getModelFileUrl 一直返回空 URL,成果 ZIP 无法生成
下一页
上云 API 2 航线编辑器编辑保存后没有 Promise 回调,业务逻辑应写在哪里
Built with