首页 > 其他分享 >大疆上云API连接遥控器和无人机

大疆上云API连接遥控器和无人机

时间:2025-01-09 18:59:40浏览次数:3  
标签:focus maintain 大疆 API 无人机 遥控器 zoom

文章目录

1、部署大疆上云API

关于大疆上云API的部署,可以看我写的另一篇文章,大疆上云API基于源码部署-CSDN博客。或者看官网上云API (dji.com),里面也有相关的部署教程。注意了,阅读本篇文章,需要看一下大疆上云API基于源码部署-CSDN博客,这篇文章。不然本文章提到的上云API后台管理界面,EMQX管理界面是什么可能都一头雾水。

关于如何连接我们自己部署的上云API

关于如何连接我们自己部署的上云API,大家可以看官网上云API (dji.com),官网有视频教程,建议先看一遍官网,然后再看以下这篇文章,这篇文章也是根据官网来进行学习的,只不过是记录了我在连接遥控器的这个过程中遇到的一些问题,方便我后面排查问题。

在这里插入图片描述
在这里插入图片描述

2、开启无人机和遥控器并连接自己部署的上云API

下面是遥控器的界面,打开 pilot 2,进入主页面,点击云服务进入。

在这里插入图片描述

屏幕像手机一样下拉,保证遥控器跟电脑连的是同一个WiFi或者热点!!!保证遥控器跟电脑连的是同一个WiFi或者热点!!!保证遥控器跟电脑连的是同一个WiFi或者热点!!!
在这里插入图片描述
点击类似云的那个图标
在这里插入图片描述
在这里插入图片描述

