大疆上云api开发

news2024/11/23 12:56:09

目前很多公司希望使用上云api开发自己的无人机平台,但是官网资料不是特别全,下面浅谈一下本人开发过程中遇到的一系列问题。
本人使用机场为大疆机场2,飞机为M3TD,纯内网使用

部署

链接: 上云api代码.

  • 首先从github上面拉去代码
    上云api代码github.
    后端使用maven,jdk17
    前端使用使用yarn下载依赖
  • 安装中间件
    emqx
$ docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.0.0

对应代码修改:
后端

mqtt:
  # @see com.dji.sample.component.mqtt.model.MqttUseEnum
  # BASIC parameters are required.
  BASIC:
    protocol: MQTT # @see com.dji.sample.component.mqtt.model.MqttProtocolEnum
    host: 127.0.0.1
#    host: 127.0.0.1
    port: 1883
    username: JavaServer
    password: 123456
    client-id: 123456
    # If the protocol is ws/wss, this value is required.
    path:
  # DRC控制链路
  DRC:
    # 示例代码在前端进行控制,需要返回给前端。默认使用ws连接
    protocol: WS # @see com.dji.sample.component.mqtt.model.MqttProtocolEnum
    host: 127.0.0.1
#    host: 127.0.0.1
    port: 8083
    path: /mqtt
    username: JavaServer
    password: 123456

注意,两处都要修改,下面的ws是用于手动控制的关键
前端对应配置修改
在这里插入图片描述

mysql8.0
在这里插入图片描述
执行后端中的这个脚本就行
对应的后端配置文件

  # 数据库配置
  datasource:
    # druid数据源配置
    druid:
      # 数据源类型
      type: com.alibaba.druid.pool.DruidDataSource
      # 数据库驱动
      driver-class-name: com.mysql.cj.jdbc.Driver
      # 数据库连接地址
      url: jdbc:mysql://127.0.0.1:3306/cloud_sample?useSSL=false&allowPublicKeyRetrieval=true
      username: root
      password: 123456
      initial-size: 10
      min-idle: 10
      max-active: 20
      max-wait: 60000

redis
下载redis6即可,使用docker部署比较方便
对应的后端配置文件

  redis:
    host: 127.0.0.1
    port: 6379
    database: 2
    username: # if you enable
    password:
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0

minio
如果要内网使用的话需要自己搭建存储服务,并且修改后端代码这部分

oss:
  enable: true
  provider: minio
  endpoint: http://127.0.0.1:9000
  # 以下内容需要去minio控制台自己创建
  access-key: 
  secret-key: 
  # minio控制台新建bucket
  bucket: cloud-bucket
  expire: 3600
  region: us-east-1
  object-dir-prefix: wayline

ntp
如果要内网使用,需要自己搭建ntp服务器,这非常重要,要不然会导致执行航线的时候回报错,这个自己网上找一个相关服务搭建即可
对应的后端配置文件

ntp:
  server:
    host: 127.0.0.1
    port: 123

直播服务器
这算是搭建过程中比较难得一个点,关于内网使用的话,可以搭建zlmediakit服务或者srs服务
此外,现在大疆机场支持的推流为rtmp,webrtc和国标
对于zlmediakit服务,它的好处是可以推rtmp或者webrtc,然后拉去这两种,还可以拉去rsp的流,比如我们实现的ai识别就是,通过rtmp或者webrtc推流,然后在去zlmediakit里面拉去rtsp的六

对于srs服务,它的好处是可以很方便快捷的搭建,并且大疆demo里面直播用的就是srs的js,就不用额外去写直播画面播放的这个功能,zlmediakit的话就需要自己去改相关代码

docker搭建方式

CANDIDATE="192.168.1.10"
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088 \
    --env CANDIDATE=$CANDIDATE -p 8000:8000/udp \
    registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 ./objs/srs -c conf/https.docker.conf

此外,如果你们是可以接外网的环境,那么直接使用声网就行,就不需要额外搭建直播服务器,下面分别谈一下这几种推流在代码中是如何进行配置的

rtmp
后端配置文件

    # RTMP  Note: This IP is the address of the streaming server. If you want to see livestream on web page, you need to convert the RTMP stream to WebRTC stream.
    rtmp:
      url: rtmp://192.168.4.20/live/

前端配置文件

  rtmpURL: 'rtmp://192.168.4.20/live/', // Example: 'rtmp://192.168.1.1/live/'

webrtc
注意,这个配置对应的是使用srs,并且使用webrtc推流的方式,这种推流可以使用大疆demo里面的播放页面播放出来

    whip:
      url: http://192.168.4.20:1985/rtc/v1/whip/?app=live&stream= 

