Crazyflie 2.0

该飞行控制器支持 PX4 试验性.

Crazyflie 2.0 系列微型四边形机器人由 Bitcraze AB 设计。 在这里找到.

Crazyflie2 图像

快速总结

主要硬件文档在这里: 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 自动驾驶仪:

  1. 下载 PX4 引导加载程序的源代码:
    git clone https://github.com/PX4/Bootloader.git
    
  2. 导航至源代码的顶层目录,然后使用
    使 crazyflie_bl
    
  3. 按照以下步骤将 Crazyflie 2.0 设为 DFU 模式:

    • 确保最初未接通电源。
    • 按住重置按钮(见下图......)。 Crazyflie2 重置按钮
    • 插入电脑的 USB 端口。
    • 一秒钟后,蓝色 LED 灯开始闪烁,5 秒钟后闪烁速度加快。
    • 释放按钮。
  4. 安装 dfu-util:

    sudo apt-get update sudo apt-get install dfu-util
    
  5. 使用 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 灯应闪烁。

  6. 下载 PX4 自动驾驶仪的源代码:

    git clone https://github.com/PX4/Firmware.git
    
  7. 导航至源代码的顶层目录,然后使用
    使 bitcraze_crazyflie_default 上传
    
  8. 当提示插入设备时,插入 Crazyflie 2.0。黄色 LED 灯应开始闪烁,表示启动加载器模式。然后红色 LED 灯会亮起,表明闪频过程已经开始。
  9. 等待完成。
  10. 完成!使用 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 新航站楼。

如果您在 crazyflie-lib-python 或如果发射 cfbridge 在新终端中找不到 crazyflie,可以尝试导航到 crazyflie-lib-python 文件夹,然后运行下面的脚本重建 cflib。

   捞钱

要使用操纵杆,请将 QGroundControl 中的 COM_RC_IN_MODE 设置为 "操纵杆/无 RC 检查"。校准操纵杆,并将 QGroundControl 中的操纵杆信息频率设置为 5 至 14 Hz 之间的任意值(建议设置为 10 Hz)。要设置频率,应启用高级选项。这是操纵杆命令从 QGroundControl 发送到 Crazyflie 2.0 的频率。(要做到这一点,您需要遵循以下说明 这里 以获取最新的 QGroundControl 源代码(master)并构建它)。

硬件设置

Crazyflie 2.0 能够在以下环境中精确控制飞行 稳定模式, 高度模式位置模式.

  • 您需要 Z 型游侠甲板 飞入 海拔高度 模式。如果您还想在 定位(POSITION) 模式,建议您购买 流动甲板 它还集成了 Z-ranger 传感器。
  • 机载气压计极易受到任何外部风力的干扰,包括 Crazyflie&apos 自己的螺旋桨造成的干扰。因此,我们用一块泡沫隔离了气压计,然后将距离传感器安装在上面,如下图所示:

Crazyflie 气压计

Crazyflie 气压计泡沫

Crazyflie 光流

为了记录飞行详情,您可以将 SD 卡甲板安装在 crazyflie 的顶部,如下图所示:

Crazyflie SDCard

然后,您需要用双面胶将电池粘在 SD 卡卡面上:

Crazyflie 电池设置

高度控制

Crazyflie 能够在 海拔高度 模式,如果使用 Z 型游侠甲板.根据数据表,测距仪可感知的最大高度(距地面)为 2 米。然而,在黑暗地面上测试时,该值降至 0.5 米。 海拔高度定位(POSITION) 飞行模式。

如果 Crazyflie 2.0 在油门中段发出指令时高度漂移,在 高度模式位置模式首先尝试重启载具。如果还不能解决问题,请重新校准加速度和磁场(指南针)。

由于机载气压计极易受到 Crazyflie'own 螺旋桨产生的风力干扰,因此不能依靠它来保持高度。

位置控制

流动甲板您可以在以下环境中飞行 Crazyflie 2.0 位置模式.与 PX4flow 不同,流动甲板不带陀螺仪,因此板载陀螺仪用于流动融合,以找到本地位置估计值。此外,流动甲板与 SD 卡甲板共用相同的 SPI 总线,因此在下列情况下飞行时,不建议使用 SD 卡进行高速记录 位置模式.

一个用于在 定位(POSITION) 模式可用 这里.这可以作为比较飞行性能的参考。

将 FrSky Taranis 遥控发射器用作操纵杆

如果您已经拥有 Taranis 遥控发射器,并希望将其用作控制器,则可将其配置为 USB 操纵杆:

  • 在 Taranis 中创建一个新模型。

    Taranis - 新型号

  • 型号设置 菜单页面,关闭内部和外部 TX 模块。

    Taranis - 模型设置

  • 输出 菜单页面(在某些 Taranis 发射机中也称为“SERVOS”页面),反转油门(CH1)和副翼(CH3)。

    Taranis - 产出

使用 Taranis 开关上膛/撤膛并切换到不同的飞行模式:

  • 在 Taranis UI 中 混音器 菜单页面,您可以将开关分配到通道 9-16 范围内的任何通道,这些通道映射到 QGroundControl 操纵杆设置中的按钮 0-7。例如,Taranis “SD”开关可设置为 Taranis UI 中的通道 9:

    Taranis 开关设置

  • 用 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。

飞行

© PX4 开发团队。许可证 CC BY 4.0            已更新:2024-02-13 22:49:01

与" "匹配的结果"

    没有与""匹配的结果"