输入前端访问地址(默认地址:http://ip:8080/pilot-login ,此处“ip”需要替换为用户实际使用的ip地址。),点击右上角的“连接”按钮进入。
在这里插入图片描述
输入完成版之后,点击右上角的连接按钮。
在这里插入图片描述
连接成功之后,会进入一个登录界面,如果是源码部署,用户名和密码默认会帮我们填上的。直接点击几登录即可。
在这里插入图片描述
这段文字说明结合下面的一张图片看,如果主页面显示 Connected,说明已经登录成功,遥控器已经连接上 emqx 服务器,并且开始推送数据。现在demo 就已经跑起来了,你可以点击遥控器上的返回按钮返回主页面了,只要不点击右上角的 Log Out 按钮,你就仍然处于登录状态。当Test Group One中出现Connected。说明遥控器成功连接到我们部署的上云API了。

如果遥控器和无人机没有对频的情况下即只有遥控器没有无人机的情况下

如果出现device not connect说明遥控器没有连接无人机。也就是说无人机可能没开机。
在这里插入图片描述
电脑端,登录后台管理界面http://localhost:8080/project,然后在后台管理界面也可以看到无人机没有连接,遥控器连接上了。
在这里插入图片描述
在这里插入图片描述
回到遥控器,点击返回按钮,回到登录界面。然后,我们开启无人机,让遥控器和无人机拦截上。
在这里插入图片描述

如果遥控器和无人机已经对频好了的情况下

你已经可以在主页面看到工作空间的信息了,只要字体是深黑色,说明你依旧处于登录状态,遥控器以及飞机的数据会持续的推送中。如果想要退出工作空间,只需要再次点击进入,然后点击右上角的退出按钮就可以退出了,遥控器和飞机就不会再推送数据了。连接上遥控器之后,根据下面的图片步骤,重新进入登录界面。
在这里插入图片描述
因为没有点击退出登录,所以上面图片那里直接点击的时候,就直接省去了登录步骤了,能够直接进入下面的图片界面,这段后面的文字结合下面的图片看,刚进入的时候可以看到Remote Control Sn:遥控器的SN码。Aircraft Sn:飞机的SN码。然后点击图片中红色箭头指的那里,绑定无人机。
在这里插入图片描述
在这里插入图片描述

如果不绑定,电脑端的页面看到的还是,遥控器连接了,飞机还是没有连接上。
在这里插入图片描述
绑定成功之后,在后端即电脑端的页面看到的还是,遥控器连接了,飞机也连接上了。
在这里插入图片描述
在这里插入图片描述
到这里说明无人机和遥控器都连接上我们自己部署的上云API了。

4、订阅无人机或遥控器的主题信息

4.1、订阅无人机实时返回的数据如经纬度信息等

登录emqx的管理界面,http://localhost:18083/,在首页我们可以看到20多个主题和订阅数
在这里插入图片描述
我们点击26主题数那里,可以发现对应的主题列表。看到主题列表的时候,我们可以到官网找对应的主题说明进行查找订阅。
在这里插入图片描述
上云API (dji.com),可以到官网这里找对应的主题说明。
在这里插入图片描述
官网上说的类似thing/product/{device_sn}/osd这个,{device_sn} 表示该物模型属性的所属设备的 SN ,这里可以是遥控器、也可以是无人机的SN。所以,在emqx管理页面中直接搜索osd可以看到,对应的主题会有两个,一个是遥控器的主题,一个是无人机的主题。如下图所示,图片中的SN码我模糊处理了,如果想要订阅的主题是,无人机还是遥控器的主题,通过遥控器那里看一下就知道了,文章上面连接的时候也说过这个,具体看一下就知道了,总之这个SN码可以通过遥控器找到。可以在emqx管理界面直接找到对应的主题赋值即可。
在这里插入图片描述
在这里插入图片描述
使用MQTTX客户端订阅,至于MQTTX客户端如何使用,看我的另一篇文章EMQX允许匿名访问和关闭匿名访问_emqx匿名访问-CSDN博客,可以看到对应的信息内容。
在这里插入图片描述
订阅成功之后,每隔一段时间就会收到无人机返回的信息
在这里插入图片描述
以下是无人机返回的信息详细字段

{
  "bid": "00000000-0000-0000-0000-000000000000",
  "data": {
    "66-0-0": {
      "gimbal_pitch": 0,
      "gimbal_roll": 0,
      "gimbal_yaw": -79,
      "payload_index": "66-0-0",
      "zoom_factor": 0.56782334384858046
    },
    "activation_time": 1684465935,
    "attitude_head": -79,
    "attitude_pitch": 4.3,
    "attitude_roll": 0,
    "battery": {
      "batteries": [
        {
          "capacity_percent": 60,
          "firmware_version": "08.75.02.17",
          "high_voltage_storage_days": 0,
          "index": 0,
          "loop_times": 34,
          "sn": "4ERPKCSEA1941Q",
          "sub_type": 0,
          "temperature": 35.2,
          "type": 0,
          "voltage": 15568
        }
      ],
      "capacity_percent": 60,
      "landing_power": 0,
      "remain_flight_time": 0,
      "return_home_power": 0
    },
    "cameras": [
      {
        "camera_mode": 0,
        "liveview_world_region": {
          "bottom": 0.572773039340973,
          "left": 0.41576647758483887,
          "right": 0.547674596309662,
          "top": 0.4417940080165863
        },
        "payload_index": "66-0-0",
        "photo_state": 0,
        "record_time": 0,
        "recording_state": 0,
        "remain_photo_num": 4464,
        "remain_record_duration": 0,
        "wide_calibrate_farthest_focus_value": 26,
        "wide_calibrate_nearest_focus_value": 75,
        "wide_exposure_mode": 1,
        "wide_exposure_value": 16,
        "wide_focus_mode": 0,
        "wide_focus_state": 0,
        "wide_focus_value": 24,
        "wide_iso": 7,
        "wide_max_focus_value": 75,
        "wide_min_focus_value": 26,
        "wide_shutter_speed": 26,
        "zoom_calibrate_farthest_focus_value": 26,
        "zoom_calibrate_nearest_focus_value": 75,
        "zoom_exposure_mode": 1,
        "zoom_exposure_value": 16,
        "zoom_factor": 7,
        "zoom_focus_mode": 0,
        "zoom_focus_state": 0,
        "zoom_focus_value": 24,
        "zoom_iso": 7,
        "zoom_max_focus_value": 75,
        "zoom_min_focus_value": 26,
        "zoom_shutter_speed": 26
      }
    ],
    "distance_limit_status": {
      "distance_limit": 8000,
      "is_near_distance_limit": 0,
      "state": 1
    },
    "elevation": 0,
    "exit_wayline_when_rc_lost": 0,
    "firmware_version": "10.01.0017",
    "gear": 1,
    "height": 1881.01611328125,
    "height_limit": 500,
    "home_distance": 0,
    "horizontal_speed": 0,
    "is_near_height_limit": 0,
    "latitude": 0,
    "longitude": 0,
    "maintain_status": {
      "maintain_status_array": [
        {
          "last_maintain_flight_sorties": 0,
          "last_maintain_flight_time": 0,
          "last_maintain_time": 0,
          "last_maintain_type": 1,
          "state": 0
        },
        {
          "last_maintain_flight_sorties": 0,
          "last_maintain_flight_time": 0,
          "last_maintain_time": 0,
          "last_maintain_type": 2,
          "state": 0
        },
        {
          "last_maintain_flight_sorties": 0,
          "last_maintain_flight_time": 0,
          "last_maintain_time": 0,
          "last_maintain_type": 3,
          "state": 0
        }
      ]
    },
    "mode_code": 0,
    "night_lights_state": 0,
    "obstacle_avoidance": {
      "downside": 1,
      "horizon": 1,
      "upside": 1
    },
    "position_state": {
      "gps_number": 0,
      "is_fixed": 0,
      "quality": 0,
      "rtk_number": 0
    },
    "rc_lost_action": 2,
    "rth_altitude": 100,
    "storage": {
      "total": 60082000,
      "used": 14325000
    },
    "total_flight_distance": 899443.07084439753,
    "total_flight_sorties": 204,
    "total_flight_time": 123809.71723263711,
    "track_id": "",
    "vertical_speed": 0,
    "wind_direction": 0,
    "wind_speed": 0
  },
  "tid": "00000000-0000-0000-0000-000000000000",
  "timestamp": 1736411578239,
  "gateway": "5YSZKCC00212VA"
}

4.2、订阅遥控器返回的数据如经纬度等

在这里插入图片描述
在这里插入图片描述
以下是遥控器返回的信息详细字段

{
  "bid": "00000000-0000-0000-0000-000000000000",
  "data": {
    "app_version": "170507",
    "capacity_percent": 73,
    "height": 0,
    "latitude": 25.071488888301314,
    "longitude": 102.7189911396629,
    "wireless_link": {
      "4g_freq_band": 5.8,
      "4g_gnd_quality": 0,
      "4g_link_state": 0,
      "4g_quality": 0,
      "4g_uav_quality": 0,
      "dongle_number": 0,
      "link_workmode": 0,
      "sdr_freq_band": 5.8,
      "sdr_link_state": 1,
      "sdr_quality": 5
    }
  },
  "tid": "00000000-0000-0000-0000-000000000000",
  "timestamp": 1736411740242,
  "gateway": "5YSZKCC00212VA"
}

后续会考虑写一篇JS如何订阅EMQX发布的主题的文章,毕竟拿到无人机这个实时的经纬度信息,我们如果在三维地图或者二维地图开发时,可以让无人机飞行,将实时拿到的无人机经纬度在地图上更新显示,类似地图中的某一点根据无人机飞行实时移动位置。还是需要使用到的。

标签:focus,maintain,大疆,API,无人机,遥控器,zoom
From: https://blog.csdn.net/m0_62317155/article/details/145034552

相关文章

  • API接口详解及其在电子商务中的应用研究
    API(应用程序编程接口)是现代软件开发中的重要组成部分,它们允许不同软件系统之间进行通信和数据交换。特别是在电子商务领域,API的应用极大地提升了系统的互操作性、可扩展性和灵活性。本文将详细介绍API接口的定义、工作原理、分类,并探讨其在电子商务中的具体应用。一、API接口的定......
  • BAPI
    预制发票:BAPI_INCOMINGINVOICE_PARKDATA:ls_headerTYPEbapi_incinv_create_header,lt_itemdataTYPETABLEOFbapi_incinv_create_item,ls_itemdataTYPEbapi_incinv_create_item,lt_taxdataTYPETABLEOFbapi_incinv_creat......
  • 深度剖析淘宝 API:《从接入到实战的全流程技术指南》
    目录淘宝详情接口概述商品信息获取与展示用户体验优化与转化率提升数据监控、分析与优化调整     1.接口定义与功能淘宝详情接口是淘宝开放平台提供的一种API接口,用于获取商品详细信息。通过调用该接口,可以获取商品的标题、价格、图片、描述、规格等......
  • 示例代码对API接口的作用
    引言在现代软件开发中,API(应用程序编程接口)扮演着至关重要的角色。API允许不同的软件系统之间进行通信和数据交换,从而实现功能的扩展和应用的集成。示例代码作为API文档的重要组成部分,对开发者理解和使用API接口具有显著的作用。本文将详细探讨示例代码在API接口中的作用,并通过实......
  • k8s api请求怎么请求
    在Kubernetes中,API请求的处理主要由APIServer负责。以下是Kubernetes处理API请求的基本流程:###APIServer的角色-**核心组件**:APIServer是Kubernetes控制平面的核心组件,负责接收和处理来自客户端的所有请求。-**请求入口**:所有对Kubernetes集群的操作请求都......
  • webapi 集成 log4net 写入 ElasticSearch
    log4net.config<log4net><appendername="RollingLogFileAppender"type="log4net.Appender.RollingFileAppender"><!--定义文件存放位置--><filevalue="log/"/><appendToFilevalue="true"......
  • 设计一篇利用python爬虫获取1688详情API接口的长篇软文
    在当今数字化浪潮席卷全球的背景下,数据已成为企业、研究机构乃至个人获取信息、洞察趋势、做出决策的关键资源。而1688作为国内领先的B2B电子商务平台,汇聚了海量的供应商和采购商,其商品详情数据蕴含着巨大的商业价值和研究意义。如何高效、便捷地获取这些数据?Python爬虫技......
  • 获取唯品会商品详情 item_get API 接口
    引言在电商行业蓬勃发展的今天,各大平台纷纷构建起自己的商品数据壁垒,以期在激烈的市场竞争中占据优势。唯品会作为国内知名的特卖电商平台,凭借其独特的商业模式和丰富的商品资源,吸引了大量消费者的目光。对于企业、开发者、市场研究人员等群体而言,能够获取唯品会商品的详细信......
  • 身份证实名认证接口核验显示库无原因?Java身份认证API
    随着信息技术的日新月异,互联网已经深深融入了我们生活的方方面面。从购物、娱乐到工作学习,互联网平台的便捷性为我们的生活带来了前所未有的改变。然而,伴随着这种迅猛发展的是一些不可忽视的安全隐患。为了构建更加健康、安全、可信的网络环境,越来越多的互联网平台开始推行......
  • api返回固定格式
    namespacejxc.Api;publicclassApiResult{///<summary>///是否正常返回///</summary>publicboolSuccess{get;set;}///<summary>///处理消息///</summary>publicstring?Message{get;set;}}public......