1. SDK
上云 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. SDK

04 飞行控制

Q:通过 Drone.connectDrcLink 建立 DRC 链路后,如何发送飞行控制指令并接收 OSD 数据?为什么控制指令无响应?#

Drone.connectDrcLink 建立 DRC 链路后,SDK 会对底层通信通道进行封装,可通过以下接口进行数据接收和控制:
接收 OSD 数据:调用 Drone.listenAircraftLocation(callback) 等监听接口获取对应数据;
发送飞行控制指令:调用 Drone.sendStickControl(StickControlData),通过 StickControlData 设置各轴控制量,实现对无人机前后、左右、升降等运动的虚拟摇杆控制。
指令无响应排查: 执行飞机操控指令前,必须先建立 DRC 链路并获取飞行控制权,否则指令将被拒绝或无响应。请确认 DRC 链路已成功建立后再下发控制指令。

Q:执行“飞向目标点”(FlyTo)指令前是否需要飞机处于飞行状态?如何监听执行进度?#

是的。FlyToPointModule.start() 仅在飞机已起飞且处于空中时才可调用。若飞机尚在地面,需先执行一键起飞(TakeoffModule.takeoff())。
监听“飞向目标点”任务执行进度可通过 listenFlyToTaskEvent() 实现:

Q:如何监听飞机返航状态和航线任务执行状态?#

监听目标接口说明
飞机返航状态listenAircraftModeCode()返回值为 9 时表示飞机进入自动返航
航线任务状态listenWaylineTaskEvent()返回 status:2=执行中,5=成功
任务阶段状态listenFlightTaskStepCode()起飞中/执行中/返航中/降落中等

Q:创建飞行任务时的“返航高度”参数是相对高度还是绝对海拔高度?如何设置?#

返航高度为相对起飞点高度(AGL,Above Ground Level),单位为米。
返航高度需通过 SDK 接口设置,且需在下发航线任务前完成设置;未设置返航高度时,航线任务无法正常执行。

Q:FlightTaskControlModule.setObstacleAvoidance 接口的 obstacle_avoidance_state 参数有哪些枚举值?#

含义如下:
入参值含义
0关闭避障
1开启水平避障
2开启全向避障

Q:SDK 是否支持云台俯仰、偏航方向控制?如何监听云台实时姿态?#

支持。SDK 提供云台三轴控制能力,需先建立 DRC 链路:
轴向接口
俯仰(Pitch)drcResetGimbal()
偏航(Yaw)drcResetGimbal()
实时姿态listenDrcGimbalState()
通过 drone.getCameraControlModule(payload_index) 获取对应负载的云台控制模块。

Q:SDK 是否支持查询无人机的云台俯仰角和飞行器姿态信息?#

支持,云台俯仰角和飞行器姿态信息通过监听接口获取:
飞行器姿态: listenAircraftAttitude
云台姿态: listenAircraftPayloadsGimbalAttitude
负载 OSD 信息: listenAircraftPayloadsOsdInfo
如需获取设备当前状态,业务侧可保存最近一次回调结果。

Q:SDK 是否支持拖拽控制相机画面视角以及打点对焦?#

支持。需先建立 DRC 链路,通过以下接口实现:
drcSendCameraScreenDrag():拖拽控制相机画面视角
drcCameraAimAtTarget():画面打点对焦

Q:SDK 是否支持红外测温功能?如何设置测温模式和测温点?#

支持(仅限搭载红外镜头的机型,如 M4TD、M3TD、M30T 等),需先建立 DRC 链路:

Q:SDK 中 POI 环绕飞行中的高度参数指的是什么高度?#

POI 环绕的高度参数使用 WGS84 椭球高。推荐直接使用 getHeight() 返回值,不要使用 getElevation()(相对高度)。
参考:DJI 飞行高度说明

Q:payloadIndex 字段的格式是什么?如何用它判断负载/镜头类型?#

SDK 不直接返回镜头类型,需结合 payloadIndex 和设备负载类型进行判断。
可通过以下接口获取设备当前挂载的所有负载信息:
drone.listenLiveAvailableRange(callback):获取所有可用直播流信息(LiveInfo),返回结果中包含 payloadIndex。
drone.listenAircraftPayloadsOsdInfo(callback):获取所有负载的 OSD 信息,返回结果中包含 payloadIndex。
payloadIndex 的格式如下:
{type}-{subtype}-{gimbalIndex}
例如:
99-0-0
165-0-7
其中,type 字段表示负载类型(设备型号),subtype 表示镜头类型,gimbalIndex 表示云台索引。
以 M4TD(type=99,三光机型)为例,subtype 取值含义如下:
subtype镜头类型
0广角
1变焦
2红外
3多光谱
判断步骤:
1.
通过上述接口获取设备实际上报的所有 payloadIndex。
2.
提取 payloadIndex 中的 type 和 subtype 字段。
3.
对照 DJI 开发者文档中的相机枚举表,确认对应的镜头类型,例如广角镜头、长焦镜头、红外镜头等。
参考文档:https://developer.dji.com/doc/cloud-api-tutorial/cn/overview/product-support.html

Q:SDK 是否支持对监听接口进行取消监听?#

支持。每个 listenXxx() 方法均有对应的 cancelListenXxx(listenId) 方法。建议不再需要使用时调用取消接口取消监听。

上一页
03 设备状态
下一页
05 媒体文件与建模
Built with