Skip to main content

(四)Crazyflie无人机集群控制笔记二

一、动捕软件SDK配置

以动捕软件版本XINGYING 4.2.0.5495为例,其他版本同理。打开动捕软件,连接上镜头。单击菜单栏下的视图->数据广播。在网卡地址中下拉选择与ubuntu同网段地址,这里选择192.168.5.141,在SDK流下,将模式选择组播并启用SDK。

图 1-打开数据广播视图

图 1-打开数据广播视图

图 2-启用SDK

图 2-启用SDK

二、crazyswarm2平台配置

(一) SDK放置指定目录

将nokov_sdk文件夹放置在libmotioncapture的deps(路径:~/crazyswarm2/motion_capture_tracking/motion_capture_tracking/deps/libmotioncapture/deps)目录中。

图 3-将sdk放置在指定目录

图 3-将sdk放置在指定目录

(二) 编译motion_capture_tracking源码

将motion_capture_tracking的CMakeLists.txt文件中的“set(LIBMOTIONCAPTURE_ENABLE_NOKOV OFF)”修改为“set(LIBMOTIONCAPTURE_ENABLE_NOKOV ON)”,启用SDK。

图 4-motion_capture_tracking启用SDK

图 4-motion_capture_tracking启用SDK

再将libmotioncapture的CMakeLists.txt文件(路径:~/crazyswarm2/motion_capture_tracking/motion_capture_tracking/deps/libmotioncapture)的“option(LIBMOTIONCAPTURE_ENABLE_NOKOV "Enable Nokov" OFF)”改为“option(LIBMOTIONCAPTURE_ENABLE_NOKOV "Enable Nokov" ON)”

图 5-libmotioncapture启动sdk

图 5-libmotioncapture启动sdk

使用以下命令重新编译motion_capture_tracking源码(上个文档将motion_capture_tracking源码拉取到crazyswarm2目录下)

cd ~/crazyswarm2/
colcon build --symlink-install
source ~/.bashrc

(三) crazyswarm2中配置SDK

在crazyswarm2中的motion_capture.yaml(路径:

~/crazyswarm2/crazyflie/config)配置文件中将type改为nokov,hostname修改为第一节中选择的网卡地址:192.168.5.141。

图 6-配置type和hostname

图 6-配置type和hostname

三、基础操作飞行演示

(一) 单机起飞降落控制

将1架crazyflie开机放入动捕场地,机头朝向x轴正方向,在动捕软件中建立刚体,刚体名称为nokov1。

图 7-建立刚体

图 7-建立刚体

在crazyflies.yaml添加该crazyflie的配置。

图 8-添加一架crazyflie配置

图 8-添加一架crazyflie配置

开启一个终端运行以下命令启动服务节点。

ros2 launch crazyflie launch.py gui:=False rviz:=True

另启一个终端,运行以下命令查看crazyflie的位置数据。

ros2 topic echo /poses

再启一个终端运行以下命令启动起飞降落脚本。

cd crazyswarm2/crazyflie_examples/crazyflie_examples/
python hello_world.py
图 9-rviz显示

图 9-rviz显示

图 10-crazyflie起飞

图 10-crazyflie起飞

(二) 集群绕八字控制

将3架crazyflie开机放入动捕场地,机头朝向x轴正方向,在动捕软件中建立刚体,刚体名称分别为nokov1、nokov2和nokov3。

图 11-建立刚体

图 11-建立刚体

在crazyflies.yaml添加该crazyflie的配置。

图 12-添加三架crazyflie配置

图 12-添加三架crazyflie配置

进入~/crazyswarm2/crazyflie_examples/crazyflie_examples文件夹下修改figure8.py,将29~32行代码注释(飞向初始位置)。

图 13-注释掉飞向设定初始位置代码

图 13-注释掉飞向设定初始位置代码

开启一个终端运行以下命令启动服务节点。

ros2 launch crazyflie launch.py gui:=False rviz:=True

另启一个终端,运行以下命令查看crazyflie的位置数据。

ros2 topic echo /poses

再启一个终端运行以下命令启动绕八字脚本。

cd crazyswarm2/crazyflie_examples/crazyflie_examples/
python figure8.py
图 14-rviz显示

图 14-rviz显示

图 15-集群绕八字

图 15-集群绕八字