新建Mavlink消息
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消息相关推荐
- matlab发送mavlink消息
主要介绍了通过matlab脚本实现UDP发送mavlink消息,为后面matlab计算,与Optitrack联合调试,控制无人机做准备. 示例演示效果链接为 matlab通过UDP协议发送mavlin ...
- Ardupilot 增加一个mavlink消息(翻译官网)
目录 目录 摘要 第一: 翻译官网资料 增加一条新的mavlink消息(Adding a new MAVLink Message) 第二: Mavlink代码信息 (1)分析姿态包数据 (2)分析挂载 ...
- QGC接收PX4自定义Mavlink消息(二)qgc接收
这里补充一些,我的px4版本是1.11.0dev,在ubuntu18.04上开发,qgc为目前官网最新的版本,在windows上上开发,大家的源码会因为版本差异而有少许区别,所以代码复制粘贴编译肯定会 ...
- QGC添加自定义组件和发送自定义MAVLINK消息
QGC添加自定义组件和发送自定义MAVLINK消息 一.添加自定义组件 1.1 在飞行界面添加组件 1.2 实现组件事件 1.3 在MOCK模拟链接中实现验证 1.4 验证 二.自定义MAVLINK消 ...
- PX4读取串口消息,并通过MAVLINK发送给地面站
参考:(131条消息) PX4飞控读取UART串口信息通过Mavlink传给QGC地面站显示_XXX_UUU_XXX的博客-CSDN博客_px4串口2 PX4版本:1.12.1-3 QGC版本: 4. ...
- Mavlink协议分析
阿木社区:转载注意出处 http://www.amovauto.com Pixhawk/APM都是采用MAVLINK协议实现的飞控的数据链路传输.先简单介绍下mavlink协议.Mavlink协议最早 ...
- QGC地面站Mavlink生成和MockLink模拟收发通讯
Mavlink生成和收发通讯 1. 演示效果 2. Mavlink 生成 2.1 安装python3 2.2 Mavlink下载和运行 2.3 xml文件修改 2.4 自定义Mavlink生成 3. ...
- Mavlink - 无人机通讯协议
http://qgroundcontrol.org/mavlink/start mavlink协议介绍 https://pixhawk.ethz.ch/mavlink/ 消息简介 MAVLink简介 ...
- (无人机方向)ros小白学习之路(五)mavros消息的订阅和发布与offboard例程仿真与解析
文章目录 前言 应用mavros控制无人机消息流 以mavros中setpoint_position/local为例子 1:确定话题的功能和消息类型 如果快速找到对应的mavlink消息 2:确定话题 ...
最新文章
- 轻量级的项目管理工具-Leangoo
- Java 爬虫--类似Python的requests库--HttpClient, HttpAsyncClient--Maven
- windows exec: gcc: executable file not found in %PATH%
- 移动端网站优化该注意哪些重点?
- 通过Runtime源码了解关联对象的实现
- 浏览器中xhr选项是做什么用的呢_XHR和AJAX终于搞懂了!!
- 网易云信携手小天才Z6手表,让安全“看得见”
- JAVA 虚拟机 (SE 7)【待更】
- Hadoop3 Hive Spark完整安装与实践
- 漫步数学分析九——级数
- 心语收集13:有时候我真想忘了你,只记得这个世界,然而,我常常忘了整个世界,只记得你。...
- 服务器虚拟化的毕业设计,云桌面技术研究与应用毕业设计论文+开题报告+翻译+源码...
- 实现发送邮件动态html内容的几种思路
- 【kmp专题】牛客网子串(进制转化+kmp/string.find())
- 解决Specifying a namespace in include()withou providing an app_name
- 不用校园网如何下载论文文献|DOI号|文献免费下载
- 毛笔行书书法-黄鹤楼
- “ 迎奥运、勤学习、树新风”演讲比赛主持词
- [招聘信息]Automation Engineer@EMC
- Cover Letter实用指南
热门文章
- python发送notes邮件_使用python 驱动 lotus notes发送邮件 | 学步园
- OKR制定实例大全--让你制定OKR不发愁
- php 项目总结,项目总结
- 国仁网络资讯:视频号如何快速热门涨粉、引流变现;超详细运营教程。
- java filewriter_Java IO: FileReader和FileWriter
- python工具箱—Excel与List互转
- w3school没有java的教程_javafx w3school教程
- 【问题解决】应用程序无法正常启动0xc000007b的解决方案(非DX修复)
- 如何做好企业内部培训?
- linux安装prometheus-webhook-dingtalk(二)