从零部署Crazyswarm集群——Crazyflie无人机编队实战指南

张开发
2026/4/23 10:20:12 15 分钟阅读

分享文章

从零部署Crazyswarm集群——Crazyflie无人机编队实战指南
1. 环境准备与依赖安装第一次接触Crazyflie无人机和Crazyswarm集群时我完全被各种依赖和环境配置搞晕了。经过多次尝试终于总结出一套稳定的Ubuntu环境搭建方案。建议使用Ubuntu 18.04或20.04 LTS版本这两个版本我都实测过兼容性最好。首先需要设置Python环境变量。打开终端输入sudo gedit ~/.bashrc在文件末尾添加export CSW_PYTHONpython3保存后执行source ~/.bashrc使配置生效。这个步骤很关键否则后续运行Python脚本时会报各种奇怪的错误。接下来创建虚拟环境。我强烈推荐使用conda而不是virtualenv因为conda能更好地管理复杂依赖conda create --name crazyswarm python3.7 conda activate crazyswarm编译Crazyswarm源码时有个小技巧。先进入工作目录cd ~/catkin_ws/src git clone https://github.com/USC-ACTLab/crazyswarm.git cd crazyswarm ./buildSimOnly.sh这个脚本会自动安装ROS依赖项。完成后别忘记执行cd ../.. catkin_make测试环境是否正常cd ~/catkin_ws/src/crazyswarm/ros_ws/src/crazyswarm/scripts source ~/catkin_ws/src/crazyswarm/ros_ws/devel/setup.bash $CSW_PYTHON -m pytest如果看到所有测试用例都通过说明基础环境已经就绪。2. 客户端软件与固件刷写Crazyflie官方客户端cfclient的安装过程遇到过不少坑。最新版的pyyaml 6.x与Crazyswarm不兼容必须使用5.x版本。我的解决方案是git clone https://github.com/bitcraze/crazyflie-clients-python.git cd crazyflie-clients-python git checkout -b v2022.9 pip3 install -e .新买的Crazyflie 2.1无人机需要先刷写固件。按住电源键3秒直到LED闪烁进入bootloader模式然后在cfclient中选择点击Bootloader选项卡选择Browse找到下载的固件文件点击Flash开始刷写固件建议从GitHub官方仓库下载最新稳定版。刷写过程中进度条会走两次这是正常现象。完成后记得修改每台无人机的地址建议采用编号方式管理比如radio://0/80/2M/E7E7E7E703其中最后两位03就是无人机的编号。3. 配置文件详解与修改Crazyswarm的核心配置文件都在catkin_ws/src/crazyswarm/ros_ws/src/crazyswarm/launch/目录下。最重要的三个文件是crazyflieTypes.yaml- 定义无人机类型参数crazyflies.yaml- 配置具体无人机参数allCrazyflies.yaml- 全局参数设置以单机悬停为例需要修改hover_swarm.launch文件。关键参数说明rosparam firmwareParams: commander: enHighLevel: 1 # 启用高级控制模式 stabilizer: estimator: 2 # 1:互补滤波 2:卡尔曼滤波 controller: 2 # 1:PID控制 2:Mellinger控制器 locSrv: extPosStdDev: 1e-3 # 外部定位精度 kalman: resetEstimation: 1 # 重置估计器 /rosparam对于四机编队还需要配置运动捕捉系统参数motion_capture_type: optitrack # 根据实际系统修改 motion_capture_host_name: 192.168.100.2 # 动捕主机IP object_tracking_type: libobjecttracker # 目标跟踪算法4. 实战飞行与问题排查第一次试飞建议先进行单机测试。启动命令roslaunch crazyswarm hover_swarm.launch常见问题及解决方案无法连接无人机检查Crazyradio PA是否插好确认无人机地址与配置文件一致尝试重新刷写固件定位漂移校准动捕系统调整extPosStdDev参数检查marker粘贴是否牢固飞行不稳定修改控制器参数检查电池电量降低飞行高度对于集群飞行我建议的测试顺序是单机悬停双机编队四机基础队形复杂轨迹飞行一个实用的八字飞行轨迹配置文件示例time,x,y,z,yaw 0.0,0.0,0.0,0.5,0.0 1.0,0.5,0.0,0.5,0.0 2.0,0.5,0.5,0.5,0.0 3.0,0.0,0.5,0.5,0.0 4.0,0.0,0.0,0.5,0.0记得飞行前做好安全检查清除飞行区域障碍物准备紧急停止方案保持电池电量充足检查螺旋桨固定情况

更多文章