CrazePony飞行器--通信部分介绍【转】

简介:

转自:http://www.crazepony.com/wiki/comm-protocol.html

作者:nieyong

通信协议指的是遥控端和主控之间交互数据的封装,是一种自行约定的数据封装格式。我们采用的是Crazyflie项目中定义的CRTP协议

遥控端和主控之间数据的交互,物理层可以有下面几种方式:

  • 单片2.4G无线射频收发芯片,通过SPI接口和MCU连接
  • 蓝牙2.1透传模块,通过串口UART和MCU连接
  • 蓝牙4.0低功耗BLE透传模块,通过串口UART和MCU连接

这几种不同的物理层通信方式在同一时刻只能够选择其中的一种。并且蓝牙2.1和蓝牙BLE根据安装的透传模块不一样进行选择。

crazyflie task

ESky Protocol

在上面示意图的的通信方式选择上,最左边为EskyLink,对应使用宏USE_ESKYLINK来开启是否选择该种链接方式。

# Make copter firmware to be used with the bootloader, CF controlled with eSky ET6i transmitter

$ make clean && make USE_ESKYLINK=1 CLOAD=1 all 

所谓的Esky Protocol,其实就是ESky公司遥控器使用的通信协议。所以如果选用这种通信方式,那么可以使用ESky航模公司的遥控器进行控制。Crazyflie官网支持ESKY ET6I Remote Control遥控器。

关于ESky公司的2.4G遥控器设备的通信协议,参考ArduinoRCLib项目中的描述:

The Esky 2.4 GHz equipment uses the Nordic NRF2401AG in both the transmitter and receiver. A compatible alternative to this chip is the NRF24L01+ (which is widely available).

ESky相关协议内容暂时不研究。

串口

使用串口作为物理层指的是蓝牙透传模块(包括蓝牙2.1或者蓝牙4.0 BLE模块)。串口配置为115200 8N1,收发异步。

一个可供主控解析的数据包格式,约定如下:

  7   6   5   4   3   2   1   0
  +---+---+---+---+---+---+---+---+
  |     Port      |  Res. | Chan. | 
  +---+---+---+---+---+---+---+---+
  |            DATA 0             |
  +---+---+---+---+---+---+---+---+
  :   :   :   :   :   :   :   :   :
  +---+---+---+---+---+---+---+---+
  |            DATA 31            |
  +---+---+---+---+---+---+---+---+

开始为一个字节的头,该字节中包括port字段,reserve字段,channel字段。紧跟着该自己,就是0-31个字节的数据,数据的长度是任意的。

头字节中的port字段用来区分该数据包的功能,常见的包括下面几个

  • 0x0 : console
  • 0x2 : parameter,表示后面的数据是系统的参数
  • 0x3 : commander,操作命令,控制飞机的飞行,包括pitch/yaw/roll等
  • ……

对于串口传输,在上面数据包的最前面需要加上两个字节0xaaaa的起始数据,在最后加上一个字节的checksum数据。格式如下:

  7   6   5   4   3   2   1   0
  +---+---+---+---+---+---+---+---+
  |             0xAA              |
  +---+---+---+---+---+---+---+---+
  |             0xAA              |
  +---+---+---+---+---+---+---+---+
  |      Port     |  Res  | Chan. |
  +---+---+---+---+---+---+---+---+
  |         Packet length         |
  +---+---+---+---+---+---+---+---+
  |            DATA 0             |
  +---+---+---+---+---+---+---+---+
  :   :   :   :   :   :   :   :   :
  +---+---+---+---+---+---+---+---+
  |            DATA 30            |
  +---+---+---+---+---+---+---+---+
  |            Cksum              |
  +---+---+---+---+---+---+---+---+

  +--------+--------+--------+--------+--------+--....--+--------+
  |  0xAA  |  0xAA  | Header | Length | Data0  | Packet | Cksum  |
  +--------+--------+--------+--------+--------+--....--+--------+

注意,紧跟在头后面的第一个data字节,表示后面数据的长度。

操作命令

操作命令是指用于控制飞行器起飞,前后左右运动的命令,英文commander。操控命令是遥控器最基本,也是最常用的命令。数据包头中port字段为0x3表示操作命令。Crazyflie操作数据格式约定如下。

+-------+-------+-------+-------+
| ROLL  | PITCH |  YAW  |THRUST |
+-------+-------+-------+-------+
0       4       8       12      14 bytes

