(五)Crazyflie与Ardupilot 异构集群控制
一、动捕软件VRPN配置
以动捕软件版本XINGYING 4.2.0.5495为例,其他版本同理。打开动捕软件,连接上镜头。单击菜单栏下的视图->数据广播。在数据广播中的VRPN流下,将单位下拉选择米,类型勾选刚体并启用VRPN。
.png)
图 1-打开数据广播视图
.png)
图 2-动捕中vrpn配置
单击菜单栏下的视图->设备打开设备视图。先点击停止播放按键,在高级框中将动捕帧率修改为30。
.png)
图 3-打开设备视图
.png)
图 4-修改动捕帧率
二、FlightMaster平台配置
要求ROS 版本:galactic,Ubuntu 版本:20.04。crazyflie固件版本2024.10以上,若版本过低自行更新版本(cfclient使用)。
(一) 安装依赖
开启终端,使用以下命令安装依赖。
sudo apt install python3-pip python3-colcon-common-extensions
pip3 install rowan
sudo apt install libusb-1.0-0-dev
(二) 编译源码
先将给定的Flightmaster2压缩包解压,然后将解压的文件夹放置在ubuntu家目录(~/)下。使用以下命令安装mavsdk和编译FlightMaster2源码。
cd ~/FlightMaster2/
sudo dpkg -i ./prebuilt/mavsdk-20241118_2.12_amd64.deb
colcon build --symlink-install
echo "source ~/FlightMaster2/install/setup.bash" >> ~/.bashrc
(三) FlightMaster2中配置VRPN
在FlightMaster2中的motion_capture.yaml(路径:
~/FlightMaster2/flightmaster/config)配置文件中将type改为vrpn,hostname修改为动捕软件与运行FlightMaster2主机同网段的IP地址。
.png)
图 5-配置type和hostname
在FlightMaster2中的flightmasters.yaml(路径:
~/FlightMaster2/flightmaster/config)配置文件中将要使用的robot_types的motion_capture的enabled置为false。
.png)
图 6-设置vrpn方式
(四) FlightMaster2连接配置说明
在FlightMaster2中的flightmasters.yaml(路径:
~/FlightMaster2/flightmaster/config)配置文件中的robots字段下,crazyflie的配置与crazyswarm2中一致。apm小车配置与crazyflie的区别在于uri与type。apm小车使用的是mavlink协议,连接地址有多种方式(mavlink连接地址格式),本实验使用的是udp连接方式。type选择r200。
.png)
图 7-crazyflie与apm配置说明
三、基础操作飞行演示
(一) 建立刚体
将一架crazyflie和一辆apm无人车放在场地上,机头朝x轴正方向,分别建立刚体cf和car,骨骼朝向x轴。
.png)
图 8-参考位置
(二) 启用设备
在flightmasters.yaml文件中配置启用一架crazyflie和一辆apm无人车。
.png)
图 9-启用集群设备
(三) 修改跟随脚本
修改follow.py 脚本(路径:~/FlightMaster2/flightmaster_examples/flightmaster_examples)中的名称,启动要对应。
.png)
图 10-修改脚本
(四) 启动图形化操作界面
开启一个终端,使用以下命令打开flightmaster2图形控制界面。
cd ~/FlightMaster2/
python fmclient.py
.png)
图 11-flightmaster2图形化界面
(五) 启动服务节点
在图形化界面上选择RealMode并勾选RViz,再点击启动FlightSwarm。此时会运行flightmaster2的服务节点,rviz也会启动。
.png)
图 12-启动flightmaster2和rviz
(六) 启动跟随脚本
点击图形化界面右侧的运行follow.py按键,启动跟随脚本。
.png)
图 13-启动跟随脚本
.png)
图 14-rviz显示
.png)
图 15-crazyflie跟随apm小车