MP地面站二次开发教程(三)Mavlink通讯协议(5)航点的上传

2023-05-16

目录

1、航点传输协议


航点的规划是地面站的核心功能,航点的规划分为自动规划和手动规划。自动规划是根据设定规则自动规划好航点上传。手动规划是用鼠标在地图上点击规划航点。航点的规划具有逻辑验证,不符合逻辑的航点,地面站应该可以自动告警剔除。我们在设计之初就充分考虑逻辑问题,来保证航点上传的准确性。 初步界面规划如下:
其中家的位置是航点规划比较重要的一环。整个航点规划也是应该在GPS信号良好的情况下进行。 和MP地面站一样我们采用了DataGridView这个控件来显示航点信息,比如航点指令,航点坐标,航点高度等等,是可以显示并且实时修改的。 主要用到这个DataGridView和一个链表来保存航点信息,通过Mavlink的航点传输协议来完成航点的传输。

1、航点传输协议

https://mavlink.io/en/protocol/mission.html 这个网站介绍了mavlink协议的航点传输协议。如图下所示:

1 :发送航点数量:

 port.setWPTotal(totalwpcountforupload); // + home
      --->generatePacket((byte) MAVLINK_MSG_ID.MISSION_COUNT, req);//发送航点数量
      --->if (buffer.msgid == (byte) MAVLINK_MSG_ID.MISSION_REQUEST)//得到控制板的航点请求应答信号

 2 :发送0号航点家的位置:

  var homeans = port.setWP(home, (ushort)a, MAVLink.MAV_FRAME.GLOBAL, 0, 1, use_int);
      --->generatePacket((byte) MAVLINK_MSG_ID.MISSION_ITEM, req);//发送这个航点
      ---> if (buffer.msgid == (byte) MAVLINK_MSG_ID.MISSION_ACK)//得到控制板的航点接收到应答信号,表示该航点发送成功

3 :循环发送剩下航点:

 MAVLink.MAV_MISSION_RESULT ans = port.setWP(temp, (ushort)(uploadwpno), frame, 0, 1, use_int);
      --->generatePacket((byte) MAVLINK_MSG_ID.MISSION_ITEM, req);//发送这个航点
      ---> if (buffer.msgid == (byte) MAVLINK_MSG_ID.MISSION_ACK)//得到控制板的航点接收到应答信号,表示该航点发送成功

上面的在发送航点的协议里面,第一发送航点总数,等待航点请求应答信号,第二发送每个航点并且等待控制板发出应答信号。协议还是比较简单的,在发送和应答设置了超时时间来确保航点发送的实时性。航点上传的协议就是上面这样,MissionPlanner里面也是这样操作,查找相关的关键词也可以找到相关流程。注意:航点的规划和上传注意要在GPS有信号的情况下完成的,尤其要注意GPS的搜星数量和HDOP这个水平定位因子(要在2以下),表示航线规划和自动巡航才可以正常进行
 

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

