wifi数传组网之精简mavlink

2023-05-16

1.无人机集群测绘在同一地点同一时间采集一片区域的多光谱数据,经过后期的处理可得到该区域的植被生长情况,本文就是讨论和测试利用wifi数传组网的机制实现多台的无人机集群,组网内的无人机能够单独的进行控制,并可实现测绘的集群功能。

2.系统功能框图

WIFI的局域网方案要考虑两方面

第一通信硬件系统要支持每个无人机能够通过TCP/IP局域网进行组网,一般TCP/IP局域网就是一种路由器为中心节点的星形网络,所有数据都是通过路由器做IP地址转发,那么路由器这个中心节点的数据流动带宽,就是整个网络的数据传输带宽上限,我们平时说的百兆带宽,千兆带宽就是这个意思,千兆的数据容量肯定比百兆大

第二软件系统的结构采用之前修改原版QGC地面站支持一站多机的形式,让它可以发挥TCP/IP的组网效果。这个地面站支持串口连接,TCP连接,UDP连接。而TCP/UDP组网要注意的是:要控制好延时,要精简MAVLINK协议流,要确保链路带宽。

MAVLINK协议流

MAVLink是一种非常轻量级的消息传递协议,用于与无人机(以及机载无人机组件之间)进行通信。MAVLink遵循现代的混合发布-订阅和点对点设计模式:数据流作为主题发送/发布,而配置子协议(如任务协议或参数协议)则是点对点的重传。每个XML文件定义了特定MAVLink系统支持的消息集,大多数地面站和自动驾驶仪实现的参考消息集在common.xml中定义

 MAVLINK数据包格式

 V1.0和V2.0的起始标志位分别是0xfe和0xfd,CRC是为了确保消息的完整性,将对每条消息的最后两个字节进行循环冗余校验,Messge ID就是我们发送的消息集,下图是apm v4.1.0固件的mavlink message id有60条,而我们需要精简的就是这部分地方对应发送的内容

 

 

 因为集群测绘多数需要反馈的是重要的位置信息,速度,姿态,等数据,而光流这些用处不大的信息可以不回传,飞控传输的消息都是根据实际需要进行精简。测绘过程中飞控触发相机拍照之后相机传输照片可以通过外加树莓派和4G模块传输,无需和飞控进行通信,大大减轻了飞控的工作量。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wifi数传组网之精简mavlink 的相关文章

  • 使用 Delphi XE5 for Android 创建 WifiConfiguration

    我正在尝试为 Android 创建 WifiConfiguration 可以设置所有其他属性 但如果我尝试设置 SSID 或 BSSID 则会出现分段错误 11 并且应用程序和 Delphi 会挂起 var WIFIConfig JWifi
  • Android 2.2 wifi热点API

    我需要在 Android 2 2 Froyo 中进行什么 API 调用来创建 Wifi 热点 如网络共享和便携式热点设置项中所示 您可以致电 private boolean setWifiApEnabled WifiConfiguratio
  • 在监控模式下使用 libpcap 嗅探 wifi

    问题陈述 Calling pcap activate 结果是PCAP ERR RFMON NOTSUP错误 即不支持 RF 监控模式 Context 我正在编写一个小型 C 程序 其工作是在监视器模式下监听我的笔记本电脑的 wifi 卡 该
  • 通过 wifi 传输 ipad 到 ipad 文件

    通过 wifi 将文件从一台 ipad 传输到另一台 ipad 的最佳方法是什么 我知道如何处理 wifi 网络连接 但我需要知道将图像 视频等从一台 ipad 传输到另一台 ipad 的最有效方法 您可能想看看https github c
  • 在我的 Android 手机上,socket.io 似乎有延迟

    EDIT 2 我观察到使用相同的行为服务器发送的事件 SSE 参见示例here http cjihrig com blog server sent events in node js 当然 这是一种方式 然而 它在我的 Nexus 5 上似
  • 如何在 python 中连接/断开/配置无线网络?

    我正在寻找是否有一种方法可以在 python 中连接或断开无线网络 最好是一种在我提供密码的情况下适用于公共网络和安全网络的方法 如果我可以配置有关无线的选项 那将是一个额外的好处 例如 查看范围内的所有网络 查看有关范围内的网络的信息 例
  • iOS Swift 以编程方式连接 WiFi 并区分密码错误和范围内没有 WiFi

    NEHotspotConfiguration工作正常 但错误是nil当我尝试连接的 SSID 不可用 超出范围或关闭 或我提交的密码不正确时 我究竟做错了什么 我希望能够区分这两种情况 以便我可以相应地通知用户 代码片段 func conn
  • 尝试在空对象引用上调用虚拟方法“android.os.Looper android.content.Context.getMainLooper()”[重复]

    这个问题在这里已经有答案了 每当我尝试在手机或模拟器上打开应用程序时 我的 Log cat 都会收到此错误 为了让您概述我当前正在做的项目 它是一个记录连接到手机上接入点的设备数据的系统 可以通过屏幕上的按钮打开和关闭这些设备 我想归功于
  • 无法理解 PcapNG 文件中的 802.11 数据帧格式

    I have PcapNG由 Wireshark 创建的文件 我尝试用它来解析python pcapng However I cannot figure out how to reconcile the output I receive f
  • 测量 wifi 到 Iphone/Ipad 的信号强度

    我想从 iOS 设备获取当前的 Wifi 信号强度 Google 搜索仅显示适用于 Android 设备的解决方案 从文献中我了解到 Apple 不允许访问硬件 因此没有人可以通过他们的应用程序以 dbm 形式检索设备的信号强度 它是否正确
  • 解释 802.11 Wireshark 跟踪中的帧控制字节

    我有一个 Wi Fi 捕获 pcap 我正在分析并发现 802 11 规范与 Wireshark 对数据的解释之间存在不一致之处 具体来说 我想要分解的是 2 字节 802 11帧控制 field 取自http www4 ncsu edu
  • 我可以使用 WiFi 在两部未连接路由器的 Android 手机之间传输数据/消息吗?

    我知道如果两个Android手机连接到同一个wifi网络 它们可以实现套接字编程来在它们之间传输数据 但我其实想知道是否可以使用wifi作为两部Android手机之间的传输介质 就像蓝牙一样 使用 Android 2 2 可以在一台设备上创
  • Android:在应用程序中间时从 3G 切换到 WIFI = 网络连接丢失

    我在使用 HTC Legend Android 2 2 时遇到了一个恼人的问题 在 Xperia Galaxy Nexus 等上没有看到此问题 当我在 3G 连接上启动应用程序 获取一些数据 然后进入手机设置并启用 WIFI 时 手机会自动
  • iPhone 在个人热点模式下不发送网络广播/组播

    根据最近的实证研究结果以及网络上的各种帖子 在启用了个人热点的 iPhone 上运行的应用程序似乎无法将广播和 或多播发送到个人热点的网络上 任何人都可以阐明这个问题的原因吗 应用程序 我有一个用跨平台 C 代码构建的 IOS 应用程序 它
  • Wifi和3G同时使用

    对于我的应用程序 我需要来自本地网络和互联网的数据 本地网络 Wifi 无法连接到互联网 因此我必须使用移动连接 例如 3G 但每当我连接到本地网络时 3G 就会停止 询问三星服务后 无法在 UI 中更改该设置 但他们无法告诉我是否有可编程
  • 如何使用 WifiEnterpriseConfig 设置“使用系统证书”

    我想为我的应用程序的用户配置企业 WiFi 网络 因此 用户必须输入用户名和密码 其余的由应用程序处理 身份验证由 RADIUS 服务器 FreeRadius 3 处理 该服务器使用 LetsEncrypt 颁发的证书 因此无需导入我自己的
  • Android Wifi 广播接收器无法按预期工作

    每当手机连接到新的 WiFi 网络时 我都必须获取 WiFi ssid 我注册了以下内容 receiver registerReceiver this mybroadcast new IntentFilter WifiManager SUP
  • 发送 802.11 帧的“帧控制字段”数据的顺序?

    以下是 QoS 数据 FC 字段的位格式 00 01 0001 01000010 前2位代表版本 接下来2位代表类型 接下来4位代表子类型 其中ToDS 0 FromDS 1 保护位 1 那么 上述数据在空中是按照什么顺序通过接口发送的呢
  • 在 iOS 11 上使用 Swift 计算或获取 wifi 强度的方法

    正在寻找一种获取或计算设备 WiFi 强度的方法 见过抓取状态栏的示例 但无法使其在 iOS 11 上工作 func getSignalStrength gt Int let application UIApplication shared
  • 检测 Android 上的网络连接类型

    如何检测 Android 上的网络连接类型 是否通过ConnectivityManager getActiveNetworkInfo getType 答案是否仅限于 Wifi 和移动设备 如果问题是要确定手机的网络是否已连接且速度是否足以满

随机推荐