原文地址: http://blog.sina.com.cn/s/blog_402c071e0102v6ho.html
Crazyflie笔记一:概述开发范围、工具、特点介绍
(2015-01-04 12:48:31)
关于Crazyflie开发
英文参考:http://www.bitcraze.se/development/
1、开发范围
如果你想开发Crazyflie,那你能做些什么呢?下面列举了Crazyflie源码开发所涉及的几个方面,具体包括:
1、传感器
Crazyflie飞行器包含不同的传感器,这些都需要信号处理和性能优化。
2、传感信号融合
多个传感器的信号输出后,需要融合在一起,才能对Crazyflie飞行器姿态进行预估。
3、控制理论
Crazyflie包含了一系列控制闭环,主要都是对roll/pitch/yaw进行控制,也可以通过Kinect外部控制飞行器动作。
4、遥控通信协议
通信协议很简单,但也有足够的扩展性。
5、USB
支持与PC机USB通信。
6、实时系统
采用FREERTOS硬实时系统。
7、图像处理
在Kinect控制飞行器飞行时,用到了图像算法来捕捉Crazyflie飞行器的位置。
8、Android
采用支持USB OTH/HOST的Android设备可以控制飞行器飞行。
Crazyflie飞行器项目用到的编程语言:
1、Crazyradio 和Crazyflie固件为C语言开发;
2、Crazyflie PC API和PC客户端为Python语言开发;
3、Android客户端为Java语言开发。
2、工具
开发环境的设置,一直都是一个麻烦的问题。为了方便,我们提供了一个虚拟机,它包含了所有必须的东西。你需要做的就是下载虚拟机,并导入我们提供的工具。这些工具包括编译器、生成器、EDA软件、固件库、调试工具等。如果一切就绪,你可以做如下事情:
1、查看、生成、调试Crazyflie固件;
2、查看、生成Crazyradio固件;
3、查看Crazyflie 和Crazyradio的EDA工程;
4、开发PC端应用程序;
5、控制Crazyflie飞行。
3、特点
Crazyflie飞行器的目的是用于开发和试验用的,所以我们提供了一系列的调试与开发工具,特点如下:
1、通过radio来bootload固件;
2、通过radio来读取和修改列表参数;
3、通过radio读取日志数据;
4、大量CPU空闲时间,大量flash、RAM空间可以利用;
5、JTAG接口
6、留有扩展接口
radio bootloader允许Crazyflie通过radio来加载固件,这样可以不用接USB或者JTAG就可以刷新固件。当然Crazyradio适配器上也有USB bootloader来更新固件。
Crazyflie扩展接口,不仅包含了JTAG,还包含了一系列总线、电源,用于扩展其他硬件。
4、社区
1、GitHub,所有开源文件可以在https://github.com/bitcraze查看。
2、
3、forum,你可以在http://forum.bitcraze.se/论坛上参与话题讨论。