MavLink ,全称Micro Air Vehicle Link,是一种用于小型无人载具的通信协议,于2009年首次发布。该协议广泛应用于地面站(Ground Control Station,GCS)与无人载具(Unmanned vehicles)之间的通信,同时也应用在载具内部子系统的内部通信中,协议以消息库的形式定义了参数传输的规则。MavLink协议支持无人固定翼飞行器、无人旋翼飞行器、无人车辆等多种载具。
Mavlink协议最早由 苏黎世联邦理工学院 计算机视觉与几何实验组 的 Lorenz Meier于2009年发布,并遵循LGPL开源协议。Mavlink协议是在串口通讯基础上的一种更高层的开源通讯协议,主要应用在微型飞行器(micro aerial vehicle)的通讯上。Mavlink是为小型飞行器和地面站(或者其他飞行器)通讯时常常用到的那些数据制定一种发送和接收的规则并加入了校验(checksum)功能。
MAVLINK主要功能类的详解
Parser解析类,该类的作用是将获取的数据进行解析,把解析好的数据打包成一个MAVLINKPacket类。Parser类里面包含了对数据的检查,以及丢包率的计算。
MAVLINKPacket数据包类,地面站和飞控之间的数据传输数据的形式都是该类的封包和解包(封包发送,接收解包)。该类包含了对数据的解包和封包,关键是解包。该类解包后会得到一个com.MAVLINK.Messages.ardupilotmega包下的类。
com.MAVLINK.Messages.ardupilotmega包下的类就是前面所说的一条条消息贞。对消息贞中的数据的判断是根据 com.MAVLINK.Messages.enums包下的类来判断的
com.MAVLINK.Messages.enums包下的类都是枚举类(包含了各种飞行数据的常量值)。我们可以将这个包看作是一本字典,在发送数据和接收数据的时候,
通过将数据和该包下的常量值的比较而获得得到准确的信息。