这个配置对应的是使用zlmediakit,并且使用webrtc推流的方式,这种需要自己写播放页面

    # zlmediakit推流地址
#      url: http://192.168.4.20/index/api/whip?app=live&stream=

播放地址为:使用zl自带的控制台,输入这个播放连接

http://192.168.4.20/index/api/webrtc?app=live&stream=1581F6Q8D246DG2WE4-81-0-0&type=play

注意,stream为我无人机对应的sn码,你的可能会不同,需要去mq或者控制台查询到

在调试过程中发现,机场推rtmp的质量远远不如webrtc,所以建议大疆推流的时候使用webrtc协议

手柄配置
需要使用大疆手柄进行机场调试,使它切换到第三方云平台在这里插入图片描述
主要目的是让机场连接到你配置的mqtt网关

如果一切顺利的话,配置完上面这些信息就能跑起来了,下面谈一下调试过程中遇到的一些问题以及解决思路

问题

mq和后端能收到消息,但是机场飞机没有上线

请添加图片描述
去mq后台将机场客户端踢出

喊话器功能

无人机本身不支持喊话功能,需要挂载第三方的设备,我们使用的是成至MP20,需要自己根据接口进行开发
在这里插入图片描述

红外功能

无人机本身自带的红外是这样的

在这里插入图片描述
但是我们的ai识别盒子需要的红外是黑白画面,上云api暂时没有接口可以调红外的模式,需要使用司空2平台,更改红外镜头的相机参数,然后再回第三方平台开启
在这里插入图片描述

一键起飞

在这里插入图片描述
需要填入指定参数,海拔一定要比当前部署的机场的海拔高,要不然会失败

后端枚举类报错

调试过程中,我们用过大疆新版本的固件,然后就一直会报一些枚举类的错误,是因为新版本固件跟大疆1.10不匹配导致,最好使用1.10对应的固件版本,因为新版本消息体可能改过一些
在这里插入图片描述

固件一致性升级

如果你用上云api降低过固件的话,设备管理里面会提示固件的一致性升级,其实你如果没有使用到一些新的功能特性的话,这一致性升级是不用管它的
在这里插入图片描述

直播推流

大疆机场2最高支持推3路流,也就是仓内和仓外和无人机,一共三个镜头

航线

如果没有绘制航线需求的话,可以使用手柄或者司空2绘制航线,导入上云api使用

悬停功能

如果有涉及到航线飞行,飞行过程中自动悬停的话,可以使用航线暂停和航线恢复接口。比如我们的流程就涉及到ai识别-》悬停-》喊话-》取消悬停继续航线
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2246011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实现管易云到金蝶云星空的数据无缝集成

管易云数据集成到金蝶云星空:案例分享 在企业信息化系统中,数据的高效流动和准确对接是业务顺利运行的关键。本文将聚焦于一个具体的系统对接集成案例——通过轻易云数据集成平台实现管易云数据到金蝶云星空的无缝迁移,方案名称为“wk_店铺_…

Ubuntu上安装MySQL并且实现远程登录

目录 下载网络工具 查看网络连接 更新系统软件包; 安装mysql数据库 查看mysql数据库状态 以数字ip形式显示mysql的监听状态。(默认监听端口是3306) 查看安装mysql数据库时系统创建的目录信息。 根据查询到的系统用户名以及随机密码&a…

卷积神经网络各层介绍

目录 1 卷积层 2 BN层 3 激活层 3.1 ReLU(Rectified Linear Unit) 3.2 sigmoid 3.3 tanh(双曲正切) 3.4 Softmax 4 池化层 5 全连接层 6 模型例子 1 卷积层 卷积是使用一个卷积核(滤波器)对矩阵进…

LVS

一、 lvs简介 LVS:Linux Virtual Server ,负载调度器,内核集成,章文嵩,阿里的四层 SLB(Server LoadBalance) 是基 于 LVSkeepalived 实现 LVS 官网 : http://www.linuxvirtualserver.org/ LVS 相关术语 VS: Virtual Serve…

使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变

作者:来自 Elastic Greg Crist Elasticsearch 推出了一项新功能:Elastic AI Assistant for Search。你可以将其视为 Elasticsearch 和 Kibana 开发人员的内置指南,旨在回答问题、引导你了解功能并让你的生活更轻松。在 Microsoft AI Services…

掺铒光纤激光器

一、光纤激光器的特点 实现灵活的激光光源(窄线宽、可调谐、多波长、超短光脉冲源)易获得高功率、高的光脉冲能量激光波长与光纤通信传输窗口相匹配采用激光器泵浦形式(半导体激光器泵浦)热稳定性、价格低廉、易小型化 二、放大…

AP+AC组网——STA接入

