本文共 712 字,大约阅读时间需要 2 分钟。
摘自:
2018-07-23 15:49:13 1198
分类专栏: 文章标签:
版权
首先是mavlink的协议理解和移植过程(关于移植参考网址:和http://www.cnblogs.com/lovechen/p/5809709.html),其中梳理过之后,会发现移植的核心是将发送的底层串口函数修改成适合自己飞控硬件串口,接收到数据后存入接收缓冲区,并将缓存区的数据放入移植程序的parse功能函数,并进行handle,从而运行移植的mavlink的相关的头文件,将解包的数值赋予相关的结构体成员变量。
mavlink协议理解并完成移植后,需要明白地面站发送航点给飞控的机理:
该图的获取从mavlink协议官网获得
其中上图是将两个航点信息经地面站发送到飞控,发送过程有查询和应答。其他的msgID还有MSG_ID_MISSION_ITEM_HOME和MSG_ID_MISSION_ITEM_WAYPOINT,看到网上的代码用的是后者,具体区别可参考官网的协议。
飞控接收到地面站发送的航点信息后,其中MISSION_COUNT包含航点的个数,可将这些航点信息组成链表的形式,从而供飞控的mission程序去传递执行,最后再落实到飞机的位置和姿态控制,实现自主航线。
整体流程就是这样,之前写的博客有人问问题,这里留个QQ技术讨论群879466897, 昵称:欣飞鸽总动员。
有需求移植的mavlink航点收发项目代码,可获取于知识星球--飞鸽传书(ID:4003539)
更多无人机知识分享,请关注微信公众号:欣飞鸽
开心飞翔,灵动如鸽。愿与无人机爱好者,共创一片蓝天梦!