# Crazyflie 2.0(已停产)
警告
Crazyflie 2.0 一直以来 终止/废弃.尝试 Bitcraze Crazyflie 2.1 而不是
警告
- PX4 不生产这种(或任何)自动驾驶仪。请联系 生产商 (打开新窗口) 硬件支持或合规问题。
- 该飞行控制器支持 PX4 试验性.
Crazyflie 系列微型四轮车由 Bitcraze AB 生产。Crazyflie 2.0 的概览如下 在这里找到 (打开新窗口).
# 快速总结
备注
主要硬件文档在这里: https://wiki.bitcraze.io/projects:crazyflie2:index
- 主片上系统:STM32F405RG
- 中央处理器168 MHz ARM Cortex M4,带单精度 FPU
- 内存:192 kb Sram
- nRF51822 无线电和电源管理 MCU
- MPU9250 加速/陀螺/磁场
- LPS25H 气压计
# 购买地点
- Crazyflie 2.0 (打开新窗口).
- Crazyradio PA 2.4 GHz USB 加密狗 (打开新窗口)用于以下设备之间的无线通信 QGroundControl 和 Crazyflie 2.0。
- 突围甲板 (打开新窗口)扩展板:用于连接新外设的扩展板。
- 流动甲板 (打开新窗口)该系统包括一个用于测量地面运动的光流传感器和一个用于测量与地面距离的距离传感器。这将有助于精确控制高度和位置。
- Z 型游侠甲板 (打开新窗口) 与流动甲板具有相同的距离传感器,用于测量与地面的距离。这将有助于精确控制高度。
- SD 卡甲板 (打开新窗口)用于将高速机载日志记录到微型 SD 卡。
- 罗技操纵杆 (打开新窗口).
# 闪光 PX4
设置好 PX4 开发环境后,请按照以下步骤在 Crazyflie 2.0 上安装 PX4 自动驾驶仪:
下载 PX4 引导加载程序的源代码:
git clone https://github.com/PX4/Bootloader.git
导航至源代码的顶层目录,然后使用
使 crazyflie_bl
按照以下步骤将 Crazyflie 2.0 设为 DFU 模式:
- 确保最初未接通电源。
- 按住重置按钮(见下图......)。
- 插入电脑的 USB 端口。
- 一秒钟后,蓝色 LED 灯开始闪烁,5 秒钟后闪烁速度加快。
- 释放按钮。
安装 dfu-util:
sudo apt-get update sudo apt-get install dfu-util
使用 dfu-util 完成后拔下 Crazyflie 2.0 的电源插头:
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D ./build/crazyflie_bl/crazyflie_bl.bin
打开 Crazyflie 2.0 电源时,黄色 LED 灯应闪烁。
下载 PX4 自动驾驶仪的源代码:
git clone https://github.com/PX4/PX4-Autopilot.git
导航至源代码的顶层目录,然后使用
使 bitcraze_crazyflie_default 上传
当提示插入设备时,插入 Crazyflie 2.0。黄色 LED 灯应开始闪烁,表示启动加载器模式。然后红色 LED 灯会亮起,表明闪频过程已经开始。
等待完成。
完成!使用 QGroundControl (打开新窗口).
备注
如果 QGroundControl 无法与载具连接,请确保在 nuttx-config (打开新窗口) for crazyflie # CONFIG_DEV_LOWCONSOLE 未设置
改为 CONFIG_DEV_LOWCONSOLE=y
.应使用 菜单:
make bitcraze_crazyflie_default menuconfig
或 qconfig 检查 低级控制台支持 根据 支持串行驱动程序 在图形用户界面中):
make bitcraze_crazyflie_default qconfig
# 无线设置说明
板载 nRF 模块可通过蓝牙或专有的 2.4GHz Nordic ESB 协议与电路板连接。
- A Crazyradio PA (打开新窗口) 建议
- Crazyflie 2.0 可通过蓝牙支持 Crazyflie 手机应用程序,以便立即飞行。
使用官方 Bitcraze Crazyflie 电话应用程序:
- 通过蓝牙连接
- 将设置中的模式更改为 1 或 2。
- 通过 QGroundControl 进行校准。
通过 MAVLink:
- 使用 Crazyradio PA 和兼容的 GCS。
- 下载 crazyflie-lib-python 源代码:
git clone https://github.com/bitcraze/crazyflie-lib-python.git
备注
我们将使用 cfbridge.py (打开新窗口) 在 Crazyflie 2.0(已刷新 PX4)和 QGroundControl 之间建立无线 MAVlink 通信链路。 Cfbridge 使 QGroundControl 能够与 crazyradio PA 通信。该 基于 C 语言的 cfbridge (打开新窗口) 目前正在经历数据丢失问题,因此我们选择使用 cfbridge.py.
- 确保设置了使用 USB Radio 的 udev 权限。为此,请按照以下步骤操作 这里 (打开新窗口) 和 重新启动 您的电脑
- 通过 USB 连接 Crazyradio PA。
- 建立一个 虚拟环境 (打开新窗口) 与软件包的依赖关系:
pip install tox --user
- 导航至 crazyflie-lib-python 文件夹并键入
捞钱
- 激活虚拟环境:
源 venv-cflib/bin/activate
- 安装所需的依赖项:
pip install -r requirements.txt --user
将 Crazyflie 2.0 与 crazyradio 连接、 启动 cfbridge 请按照以下步骤操作:
关闭并打开 Crazyflie 2.0,等待它启动。
通过 USB 连接 Crazyflie 无线电设备。
导航至 crazyflie-lib-python 文件夹。
激活环境:
源 venv-cflib/bin/activate
导航至示例文件夹:
cd 示例
启动 cfbridge:
python cfbridge.py
备注
Cfbridge 默认情况下,会尝试在信道 80 和 crazyflie 地址 0xE7E7E7E7 上启动无线电链路通信。如果使用 多只疯狂的苍蝇和/或疯狂的收音机 (打开新窗口) 如果想在同一个房间里使用不同的通道和/或地址,首先要通过 USB 电缆将 crazyflie 与 QGroundControl 连接起来,然后更改 QGroundControl 中的系统链接参数(通道、地址)。然后,启动 cfbridge,将相同的通道和地址分别作为第一个和第二个参数,例如
python cfbridge.py 90 0x02020202
打开 QGroundControl。
使用后 cfbridge如果激活了 virtualenv,可以通过按
CTRL+z
.大多数情况下,启动 cfbridge 再次从同一终端连接到 crazyflie 无法解决这个问题,关闭终端并重新启动 cfbridge 新航站楼。
TIP
如果您在 crazyflie-lib-python (打开新窗口) 或如果发射 cfbridge 在新终端中找不到 crazyflie,可以尝试导航到 crazyflie-lib-python 文件夹,然后运行下面的脚本重建 cflib。
捞钱
备注
要使用操纵杆,请设置 COM_RC_IN_MODE
将 QGroundControl 中的"操纵杆/无遥控检查"设置为"操纵杆/无遥控检查"。校准操纵杆,并在 QGroundControl 中将操纵杆信息频率设置为 5 至 14 Hz 之间的任意值(建议设置为 10 Hz)。要设置频率,应启用高级选项。这是操纵杆命令从 QGroundControl 发送到 Crazyflie 2.0 的频率(要做到这一点,您需要遵循以下说明 这里 (打开新窗口) 以获取最新的 QGroundControl 源代码(master)并构建它)。
# 硬件设置
Crazyflie 2.0 能够在以下环境中精确控制飞行 稳定模式, 高度模式 和 位置模式.
- 您需要 Z 型游侠甲板 (打开新窗口) 飞入 海拔高度 模式。如果您还想在 定位(POSITION) 模式,建议您购买 流动甲板 (打开新窗口) 它还集成了 Z-ranger 传感器。
- 机载气压计极易受到任何外部风力的干扰,包括 Crazyflie 螺旋桨产生的干扰。因此,我们用一块泡沫隔离了气压计,然后将距离传感器安装在上面,如下图所示:
为了记录飞行详情,您可以将 SD 卡甲板安装在 crazyflie 的顶部,如下图所示:
然后,您需要用双面胶将电池粘在 SD 卡卡面上:
# 高度控制
Crazyflie 能够在 海拔高度 模式,如果使用 Z 型游侠甲板 (打开新窗口).根据数据表,测距仪可感知的最大高度(距地面)为 2 米。然而,在黑暗地面上测试时,该值降至 0.5 米。 海拔高度 或 定位(POSITION) 飞行模式。
TIP
如果 Crazyflie 2.0 在油门中段发出指令时高度漂移,在 高度模式 或 位置模式首先尝试重启载具。如果还不能解决问题,请重新校准加速度和磁场(指南针)。
备注
由于机载气压计极易受到 Crazyflie 螺旋桨产生的风力干扰,因此不能依靠它来保持高度。
# 位置控制
与 流动甲板 (打开新窗口)您可以在以下环境中飞行 Crazyflie 2.0 位置模式.不像 PX4FLOW由于流动甲板上没有陀螺仪,因此使用板载陀螺仪进行流动融合,以找到本地位置估计值。此外,流动甲板与 SD 卡甲板共享相同的 SPI 总线,因此在下列情况下飞行时,不建议使用 SD 卡进行高速记录 位置模式.
# 将 FrSky Taranis 遥控发射器用作操纵杆
如果您已经拥有 Taranis 遥控发射器,并希望将其用作控制器,则可将其配置为 USB 操纵杆:
在 Taranis 中创建一个新模型。
在 型号设置 菜单页面,关闭内部和外部 TX 模块。
在 输出 在菜单页面(在某些 Taranis 发送机中也称为 "SERVOS "页面),反转油门(CH1)和副翼(CH3)。
使用 Taranis 开关上膛/撤膛并切换到不同的飞行模式:
在 Taranis UI 中 混音器 在 Taranis UI 的菜单页面中,您可以将开关分配到通道 9-16 范围内的任意通道,这些通道映射到 QGroundControl 操纵杆设置中的按钮 0-7。例如,Taranis "SD "开关可设置为 Taranis UI 中的通道 9:
用 USB 电缆将 Taranis 与电脑连接,然后打开 QGroundControl。
在 QGroundControl 操纵杆设置中,您可以看到按钮在打开时变成黄色。例如,Taranis 中的通道 9 映射到 QGroundControl 操纵杆设置中的按钮 0。您可以为该按钮分配任何模式,例如 海拔高度 模式。现在,当您降低开关"SD"时,飞行模式将变为 海拔高度.
# ROS
通过 MAVROS 连接 Crazyflie 2.0:
启动 cfbridge 使用上述说明。
更改 QGroundControl 监听的 UDP 端口:
- 在 QGroundControl 中,导航至 应用程序设置> 常规 并取消选中 自动连接到以下设备.
- 加入 通信链接 链接类型 UDP检查 启动时自动连接 选项,更改 监听端口 到 14557,添加目标主机:127.0.0.1,然后按 好的.
确保您有 马弗罗斯 (打开新窗口) 已安装。
用命令启动 MAVROS:
roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14551" gcs_url:="udp://@127.0.0.1:14557"
如果无法连接,请重新启动 QGroundControl。