有问题请回复评论,然后邮箱提醒我回复,550746284@qq.com 私信不回。。。
本文在上两篇博客的基础上,介绍mavlink代码的结构和编解码流程。mavlink有很多的版本,虽然都是mavlink v1.0,但还是有很多不一样的地方,不同飞控,不同时间的mavlink文件都会不一样,笔者讲的mavlink是在这里下载的<a target=_blank href="https://github.com/mavlink/c_library">https://github.com/mavlink/c_library</a>。mavlink代码全部由头文件组成,可以很方便的添加到你自己的代码中。
可以看到,里面有多个文件夹和几个头文件。pixhawk,ardupilotmega(apm),matrixpilot这类的文件夹里都是各个飞控自己定义的mavlink消息类型,原始的mavlink消息放在common文件夹里面(大部分消息都在common文件夹中)。checksum.h中存放的是计算校验码的代码。 mavlink_helper.h里面是将各个消息包补充完整(调用checksum.h中的函数计算校验码并补上消息帧的头,比如sysid和compid等)成为mavlink消息帧再发送。最主要的功能集中在这两个文件夹中。mavlink_conversions.h里是dcm,欧拉角,四元数三种姿态表示方法之间的转换代码。
下面以发送心跳包(heartb

本文深入解析Mavlink协议,通过发送心跳包为例,介绍如何使用mavlink_msg_heartbeat.h打包和解码消息。讨论了mavlink_conversions.h中的姿态转换,强调了通道选择、消息类型和校验码的重要性,并提醒注意不同mavlink版本的兼容性问题。
最低0.47元/天 解锁文章
2608

被折叠的 条评论
为什么被折叠?