MP地面站二次开发教程(三)Mavlink通讯协议(5)航点的上传 的相关文章

  • 微信公众号本地开发调试 - 无公网IP,内网穿透

    文章目录 前言1 配置本地服务器2 内网穿透2 1 下载安装cpolar内网穿透2 2 创建隧道 3 测试公网访问4 固定域名4 1 保留一个二级子域名4 2 配置二级子域名 5 使用固定二级子域名进行微信开发 前言 在微信公众号开发中 x
  • opencv图像通道 8UC1?

    转载自博主 64 马卫飞 https blog csdn net maweifei article details 51221259 CV lt bit depth gt S U F C lt number of channels gt b
  • gazebo中urdf、xacro、sdf模型文件关系

    gazebo的模型是用xml格式的文本文件来描述的 具体有三种形式 xff1a urdf xacro sdf urdf urdf是老的gazebo模型格式 xff0c 本身有一些缺陷 xff0c 也缺一些功能 但是网上很多gazebo模型都
  • 1_树莓派开启ssh服务

    树莓派3 开启 SSH 服务 原文链接 xff1a https blog csdn net qq 16775293 article details 88385393 文章目录 1 使用管理工具2 启动服务3 自动启动服务 3 1 Windo
  • 树莓派4b串口通信配置

    树莓派4b本身是两个串口 xff0c 运行ls dev al如下 xff1a 请注意 xff1a 在默认状态下 xff0c serial0 就是GPIO14 15 是映射到ttyS0的 xff08 就是MINI串口 xff1a dev tt
  • Pandas第三次作业20200907

    练习1 读取北向 csv 指定trade date为行索引 查看数据的基本信息 有无缺失值 对其缺失值进行处理 删除缺失值所在行 查看数据的基本信息 查看数据是否清洗完毕 index列没啥用 将index列删除 观察数据是否有重复行 将重复
  • 新手入门板卡硬件调试

    硬件电路调试步骤 新手入门板卡硬件调试一看 观察焊接情况二测 测量阻抗三接触式上电调试遇到的问题一般解决思路电源供电运放出现震荡测量时GND的选取振铃现象 新手入门板卡硬件调试 一看 观察焊接情况 1 拿到板卡后 xff0c 首先观察下焊接
  • 用shell 命令获取占用cpu 最多的前五位

    通常情况下使用ps axu 来获得系统中所有进程占用资源情况 xff0c 通常也可以使用top 命令来动态的获得系统中资源占用最多的进程 假设我们使用ps aux gt file tmp来获取linux系统中的进程占用资源情况 xff0c
  • 关于准确率accuracy和召回率recall的理解

    假设有100个样本 xff0c 其中正样本70 xff0c 负样本30 xff0c 这个是由数据集本身决定的 xff0c 机器要做的就是判别这100个样本中哪几个样本是正样本 xff0c 哪几个样本是负样本 现在机器做出了预测 xff1a
  • pytorch BERT文本分类保姆级教学

    pytorch BERT文本分类保姆级教学 本文主要依赖的工具为huggingface的transformers xff0c 更详细的解释可以查阅文档 定义模型 模型定义主要是tokenizer config和model的定义 xff0c
  • class balanced loss pytorch 实现

    cb loss pytorch 实现 xff0c 可直接调用 参考 xff1a https github com vandit15 Class balanced loss pytorch blob master class balanced
  • 解决不平衡数据集问题

    解决不平衡数据集问题 数据不平衡通常反映数据集中类的不均匀分布 例如 xff0c 在信用卡欺诈检测数据集中 xff0c 大多数信用卡交易都不是欺诈 xff0c 只有很少的类是欺诈交易 这使得我们在欺诈类和非欺诈类之间的比例约为50 1 迄今
  • matlab报错解决---当前文件夹或MATLAB路径中未发现xxxx.m,但它位于xx\xxx\xxx\路径下

    解决 xff1a 选定为找到的文件 xff0c 右键 xff0c 找到 选择文件夹和子文件夹 选项 xff0c 添加到路径即可 xff0c 之后文件会变亮色 xff0c 不是灰色 修改之后 xff0c 发现没有 添加路径 的选项了 最后解决
  • sdf模型插入gazebo_ros_control插件

    gazebo ros control目前只支持老版的urdf模型 xff0c 官方教程 xff1a http gazebosim org tutorials tut 61 ros control sdf模型怎么办呢 xff1f 回答 xff
  • PreparedStatement 在mysql下中文乱码解决方案

    在顶目中无意中碰到PreparedStatement 在存DB时出现乱码 xff0c 困扰了好久终于解决问题 问题代码如下 pstmt 61 con prepareStatement INSERT OFFLINE pstmt setStri
  • 2013年终总结

    2013年即将过去 xff0c 回顾这一年 xff0c 有得有失 xff0c 有喜有悲 xff0c 些许记忆碎片留在脑海中 简单做个总结 xff0c 也算划上一个完美的句号 xff0c 再迎接充满挑战的2014 xff01 项目 一年过来
  • 程序员的生活,其实苦不堪言

    前一天 A 下班前把这个代码发给我 B 好的 xff01 第二天 A 都他妈中午了 xff0c 代码怎么还没发过来 xff1f B 我他妈还没下班呢 xff01 程序猿的真实写照 曾经刚参加工作 xff0c 接手一个项目的维护 xff0c
  • 不容错过的用户标签全面解读。建议收藏!

    过去几年来 xff0c 随着我国整体人口红利优势不再 xff0c 市场竞争加剧 xff0c 获客成本不断飙升 xff0c 互联网也告别增长进入存量时代 xff0c 品牌方的营销目标也从最大化追求用户数量规模转变为追求用户质量的精细化营销上
  • 【书写makefile】相关符号介绍

    本文将介绍一下几种符号 xff1a 61 43 61 61 61 makefile中 xff0c 的意思是取变量的意思 xff0c 比如 xff0c a 61 4 那么在后面的语句中 xff0c a 就代表的是取a的值 如果给a定义的是个宏
  • python人工智能技术

    人工智能 xff08 AI xff09 已成为当今世界的热门话题 xff0c 它的应用范围越来越广泛 其中 xff0c Python成为AI开发中最受欢迎的编程语言之一 Python提供了许多功能强大的库和框架 xff0c 大大简化了开发人

