Skip to content

Crazyflie 2.1

WARNING

PX4并不生产此款(或任何)自动驾驶仪。若有硬件支持或合规性问题,请联系制造商

WARNING

Crazyflie 2.1仅能在稳定模式下飞行。

Crazyflie系列微型四轴飞行器由Bitcraze AB公司打造。Crazyflie 2.1的概述可在此处找到。

Crazyflie2图片

总览

INFO

主要硬件文档位于此处

  • 主片上系统:STM32F405RG
    • CPU:168 MHz ARM Cortex M4 ,带单精度浮点运算单元(FPU)
    • 随机存取存储器:192 KB SRAM
  • nRF51822 无线及电源管理微控制器
  • BMI088三轴加速度计/陀螺仪
  • BMP388高精度气压传感器
  • 微型通用串行总线(uUSB)接口
  • 板载锂聚合物电池充电器,具备100mA、500mA和980mA三种充电模式
  • 全速USB设备接口
  • 部分USB OTG功能(具备USB OTG但无5V输出)
  • 8KB电可擦可编程只读存储器(EEPROM)

购买渠道

该飞行器可在以下链接购买:Crazyflie 2.1 (store.bitcraze.io) 。

有用的周边硬件包括:

组装Crazyflie 2.1

刷入PX4

INFO

以下说明仅在Ubuntu系统上测试过。

在搭建好PX4开发环境后,按以下步骤将PX4自动驾驶仪安装到Crazyflie 2.1上:

  1. 下载PX4引导加载程序的源代码:
sh
git clone https://github.com/PX4/Bootloader.git --recurse-submodules
  1. 进入源代码的顶级目录并使用以下命令编译:
sh
make crazyflie21_bl
  1. 按以下步骤将Crazyflie 2.1置于DFU模式:
    • 确保其初始未通电。
    • 确保电池已断开连接。
    • 按住复位按钮(见下图...)。 Crazyflie2复位按钮
    • 插入计算机的USB端口。
    • 一秒后,蓝色LED灯应开始闪烁,5秒后闪烁应加快。
    • 松开按钮。
  2. 安装 dfu - util
sh
sudo apt-get update
sudo apt-get install dfu-util
  1. 使用 dfu - util 刷入引导加载程序,完成后拔出Crazyflie 2.1:
sh
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D./build/crazyflie21_bl/crazyflie21_bl.bin

当给Crazyflie 2.1通电时,黄色LED灯应闪烁。 6. 下载PX4自动驾驶仪的源代码:

sh
git clone https://github.com/PX4/PX4-Autopilot.git
  1. 进入源代码的顶级目录并使用以下命令编译:
sh
cd PX4-Autopilot/
make bitcraze_crazyflie21_default upload
  1. 当提示插入设备时,插入Crazyflie 2.1。黄色LED灯应开始闪烁,表明进入引导加载程序模式。然后红色LED灯应亮起,表明刷写过程已开始。
  2. 等待完成。
  3. 完成!使用QGroundControl校准传感器。

刷回原厂Bitcraze固件

  1. 下载最新的Crazyflie 2.1引导加载程序
  2. 按以下步骤将Crazyflie 2.1置于DFU模式:
    • 确保其初始未通电。
    • 确保电池已断开连接。
    • 按住复位按钮。
    • 插入计算机的USB端口。
    • 一秒后,蓝色LED灯应开始闪烁,5秒后闪烁应加快。
    • 松开按钮。
  3. 使用 dfu - util 刷入引导加载程序,完成后拔出Crazyflie 2.1:
sh
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D cf2loader-1.0.bin

当给Crazyflie 2.1通电时,黄色LED灯应闪烁。 4. 使用此教程安装最新的Bitcraze Crazyflie 2.1固件。

无线设置说明

板载nRF模块允许通过蓝牙或专有的2.4GHz Nordic ESB协议连接到该板。

  • 推荐使用Crazyradio PA
  • 若要立即试飞Crazyflie 2.1,可通过蓝牙使用Crazyflie手机应用程序。

通过MAVLink连接

  • 将Crazyradio PA与兼容的地面控制站(GCS)配合使用。
  • 下载 crazyflie - lib - python 源代码:
sh
git clone https://github.com/bitcraze/crazyflie-lib-python.git

INFO

我们将使用cfbridge.py 在Crazyflie 2.1(已刷入PX4)与QGroundControl之间建立无线MAVlink通信链路。Cfbridge 使QGroundControl能够与Crazyradio PA进行通信。目前基于C语言的cfbridge 存在数据丢失问题,因此我们选择使用 cfbridge.py

  • 确保已设置udev权限以使用USB无线设备。为此,请按照此处列出的步骤操作,并重启计算机。
  • 通过USB连接Crazyradio PA。
  • 使用以下方法构建一个虚拟环境(本地Python环境) 并安装所需的软件包依赖:
