1、下载Mavlink生成器

1.1 Git clone

//需要在翻墙的网络环境下下载
git clone https://github.com/mavlink/mavlink.git

1.2 进入mavlink目录更新子模块

cd mavlinkgit submodule update --init --recursive

1.3 运行脚本

 python -m mavgenerate

如果电脑安装多个Python版本,需要更换为Python3,参考链接:https://zhuanlan.zhihu.com/p/159483149

2、编辑common.xml文件自定义MavLink

2.1 找到文件common.xml文件

路径:/mavlink/message_definitions/v1.0/common.xml

在进行自定义时注意,消息id不能重复!

找到需要定义的位置:

<!-- 自定义消息流 --><message id="10" name="SET_PARAMETER"><description>2022-04-30 19:50 BY jiangchangsheng Mavlink Test.</description><field type="uint8_t" name="target_system">The system setting the mode</field><field type="uint8_t" name="base_mode" enum="MAV_MODE">The new base mode.</field><field type="uint32_t" name="custom_mode">The new autopilot-specific mode. This field can be ignored by an autopilot.</field></message>

2.2 运行mavgenerate.py

//路径为 mavlink文件夹
// python -m mavgenerate~/mavlink_test/mavlink$  python -m mavgenerate

如下图完成操作:

生成的文件:

打开common文件夹,搜索生成的头文件:

打开生成的common.h头文件:

Ctrl +F搜索自定义消息的参数:


将生成的头文件放置项目文件,如下文件夹中:

2.3 替换文件中comm.h ardupilotmega.h standard.h文件内容

2.3.1 添加校验位CRC

2.3.2 添加头文件

2.3.3 添加MAVLINK_MESSAGE_INFO

2.3.4 添加MAVLINK_MESSAGE_NAMES

下面这两个文件的操作流程是一样的


3、添加至项目中

3.1 编辑mavlink_receiver.h文件

3.2 编辑mavlink_receiver.cpp文件



3.3 编译文件

make px4_fmu-v5_default

4、 地面站添加验证消息

4.1 添加头文件

4.2 UI界面添加按钮


//下面是验证消息
void widget::on_btn_37_clicked()
{mavlink_message_t msg;mavlink_msg_set_parameter_pack_chan(100,1,0,&msg,6,6,6);qDebug()<<"消息id:"<<msg.msgid;qDebug()<<"系统id:"<<msg.sysid;//注意,此处有可能发送失败,所以请多次尝试uint8_t buffer[MAVLINK_MAX_PACKET_LEN];int len = mavlink_msg_to_send_buffer(buffer, &msg);//打包为Buff//发送QByteArray SenTemp;SenTemp.resize(len);for(int i=0;i<len;i++) {SenTemp[i]=buffer[i];}QByteArrayList SenTemplist;SenTemplist.append(SenTemp);Serial.write(SenTemp);
}

运行代码

利用地面站给无人机发送消息,若一切正常,无人机收到消息后将会由蜂鸣器发出声音!

//下载代码:
make px4_fmu-v5_default upload

这里利用串口实现和地面站的连接,利用数传通信!

测试视频

自定义Mavlink消息效果测试