随机推荐

  • 利用X-CTU软件给P900数传配置参数

    转自 xff1a 70条消息 P900数传参数配置 落体偏东 CSDN博客 ATS104设置网络号 xff08 设置主从之间通讯连接的密码 xff09 ATS105设置单元号 xff08 给自己使用的数传进行编号 xff0c 防止主从混乱
  • px4添加自己编写的代码并编译

    1 在px4项目下的src文件夹下的modules文件夹中创建一个文件夹 xff0c 如图我创建了一个position control文件夹 xff0c 在该文件夹中添加自己写的代码程序 xff0c 同时添加一个CmakeLists txt
  • 思岚A1M8激光雷达-ubuntu18.04-slam建图参考

    Rplidar A1 A2使用及Hector SLAM建图 NouriXiiX的博客 CSDN博客 激光雷达初体验 Ubuntu 18 04 43 思岚科技 RPLIDAR A1M8 43 ROS 上手使用 银时大魔王的博客 CSDN博客
  • intel Realsense D/T系列 kalibr标定

    kalibr官方源码GitHub ethz asl kalibr The Kalibr visual inertial calibration toolbox 鼠标下拉找到install follow the install wiki pa
  • gazebo仿真遇到的FCU问题

    当使用roslaunch xxx launch命令进行gazebo仿真时出现 FCU Preflight Fail Accel 0 uncalibrated或者FCU Preflight Fail Baro Sensor 0 missing
  • 大广角USB摄像头选用指南

    起因是我要做一个二维码引导无人机降落的实验 四旋翼无人机搭载单目下视摄像头 xff0c 用于识别地面的二维码 我选择摄像头的标准基本上只有一个 xff1a 视场角越大越好 为此查阅了一些资料 xff0c 买了很多镜头和底板 xff0c 有了
  • 一:XTDrone平台上将视觉SLAM2与gazebo仿真集合

    1 XTDrone仿真平台配置 参考官方教程 xff0c 基本没大问题 仿真平台基础配置 语雀 依赖安装sudo apt install y n https www yuque com xtdrone manual cn basic con
  • 线程和进程的区别

    不少刚看到这两个词 xff08 特别是不是计算机专业的 xff09 小伙伴可能会比较疑惑 xff0c 线程和进程有什么区别 xff0c 网上有许多专业性的解答 xff0c 但是既然不少小伙伴不是计算机专业的 xff0c 那就结合例子做个大概
  • Pixhawk烧写自己开发过的1.11.0固件连接不上QGC

    最近在更改代码烧写固件后 xff0c 飞控就连接不上地面站 xff0c 以为是飞控坏了 xff0c 烧写了最新版的固件发现有可以连接到地面站了 xff0c 又烧写了同一版本的其他代码发现也可以连接qgc xff0c 应该是自己写的代码某个部
  • C标准库string.h源码(简单版)

    C标准库string h源码 xff08 简单版 xff09 strcpy strncpystrcat strncatstrcmp strncmpstrchr strrchr strchrnul strstrmemcpy memmove s
  • 二进制浮点数以及二进制浮点数算术运算

    二进制浮点数以及二进制浮点数算术运算 二进制浮点数表示半精度浮点数单精度浮点数双精度浮点数特殊情况 浮点数的运算步骤一 对阶二 尾数运算三 结果规格化左规操作右规操作 四 舍入处理五 溢出判断六 例子二进制浮点数加法二进制浮点数减法二进制浮
  • SMPL源代码实现和模型解读

    对于SLAM的工作已经告一段落了 xff0c 传统的人体动态三维重建也要告一段落了 xff0c 由于课题研究的方向是基于图像 视频的人体三维重建 xff0c 三维shape pose的恢复 xff1a 所以今天和大家交流的是SMPL模型 x
  • 自主悬停&高度融合 作者:nieyong

    自主悬停 amp 高度融合 作者 xff1a nieyong 自主悬停是Crazepony玩家问得最多的问题 xff0c 也是技术难度最高的问题 首先我们明确什么是自主悬停 xff1f 下面是一位资深航模玩家对于自主悬停的解释 飞行器能够悬
  • 如何高效地阅读技术类书籍与博客

    原文地址 xff1a http www nowamagic net librarys veda detail 2050 如何高效地阅读技术类书籍与博客 影像阅读法 阅读是自我提升的一个有效方法 xff0c 阅读书籍 阅读博客都是我们技术提升
  • MP地面站二次开发教程(一)开发环境搭建和编译

    目录 基于Mavlink的上位机地面站开发教程 第一节 开发环境搭建 1 预编译 xff08 源码尽量放到非中文目录下面 xff09 2 初次编译 3 删除这个speech引用 xff0c 重新引用这个speech包 每个人的环境不一样 x
  • MP地面站二次开发教程(三)Mavlink通讯协议(1)

    目录 1 协议介绍 消息结构 消息解析 消息数据流 2 消息解析 3 指令发送 Mavlink主要是飞控和地面站之间的消息指令发送 xff0c 包含地面站解析飞控发来的mavlink数据流 xff0c 和地面站向飞控发送mavlink指令
  • pdf嵌入字体(不用adobe pdf打印机)

    外文会议 期刊投稿一般要求pdf中的字体应当是嵌入状态 xff0c 避免其他电脑缺失字体导致pdf文字无法正常显示 1 检查字体是否嵌入 可以用Adobe Reader或者Acrobat等pdf阅读器打开后 xff0c 查看 属性 gt 字
  • MP地面站二次开发教程(三)Mavlink通讯协议(2)协议使用

    目录 1 协议移植 2 协议代码框架 1 协议移植 移植MAVLINK库 xff0c 在写新的代码的时候添加到项目工程即可 2 协议代码框架 理解三个线程1 主界面UI线程 2 数据读取线程 3 MAVLINK数据填充线程 主要的类的理解
  • MP地面站二次开发教程(三)Mavlink通讯协议(4)地面站数据显示调试及其指令填充

    目录 1 利用SimpleExample和Mavlink inspector的调试使用 2 Mavlink设置模式指令的填充 3 Mavlink控制指令的填充 4 MAV CMD 在地面站做一些显示和指令写入的时候 xff0c 因为PX4和
  • MP地面站二次开发教程(三)Mavlink通讯协议(5)航点的上传

    目录 1 航点传输协议 航点的规划是地面站的核心功能 xff0c 航点的规划分为自动规划和手动规划 自动规划是根据设定规则自动规划好航点上传 手动规划是用鼠标在地图上点击规划航点 航点的规划具有逻辑验证 xff0c 不符合逻辑的航点 xff