扫描 主动扫描:STA发送Probe Request帧,AP收到回复Probe Response 可以带着SSID扫描寻找指定WIFI,也可以带着空SSID扫描进入周围可用WLAN 被动扫描: 客户端通过侦听AP定期发送的Beacon帧(100TUs,1TU1024…

基于 ESP-AT (v3.x)固件通过 AT+SYSMFG 指令更新证书设置

AT 固件里的证书文件通过 mfg_nvs.csv 文件管理,所有证书都是写入 mfg_nvs 分区。可以先查看 mfg_nvs.csv 文件的内容来确定有哪些证书文件被管理,如下: 通过 AT 指令更新证书的方式如下: // 获取证书类型 ATSYSMFG?/…

投资策略规划最优决策分析

目录 一、投资策略规划问题详细 二、存在最优投资策略:每年都将所有钱投入到单一投资产品中 (一)状态转移方程 (二)初始条件与最优策略 (三)证明最优策略总是将所有钱投入到单一投资产品中…

android 性能分析工具(03)Android Studio Profiler及常见性能图表解读

说明:主要解读Android Studio Profiler 和 常见性能图表。 Android Studio的Profiler工具是一套功能强大的性能分析工具集,它可以帮助开发者实时监控和分析应用的性能,包括CPU使用率、内存使用、网络活动和能耗等多个方面。以下是对Android …

(UI自动化测试)web自动化测试

web自动化测试 UI自动化测试介绍 自动化测试理论: 图片上的文字等等不能做测试,只能发现固定的bug 工具选择及介绍 浏览器驱动:找元素--核心:驱动(操作元素)--通过代码

Web3与智能合约:区块链技术下的数字信任体系

随着互联网的不断发展,Web3代表着我们迈入了一个去中心化、更加安全和智能的网络时代。作为Web3的核心组成部分,区块链技术为智能合约的出现和发展提供了强有力的基础。智能合约不仅仅是自动化的代码,它们正逐步成为重塑数字世界信任体系的关…

AUTOSAR_EXP_ARAComAPI的7章笔记(6)

☞返回总目录 相关总结:ara::com 与 AUTOSAR 元模型的关系总结 7.4 ara::com 与 AUTOSAR 元模型的关系 在本文档中,我们一直在不涉及具体的AP元模型(其清单部分)的情况下解释 ara::com API的思想和机制,AP元模型是正…

浦语提示词工程实践(LangGPT版,服务器上部署internlm2-chat-1_8b,踩坑很多才完成的详细教程,)

首先,在InternStudio平台上创建开发机。 创建成功后点击进入开发机打开WebIDE。进入后在WebIDE的左上角有三个logo,依次表示JupyterLab、Terminal和Code Server,我们使用Terminal就行。(JupyterLab可以直接看文件夹)…

webgl threejs 云渲染(服务器渲染、后端渲染)解决方案

云渲染和流式传输共享三维模型场景 1、本地无需高端GPU设备即可提供三维项目渲染 云渲染和云流化媒体都可以让3D模型共享变得简单便捷。配备强大GPU的远程服务器早就可以处理密集的处理工作,而专有应用程序,用户也可以从任何个人设备查看全保真模型并与…

统信桌面操作系统V20专业版安装指南

1.概述 统信桌面操作系统安装器用于完成系统安装的任务,本手册会介绍统信UOS的安装环境、配置要求、安装方法,以及系统初始化设置,希望用户根据本文档可以快速高效的完成系统安装。 1.1安装配置要求 您安装系统前需了解安装统信桌面操作系…

16. 指针类型和步长概念问题

1. 项目场景: ➣ Jack Qiao对米粒说:“今天有道友遇到一个问题,举个栗子数组 arr[5] { 0 };道友发现&arr[0] 1与&arr 1打印出来的地址竟然不同。”米粒测试后果然是这样。 2. 问题描述 ☑ 举个栗子:数组 arr[5] { 0…

设计模式-创建型-抽象工厂模式

1.概念 工厂方法模式只能生产一个产品系列,抽象工厂可以生产多个产品系列 2.作用 多个具体产品组成一个产品族(产品系列),一个具体工厂负责生产一个产品族 3.应用场景 系统所需产品间由依赖关系,可以划分为同一产…

20241121 android中树结构列表(使用recyclerView实现)

1、adapter-item的布局 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"wrap_content&…

Kubernetes的pod控制器

文章目录 一&#xff0c;什么是pod控制器二&#xff0c;pod控制器类型&#xff08;重点&#xff09;1.ReplicaSet2.Deployment3.DaemonSet4.StatefulSet5.Job6.Cronjob 三&#xff0c;pod与控制器的关系1.Deployment2.SatefulSet2.1StatefulSet组成2.2headless的由来2.3有状态服…