sh
pip install tox --user
  • 导航到crazyflie - lib - python文件夹并输入:
sh
make venv
  • 激活虚拟环境:
sh
source venv/bin/activate
  • 安装所需的依赖项:
sh
pip install cflib
pip install -r requirements.txt

要通过Crazyradio连接Crazyflie 2.1,按以下步骤启动cfbridge

  • 关闭并重新打开Crazyflie 2.1的电源,等待其启动。
  • 通过USB连接Crazyflie无线设备。
  • 导航到crazyflie - lib - python文件夹。
  • 激活环境:
sh
source venv/bin/activate
  • 导航到examples文件夹:
sh
cd examples
  • 启动cfbridge:
sh
python cfbridge.py

INFO

默认情况下,Cfbridge 尝试在80频道上以Crazyflie地址0xE7E7E7E7E7启动无线链路通信。 如果你在同一房间内使用多个Crazyflie和/或Crazyradio ,并且希望为每个设备使用不同的频道和/或地址,首先通过USB线将Crazyflie与QGroundControl连接,并在QGroundControl中更改syslink参数(频道、地址)。 接下来,分别将相同的频道和地址作为第一个和第二个参数来启动cfbridge,例如:python cfbridge.py 90 0x0202020202

  • 打开QGroundControl。
  • 使用完 cfbridge 后,如果你激活了虚拟环境,可以按CTRL+z 停用它。 大多数情况下,从同一终端再次启动 cfbridge 无法连接到Crazyflie,解决方法是关闭该终端,并在新终端中重新启动 cfbridge

TIP

如果你在crazyflie - lib - python 中更改了任何驱动程序,或者在新终端中启动 cfbridge 找不到Crazyflie,你可以尝试导航到crazyflie - lib - python文件夹并运行以下脚本重新构建cflib。

sh
make venv

INFO

只有在你将控制器(例如Playstation 3控制器)连接到PC后,QGC中的“游戏手柄”菜单才会出现。 QGC游戏手柄菜单

硬件安装

Crazyflie 2.1仅能在稳定模式下飞行。

为记录飞行详细信息,你可以如图所示将SD卡扩展板安装在Crazyflie顶部: Crazyflie SD卡

将FrSky Taranis遥控发射器用作游戏手柄

如果你已拥有Taranis遥控发射器并想将其用作控制器,可以将其配置为USB游戏手柄:

  • 在Taranis中创建一个新模型。 Taranis - 新模型
  • 在“模型设置(MODEL SETUP)”菜单页面,关闭内部和外部发射模块。 Taranis - 模型设置
  • 在“输出(OUTPUTS)”菜单页面(某些Taranis发射器中也称为“舵机(SERVOS)”页面),反转油门(CH1)和副翼(CH3)。 Taranis - 输出

要使用Taranis开关进行解锁/锁定以及切换不同飞行模式:

  • 在Taranis用户界面的“混控(MIXER)”菜单页面,你可以将开关分配到9 - 16通道范围内的任何通道,这些通道在QGroundControl游戏手柄设置中对应按钮0 - 7。例如,Taranis的“SD”开关可在Taranis用户界面中设置为通道9: Taranis开关设置
  • 用USB线将Taranis连接到PC并打开QGroundControl。
  • 在QGroundControl游戏手柄设置中,当你打开开关时,可以看到按钮变为黄色。例如,Taranis中的通道9在QGroundControl游戏手柄设置中对应按钮0。你可以为该按钮分配任何模式,例如 高度(Altitude) 模式。现在,当你拉下“SD”开关时,飞行模式将切换为 高度 模式。 游戏手柄设置

机器人操作系统(ROS)

要通过MAVROS连接到Crazyflie 2.1:

  • 按照上述说明启动 cfbridge
  • 更改QGroundControl监听的UDP端口:
    • 在QGroundControl中,导航到“应用设置 > 常规”,取消选中“自动连接到以下设备”下的所有框。
    • 在“通信链路(Comm Links)”中添加一个UDP类型的链路,选中“启动时自动连接”选项,将“监听端口”更改为14557,添加目标主机:127.0.0.1,然后按“确定”。
  • 确保已安装MAVROS
  • 使用以下命令启动MAVROS:
sh
roslaunch mavros px4.launch fcu_url:="udp://:14550@127.0.0.1:14551" gcs_url:="udp://@127.0.0.1:14557"
  • 如果QGroundControl未连接,请重启它。

飞行