Crazyflie支持MATLABSimulink控制 基于NOKOV度量动捕系统实现
一、动捕软件VRPN配置
以动捕软件版本XINGYING 4.2.0.5495为例,其他版本同理。打开动捕软件,连接上镜头。单击菜单栏下的视图->数据广播。在数据广播中的VRPN流下,将单位下拉选择米,类型勾选刚体并启用VRPN。
图 1-打开数据广播视图
图 2-动捕中vrpn配置
单击菜单栏下的视图->设备打开设备视图。先点击停止播放按键,在高级框中将动捕帧率修改为120。
图 3-打开设备视图
图 4-修改动捕帧率
二、MATLAB/Simulink平台配置
要求ROS 版本:galactic,Ubuntu 版本:20.04。crazyflie固件版本2024.10以上,若版本过低自行更新版本(cfclient使用)。在windows主机上,Matlab版本建议2020a以上,本实验使用2022a;自行安装python、cmake和Microsoft Visual C++,注意要与matlab的版本对应。
(一)ubuntu环境配置
开启终端,使用以下命令将环境配置写入.bashrc中。ROS_DOMAIN_ID的取值范围为0~255。
echo “export RMW_IMPLEMENTATION=rmw_fastrtps_cpp” >> ~/.bashrc
echo “export ROS_DOMAIN_ID=26” >> ~/.bashrc
(二)Matlab/Simulink环境配置
1.先将flightmaster2的matlab套件解压,使用matlab打开套件,flightmaster2.slx一定要在当前文件夹。
图 5-打开flightmaster2的matlab套件
2.在matlab终端上运行以下代码,选择编译器和编译语言。
mex -setup C++
图 6-选择编译语言
3.运行以下命令对自定义消息进行编译。
ros2genmsg(‘custom_msgs’);
图 7-编译自定义消息类型
4.双击flightmaster2.slx进入simulink模型。
图 8-打开flightmaster2的simulink程序
5.点击上方的仿真,在单击ROS Network。将Domain ID修改为与ubuntu一致,将RMW Implementation修改为rmw_fastrtps_cpp。
图 9-配置ROS2网络
三、基础飞行操作演示
(一)基础控制
在基础控制轮盘中实现了对无人机的基础控制,包括解锁、起飞、悬停、降落和急停服务,可对单个或多个无人机操作。
1.将三架crazyflie机头朝向x轴正方向,放置在场地中,在动捕创建刚体nokov1、nokov2和nokov3,骨骼朝向为x轴,如下图所示。
图 10-建立刚体
2.双击flightmaster2.slx打开simulink模型。
图 11-simulink模型
3.打开ubuntu,在flightmaster2中的flightmasters.yaml启用三架crazyflie。
图 12-启动三架crazyflie
4.开启一个终端,使用以下命令打开flightmaster2图形控制界面。
cd ~/FlightMaster2/
python fmclient.py
图 13-运行flightmaster2图形化界面
5.在图形化界面上选择RealMode并勾选RViz,再点击启动FlightSwarm。此时会运行flightmaster2的服务节点,rviz也会启动。
图 14-flightmaster2图形化界面
6.在matlab的simulink界面上,将集群demo轮盘和基础服务轮盘先拨至NO。再选择上方的仿真,单击运行按键。
图 15-将轮盘拨至No
图 16-运行simulink
先将基础服务轮盘拨至Takeoff,此时三架无人机会起飞至1米,再将轮盘拨至Hold,无人机会在当前位置保持悬停,再将轮盘拨至Land,三架无人机降落,最后将轮盘拨至No。
图 17-轮盘拨至takeoff
图 18-无人机起飞
图 19-rviz显示
(二)crazyflie单机绕方
1.一架crazyflie放入动捕场地中,机头朝向x轴,在动捕软件中建立刚体,名称为vehicle3,骨骼朝向x轴。
图 20-创建刚体
2.打开ubuntu,在flightmasters.yaml启用一架crazyflie,在flightmaster2图形控制界面上启动FlightSwarm。
图 21-启用一架crazyflie
图 22-启动FlightSwarm
3.在matlab的simulink界面上,将demo控制轮盘和基础服务轮盘先拨至NO。再选择上方的仿真,单击运行按键。
图 23-将轮盘拨至No
图 24-运行simulink
4.在demo控制轮盘下方,将VEHICLE3开关拨至on启用设备,此时启用设备的灯会变绿。
图 25-启用设备
5.将demo控制轮盘拨至crazyflie。此时vehicle3会先起飞然后绕方形。
图 26-轮盘拨至crazyflie
图 27-crazyflie绕方形
图 28-rviz显示