操作数据一共14个字节,前12个字节分别表示Roll,Pitch,Yaw的值,每个值使用4个字节。后2个字节表示Thrust的值,使用2个字节。

所以,使用串口发送的一个操作命令示例如下:

0xaa 0xaa 0x30 0x0e 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x3e












本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/5256387.html,如需转载请自行联系原作者

相关文章
|
安全 机器人 测试技术
带你读《无人机网络与通信》之一:无人机系统概述
本书针对无人机系统两个关键问题—通信组网和管控体系做了比较全面和深入的描述和探讨,特别是以大量笔墨分析了现有无线通信解决方案,对比了不同通信协议,得出了很有价值的研究结论。无人机的跨越式发展将涉及公共安全管理的问题,构建管控体系是当务之急,分级管理以及制定相应的适航标准是一件大事情,本书对此也进行了系统的、建设性的讨论。未来,高档无人机和无人机集群将对环境具有更强的感知能力和自适应能力,还有对任务的自规划和学习、调整能力,本书讨论的内容将为它们的发明、部署和监督提供宝贵的信息。
|
9月前
|
算法 5G
智能超表面(RIS)辅助双功能雷达和通信波束形成设计(Matlab代码实现)
智能超表面(RIS)辅助双功能雷达和通信波束形成设计(Matlab代码实现)
211 0
|
10月前
|
机器学习/深度学习 传感器 自动驾驶
无人驾驶飞行器 (UAV) 以飞行基站 (FBS) 的形式辅助 5G 通信附matlab代码
无人驾驶飞行器 (UAV) 以飞行基站 (FBS) 的形式辅助 5G 通信附matlab代码
|
10月前
|
传感器 数据采集 安全
无线无源中继采发仪在工程监测中的应用
随着科技的不断发展,无线传感技术在工程监测中的应用越来越广泛。其中,无线无源中继采发仪是一种新型的数据采集设备,能够将传感器数据通过无线信号传输到数据中心。本文旨在探讨无线无源中继采发仪在工程监测中的应用。
无线无源中继采发仪在工程监测中的应用
|
11月前
|
编解码 缓存 物联网
工程监测NLM5无线中继采集发送仪安装电池及数字接口
NLM5xx是一台低功耗的多通道无线中继采集仪,得益于传感测量、无线通讯、功耗控制等技术累积,设备平均功耗低至微安级别。内置电池可独立工作数年。 1 安装电池/连接电源 NLM5xx 使用内置电池和(或)外部电源工作。可以仅安装 1~3 节 14500 型锂电池,或者仅使用外部供电,也可以内置电池和外部供电同时存在,此时 NLM5xx 的电能完全来自外部电源,同时外部电源也为内置电池充电。
|
传感器 移动开发 网络协议
工程监测多通道振弦传感器无线采发仪VS-BOX外接传感器的接入逻辑与数据发送
单类型数字传感器:使用寄存器 DS_SENSOR(282)来设置单类型数字传感器的类型和数量(见下表)。 VS 会自动轮巡发送传感器读取指令,当 VS 接收到传感器输出的数据后解析数据并将其更新到通道寄存器 CHxx 内,最终发送到远程服务器上。
工程监测多通道振弦传感器无线采发仪VS-BOX外接传感器的接入逻辑与数据发送
飞机飞行原理之空气流动基本规律
飞机飞行原理之空气流动基本规律
537 0
飞机飞行原理之空气流动基本规律
|
传感器 存储
多通道振弦传感器无线采发仪VS-BOX通讯接口与电源接口定义
VS-Box 是以振弦、温度传感信号为主的多通道无线采发仪,并可扩展其它模拟(电流、电压、电阻)信号和数字信号( RS485、 RS232)传感器通道,内置电池,可外接太阳能电池板。最多可实现 32 通道的全自动采集存储和无线发送,支持内部及外部 U 盘数据存储; 1 路程控电源输出可为其它传感器供电;RS232/RS485 数据接口。
多通道振弦传感器无线采发仪VS-BOX通讯接口与电源接口定义
混合卫星蜂窝终端系统
本文研究全球及中国市场混合卫星蜂窝终端系统现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
|
传感器 算法 机器人
麻省理工学院开发系统 使用肌肉信号控制无人机
麻省理工学院的研究人员创造了一个新的系统,能让我们更接近于人与机器人的无缝协作。这套系统被称为 "行为-A-Bot"。它利用可穿戴式传感器发出的人体肌肉信号来驾驶无人机,控制无人机的运动。