新建Mavlink消息相关推荐

  1. matlab发送mavlink消息

    主要介绍了通过matlab脚本实现UDP发送mavlink消息,为后面matlab计算,与Optitrack联合调试,控制无人机做准备. 示例演示效果链接为 matlab通过UDP协议发送mavlin ...

  2. Ardupilot 增加一个mavlink消息(翻译官网)

    目录 目录 摘要 第一: 翻译官网资料 增加一条新的mavlink消息(Adding a new MAVLink Message) 第二: Mavlink代码信息 (1)分析姿态包数据 (2)分析挂载 ...

  3. QGC接收PX4自定义Mavlink消息(二)qgc接收

    这里补充一些,我的px4版本是1.11.0dev,在ubuntu18.04上开发,qgc为目前官网最新的版本,在windows上上开发,大家的源码会因为版本差异而有少许区别,所以代码复制粘贴编译肯定会 ...

  4. QGC添加自定义组件和发送自定义MAVLINK消息

    QGC添加自定义组件和发送自定义MAVLINK消息 一.添加自定义组件 1.1 在飞行界面添加组件 1.2 实现组件事件 1.3 在MOCK模拟链接中实现验证 1.4 验证 二.自定义MAVLINK消 ...

  5. PX4读取串口消息,并通过MAVLINK发送给地面站

    参考:(131条消息) PX4飞控读取UART串口信息通过Mavlink传给QGC地面站显示_XXX_UUU_XXX的博客-CSDN博客_px4串口2 PX4版本:1.12.1-3 QGC版本: 4. ...

  6. Mavlink协议分析

    阿木社区:转载注意出处 http://www.amovauto.com Pixhawk/APM都是采用MAVLINK协议实现的飞控的数据链路传输.先简单介绍下mavlink协议.Mavlink协议最早 ...

  7. QGC地面站Mavlink生成和MockLink模拟收发通讯

    Mavlink生成和收发通讯 1. 演示效果 2. Mavlink 生成 2.1 安装python3 2.2 Mavlink下载和运行 2.3 xml文件修改 2.4 自定义Mavlink生成 3. ...

  8. Mavlink - 无人机通讯协议

    http://qgroundcontrol.org/mavlink/start mavlink协议介绍 https://pixhawk.ethz.ch/mavlink/ 消息简介 MAVLink简介 ...

  9. (无人机方向)ros小白学习之路(五)mavros消息的订阅和发布与offboard例程仿真与解析

    文章目录 前言 应用mavros控制无人机消息流 以mavros中setpoint_position/local为例子 1:确定话题的功能和消息类型 如果快速找到对应的mavlink消息 2:确定话题 ...

最新文章

  1. 轻量级的项目管理工具-Leangoo
  2. Java 爬虫--类似Python的requests库--HttpClient, HttpAsyncClient--Maven
  3. windows exec: gcc: executable file not found in %PATH%
  4. 移动端网站优化该注意哪些重点?
  5. 通过Runtime源码了解关联对象的实现
  6. 浏览器中xhr选项是做什么用的呢_XHR和AJAX终于搞懂了!!
  7. 网易云信携手小天才Z6手表,让安全“看得见”
  8. JAVA 虚拟机 (SE 7)【待更】
  9. Hadoop3 Hive Spark完整安装与实践
  10. 漫步数学分析九——级数
  11. 心语收集13:有时候我真想忘了你,只记得这个世界,然而,我常常忘了整个世界,只记得你。...
  12. 服务器虚拟化的毕业设计,云桌面技术研究与应用毕业设计论文+开题报告+翻译+源码...
  13. 实现发送邮件动态html内容的几种思路
  14. 【kmp专题】牛客网子串(进制转化+kmp/string.find())
  15. 解决Specifying a namespace in include()withou providing an app_name
  16. 不用校园网如何下载论文文献|DOI号|文献免费下载
  17. 毛笔行书书法-黄鹤楼
  18. “ 迎奥运、勤学习、树新风”演讲比赛主持词
  19. [招聘信息]Automation Engineer@EMC
  20. Cover Letter实用指南

热门文章

  1. python发送notes邮件_使用python 驱动 lotus notes发送邮件 | 学步园
  2. OKR制定实例大全--让你制定OKR不发愁
  3. php 项目总结,项目总结
  4. 国仁网络资讯:视频号如何快速热门涨粉、引流变现;超详细运营教程。
  5. java filewriter_Java IO: FileReader和FileWriter
  6. python工具箱—Excel与List互转
  7. w3school没有java的教程_javafx w3school教程
  8. 【问题解决】应用程序无法正常启动0xc000007b的解决方案(非DX修复)
  9. 如何做好企业内部培训?
  10. linux安装prometheus-webhook-dingtalk(二)